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