如图,单片机大神来看看我还想问问具体思路,谢谢
2个回答
展开全部
不同的单片机,其时序不同,因此一秒的间隔要用不同的代码去实现.
根据单片机使用的晶振来算出主频,然后写出相应的delay函数.这个是最基本的.
然后就是循环检查按键信号,做相应的动作.
显示数值这里要做转换,数码管每一位是是由7个二极管(加上小数点就是8个)构成,使用一个字节来控制的,比如0x06显示的就是1,这要做一个对照表.
要显示什么数字,将它对应的8个位向数码管相应的IO口写入就是了.
几个按键的动作就是一个简单的分支语句,也就是读相应键盘IO的值来判断.
主要就是搞清楚各部分的代码运行需要多少个时钟周期,然后delay后让各分支用时一致,并且是1秒的整分数(比如1/2秒,1/5秒,1/10秒之类),整秒就重新从DS12C887读时间.
至于最开始的写入时间,因为这个芯片有两种工作模式,你也得自己弄,区别不大,都是通过15脚的电平来决定是读还是写.
根据单片机使用的晶振来算出主频,然后写出相应的delay函数.这个是最基本的.
然后就是循环检查按键信号,做相应的动作.
显示数值这里要做转换,数码管每一位是是由7个二极管(加上小数点就是8个)构成,使用一个字节来控制的,比如0x06显示的就是1,这要做一个对照表.
要显示什么数字,将它对应的8个位向数码管相应的IO口写入就是了.
几个按键的动作就是一个简单的分支语句,也就是读相应键盘IO的值来判断.
主要就是搞清楚各部分的代码运行需要多少个时钟周期,然后delay后让各分支用时一致,并且是1秒的整分数(比如1/2秒,1/5秒,1/10秒之类),整秒就重新从DS12C887读时间.
至于最开始的写入时间,因为这个芯片有两种工作模式,你也得自己弄,区别不大,都是通过15脚的电平来决定是读还是写.
追问
你好,还想问你点问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询