微机原理电子秒表课程设计报告书_第1页
微机原理电子秒表课程设计报告书_第2页
微机原理电子秒表课程设计报告书_第3页
微机原理电子秒表课程设计报告书_第4页
微机原理电子秒表课程设计报告书_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、电子秒表设计报告设计要求:用 89C51,外接晶振,复位电路,二个数码管,二个按键,做一个电子秒表,具体要求为用按键起停电子表,可用按键设计倒计时时间(如10S,20S, 60S),并启动倒计时功能。能用按键选择以上两功能之一。利用 12M晶振的一个机器周期为实现原理:1 微秒 , 通过循环产生 1 秒时间延迟,扫描单片机中所 存放的时间的值(可正记时,也可倒计时) ,并通过输出显示在数码管上。电路图:P2.6 接显示个位数的数码P0.0 P0.7 对应了两个接数码管的 A,B,C,D,E,F,G 和小数点位, 管的 3、 8引角, P2.7 则接十位数的。 P3.6、P3.7 分别接按键。流

2、程框图:程序代码:A_BIT EQU 20H ; 数码管个位数存放存位置B_BIT EQU 21H ; 数码管十位数存放存位置TEMP EQU 22H ; 计数器数值存放存位置; 开机初始化MOV P3,#0FFH; 对 P3口初始化 ,设置为高电平 , 用于按键输入MOV P0,#0FFH; 使显示时间数码管熄灭; 等待按键输入; 根据按键的输入判断执行什么功能; 按键 1 按下则执行功能 1START:JB P3.6,$; 循环判断开始按钮 K1 是否按下 ? ACALL DELAY10; 延时 10 毫秒触点消抖 JB P3.6,START1; 如果是干扰就返回JNB P3.6,$; 等

3、待按键松开LJMP GN1按键 2 按下则执行功能 2START1: JB P3.7,$; 循环判断开始按钮 K2是否按下 ?ACALL DELAY10; 延时 10 毫秒触点消抖JB P3.7,START; 如果是干扰就返回JNB P3.7,$LJMP GN2; 数码管显示秒表时间的程序GN1: ; 先初始化, 用于按键输入10 进制MOV P3,#0FFH; 对 P3口初始化 , 设置为高电平MOV P0,#0FFH; 使显示时间数码管熄灭MOV A,#0MOV TEMP,AGOON1: MOV R2,#2JS1: MOV R3,#250TIME1: MOV A,TEMP ; 将 TEMP

4、中的十六进制数转换成MOV B,#10 ;10进制 /10=10 进制DIV ABMOV B_BIT,A ;十位在 AMOV A_BIT,B ;个位在 BMOV DPTR,#NUMTAB ; 指定查表启始地址MOV R0,#4DPL1: MOV R1,#250 ;DPLOP1: MOV A,A_BIT ; 取个位数MOVC A,A+DPTR ; 查个位数的 7 段代码MOV P0,A ;送出个位的 7 段代码MOV P0,A ;送出个位的 7 段代码CLR P2.7 ; 开个位显示ACALL DELY1; 显示 1 毫秒SETB P2.7; 关闭个位显示 , 防止鬼影MOV A,B_BIT ;

5、 取十位数MOVC A,A+DPTR ; 查十位数的 7 段代码MOV P0,A ;送出十位的 7 段代码CLR P2.6 ; 开十位显示ACALL DELY1; 显示 1 毫秒SETB P2.6; 关闭十位显示 , 防止鬼影; 插入一段判断定时过程中是否有按键输入的程序段C1: JB P3.6,B1ACALL DELAY10; 延时 10 毫秒消抖JB P3.6,C1JNB P3.6,$; 等待按键松开ZT1: MOV P3,#0FFH; 对 P3口初始化 ,设置为高电平 , 用于按键输入 JB P3.6,$; 循环判断开始按钮 K1 是否按下 ?ACALL DELAY10; 延时 10 毫

6、秒触点消抖JB P3.6,ZT1; 如果是干扰就返回JNB P3.6,$; 等待按键松开B1: JB P3.7,LOOP1ACALL DELAY10;延时 10 毫秒消抖JB P3.7,B1JNB P3.7,$; 等待按键松开AJMP OVERLOOP1: DJNZ R3,TIME1 ;2 毫秒循环执行 250 次 , 时间约 0.5 秒DJNZ R2,JS1 ; 循环执行 2 次,时间为 1 秒钟INC TEMP;满一秒钟对时间加 1MOV A,TEMPCLR CSUBB A,#60JNZ GOON1判; 断 TEMP的数值是否为 60?不为 60 循环ACALL OVERRETGN2: M

7、OV A,#14H ; 设定倒计时的时间 20SMOV TEMP,A; 数码管显示倒计时时间的程序; 初始化MOV P3,#0FFH; 对 P3口初始化 ,设置为高电平 , 用于按键输入MOV P0,#14H; 使显示时间为设定的倒计时时间GOON2: MOV R2,#2JS2: MOV R3,#250TIME2: MOV A,TEMP ; 将 TEMP中的十六进制数转换成 10 进制MOV B,#10 ;10进制 /10=10 进制DIV ABMOV B_BIT,A ;十位在 AMOV A_BIT,B ;个位在 BMOV DPTR,#NUMTAB ; 指定查表启始地址MOV R0,#4DPL

8、2: MOV R1,#250 ;DPLOP2: MOV A,A_BIT ; 取个位数MOVC A,A+DPTR ; 查个位数的 7 段代码 MOV P0,A ; 送出个位的 7 段代码 MOV P0,A ;送出个位的 7 段代码CLR P2.7 ; 开个位显示ACALL DELY1;显示 1 毫秒SETB P2.7;关闭个位显示 , 防止鬼影MOV A,B_BIT ; 取十位数MOVC A,A+DPTR ; 查十位数的 7 段代码 MOV P0,A ; 送出十位的 7 段代码CLR P2.6 ; 开十位显示ACALL DELY1; 显示 1 毫秒SETB P2.6;关闭十位显示 , 防止鬼影;

9、 插入一段判断定时过程中是否有按键输入的程序段C2: JB P3.6,B2ACALL DELAY10; 延时 10 毫秒消抖JB P3.6,C2JNB P3.6,$; 等待按键松开ZT2: MOV P3,#0FFH; 对 P3口初始化 ,设置为高电平 , 用于按键输入 JB P3.6,$; 循环判断开始按钮 K1 是否按下 ?ACALL DELAY10; 延时 10 毫秒触点消抖JB P3.6,ZT2; 如果是干扰就返回 JNB P3.6,$; 等待按键松开B2: JB P3.7,LOOP2 ACALL DELAY10;延时 10 毫秒消抖JB P3.7,B1JNB P3.7,$; 等待按键松开AJMP OVERLOOP2: DJNZ R3,TIME2 ;2 毫秒循环执行 250 次 , 时间约 0.5 秒 DJNZ R2,JS2 ; 循环执行 2次, 时间为 1 秒钟DEC TEMP满; 一秒钟对时间加 1MOV A,TEMPJNZ GOON2判; 断 TEMP的数值是否为 0?不为 0 循环 ACALL OVERRET; 结束定时OVER: AJMP START;退到开机初始化状态;1 毫秒延时子程序DELY1: MOV R4,#2D1:MOV R5,#248DJNZ R5,$DJNZ R4,

温馨提示

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

评论

0/150

提交评论