




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子时钟实验报告一、实验目的学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。二、设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1在 4 位数码管上显示当前时间,显示格式为“时时分分”;2.由LED闪动做秒显示;3利用按键可对时间及闹玲进行设置,并可显示闹玲时间。当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。三、工作原理及设计思路利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200 次时,则表示1s 到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。为
2、了将时间在 LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现 LED显示。闹铃声由交流蜂鸣器产生,电路如右图,当P1.7 输出不同频率的方波,蜂鸣器便会发出不同的声音。四、电路设计及描述(1) 硬件连接部分:在 ZKS-03 单片机综合实验仪上有四位共阳 LED 数码管,其标号分别为LED1LED4为了节省MCU勺I/O 口,采用串行接口方式,它仅占用系统2个I/O口,即P1.0 口和P1.1 口,一个用作数据线 SDA另一个用作时钟信号线 CLK它们都通过跳线选择器JP1 相连。由于采用共阳LED数码管,它的阴极分别通过限流电阻
3、R20R27连接至时空制 KD_0KD_Q7这样控制8个发光二极管,就需要 8个I/O 口。但由于单片机的 I/O 口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线 SD用巴数据移位到KD_0KD_Q端,这本¥仅需2根线就可以分别控制8 个发光二极管的亮灭。而P0 口只能作地址/数据总线,P2 口只能作地址总线高8位,P3.0、P3.1作为串行输入、输出接口,实验仪上单片机可用作I/O 的口仅有:P1.0-P1.7 , 8 位;P3.2、 P3.3、 P3.4、 P3.5
4、, 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
5、、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时,显示当前时间,同时关闭闹钟。7段显示器的字形与共阳极时编码的对应关系如下表:显示字符段码显示字符段码0COH7F8H1F9H880H2A4H990H3BOHA88H499HB
6、83H592H无显示FFH682H(2)音节设置原理:由不同频率的方波产生,音节与频率的关系如表1所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。在ZKS-03实验仪上,产生方波的I/O脚选用P1.7,通过跳线选择器 JP1将单片机的P1.7与蜂鸣器的驱动电路相连。这样 P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。只要设定延时时间
7、,就可求得节拍的时间。延时作为基本延时时间,节拍值只能是它的整数倍,每个音节相应的定时器初值 X可按下法计算:( 1/2 ) *(1/f)=(12/fose)*(216-x) 即 x=216-(fose/24f)其中 f: 音调频率,当晶振fose=11.0592MHz 时,音节“1”相应的定时器初值为x,则可得x=63777D=F921H其它的可同样求得。在单片机上控制一个音符唱多长可采用循环延时的方法来实现。将乐谱中的每个音符的音调及节拍变换成相应的音调参数和节拍参数,将他们做成数据表格,存放在存储器中,通过程序取出一个音符的相关参数,播放该音符,该音符唱完后,接着取出下一个音符的相关参数
8、,如此直到播放完毕最后一个音符,根据需要也可循环不停地播放整个乐曲。另外,对于乐曲中的休止符,一般将其音调参数设为FFH,FFH,其节拍参数与其他音符的节拍参数确定方法一致,乐曲结束用节拍参数为 00H 来表示。(3) 实验流程图:闹钟模块:闹铃中断闹铃开关比较闹铃时间与当计数模块:前时间是否相等响音乐停止?定时器0中断Y秒指示灯灭中断100次?N秒指示灯亮秒+1秒清0Y中断200次?59秒?分+159分?小时+1Y中断返回分清023小时?小时清0五、源程序代码及注释注:首先将单片机用到的主要寄存器做下说明(如下)P1.2作秒的闪烁控制位;P1.7作响铃控制电平;P3.2、P3.3作模式选择键
9、 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 的初值。; ;定义模式选择键S2、 S1*S1BIT P3.2;定义时调整键S4分调整键S3S2BIT P3.3S3BIT P3.4S4BIT P3.5SDAB
10、IT P1.0CLK BIT P1.1ORG0000H;T0的中断服务程序的入口地址AJMP MAINORG 000BHAJMP TIMERORG 001BH;T1 的中断服务程序的入口地址AJMP ALARM_OPEN ;跳转到闹钟响铃中断服务程序ORG0030HMAIN: MOV 40H,#00;显示的分MOV 41H,#00;显示的时MOV 42H,#58;闹钟的分MOV 43H,#23;闹钟的时MOV R0,#00H;寄存器¥#零(RO为计数5ms的次数,R1为秒数,MOV R1,#00H;R2为分钟数,R3为时钟数)MOV R2,#00HMOV R3,#00HMOV TMO
11、D,#11H;设置T0,T1处于工作方式1MOV TH0,#0EEH设置定时器的初值MOV TL0,#00HSETB EA;允许总中断SETB ET0 允许;T0,T1 中断SETB ET1SETB TR0; 启动 T0LOOP: LCALL DISPLAY1 ;调用显示程序LCALL ALARM;调用闹铃程序LCALL MODE ;调用模式判断程序AJMP LOOP.*钟显示部分*DISPLAY1:MOV DPTR,#TAB1MOV A,41HMOV B,#10SETB P1.4DIV ABLCALL DISP1CLR P1.6LCALL DELAYSETB P1.6JB P1.2,TDAJ
12、MP TD1TD:MOV A,BAJMP TD2TD1: MOV A,BADD A,#10TD2: LCALL DISP1CLR P1.5LCALL DELAYSETB P1.5MOV A,40HMOV B,#10DIV ABLCALL DISP1CLR P1.4LCALL DELAY;LED1数码管显示数码,即小时的高位;控制LED2数码管的小数点"dp"闪烁;LED2 数码管显示数码,即小时的低位;LED3数码管显示数码,即分钟的高位MOV A,BLCALL DISP1CLR P1.3;LED4数码管显示数码,即分钟的低位LCALLDELAYSETBP1.3RETDIS
13、P1:MOVC A,A+DPTR;LED串并转换口从P1.0接收MOVR4,#08H;R4 记作左循环的次数DUP1:RLC A;A带进位左循环移位MOVSDA,CCLR CLK;上升沿触发数据接收SETB CLKDJNZ R4,DUP1RET.*DISPLAY2:MOVDPTR,#TAB1MOVA,43HMOVB,#10DIV ABLCALL DISP2CLR P1.6;LED1数码管显示数码,即小时的高位LCALL DELAYSETB P1.6MOV A,BLCALL DISP2CLR P1.5LCALL DELAYSETB P1.5MOV A,42HMOV B,#10DIV ABLCAL
14、L DISP2CLR P1.4LCALL DELAYSETB P1.4MOV A,BLCALL DISP2CLR P1.3LCALL DELAYSETB P1.3RETDISP2: MOVC A,A+DPTRMOV R4,#08H;LED2数码管显示数码,即小时的低位;LED3 数码管显示数码,即分钟的高位;LED4 数码管显示数码,即分钟的低位;LED串并转换口从P1.0接收;R4 记作左循环的次数DUP2: RLC A;A带进位左循环移位MOV SDA,CANLA,#0FHCLR CLK;上升沿触发数据接收SETB CLKDJNZ R4,DUP2RET.*判断闹钟时间是否到来*ALARM:
15、MOVA,40HCJNEA,#00H,MUSIC; 整点闹铃LJMPB2MUSIC: MOVA,43HCJNE A,41H,B1MOV A,42HCJNE A,40H,B1;音乐闹铃SETB P1.7MOV 70H,#00HNEXT: MOV A,70HMOVDPTR,#TABLE;从TABLE中读取数据一一声响时间MOVCA,A+DPTRMOVR4,A;将TABLE中读取的数据存放在 R4JZEND0MOV R5,A;R5作为节拍长度MOV A,R4SWAP AANL A,#0FHJNZ SINGCLR TR1JMP D1SING: DEC AMOV 62H,A;从TABLE仲读取数据一一声
16、调;设定 TH1 值RL AMOV DPTR,#TABLE1MOVC A,A+DPTRMOV TH1,AMOV 61H,AMOV A,62HRL AINC AMOVC A,A+DPTRMOV TL1,A;设定 TL1 值MOV 60H,AMOV TH1,61HMOV TL1,60HD1: ACALL DELAY0;声音延时INC 70HLCALLMODEJMP NEXTEND0: CLR TR1JMP MUSICDELAY0:MOV R7,#2;R5的值就是声响持续时间D2: MOV R6,#214D3: MOV R4,#245DJNZ R4,$DJNZ R6,D3DJNZ R7,D2DJNZ
17、 R5,DELAY0RETB1:CLR TR1RETB2:MOV 61H,#0FEHMOV 60H,#033HMOV TH1,61HMOV TL1,60H ;方波频率设为1KHzSETB TR1.*钟响铃中断服务程序*ALARM_OPEN:PUSH ACCPUSH PSWMOV TH1,61HMOV TL1,60HCPL P1.7POP PSWPOP ACCRETI钟走时中断服务程序;*TIMER: MOV TH0,#0ECH; 重新对 T0 赋值 ,设置中断时间为5msMOV TL0,#78HMOV 40H,R2MOV 41H,R3INC R0;计数 5ms 的次数加1CJNE R0,#20
18、0,BACKCPL P1.2MOV R0,#00HINC R1CJNE R1,#60,BACKMOV R1,#00H;不够 200次,跳转到BACK;够200次,P1.2翻转控制LED闪动一下; 计数5ms 的次数清0,秒数加1; 不够60 秒,跳转到BACK;够 60 秒 ,秒数清 0,分钟加 1INC R2CJNE R2,#60,BACKMOV R2,#00HINC R3CJNE R3,#24,BACKMOV R3,#00HBACK: RETI;*;够60分钟,跳转到BACK;够 60分钟,分钟数清0,小时数加1;够24小时,跳转到BACK;够24小时,小时数清0按键判断部分LCALL D
19、ISPLAY1; 软件消抖后再判断;对S2、S1 的值判断;模式为00,开T1 中断;模式为01,进行时间调整;模式为10,进行闹铃调整; 模式为11,关闭闹钟MODE: MOV A,P3LCALL DELAYCJNE A,P3,MODEANL A,#0CHCJNE A,#00H,LOP1AJMP T_BACKLOP1: CJNE A,#04H,LOP2AJMP T_CHANGELOP2: CJNE A,#08H,LOP3AJMP A_CHANGELOP3: AJMP A_CLOSE时钟调整T_CHANGE:LCALL DELAY1JNB S3,T_HOUR;S3 为 0,判断 S4T_MIN
20、: MOV R5,40HINC R5;S3为1,分钟数加1CJNE R5,#60,LOP4MOV R5,#00HLOP4: MOV 40H,R5MOV R2,40HAJMP MODET_HOUR:JNB S4,MODE;S4为 0,跳转到 MODEMOV R5,41HINC R5CJNE R5,#24,LOP5MOV R5,#00HLOP5: MOV 41H,R5MOV R3,41HAJMP MODE;闹铃调整A_CHANGE:LCALL DISPLAY2LCALL DELAY2JNB S3,A_HOUR;S3为0,判断S4A_MIN: MOV R5,42HINC R5;S3为1,分钟数加1C
21、JNE R5,#60,LOP6MOV R5,#00HLOP6: MOV 42H,R5AJMP MODEA_HOUR:JNB S4,MODE;S4为 0,跳转至U MODEMOV R5,43HINC R5;S4为1,小时数力口 1CJNE R5,#24,LOP7MOV R5,#00HLOP7: MOV 43H,R5AJMP MODE;返回T_BACK:SETB ET1;开 T1 中断RET;关 T1 中断A_CLOSE:CLR ET1RET延时程序;* ;*延时程序延时程序码管显示的字形表DELAY:MOV 63H,#5HD5:MOV 64H,#0FFHDJNZ 64H,$DJNZ 63H,D5
22、RET;1*DELAY1:MOV R7,#50HD6:LCALL DISPLAY1DJNZ R7,D6RET;* ;2*DELAY2:MOV R7,#50HD7:LCALL DISPLAY2DJNZ R7,D7RET;*TAB1:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;数字09,不带小数点"dp"DB40H,79H,24H,30H,19H,12H,02H,78H,00H,10H;数字09,带小数点"dp".*音乐的节拍表*TABLE: DB82H,01H,81H,94H,84H,0B4H,0A4H,
23、04HDB82H,01H,81H,94H,84H,0C4H,0B4H,04HDB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94HDB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB82H,01H,81H,94H,84H,0B4H,0A4H,94HDB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB82H,01H,81H,0F4H,0D4H,0B4H,0A4H,94HDB0E2H,01H,0E1H,0D4H,0B4H,0C4H,0B4H,04HDB00H.*音 乐 音 符 设 置 的 T1 计 数 值*TABLE1D:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中南大学《教育电视节目设计与制作》2023-2024学年第二学期期末试卷
- 菏泽家政职业学院《体育一啦啦操》2023-2024学年第二学期期末试卷
- 云南农业大学《无线通信与车联网》2023-2024学年第二学期期末试卷
- 台州职业技术学院《儿童青少年社会工作实务》2023-2024学年第二学期期末试卷
- 防毒防艾主题班会课件
- 石家庄职业技术学院《外国美术史》2023-2024学年第二学期期末试卷
- 石家庄财经职业学院《机器学习B》2023-2024学年第二学期期末试卷
- 2025:项目部与供应商安全生产供应合同 项目部与供应商如何配合
- 武汉音乐学院《企业形象策划》2023-2024学年第二学期期末试卷
- 江苏城市职业学院《国际共产主义运动史》2023-2024学年第二学期期末试卷
- 春天就是我童声合唱简谱
- 每日30字练字格电子版
- 雷锋叔叔你在哪里教学反思
- 钢拱桥专项吊装方案终稿
- 24式太极拳教案(1~4课)
- 哈萨克斯坦铁路车站代码
- 产业经济学的课后复习答案
- 中国绿色经济发展之路(PPT-37张)课件
- 客房控制系统——RCU系统培训PPT通用通用课件
- 履带式液压挖掘机挖掘机构设计
- (会议纪要(2011)第29期)河南煤业化工集团有限责任公司会议纪要
评论
0/150
提交评论