單片機(jī)實(shí)現(xiàn)數(shù)字化B超鍵盤設(shè)計(jì)
4 軟件設(shè)計(jì)
4.1 主程序設(shè)計(jì)
軟件設(shè)計(jì)部分的主程序流程如圖3所示。本文引用地址:http://butianyuan.cn/article/172890.htm
主程序完成初始化后,進(jìn)人命令查詢處理,不斷查詢有沒有來自計(jì)算機(jī)的命令,有則應(yīng)答并處理,接著檢查鍵掃標(biāo)志,有鍵掃標(biāo)志(即=1)則進(jìn)行鍵盤處理,否則繼續(xù)查詢命令。
鍵盤處理流程如下:在實(shí)時狀態(tài),對TGC電位器進(jìn)行AD采樣,并與上一次結(jié)果比較,有變化則發(fā)送給計(jì)算機(jī),凍結(jié)狀態(tài)跳過TGC處理;接著判斷掃描編碼器旋轉(zhuǎn)標(biāo)志位,有則以鍵碼形式發(fā)送給主機(jī);然后掃描鍵盤陣列,有鍵按下或釋放,則以查表方式取得掃描碼,并發(fā)給計(jì)算機(jī)。
鍵盤掃描采用定時器0中斷方式,晶體頻率為24 MHz按方式1工作,最大定時時間為32.768ms,定時器中實(shí)現(xiàn)計(jì)數(shù)3次,可定時98.3ms,以此作鍵盤處理周期,定時間到則將鍵盤掃描標(biāo)志置為1。
4.2 外中斷程序設(shè)計(jì)
新增的2個中斷,其中斷信號由P4口輸入,中斷功能/狀態(tài)通過XICON寄存器控制,P4和XICON不是標(biāo)準(zhǔn)80C52的寄存器,需預(yù)先定義——在源文件頭上加入以下兩行:
P4 EQU 0D8H
XICON EQU 0C0H
中斷服務(wù)程序只完成置編碼器旋轉(zhuǎn)標(biāo)志位的處理,主程序中根據(jù)標(biāo)志位以按鍵鍵碼的形式發(fā)送信息。中斷服務(wù)程序源代碼如下:
評論