本帖最后由 終焉 于 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。(修改辦法同上)
|