版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子时钟设计一、实验目的学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。二、设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1在4位数码管上显示当前时间,显示格式为“时时分分” ;2由LED闪动做秒显示;3利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。三、 工作原理及设计思路利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。为了将时间在
2、LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。闹铃声由交流蜂鸣器产生,电路如右图,当P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。四、硬件电路设计及描述由于扩展了外部存储器, 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.
3、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,从而输入高低电平。将S2 S1 定义为功能模式选择开关;S3
4、 定义为分钟数调整开关;S4 定义为小时数调整开关。当S2 S1=00时,显示当前时间,不进行任何操作。当S2 S1=01时, 显示当前时间,同时可进行时钟调整,若S3=1,分钟数持续加1,若S4=1,小时数持续加1。当S2 S1=10时,显示闹钟时间,同时可进行闹钟调整,若S3=1,分钟数持续加1,若S4=1,小时数持续加1。当S2 S1=11 时,显示当前时间,同时关闭闹钟。音节由不同频率的方波产生,音节与频率的关系如表1所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复
5、计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。在ZKS-03实验仪上,产生方波的I/O脚选用P1.7,通过跳线选择器JP1将单片机的P1.7与蜂鸣器的驱动电路相连。这样P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。只要设定延时时间,就可求得节拍的时间。延时作为基本延时时间,节拍值只能是它的整数倍,每个音节相应的定时器初值X可按下法计算: (1/2)*(1/f)=(12/fose)*(216-x)即 x=216-(fose/24f)其中f:音调频率,当晶振fose=11.0592MHz时,音节“1”
6、相应的定时器初值为x,则可得x=63777D=F921H 其它的可同样求得。在单片机上控制一个音符唱多长可采用循环延时的方法来实现。首先,我们确定一个基本时长的延时程序,比如说以十六分音符的时长为基本延时时间,那么,对于一个音符,如果它为十六分音符,则只需调用一次延时程序,如果它为八分音符,则只需调用二次延时程序,如果它为四分音符,则只需调用四次延时程序,依次类推。 通过上面关于一个音符音调和节拍的确定方法,我们就可以在单片机上实现演奏音乐了。具体的实现方法为:将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放
7、该音符,该音符唱完后,接着取出下一个音符的相关参数,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为00H来表示。 五、软件设计流程及描述开始中断返回秒数满60?5ms中断次数满200?5ms中断次数加1分钟数清零,小时数加1秒数清零,分钟数加1小时数清零5ms中断次数清零,秒数加1,LED闪动一下分钟数满60? 小时数满24?时钟走时中断服务程序六、源程序代码及注释注:首先将单片机用到的主要寄存器做下说明(如下);P1.2 作秒的闪烁控制位;P1.7
8、 作响铃控制电平;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、S1S2BITP3.3S3BITP3.4;定义时调整
9、键S4,分调整键S3S4BITP3.5SDABITP1.0CLKBITP1.1ORG 0000HAJMPMAINORG 000BH;T0的中断服务程序的入口地址AJMPTIMER;跳转到时钟走时中断服务程序ORG 001BH ;T1的中断服务程序的入口地址AJMPALARM_OPEN ;跳转到闹钟响铃中断服务程序ORG 0030HMAIN:MOV 40H,#00 ;显示的分MOV 41H,#00 ;显示的时MOV 42H,#58 ;闹钟的分MOV 43H,#23 ;闹钟的时 MOV R0,#00H ;寄存器清零(RO为计数5ms的次数,R1为秒数, MOV R1,#00H;R2为分钟数,R3为
10、时钟数) MOV R2,#00H MOV R3,#00HMOV TMOD,#11H ;设置T0,T1处于工作方式1MOV TH0,#0EEH ;设置定时器的初值 MOV TL0,#00HSETB EA;允许总中断SETBET0 ;允许T0,T1中断 SETB ET1 SETB TR0 ;启动T0LOOP:LCALL DISPLAY1 ;调用显示程序 LCALL ALARM;调用闹铃程序 LCALL MODE ;调用模式判断程序 AJMP LOOP;* 时钟显示部分 *DISPLAY1:MOV DPTR,#TAB1 MOV A,41H MOV B,#10 DIV AB LCALL DISP1 C
11、LR P1.6;LED1数码管显示数码,即小时的高位 LCALL DELAY SETB P1.6 JB P1.2,TD;控制LED2数码管的小数点"dp"闪烁AJMP TD1TD:MOV A,B AJMP TD2TD1:MOV A,B ADD A,#10TD2:LCALL DISP1;LED2数码管显示数码,即小时的低位 CLR P1.5 LCALL DELAY SETB P1.5 MOV A,40H MOV B,#10 DIV AB LCALL DISP1 CLR P1.4;LED3数码管显示数码,即分钟的高位 LCALL DELAY SETB P1.4 MOV A,B
12、LCALL DISP1 CLR P1.3;LED4数码管显示数码,即分钟的低位 LCALL DELAY SETB P1.3 RETDISP1:MOVC A,A+DPTR;LED串并转换口从P1.0接收一个8位数码管显示字形数据 MOV R4,#08H;R4记作左循环的次数DUP1:RLC A;A带进位左循环移位 MOV SDA,C CLR CLK;上升沿触发数据接收 SETB CLK DJNZ R4,DUP1 RET;* 闹钟显示部分 *DISPLAY2:MOV DPTR,#TAB1MOVA,43HMOV B,#10DIV ABLCALL DISP2CLR P1.6;LED1数码管显示数码,即
13、小时的高位LCALL DELAYSETB P1.6MOV A,BLCALL DISP2CLR P1.5;LED2数码管显示数码,即小时的低位LCALL DELAYSETB P1.5MOV A,42HMOV B,#10DIV ABLCALL DISP2CLR P1.4;LED3数码管显示数码,即分钟的高位LCALL DELAYSETB P1.4MOV A,BLCALL DISP2CLR P1.3;LED4数码管显示数码,即分钟的低位LCALL DELAYSETB P1.3RETDISP2:MOVC A,A+DPTR;LED串并转换口从P1.0接收一个8位数码管显示字形数据MOV R4,#08H;
14、R4记作左循环的次数DUP2:RLC A;A带进位左循环移位MOV SDA,CCLR CLK;上升沿触发数据接收SETB CLKDJNZ R4,DUP2RET;* 判断闹钟时间是否到来 *ALARM:MOV A,40HCJNE A,#00H,MUSIC;整点闹铃LJMPB2MUSIC:MOV A,43H CJNE A,41H,B1 MOV A,42H CJNE A,40H,B1;音乐闹铃SETBP1.7MOV 70H,#00HNEXT: MOV A,70H MOV DPTR,#TABLE;从TABLE中读取数据声响时间 MOVC A,A+DPTR MOV R4,A;将TABLE中读取的数据存放
15、在R4 JZ END0 ANL A,#0FH MOV R5,A;R5作为节拍长度 MOV A,R4 SWAP A ANL A,#0FH JNZ SING CLR TR1 JMP D1SING: DEC A MOV 62H,A RL A MOV DPTR,#TABLE1;从TABLE1中读取数据声调 MOVC A,A+DPTR MOV TH1,A;设定TH1值 MOV 61H,A MOV A,62H RL A INC A MOVC A,A+DPTR MOV TL1,A;设定TL1值 MOV 60H,A MOV TH1,61H MOV TL1,60H SETB TR1D1: ACALL DELAY
16、0;声音延时 INC 70H JMP NEXTEND0: CLR TR1 JMP MUSICDELAY0: MOV R7,#2;R5的值就是声响持续时间D2: MOV R6,#214D3: MOV R4,#245 DJNZ R4,$ DJNZ R6,D3 DJNZ R7,D2 DJNZ R5,DELAY0 RETB1:CLR TR1 RETB2: MOV 61H,#0FEH MOV 60H,#033HMOVTH1,61HMOVTL1,60H ;方波频率设为1KHzSETB TR1;* 闹钟响铃中断服务程序 * ALARM_OPEN:PUSH ACC PUSH PSW MOV TH1,61H M
17、OV TL1,60H CPL P1.7 POP PSW POP ACC RETI;* 时钟走时中断服务程序 *TIMER:MOV TH0,#0ECH;重新对T0赋值,设置中断时间为5ms MOV TL0,#78H MOV 40H,R2 MOV 41H,R3 INC R0;计数5ms的次数加1 CJNE R0,#200,BACK;不够200次,跳转到BACK CPL P1.2;够200次,P1.2翻转控制LED闪动一下 MOV R0,#00H;计数5ms的次数清0,秒数加1 INC R1 CJNE R1,#60,BACK;不够60秒,跳转到BACK MOV R1,#00H;够60秒,秒数清0,分
18、钟加1 INC R2 CJNE R2,#60,BACK;够60分钟,跳转到BACK MOV R2,#00H;够60分钟,分钟数清0,小时数加1 INC R3 CJNE R3,#24,BACK;够24小时,跳转到BACK MOVR3,#00H;够24小时,小时数清0BACK:RETI;* 按键判断部分 *MODE:MOV A,P3;软件消抖后再判断 LCALL DELAY CJNE A,P3,MODE ANL A,#0CH;对S2、S1的值判断 CJNE A,#00H,LOP1 AJMP T_BACK;模式为00,开T1中断LOP1:CJNE A,#04H,LOP2 AJMP T_CHANGE;
19、模式为01,进行时间调整LOP2:CJNE A,#08H,LOP3 AJMP A_CHANGE;模式为10,进行闹铃调整LOP3:AJMP A_CLOSE;模式为11,关闭闹钟;. 时钟调整 .T_CHANGE:LCALL DISPLAY1 LCALL DELAY1 JNB S3,T_HOUR;S3为0,判断S4T_MIN:MOV R5,40HINC R5;S3为1,分钟数加1CJNE R5,#60,LOP4MOV R5,#00HLOP4:MOV 40H,R5 MOV R2,40H AJMPMODET_HOUR:JNB S4,MODE;S4为0,跳转到MODE MOV R5,41H INC R
20、5;S4为,小时数加1 CJNE R5,#24,LOP5 MOV R5,#00HLOP5:MOV 41H,R5 MOV R3,41H AJMP MODE;. 闹铃调整 .A_CHANGE:LCALL DISPLAY2 LCALL DELAY2 JNB S3,A_HOUR;S3为0,判断S4A_MIN:MOV R5,42H INC R5;S3为1,分钟数加1 CJNE R5,#60,LOP6 MOV R5,#00HLOP6:MOV 42H,R5 AJMPMODEA_HOUR:JNB S4,MODE;S4为0,跳转到MODE MOV R5,43H INC R5;S4为1,小时数加1 CJNE R5
21、,#24,LOP7 MOV R5,#00HLOP7:MOV 43H,R5 AJMP MODE;. 返回 .T_BACK:SETB ET1;开T1中断 RETA_CLOSE:CLR ET1;关T1中断 RET;* 延时程序 *DELAY:MOV 63H,#5H;约2.78msD5:MOV 64H,#0FFH DJNZ 64H,$ DJNZ 63H,D5 RET;* 延时程序1 *DELAY1:MOV R7,#50HD6:LCALL DISPLAY1 DJNZ R7,D6 RET;* 延时程序2 *DELAY2:MOV R7,#50HD7:LCALL DISPLAY2 DJNZ R7,D7 RET
22、;* 数码管显示的字形表 *TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;数字09,不带小数点"dp" DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H;数字09,带小数点"dp"* 音乐的节拍表 *TABLE: DB 82H,01H,81H,94H,84H,0B4H,0A4H,04H DB 82H,01H,81H,94H,84H,0C4H,0B4H,04H DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H DB 0E2H,01H,
23、0E1H,0D4H,0B4H,0C4H,0B4H,04H DB 82H,01H,81H,94H,84H,0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H DB 82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94H DB 0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04H DB 00H;* 由音乐音符设置的T1计数值 *TABLE1:DW 64260,64440,64524,64580,64684,64777,64820,64898;音符计数值 DW 64968,65030,65058,6511
24、0,65157,65178,65217END七、实验过程将P1.0、P1.1、P1.3、P1.4、P1.5、P1.6、P3.0、P3.1的跳线接相应的A位,P1.7的跳线接相应的C位,拔掉其它不用的跳线。插好电源,插好通信线,打开实验仪电源开关,在实验上将工作模式开关SX拨到“LOAD”一档,按下复位开头RESET,然后启动DPFlash,单击“编程”,在弹出的窗口中选中“编程MON51”,再按“确定”,就将程序下载到单片机的Flash中。关闭DPFlash,启动Keil,新建一个工程,然后选择芯片(PhilipsP80/P87C52X2)。编写汇编语言程序,保存并添加至工程中,然后进行编译。将实验台上的工作模式开关SX拨到“MON”位置,按下RESET复位开关,设置S0、S1、S3和S4的状态,再运行程序,拨动S0、S1、S3和S4对应的开头,检查电子时钟功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度房产抵押贷款及装修资金管理合同3篇
- 2024年机关单位车辆停放协议6篇
- 2024年智能家居系统研发与推广合同
- 2024年新版个人透支合同2篇
- 手机店出兑合同范例
- 2024年游泳馆运营管理合同3篇
- 2024年某电影发行公司与某外语片引进公司之间的发行代理合同
- 2024年智能制造技术转让合同
- 水电清包工合同范例
- 2024年木工装饰材料采购与销售代理承包合同3篇
- 动画制作员职业技能大赛考试题库(浓缩500题)
- 房屋租赁合同
- 湖北省十一校2024-2025学年高三上学期第一次联考物理试卷 含解析
- 初一《皇帝的新装》课本剧剧本
- 知识创业思维与方法智慧树知到答案2024年湖南师范大学
- (高清版)TDT 1068-2022 国土空间生态保护修复工程实施方案编制规程
- 2023年春季国开《学前教育科研方法》期末大作业(参考答案)
- GB/T 3452.1-2005液压气动用O形橡胶密封圈第1部分:尺寸系列及公差
- 《土地估价》实验指导书(新大纲)
- 员工领用手机协议
- 高低压开关柜配电箱安装工程施工方案
评论
0/150
提交评论