音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

keil編譯器發(fā)生了奇怪的問題!

作者:dcknightdc 欄目:單片機(jī)
keil編譯器發(fā)生了奇怪的問題!
出現(xiàn)問題時(shí)的截圖我把它作為附件傳上了來,哪位大蝦對這個(gè)問題比較了解的,麻煩給個(gè)解決辦法和建議!
下面的是要編譯的源程序:
#include <reg52.h>
#include "ps2_driver.h"
//單片機(jī)向PS/2鍵盤發(fā)送數(shù)據(jù)程序代碼如下:
void ps2_sentCHAR( unsigned CHAR sentCHAR ) //ps2主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù)
{    
    unsigned CHAR sentbit_cnt = 0x00;
    unsigned CHAR sentCHAR_chk = 0x00;
    
    EX0 = 0; //關(guān)外部中斷0
//發(fā)起一個(gè)傳送,發(fā)起始位
    PS2_SGN_CLOCK = 0;//將時(shí)鐘線拉低并保持100us
    delay100us();
    PS2_SGN_DATA = 0;//起始位
    PS2_SGN_CLOCK = 1;//發(fā)送DATA0-7
    
    for( sentbit_cnt = 0; sentbit_cnt<8;sentbit_cnt++ )
    {
        while(PS2_SGN_CLOCK)
                _nop_();//等待時(shí)鐘線變?yōu)榈?br>        PS2_SGN_DATA = sentCHAR & 0x01;//發(fā)送數(shù)據(jù)
        
        if(PS2_SGN_DATA)
            sentCHAR_chk++;//計(jì)算校驗(yàn)
        while(!PS2_SGN_CLOCK)
            _nop_();//等待時(shí)鐘線變高
        
        sentCHAR >>= 1;//待發(fā)送數(shù)據(jù)右移一位
    }
//發(fā)送校驗(yàn)位    
    while(PS2_SGN_CLOCK)
        _nop_();//等待時(shí)鐘線變?yōu)榈?br>    
    SWITCH(sentCHAR_chk)
    {
        case  0:
        case  2:
        case  4:
        case  6: PS2_SGN_DATA = 1;break;//奇校驗(yàn)
        case  1:
        case  3:
        case  5:
        case  7: PS2_SGN_DATA = 0;break;//奇校驗(yàn)
        default: break;
    }

    while(!PS2_SGN_CLOCK)
        _nop_();//等待時(shí)鐘線變高
    while(PS2_SGN_CLOCK)
        _nop_();//等待時(shí)鐘線變?yōu)榈?br>
    PS2_SGN_DATA = 1; //發(fā)送停止位 停止位總為1
    
    while(!PS2_SGN_CLOCK)
        _nop_();//等待時(shí)鐘線變高
    while(PS2_SGN_CLOCK)
        _nop_();//等待時(shí)鐘線變?yōu)榈?br>//接收ACK
      if(PS2_SGN_DATA)
        error();
//  ACK信號由鍵盤發(fā)出,總為低電平
    while(!PS2_SGN_CLOCK)
        _nop_();//等待時(shí)鐘線變高
    
    EX0 = 1; //開外部中斷0
}


//單片機(jī)從PS/2鍵盤接收數(shù)據(jù)程序:外部中斷0設(shè)置為下降沿觸發(fā)
void int0() interrupt 0 using 0
{
    EX0=0;//關(guān)外部中斷0
    
    SWITCH( ps2_revCHAR_cnt )
    {
        case 1:        //ps2主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù)
         case 2:
        case 3:
        case 4:
        case 5:
        case 6:
        case 7:
        case 8:
                mcu_revCHAR<<=1;
                if(PS2_SGN_DATA)
                    mcu_revCHAR |= 0x01;
                ps2_revCHAR_cnt++;
                break;
        case 0: ps2_revCHAR_cnt++;break;//開始位,
        case 9: ps2_revCHAR_cnt++;break;//校驗(yàn)位,可添加校驗(yàn)程序
        case 10:
                 _nop_();//停止位
                ps2_revCHAR_cnt=0;
                   revCHAR_flag=1;//置接收到數(shù)據(jù)標(biāo)志位
                break;
          default:break;
    }
    EX0=1;//開外部中斷0
}



2樓: >>參與討論
net_walker
re
建議:
1.卸載重裝試試。
2.模塊化調(diào)試。

3樓: >>參與討論
enbed
zheyang :
//校驗(yàn)位,可添加校驗(yàn)程序

UV3對用這個(gè)的://
支持不好,換成/**/或用UV2。
偶也遇到過的,不想改,就UV2了。

4樓: >>參與討論
hiberhe
以前的kei uv3遇到一個(gè)類似的問題
也是跟程序中的注釋有關(guān)的

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
Keil 在編譯時(shí)為什么要訪問并口??
急:。C6122的接收部分如何去掉38KHz的載波?
我的MSP430F168就是聯(lián)不上方針器,好郁悶!
從0開始學(xué)
Keil生成的目標(biāo)代碼文件大小問題
免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號