项目五_电子秒表的分析与仿真设计说明书.doc

上传人:rrsccc 文档编号:8937500 上传时间:2021-01-26 格式:DOC 页数:17 大小:689KB
返回 下载 相关 举报
项目五_电子秒表的分析与仿真设计说明书.doc_第1页
第1页 / 共17页
项目五_电子秒表的分析与仿真设计说明书.doc_第2页
第2页 / 共17页
项目五_电子秒表的分析与仿真设计说明书.doc_第3页
第3页 / 共17页
项目五_电子秒表的分析与仿真设计说明书.doc_第4页
第4页 / 共17页
项目五_电子秒表的分析与仿真设计说明书.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《项目五_电子秒表的分析与仿真设计说明书.doc》由会员分享,可在线阅读,更多相关《项目五_电子秒表的分析与仿真设计说明书.doc(17页珍藏版)》请在三一文库上搜索。

1、项目五 电子秒表的分析与仿真设计说明书任务一 数码管显示911季梦寒 947赵晓晴一、任务设计要求1、一位数码管静态显示 要求:用单片机控制一位数码管依次显示 “0”-“F”2、多位数码管静态显示要求:用单片机控制5位数码管固定显示“89C52”、 “HELLO”3、动态显示要求:用单片机控制6位数码管移动显示“168168” 、“HELLO.”二、设计过程1、设计方案确定2、 硬件电路设计2、多位数码管静态显示要求:用单片机控制5位数码管固定显示“89C52”、 “HELLO”3、动态显示要求:用单片机控制6位数码管移动显示“168168” 、“HELLO.”3、软件设计(1)、绘制流程图(

2、2) 、编写源程序:共3个程序用单片机控制一位数码管依次显示 “0”-“F” ORG 0000H AJMP START ORG 0030HSTART: MOV 30H,#00H ;要显示的内容,写入30H单元内MAIN: MOV R5,#50 ;设置显示次数,越大时间越长MAIN1: MOV A,30H ;将显示的数据送入A寄存器 MOV DPTR,#TAB ;将TAB的地址送入DPTR寻址 MOVC A,A+DPTR ;将TAB+A处地址内的数据读出来送入A寄存器 SETB P0.0 ;关闭数码管公共端,关闭显示,是为了去除显示重影 MOV P2,A ;将这个数据写入P2段码端口 CLR P

3、0.0 ;打开显示 LCALL DELAY ;调用延时程序 DJNZ R5,MAIN1 ;一共显示R5次 INC 30H ;将30H内数据加1 MOV A,30H ;将30H内数据送入寄存器A,继续上面的步骤 CJNE A,#10H,MAIN ;判断是否到达16,是则运行下一行程序,否则跳转到MAIN AJMP START ;TAB为数码管显示段码值TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71HDELAY: MOV R7,#50D1: MOV R6,#250D2: DJNZ R6,D2 DJNZ R

4、7,D1 RET END2、多位数码管静态显示要求:用单片机控制5位数码管固定显示“89C52”、 “HELLO”89c52ORG 0000HLJMP START ORG 0030HSTART: MOV 30H,#2 ;查表查出第2位放入30H MOV 31H,#5 ;查表查出第5位放入31H MOV 32H,#0CH ;查表查出第12位放入32H MOV 33H,#9 ; 查表查出第9位放入33H MOV 34H,#8 ;查表查出第8位放入34H DISP:MOV R0,#30H ; 将30H放入R0 MOV R1,#40H ;将40H放入R1 MOV R2,#5 ;R2:显示码的个数DP1

5、0:MOV DPTR,#SEGTAB ; SEGTAB的地址存入DPTR MOV A,R0 ; 将R0里的地址的数据放入A MOVC A,A+DPTR ; 查表 MOV R1,A ; 将A放入R1的地址里 INC R0 ;将R0加1 INC R1 ;将R1加1 DJNZ R2,DP10 ;反复,直到8位都输完 MOV R0,#40H ;将40H放入R0 MOV R1,#5 ;R1显示码的个数DP12:MOV R2,#8 ;将显示码送入R2 MOV A,R0 ;将R0里的地址的数据放入ADP13:RLC A ;左移 MOV P3.0,C ;C送入P3.0 CLR P3.1 ;P3.1清0 SET

6、B P3.1 ;跳转到P3.1口DJNZ R2,DP13 ;反复,直到8位都输完INC R0 ;将R0加1DJNZ R1,DP12 ;反复,直到8位都输完SJMP $SEGTAB:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,7BH,71H,00H,40H END3、动态显示要求:用单片机控制6位数码管移动显示“168168” 、“HELLO.”4、软、硬件调试仿真(效果图)任务二 简易秒表、电子钟一、任务设计要求1、基本要求:1)用两位静态数码管进行“0-59”秒的显示。2)用两位动态数码管进行“0-59”秒

7、的显示2、技能提高:增加按键控制,实现秒表的启动、停止、清零功能。3、技能拓展:(选做)用单片机控制6位数码管显示时钟的时、分、秒 ,设计电子钟(两种方法)。二、设计过程1、设计方案确定2、 硬件电路设计用两位静态数码管进行“0-59”秒的显示。1) 用两位动态数码管进行“0-59”秒的显示。2)增加按键控制,实现秒表的启动、停止、清零功能。用单片机控制6位数码管显示时钟的时、分、秒 ,设计电子钟(两种方法)。3、软件设计(1)、绘制流程图17用两位静态数码管进行“0-59”秒的显示。用单片机控制6位数码管显示时钟的时、分、秒 ,设计电子钟(2) 、编写源程序:共4个程序用两位静态数码管进行“

8、0-59”秒的显示。 ORG 0000HSTART: MOV DPTR,#TABLE ;表的地址存入DPTR MOV R0,#00H ;将R0清0S1: MOV P3,#00H ;清除P3口 MOV P2,#00H ;清除P2口S2: MOV R1,#10 ;R1:显示码的个数 MOV A,R0 ;将R0放入A MOV B,R1 ;将R1放入BDIV AB ;A除以B,除数为A,余数为B MOVC A,A+DPTR ;查表 MOV P2,A ;将A值送入P2 MOV A,B ;B值送入A MOVC A,A+DPTR ;查表 MOV P3,A ;将A值送入P3 LCALL DELAY ;延时 I

9、NC R0 ;R0加1 CJNE R0,#60,S2 ;R0是否等于60,不是跳回S2 MOV R0,#00H ;清除R0 LJMP S1 ;跳到S1DELAY: MOV R5,#100 ;延时1s的循环次数D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETTABLE:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH END 用两位静态数码管进行“0-59”秒的显示。SECOND EQU 30H ;SECOND=30HTCNT EQU 34H ;TCNT=34H ORG 0000H

10、LJMP START ;开始 ORG 000BH ;T0中断路口地址 LJMP INT_T0 ;转向中断服务子程序 ORG 0010HSTART:MOV DPTR,#TABLE ;表的地址存入DPTR MOV SECOND,#0 ;标志位清0 MOV TCNT,#0 ;中断次数清0 MOV TMOD,#01H ;定时器,方式1 MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H MOV IE,#82H ;开中断 SETB TR0 ;启动T0L1: LCALL DISPLAY ;调用延时 SJMP L1 ;跳转L1DISPLAY:MOV A,SECOND ;将标志位送入A MO

11、V B,#10 ;B:显示码的个数 DIV AB ;A除以B,除数为A,余数为BCLR P2.0 ;P2.0口清0MOVC A,A+DPTR ;查表MOV P1,A ;将A送入P1LCALL DELAY ;延时SETB P2.0 ;启动P2.0口MOV A,B ;B值送入A CLR P2.1 ;P2.1口清0MOVC A,A+DPTR ;查表MOV P1,A ;将A送入P1LCALL DELAY ;延时SETB P2.1 ;启动P2.0口RETINT_T0:MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H INC TCNT ;TCNT加1 MOV A,TCNT ;将TCNT

12、送入A CJNE A,#20,NEXT ;A是否已经20次,不是跳到NEXT INC SECOND ;SECOND 加1 MOV TCNT,#00H ;TCNT清0 MOV A,SECOND ;将SECOND 送入A CJNE A,#60,NEXT ;A是否等于60,不是跳到NEXT MOV SECOND,#00H ;SECOND清0 NEXT:RETIDELAY:MOV R6,#20 ;延时D1: MOV R7,#28DJNZ R7,$DJNZ R6,D1RETTABLE:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH RET END 增加按键控制

13、,实现秒表的启动、停止、清零功能。 SECOND EQU 30H ;SECOND=30H TCNT EQU 34H ;TCNT= 34H ORG 0000H LJMP START ;开始 ORG 0003H AJMP KE1 ;跳转KE1 ORG 000BH ;T0中断路口地 LJMP INT_T0 ;转向中断服务子程序 ORG 0013H AJMP KEO ;跳转KEO ORG 001BH AJMP KE2 ;跳转KE2START:MOV DPTR,#TABLE ;表的地址存入DPTR MOV SECOND,#0 ;标志位清0 MOV TCNT,#0 ;中断次数清0 MOV TMOD,#61

14、H ;计数器,方式1 MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H MOV TH1,#0FFH ;置计数器初值 MOV TL1,#0FFH MOV IE,#8FH ;开中断 SETB TR1 ;启动计数器L1: LCALL DISPLAY ;调用延时 SJMP L1 ;跳转L1DISPLAY:MOV A,SECOND ;将标志位放入A MOV B,#10 ;B:显示码的个数 DIV AB ;A除以B,除数为A,余数为B CLR P2.0 ;P2.0口清0 MOVC A,A+DPTR ;查表 MOV P1,A ;将A送入P1 LCALL DELAY ;延时 SETB P2

15、.0 ;启动P2.0口 MOV A,B ;B值送入A CLR P2.1 ;P2.1口清0 MOVC A,A+DPTR ;查表 MOV P1,A ;将A送入P1 LCALL DELAY ;延时 SETB P2.1 ;启动P2.0口 RETKEO:SETB TR0 ;启动定时器 RETIKE1:CLR TR0 ;将定时器清0 RETIKE2:MOV SECOND, 00H ;将SECOND清0 RETIINT_T0:MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H INC TCNT ;TCNT加1 MOV A,TCNT ;将TCNT送入A CJNE A,#20,NEXT ;A是

16、否已经20次,不是跳到NEXT INC SECOND ;SECOND 加1 MOV TCNT,#00H ;TCNT清0 MOV A,SECOND ;将SECOND 送入A CJNE A,#60,NEXT ;A是否等于60,不是跳到NEXT MOV SECOND,#00H ;SECOND清0 NEXT: RETIDELAY:MOV R6,#20 ;延时D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH RET END用单片机控制6位数码管显示时钟的时、分、秒 ,设计

17、电子钟SECOND EQU 30H ;SECOND=30H MINUTE EQU 31H ; MINUTE= 31H HOUR EQU 32H ;HOUR=32H TCNT EQU 34H ;TCNT= 34H ORG 0000H LJMP START ;开始 ORG 000BH ;T0中断路口地 LJMP INT_T0 ;转向中断服务子程序 ORG 0010HSTART:MOV DPTR,#TABLE ;表的地址存入DPTR MOV HOUR,#0 ; HOUR清0 MOV MINUTE,#0 ; MINUTE清0 MOV SECOND,#0 ;SECOND清0 MOV TCNT,#0 ;

18、TCNT清0 MOV TMOD,#01H ;定时器,方式1 MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H MOV IE,#82H ;开中断 SETB TR0 ;启动定时器L1: LCALL DISPLAY ;调用延时 SJMP L1 ;跳转L1DISPLAY:MOV A,SECOND ;将标志位放入A MOV B,#10 ;B:显示码的个数 DIV AB ;A除以B,除数为A,余数为B CLR P3.6 ;将P3.6清0 MOVC A,A+DPTR ;查表 MOV P0,A ;A放入P0口显示 LCALL DELAY ;延时 SETB P3.6 ;启动P3.6 MOV

19、A,B ;B值送入A CLR P3.7 ;将P3.7清0 MOVC A,A+DPTR ;查表 MOV P0,A ;A放入P0口显示 LCALL DELAY ;延时 SETB P3.7 ;启动P3.7 CLR P3.5 ;将P3.5清0 MOV P0,#40H ; P0显示“-” LCALL DELAY ;延时 SETB P3.5 ;启动P3.7 MOV A,MINUTE ;将MINUTE放入A MOV B,#10 ;B:显示码的个数 DIV AB ;A除以B,除数为A,余数为B CLR P3.3 ;将P3.3清0 MOVC A,A+DPTR ;查表 MOV P0,A ;A放入P0口显示 LCA

20、LL DELAY ;延时 SETB P3.3 ;启动P3.3 MOV A,B ;B值送入A CLR P3.4 ;将P3.4清0 MOVC A,A+DPTR ;查表 MOV P0,A ;A放入P0口显示 LCALL DELAY ;延时 SETB P3.4 ;启动P3.4 CLR P3.2 ;将P3.2清0 MOV P0,#40H ; P0显示“-” LCALL DELAY ;延时 SETB P3.2 ;启动P3.2 MOV A,HOUR ;将HOUR放入A MOV B,#10 ;B:显示码的个数 DIV AB ;A除以B,除数为A,余数为B CLR P3.0 ;将P3.0清0 MOVC A,A+

21、DPTR ;查表 MOV P0,A ;A放入P0口显示 LCALL DELAY ;延时 SETB P3.0 ;启动P3.0 MOV A,B ;B值送入A CLR P3.1 ;将P3.1清0 MOVC A,A+DPTR ;查表 MOV P0,A ;A放入P0口显示 LCALL DELAY ;延时 SETB P3.1 ;启动P3.1 RETINT_T0:MOV TH0,#3CH ;置定时器初值 MOV TL0,#0B0H INC TCNT ;TCNT加1 MOV A,TCNT ;将TCNT送入A CJNE A,#20,NEXT ;A是否已经20次,不是跳到NEXT INC SECOND ;SECO

22、ND 加1 MOV TCNT,#00H ;TCNT清0 MOV A,SECOND ;将SECOND 送入A CJNE A,#60,NEXT ;A是否等于60,不是跳到NEXT INC MINUTE ;MINUTE 加1 MOV SECOND,#00H ;SECOND清0 MOV A,MINUTE ;将MINUTE 送入A CJNE A,#60,NEXT ;A是否等于60,不是跳到NEXT INC HOUR ;MINUTE 加1 MOV MINUTE,#00H ;MINUTE清0 MOV A,HOUR ;将HOUR 送入A CJNE A,#24,NEXT ;A是否等于60,不是跳到NEXT MO

23、V HOUR,#00H ;HOUR清0 MOV MINUTE,#00H ;MINUTE清0 MOV SECOND,#00H ;SECOND清0NEXT: RETIDELAY:MOV R6,#20 ;延时D1: MOV R7,#124 DJNZ R7,$ DJNZ R6,D1 RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH DB 7DH,07H,7FH,6FH RET END4、 软、硬件调试仿真(效果图) 3、 设计总结和体会 LED数码管是单片机应用系统中常用的输出设备。了解LED数码管驱动的静态与动态显示方式以及程序的编写至关重要。 学会分析LED数码管驱动电流分析过程是学好这么课程的核心。 要学好这门课程,必须要学会如何运用相关芯片编写LED数码管显示程序。 通过电子秒表和电子时钟的分析和设计,从简到繁实现了解LED数码管的具体应用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1