本帖最后由 終焉 于 2021-1-5 18:37 編輯
利用單片機、定時器、串行口、1個按鍵和3位數碼管,構建單片機和電腦通訊系統,要求: (1)每1秒數碼管顯示值加1,數碼管顯示方式不限,共陰共陽不限; (2)按下按鍵,將當前顯示值在虛擬終端上顯示; (3)從電腦鍵盤輸入新顯示值,單片機接收到后,從此值基礎上進行顯示值的累進(如當前數碼管顯示5,按下電腦鍵盤8,則顯示更新為從8顯示)。
輸入234然后回車完成輸入操作。 輸出是通過按鈕(外部中斷0下降沿觸發實現的) 定時可能不準,串行口是晶振為11.0592MHz,一開始寫定時部分程序是用的12MHz計算的,需要自己把那部分的TH0和TL0的值改一下
我設置了刪除操作,就懶的設置輸入超過999會有警報或者鎖定前三位之類的操作
有需要其他相關操作的可以在代碼79行(定時器T0中斷程序部分修改)比如改成
if(second>=999)
{
// TR0=0;
second=0;
TR0=1;
}
超過999就直接從0開始計時
還設置了只有數字輸入有效,字母或者其他的是字符輸入不反應
當計時超過999,我這邊設置的是關閉定時器T0,顯示0。(修改辦法同上)
|