求助单片机汇编语言:在LED上实现时钟功能

来源:百度知道 编辑:UC知道 时间:2024/05/24 07:25:40
求哪位高人帮忙设计一个MCS-96系列单片机程序,最好用汇编语言,用其他语言说明一下设计思路也可以,谢谢了!
设计一个程序,在实验装置的LED显示器上实现时钟功能。
要求:
1.用显示器的6位分别显示小时(2位).分(2位).秒(2位)
2.初态显示00 00 00,当按下“1”键时,启动时钟工作并开始显示。
3.当按下“2”键时,显示“00 59 50”,计时依然继续进行,直到能显示小时。未涉及的键按下没有作用。

程序就不写了,因为每个人有每个人的写作风格,我给你的程序,你不一定能理解我的思路,拿一个现成的程序让你看,那最终不是你自己的,所以要让自己弄懂,就给你一个思路,你就把程序做出来,那才是自己的东西,这里就给你一个思路

把0……9的数码显示代码存在ROM里,用tab:db……(字型码)来存,做一段1秒的定时程序,在程序的初始化时要做几个计数器,分别对时分秒计数,先从秒开始,设初始值为10,然后是“分”60个,最后一个是“时”也是60,开中断,启动1秒定时器,一秒到了以后,把1的字型码发送到串行口,然后秒计数器减1,在启动1秒定时,到了后,把2字型码发送出去……直到减为0,个位进1,将秒的“十”位字型码发送到出去,分计数器从60开始减计数,这里要注意,定时器不能停,要一直的循环执行1秒定时,采用中断方式,分进位后,再对时计数器减计数,就象这样,不停的减计数,直至溢出后将相应的代码发送出去,基本思路就是这样,关键的就是几个计数器的控制,要主要完成了一个周期后,要重新赋值

理清思路就好办了,采用定时器的模式1方式,中断产生1S的信号。按下按键1的时候启动定时器,开始计时。没有计时的时候给显示缓冲区全部送0,就可以了就显示000000了。按下按键2是给缓冲区送入005950,要和时间缓冲区分开放置。

程序分成三个模块。第一是键盘输入模块,可采用矩阵式键盘扫描方式;第二个模块是显示模块,要驱动6个数码管,可使用74HC595进行串口扫描驱动,当然扫描频率要足够快;第三个模块就是计时模块,可使用单片机内部16位计时器进行计时,最大计时一次1S.三个模块搭建即可实现。分模块进行调试,最先应该调试显示模块,然后是在显示的基础上调试键盘,最后再调试定时,然后系统整合一齐调试。会的话也很简单。不会的话有得你搞!