项目五电子秒表的分析与仿真设计说明书_第1页
项目五电子秒表的分析与仿真设计说明书_第2页
项目五电子秒表的分析与仿真设计说明书_第3页
项目五电子秒表的分析与仿真设计说明书_第4页
项目五电子秒表的分析与仿真设计说明书_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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)、绘制流程图用两位静态数码管进行“0-59”秒的显示。用单片机控制6位数码管显示时钟的时、分、秒 ,设计电子钟(2) 、编写源程序:共4个程序用两位静态数码管进行“0-

8、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 ;延时 INC

9、 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 0000HLJ

10、MP 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 MOV

11、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,#61H

14、;计数器,方式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.0

15、 ;启动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 ; TC

18、NT清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 A,

19、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口显示 LCALL

20、 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+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 S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论