电子时钟实验报告电子时钟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子时钟实验报告
一、实验目的
学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。二、设计任务及要求
利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1.在4位数码管上显示当前时间,显示格式为“时时分分”;
2.由LED闪动做秒显示;
3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。
三、工作原理及设计思路
利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。
闹铃声由交流蜂鸣器产生,电路如右图,当输出不同频率的方波,蜂鸣器便会发出不同的声音。
四、电路设计及描述
(1)硬件连接部分:
在ZKS-03单片机综合实验仪上有四位共阳LED数码管,其标号分别为LED1~LED4。为了节省MCU的I/O口,采用串行接口方式,它仅占用系统2个I/O 口,即口和口,一个用作数据线SDA,另一个用作时钟信号线CLK,它们都通过
跳线选择器JP1相连。
由于采用共阳LED数码管,它的阴极分别通过限流电阻R20~R27连接到控制KD_0~KD_Q7。这样控制8个发光二极管,就需要8个I/O口。但由于单片机的I/O口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线SDA把数据移位到KD_0~KD_Q7端,这样仅需2根线就可以分别控制8个发光二极管的亮灭。而P0口只能作地址/数据总线,P2口只能作地址总线高8位,、作为串行输入、输出接口,实验仪上单片机可用作I/O的口仅有:,8位;、、、,4位。其中:用作数据线SDA,用作时钟信号CLK,所以和应该接对应跳线的A位,即跳线的中间和下面相连。、、和是四个数码管的位扫描线,其中对应数码管W1,显示小时高位;对应数码管W2,显示小时低位;对应数码管W3,显示分钟高位;对应数码管W4,显示分钟低位。连接蜂鸣器电路,输出不同频率的方波,使其发出不同的声音。用来控制秒的闪烁显示。
故,也应该接对应跳线的A位。
其显示电路如下图所示:
、、、分别连接单刀双掷开关S1、S2、S3、S4,从而输入高低电平。将S2S1定义为功能模式选择开关;S3定义为分钟数调整开关;S4定义为小时数调整开关。
当S2S1=00时,显示当前时间,不进行任何操作。
当S2S1=01时,显示当前时间,同时可进行时钟调整,若S3=1,分钟数持续加1,若S4=1,小时数持续加1。
当S2S1=10时,显示闹钟时间,同时可进行闹钟调整,若S3=1,分钟数持续加1,若S4=1,小时数持续加1。
7段显示器的字形与共阳极时编码的对应关系如下表:
(2)音节设置原理:
由不同频率的方波产生,音节与频率的关系如表1所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。
利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。在ZKS-03实验仪上,产生方波的I/O脚选用,通过跳线选择器JP1将单片机的与蜂鸣器的驱动电路相连。这样输出不同频率的方波,蜂鸣器便会发出不同的声音。另外,音乐的节拍是由延时实现的,如果1拍为秒,1/4拍是秒。只要设定延时时间,就可求得节拍的时间。延时作为基本延时时间,节拍值只能是它的整数倍,
每个音节相应的定时器初值X可按下法计算:
(1/2)*(1/f)=(12/fose)*(216-x)即x=216-(fose/24f)
其中f:音调频率,当晶振fose=时,音节“1”相应的定时器初值为x,则可得x=63777D=F921H其它的可同样求得。在单片机上控制一个音符唱多长可采用循
环延时的方法来实现。将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数……,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。
(3)实验流程图:
闹钟模块:
计数模块:
五、源程序代码及注释
注:首先将单片机用到的主要寄存器做下说明(如下);作秒的闪烁控制位;
作响铃控制电平;
、作模式选择键S2、S1;
作分调整键S3(分钟数+1);
R0为计数5ms的次数;R1为秒数;R2为分钟数;R3为时钟数;
R4在显示程序中作为向LED传递数据时的左移次数标志位;
R4在音乐闹铃程序中读取TABLE中的数据;
R5作为节拍长度;
40H作显示的分;41H作显示的时;42H作闹钟的分;43H作闹钟的时;
63H、64H存放延时程序DELAY的延时数;
60H、61H作定时器T1的初值。
;******************************主程序*****************************************
S1 BIT ;定义模式选择键S2、S1
S2 BIT
S3 BIT ;定义时调整键S4,分调整键S3
S4 BIT
SDA BIT
CLK BIT
ORG0000H
AJMP MAIN
ORG 000BH ;T0的中断服务程序的入口地址
AJMP TIMER ;跳转到时钟走时中断服务程序
ORG 001BH ;T1的中断服务程序的入口地址
AJMP ALARM_OPEN ;跳转到闹钟响铃中断服务程序
ORG0030H