1电位器当做外部按键处理即可,估计你的段值不会太多,在定时器或者主程序中扫描读取按键值。
2编写函数来实现按键值和对应定时器的初始值相互转换,如果你这个东西精度要求不高的话,可以采用定时器10毫秒一个中断产生系统的节拍,处理起来比较方便。
3复位根据要求连接一个IO口控制即可。
4设定参数保存在EEPROM中,要求不是很严格的场合可以用国产的51单片机。
5数码管用595驱动。
题外话,如果不是要求非常精确的响应时间(微秒级),个人建议你用C来写,开发方便快捷很多。
void display(uchar i)
这个显示函数定义的形参是8位的,uchar i ,这最大数是255,如果要显示大于255的数就是错误的。要改成
void display(uint i) ,这样,形参是16位的,最大是65536,就可以大于255了,但是不能大于999,大于999,那显示时计算的百位 bai = i/100;
就会超出9,显示也会出错。
你可以让你不想显示的那个数码管直接熄灭就可以了,就是扫描的时候让第一个输出不显示任何段。或者是在走量韩若里面,把位控端的控制给去除就可以。
也可以硬件上修改,比如说,可以把这个数码管去掉,或者是把数码管的位控端断开。
while(!s2)在这的功能是按键2的松手检测,判断按键2是否松开,如果松开再执行下一步功能,不然一直在while中循环。
不过你这程序错误一大堆啊,你想实现按键按下暂停计数的功能吧,但照你着程序按键一松开他又马上开始计数啦,要一直按着才能实现暂停功能,当然你如果换成开关这样写也是可以的,开关关上暂停计数,打开继续计数。
还有一个就是你的其他按键不能都用while(!s2),每个按键都要对应啊,如你判断按键1是否松开就要用while(!s1)。
以上就是关于请教51汇编可以设定计数器例子:要求三位数码管显示0-999,数码电位器设定值,数码管显示设定值,全部的内容,包括:请教51汇编可以设定计数器例子:要求三位数码管显示0-999,数码电位器设定值,数码管显示设定值,、单片机数码管显示!!!!!!、(数字电路综合实验)如果已有3位数码管动态显示电路,想改为只显示2位数字,可以有哪些方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)