標(biāo)題: 利用單片機(jī)、定時(shí)器、串行口、1個(gè)按鍵和3位數(shù)碼管,構(gòu)建單片機(jī)和電腦通訊系統(tǒng) [打印本頁]

作者: 終焉    時(shí)間: 2021-1-5 18:14
標(biāo)題: 利用單片機(jī)、定時(shí)器、串行口、1個(gè)按鍵和3位數(shù)碼管,構(gòu)建單片機(jī)和電腦通訊系統(tǒng)
本帖最后由 終焉 于 2021-1-5 18:37 編輯

利用單片機(jī)、定時(shí)器、串行口、1個(gè)按鍵和3位數(shù)碼管,構(gòu)建單片機(jī)和電腦通訊系統(tǒng),要求:
1)每1秒數(shù)碼管顯示值加1,數(shù)碼管顯示方式不限,共陰共陽不限;
2)按下按鍵,將當(dāng)前顯示值在虛擬終端上顯示;
3)從電腦鍵盤輸入新顯示值,單片機(jī)接收到后,從此值基礎(chǔ)上進(jìn)行顯示值的累進(jìn)(如當(dāng)前數(shù)碼管顯示5,按下電腦鍵盤8,則顯示更新為從8顯示)。

輸入234然后回車完成輸入操作。
輸出是通過按鈕(外部中斷0下降沿觸發(fā)實(shí)現(xiàn)的)
定時(shí)可能不準(zhǔn),串行口是晶振為11.0592MHz,一開始寫定時(shí)部分程序是用的12MHz計(jì)算的,需要自己把那部分的TH0和TL0的值改一下
我設(shè)置了刪除操作,就懶的設(shè)置輸入超過999會(huì)有警報(bào)或者鎖定前三位之類的操作
有需要其他相關(guān)操作的可以在代碼79行(定時(shí)器T0中斷程序部分修改)比如改成
    if(second>=999)
    {
//        TR0=0;
        second=0;
        TR0=1;
    }
超過999就直接從0開始計(jì)時(shí)

還設(shè)置了只有數(shù)字輸入有效,字母或者其他的是字符輸入不反應(yīng)
當(dāng)計(jì)時(shí)超過999,我這邊設(shè)置的是關(guān)閉定時(shí)器T0,顯示0。(修改辦法同上)


F3]_ILK`A7}E0)AE_F18NRL.png (54.03 KB, 下載次數(shù): 81)

仿真圖

仿真圖

A09.zip

123.42 KB, 下載次數(shù): 8, 下載積分: 黑幣 -5

程序和仿真






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1