电子时钟程序设计 单片机报告文档格式.docx
- 文档编号:15715211
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:21
- 大小:1.84MB
电子时钟程序设计 单片机报告文档格式.docx
《电子时钟程序设计 单片机报告文档格式.docx》由会员分享,可在线阅读,更多相关《电子时钟程序设计 单片机报告文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
图:
蜂鸣器电路
2:
硬件电路设计及描述
由于扩展了外部存储器,P0口只能作地址/数据总线,P2口只能作地址总线高8位,P3.7、P3.6作为外部数据存储器读写信号。
P3.0、P3.1作为串行输入、输出接口,在仿真模式下完成与PC机的通信,故也不可用。
实验仪上单片机可用作I/O的口仅有:
P1.0--P1.7,8位;
P3.2、P3.3、P3.4、P3.5,4位。
其中:
P1.0用作数据线SDA,P1.1用作时钟信号CLK,所以P1.0和P1.1应该接对应跳线的A位,即跳线的中间和下面相连。
P1.3、P1.4、P1.5和P1.6是四个数码管的位扫描线,其中P1.6对应数码管W1,显示小时高位;
P1.5对应数码管W2,显示小时低位;
P1.4对应数码管W3,显示分钟高位;
P1.3对应数码管W4,显示分钟低位。
P1.7连接蜂鸣器电路,输出不同频率的方波,使其发出不同的声音。
P1.2用来控制秒的闪烁显示。
故,P1.2也应该接对应跳线的A位。
其显示电路如下图:
P3.2、P3.3、P3.4、P3.5分别连接单刀双掷开关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。
当S2S1=11时,显示当前时间,同时关闭闹钟
五、主要模块设计流程及描述
1主模块设计概述
2时钟走时中断服务模块
模块设计描述:
1进行各端口配置、程序初始化、开定时器0中断及启动计数
2循环调用时钟显示、响铃判断、按键判断子程序
3在调用子程序时,若定时器T0计满产生中断,则开始执行时钟走时中断服务程序
4若响铃开关打开,且闹铃时间到来,定时器T1计满产生中断,则执行闹钟响铃中断服务程序
3显示模块
本实验使用的数码管为4位共阳数码管,LED的公共阳极接高电平,某个阴极接低电平时,相应的段被点亮显示,为显示不同的字形,显示器各字段所加的电平是不同的,编码也随之不同,7段显示器的字形与共阳极时编码的对应关系如下表
显示字符
段码
COH
7
F8H
1
F9H
8
80H
2
A4H
9
90H
3
B0H
A
88H
4
99H
B
83H
5
92H
无显示
FFH
6
82H
…
显示信号由P0.0—P0.7输出至74HC573锁存,位选信号由P2.0—P2.3输出,经过三极管接到数码管的位选端W1—W4。
以P0.3为例,当P0.3为低电平时,三极管Q5工作与饱和状态,基极饱和电流约为10mA,集电极为高电平,使选中的数码管点亮。
当P0.3为高电平时,三极管Q5工作于截止状态,所以集电极没有电压,相应的数码管灭。
每次只允许P0.3—P0.6中的一位为低电平,选中相应的数码管,由于扫描速度很快,人的视觉会有暂留效应,所以看到的数码管是都亮的。
4校时模块
校时模块主要是通过软件来实现的。
校时模块可以调整时间和闹钟,这些通过按键扫描电路来判断。
以闹铃校时为例,流程如下:
5计时模块
计时模块是通过定时器0来实现的。
定时器1每5ms中断一次,达到200次中断则达到1s时间。
计时模块流程图如下:
六、源程序代码及注释
注:
首先将单片机用到的主要寄存器做下说明(如下);
P1.2作秒的闪烁控制位;
P1.7作响铃控制电平;
P3.2、P3.3作模式选择键S2、S1;
P3.4作分调整键S3(分钟数+1);
P3.5作时调整键S4(小时数+1);
R0为计数5ms的次数;
R1为秒数;
R2为分钟数;
R3为时钟数;
R4在显示程序中作为向LED传递数据时的左移次数标志位;
R4在音乐闹铃程序中读取TABLE中的数据;
R5作为节拍长度;
40H作显示的分;
41H作显示的时;
42H作闹钟的分;
43H作闹钟的时;
63H、64H存放延时程序DELAY的延时数;
60H、61H作定时器T1的初值。
;
******************************主程序*******************************************
S1BITP3.2;
定义模式选择键S2、S1
S2BITP3.3
S3BITP3.4;
定义时调整键S4,分调整键S3
S4BITP3.5
SDABITP1.0
CLKBITP1.1
ORG0000H
AJMPMAIN
ORG000BH;
T0的中断服务程序的入口地址
AJMPTIMER;
跳转到时钟走时中断服务程序
ORG001BH;
T1的中断服务程序的入口地址
AJMPALARM_OPEN;
跳转到闹钟响铃中断服务程序
ORG0030H
MAIN:
MOV40H,#00;
显示的分
MOV41H,#00;
显示的时
MOV42H,#58;
闹钟的分
MOV43H,#23;
闹钟的时
MOVR0,#00H;
寄存器清零(RO为计数5ms的次数,R1为秒数,
MOVR1,#00H;
R2为分钟数,R3为时钟数)
MOVR2,#00H
MOVR3,#00H
MOVTMOD,#11H;
设置T0,T1处于工作方式1
MOVTH0,#0EEH;
设置定时器的初值
MOVTL0,#00H
SETBEA;
允许总中断
SETBET0;
允许T0,T1中断
SETBET1
SETBTR0;
启动T0
LOOP:
LCALLDISPLAY1;
调用显示程序
LCALLALARM;
调用闹铃程序
LCALLMODE;
调用模式判断程序
AJMPLOOP
************************************时钟显示部分*******************************
DISPLAY1:
MOVDPTR,#TAB1
MOVA,41H
MOVB,#10
DIVAB
LCALLDISP1
CLRP1.6;
LED1数码管显示数码,即小时的高位
LCALLDELAY
SETBP1.6
JBP1.2,TD;
控制LED2数码管的小数点"
dp"
闪烁
AJMPTD1
TD:
MOVA,B
AJMPTD2
TD1:
MOVA,B
ADDA,#10
TD2:
LCALLDISP1;
LED2数码管显示数码,即小时的低位
CLRP1.5
SETBP1.5
MOVA,40H
CLRP1.4;
LED3数码管显示数码,即分钟的高位
SETBP1.4
CLRP1.3;
LED4数码管显示数码,即分钟的低位
SETBP1.3
RET
DISP1:
MOVCA,@A+DPTR;
LED串并转换口从P1.0接收
MOVR4,#08H;
R4记作左循环的次数
DUP1:
RLCA;
A带进位左循环移位
MOVSDA,C
CLRCLK;
上升沿触发数据接收
SETBCLK
DJNZR4,DUP1
************************************闹钟显示部分*******************************
DISPLAY2:
MOVA,43H
MOVB,#10
DIVAB
LCALLDISP2
CLRP1.6;
LCALLDELAY
SETBP1.6
CLRP1.5;
SETBP1.5
MOVA,42H
CLRP1.4;
SETBP1.4
CLRP1.3;
SETBP1.3
RET
DISP2:
MOVR4,#08H;
DUP2:
MOVSDA,C
CLRCLK;
SETBCLK
DJNZR4,DUP2
********************************判断闹钟时间是否到来*************************
ALARM:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子时钟程序设计 单片机报告 电子 时钟 程序设计 单片机 报告