闹钟Android实验报告,单片机实验报告(闹钟).doc

单片机实验(闹钟部分修改版)

注:第一个是利用延时程序做的定时,循环太多定时不够精确;这一个用的是出栈和入栈的算法进行的定时,可以增加定时的精度。

程序目的说明:这是一个闹钟程序,当按下K1的时候,开始计时(说明:为了方便观察,我以10s中作为基本定时进行演示,如果需要其他定时可以通过修改部分程序得到),时间达到后,7段显示器和LED灯同时闪烁,若序号归零,则按下K2计时则停止。然后再按下K1计时又从新开始,以此类推。

电路图:

因为P0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。排阻就是好多电阻连载一起,他们有一个公共端.

因为P0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。排阻就是好多电阻连载一起,他们有一个公共端.由于是上拉电阻,所以1接VCC。

LED6位七段码显示灯,从左到往右两位一组,分别显示HOUR, MINUTE,SECOND.

K1开关和P1.1口相连,K2和P2.2口相连,分别用于控制计时的开启和关闭LED灯,计时到达的时候LED灯闪烁,计时t停止时LED灯熄灭。晶振电路,帮助减小计时过程中产生的误差。

K1开关和P1.1口相连,K2和P2.2口相连,分别用于控制计时的开启和关闭

LED灯,计时到达的时候LED灯闪烁,计时t停止时LED灯熄灭。

晶振电路,帮助减小计时过程中产生的误差。

程序段:

程序说明:1.直接将开关定义为各个接口,可以方便之后程序中利用各个开光的状态进行跳转。2.利用了计数/定时器0作为外部中断,当中断产生,自动跳入计时状态;

程序说明:1.直接将开关定义为各个接口,可以方便之后程序中利用各个开光的状态进行跳转。

2.利用了计数/定时器0作为外部中断,当中断产生,自动跳入计时状态;

6.主程序中要调用闹钟程序timebear检测设定时间是否到达和显示时间的子程序display1.5.此段定义的是BCD码得时间,为了可以在七段显示器上面显示4.此段定义的是需要计时(亮灯)的时间,我设定的10s亮灯,所以s为0ah,其他的均为00h3.此段定义的是而二进制的时间存储单元。

6.主程序中要调用闹钟程序timebear检测设定时间是否到达和显示时间的子程序display1.

5.此段定义的是BCD码得时间,为了可以在七段显示器上面显示

4.此段定义的是需要计时(亮灯)的时间,我设定的10s亮灯,所以s为0ah,其他的均为00h

3.此段定义的是而二进制的时间存储单元。

8.timecome程序段主要控制P3.7口,时间达到的时候,使LED灯和7短码显示器点亮并闪烁,如果要不要灯和七段码显示器闪烁则删除:mov r7,#250t2:mov r6,#124t3:djnz r6,t3djnz r7,t2

8.timecome程序段主要控制P3.7口,时间达到的时候,使LED灯和7短码显示器点亮并闪烁,如果要不要灯和七段码显示器闪烁则删除:

mov r7,#250

t2:mov r6,#124

t3:djnz r6,t3

djnz r7,t2

setb p3.7

这一段程序即可,这一段相当于机器周期,是灯的闪亮延时,就出现了闪烁的状态。

7.timebear程序段用于检测闹铃设定的时间是否达到,依次从second(s),minute(m),hour(h)检测,出现不匹配的就不再向下执行,若时间匹配就跳转至timecome。

9.time 为计算时间的子程序,用的是出栈入站的方式,基本定时是按为5ms,然后循环.从second开始定时,超过60m就归零,minute加1,没有超过60s,就继续向上加;minute,hour都是这样的原理,需要注意的是,因为要出栈入栈,所以需要吧累加器和psw

9.time 为计算时间的子程序,用的是出栈入站的方式,基本定时是按为5ms,然后循环.

从second开始定时,超过60m就归零,minute加1,没有超过60s,就继续向上加;minute,hour都是这样的原理,需要注意的是,因为要出栈入栈,所以需要吧累加器和psw中的值入栈保护。

10.这个是用于判断K2开关是否按下:当K2开关按下的时候,跳入y1程序段,使7段显示器所显示的时间归零,并且使LED灯熄灭。

10.这个是用于判断K2开关是否按下:当K2开关按下的时候,跳入y1程序段,使7段显示器所显示的时间归零,并且使LED灯熄灭。

11.display为时间显示子程序,主要用于实现将二进制的时间转化为BCD码显示的时间,方便在七段显示器上显示。本质就是利用程序末尾列出的转换表进行转换

11.display为时间显示子程序,主要用于实现将二进制的时间转化为BCD码显示的时间,方便在七段显示器上显示。本质就是利用程序末尾列出的转换表进行转换

七段码转换表

单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。这正符合了现代时钟的设计要求。数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字时钟及扩大其应用,有着非常现实的意义。因此本论文所做的数字时钟采用了以单片机(STC89C51)为核心,结合相关的外围元器件例如液晶显示、按键电路、复位电路、闹钟电路,再配以相应的软件,达到制作简易数字钟的目的,能实现实时时钟显示的功能,能进行年、月、日、时、分、秒和实时温度的显示,并且通过蓝牙模块实现两台单片机的通信功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值