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

下载本文档

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

文档简介

1 6 电子秒表设计报告 设计要求 设计要求 用 89C51 外接晶振 复位电路 二个数码管 二个按键 做一个电子秒表 具体要 求为用按键起停电子表 可用按键设计倒计时时间 如 10S 20S 60S 并启动倒计时功 能 能用按键选择以上两功能之一 实现原理 实现原理 利用 12M 晶振的一个机器周期为 1 微秒 通过循环产生 1 秒时间延迟 扫描单片机中 所存放的时间的值 可正记时 也可倒计时 并通过输出显示在数码管上 电路图 电路图 P0 0 P0 7 对应了两个接数码管的 A B C D E F G 和小数点位 P2 6 接显示个位数的数码 管的 3 8 引角 P2 7 则接十位数的 P3 6 P3 7 分别接按键 流程框图 流程框图 2 6 程序代码 A BIT EQU 20H 数码管个位数存放内存位置 B BIT EQU 21H 数码管十位数存放内存位置 TEMP EQU 22H 计数器数值存放内存位置 开机初始化 MOV P3 0FFH 对 P3 口初始化 设置为高电平 用于按键输入 MOV P0 0FFH 使显示时间数码管熄灭 等待按键输入 根据按键的输入判断执行什么功能 按键 1 按下则执行功能 1 3 6 START JB P3 6 循环判断开始按钮 K1 是否按下 ACALL DELAY10 延时 10 毫秒触点消抖 JB P3 6 START1 如果是干扰就返回 JNB P3 6 等待按键松开 LJMP GN1 按键 2 按下则执行功能 2 START1 JB P3 7 循环判断开始按钮 K2 是否按下 ACALL DELAY10 延时 10 毫秒触点消抖 JB P3 7 START 如果是干扰就返回 JNB P3 7 LJMP GN2 数码管显示秒表时间的程序 GN1 先初始化 MOV P3 0FFH 对 P3 口初始化 设置为高电平 用于按键输入 MOV P0 0FFH 使显示时间数码管熄灭 MOV A 0 MOV TEMP A GOON1 MOV R2 2 JS1 MOV R3 250 TIME1 MOV A TEMP 将 TEMP 中的十六进制数转换成 10 进制 MOV B 10 10 进制 10 10 进制 DIV AB MOV B BIT A 十位在 A MOV A BIT B 个位在 B MOV DPTR NUMTAB 指定查表启始地址 MOV R0 4 DPL1 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 取十位数 MOVC A A DPTR 查十位数的 7 段代码 MOV P0 A 送出十位的 7 段代码 CLR P2 6 开十位显示 ACALL DELY1 显示 1 毫秒 4 6 SETB P2 6 关闭十位显示 防止鬼影 插入一段判断定时过程中是否有按键输入的程序段 C1 JB P3 6 B1 ACALL DELAY10 延时 10 毫秒消抖 JB P3 6 C1 JNB P3 6 等待按键松开 ZT1 MOV P3 0FFH 对 P3 口初始化 设置为高电平 用于按键输入 JB P3 6 循环判断开始按钮 K1 是否按下 ACALL DELAY10 延时 10 毫秒触点消抖 JB P3 6 ZT1 如果是干扰就返回 JNB P3 6 等待按键松开 B1 JB P3 7 LOOP1 ACALL DELAY10 延时 10 毫秒消抖 JB P3 7 B1 JNB P3 7 等待按键松开 AJMP OVER LOOP1 DJNZ R3 TIME1 2 毫秒循环执行 250 次 时间约 0 5 秒 DJNZ R2 JS1 循环执行 2 次 时间为 1 秒钟 INC TEMP 满一秒钟对时间加 1 MOV A TEMP CLR C SUBB A 60 JNZ GOON1 判断 TEMP 的数值是否为 60 不为 60 循环 ACALL OVER RET GN2 MOV A 14H 设定倒计时的时间 20S MOV TEMP A 数码管显示倒计时时间的程序 初始化 MOV P3 0FFH 对 P3 口初始化 设置为高电平 用于按键输入 MOV P0 14H 使显示时间为设定的倒计时时间 GOON2 MOV R2 2 JS2 MOV R3 250 TIME2 MOV A TEMP 将 TEMP 中的十六进制数转换成 10 进制 MOV B 10 10 进制 10 10 进制 5 6 DIV AB MOV B BIT A 十位在 A MOV A BIT B 个位在 B MOV DPTR NUMTAB 指定查表启始地址 MOV R0 4 DPL2 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 关闭十位显示 防止鬼影 插入一段判断定时过程中是否有按键输入的程序段 C2 JB P3 6 B2 ACALL DELAY10 延时 10 毫秒消抖 JB P3 6 C2 JNB 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 B1 JNB P3 7 等待按键松开 AJMP OVER LOOP2 DJNZ R3 TIME2 2 毫秒循环执行 250 次 时间约 0 5 秒 DJNZ R2 JS2 循环执行 2 次 时间为 1 秒钟 DEC TEMP 满一秒钟对时间加 1 MOV A TEMP 6 6 JNZ GOON2 判断 TEMP 的数值是否为 0 不为 0 循环 ACALL OVER RET 结束定时 OVER AJMP START 退到开机初始化状态 1 毫秒延时子程序 DELY1 MOV R4 2 D1 MOV R5 248 DJNZ R5 DJNZ R4 D1 RET

温馨提示

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

评论

0/150

提交评论