数字电子钟完美终结版_第1页
数字电子钟完美终结版_第2页
数字电子钟完美终结版_第3页
数字电子钟完美终结版_第4页
数字电子钟完美终结版_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

单片机技术单片机技术 课程设计说明书课程设计说明书 数字电子钟 院 部 学生姓名 指导教师 职称 专 业 班 级 完成时间 湖南工学院湖南工学院 课程设计任务书课程设计任务书 课 程 单片机技术 课程设计题目 数字电子钟 数字频率计 数字电压表 交通灯 抢答器 密码锁 波形发生器 数字温度计 计算器 数字式秒表 适 用 班 级 自动化卓越 1201 时 间 2014 2015 学年第一学期 指 导 教 师 凌 云 单片机技术单片机技术 课程设计任务书课程设计任务书 一 设计题目 数字电子钟 数字频率计 数字电压表 交通灯 抢答器 密码锁 波形发生器 数字温度计 计算器 数字式秒表 二 适用班级 自动化卓越 1201 三 指导教师 王韧 四 设计目的与任务 学生通过理论设计和实物制作解决相应的实际问题 巩固和运用在 单片机技 术 中所学的理论知识和实验技能 掌握单片机应用系统的一般设计方法 提高设 计能力和实践动手能力 为以后从事电子电路设计 研发电子产品打下良好的基础 五 设计内容与要求 设计内容 1 数字电子钟 设计一个具有特定功能的电子钟 该电子钟上电或按键复位后能自动显示系统 提示符 P 进入时钟准备状态 第一次按电子钟启动 调整键 电子钟从 0 时 0 分 0 秒开始运行 进入时钟运行状态 再次按电子钟启动 调整键 则电子钟进入 时钟调整状态 此时可利用各调整键调整时间 调整结束后可按启动 调整键再次 进入时钟运行状态 2 数字频率计 设计一个能够测量周期性矩形波信号的频率 周期 脉宽 占空比的频率计 该频率计上电或按键复位后能自动显示系统提示符 P 进入测量准备状态 按 频率测量键则测量频率 按周期测量键则测量周期 按脉宽测量键则测量脉宽 按 占空比测量键则测量占空比 3 数字电压表 设计一个能够测量直流电压的数字电压表 测量电压范围 0 5V 测量精度小 数点后两位 该电压表上电或按键复位后能自动显示系统提示符 P 进入测量 准备状态 按测量开始键则开始测量 并将测量值显示在显示器上 按测量结束键 则自动返回 P 状态 4 交通灯 设计一个具有特定功能的十字路口交通灯 该交通灯上电或按键复位后能自动 显示系统提示符 P 进入准备工作状态 按开始键则开始工作 按结束键则返 回 P 状态 要求甲车道和乙车道两条交叉道路上的车辆交替运行 甲车道为主 车道 每次通车时间为 60 秒 乙车道为次车道 每次通车时间为 30 秒 要求黄灯 亮 3 秒 并且 1 秒闪烁一次 有应急车辆出现时 红灯全亮 应急车辆通车时间 10 秒 同时禁止其他车辆通过 5 抢答器 设计一个具有特定功能的抢答器 该抢答器上电或按键复位后能自动显示系统 提示符 P 进入准备工作状态 主持人按下开始按钮后 抢答开始并限定时间 30S 10S 内无人抢答 蜂鸣器发出音响 主持人按下开始按钮之前有人按下抢答器 抢答违规 显示器显示违规台号 违规指示灯亮 其它按钮不起作用 正常抢答 显示器显示台号 蜂鸣器发出音响 其它抢答按钮无效 正常抢答下 从按下抢答 按钮开始 30S 内 答完按钮没按下 则作超时处理 超时处理时 违规指示灯亮 显示器显示违规台号 蜂鸣器发出音响 各台数字显示的消除 蜂鸣器音响及违规 指示灯的关断 都要通过主持人按复位按钮 6 密码锁 设计一个具有特定功能的密码锁 该密码锁上电或按键复位后能自动显示系统 提示符 P 进入准备工作状态 该密码锁具有系统原始密码 888888 用户可以 设定并存储用户密码 密码输入时应处于保密显示状态 密码输入正确时应显示密 码输入正确提示信息 否则 显示密码输入错误提示信息 7 波形发生器 设计一个具有特定功能的波形发生器 该波形发生器上电或按键复位后能自动 显示系统提示符 P 进入准备工作状态 该波形发生器可以分别产生幅值 0 5V 频率 100Hz 100KHz 范围内的三角波 锯齿波 方波 梯形波和正弦波 8 数字温度计 设计一个具有特定功能的数字温度计 该数字温度计上电或按键复位后能自动 显示系统提示符 P 进入准备工作状态 测量温度范围 0 99 测量精度小 数点后两位 可以通过开始和结束键控制数字温度计的工作状态 9 计算器 设计一个具有特定功能的计算器 该计算器上电或按键复位后能自动显示系统 提示符 P 进入准备工作状态 能实现 1 基本的加 减 乘 除 平方 开 方 2 三角函数运算 3 十进制 十六进制转换运算 4 其他功能 10 数字式秒表 设计一个具有特定功能的数字式秒表 该数字式秒表上电或按键复位后能自动 显示系统提示符 P 进入准备工作状态 该数字式秒表应具有开始 暂停 连 续 清零和停止功能 设计要求 1 以上课题可以任选其一或多选 学生也可以自拟课题 2 编程语言 汇编或 C51 3 计算机打印 单片机技术 课程设计说明书一份 4 设计时间 一周 5 实物制作 6 人员分组 一人一组一实物 六 单片机技术 课程设计说明书正文主要内容 参照 单片机技术 课程设计说明书正文主要内容 文件 七 单片机技术 课程设计说明书书写规范格式 参照 单片机技术 课程设计说明书书写规范格式 文件 八 参考资料 1 马忠梅 单片机的 C 语言 Windows 环境编程宝典 M 北京 北京航空航天 大学出版社 2003 6 2 李光飞 单片机 C 程序设计指导 M 北京 北京航空航天大学出版社 2003 01 3 李光飞 单片机课程设计实例指导 M 北京 北京航空航天大学出版社 2004 9 电气自动化教研室 2014 年 9 月 10 日 摘 要 数字电子钟是一种用数字电路技术实现时 分 秒计时的装置 与机械式 时钟相比具有 体积小 功耗低 价格便宜 工作可靠 使用方便更长的使用 寿命长等特点 因此数字电子钟广泛应用于工业 农业和商业等诸多领域中 具有重要的实用价值 本次课程设计是应用单片机芯片 AT89S52 设计出的数字时钟电路 整个 系统以单片机作为中央控制器 硬件电路主要由三个部分构成 即 单片机最 小系统 数码管显示电路 键盘控制电路 设计完成的作品具有时间显示 校 正功能 走时准确 显示直观 运行稳定等优点 达到课程设计的性能指标 关键词 数字电子钟 AT89S52 数码管 I ABSTRACT Digital clock is a digital circuit technology minutes and seconds timing devices and mechanical clock compared with small volume low power consumption low price reliable work convenient operation and longer service life long and so on characteristics So the digital electronic clock is widely used in industrial agricultural and commercial fields and it has important practical value The curriculum design is the application of single chip AT89S52 design of digital clock circuit the whole system with single chip microcomputer as the central controller the hardware circuit mainly consists of three parts namely the smallest single chip system digital tube display circuit a keyboard control circuit Design work completed with time display function correction accurate intuitive display stable operation and other advantages the curriculum design performance Key words Digital electric clock Stopwatch AT89S52 Digital Tube 目录 1 设计课题介绍 1 1 1 设计课题任务 1 1 2 基本功能要求说明 1 1 3 设计方案介绍及其工作原理说明 1 2 数字电子钟的硬件系统设计 3 2 1 硬件系统模块 3 2 2 数字电子钟电路总原理图 4 2 3 PCB 图 4 2 4 数字电子钟的元器件清单 4 3 数字电子钟的软件系统的设计 5 3 1 单片机资源使用情况 5 3 2 软件系统各模块功能介绍 5 3 3 软件系统各程序模块流程图 6 3 4 软件系统程序清单 8 4 设计总结 9 4 1 数字电子钟使用说明 9 4 2 设计结论 9 4 3 实物图及误差分析 9 4 4 设计体会 9 结束语 11 致 谢 12 参考文献 13 附录 14 0 1 设计课题介绍 1 1 设计课题任务 设计一个简单的数字电子时钟 具有时间显示的功能 并有时间设定和调整的 功能 1 2 基本功能要求说明 设计一个具有特定功能的电子钟 该电子钟上电或按键复位后能自动显示系统 提示符 P 进入时钟准备状态 第一次按电子钟启动 调整键 电子钟从 0 时 0 分 0 秒开始运行 进入时钟运行状态 再次按电子钟启动 调整键 则电子钟进入时 钟调整状态 此时可利用各调整键调整时间 调整结束后可按启动 调整键再次进入 时钟运行状态 1 3 设计方案介绍及其工作原理说明 本系统主要设计思想是 整个系统用单片机为中央控制器 由单片机执行采集 时钟电路的时间信号并通过显示模块来输出信号及相关的控制功能 时钟电路产生 的时钟信号 利用单片机的 I O 口传送给单片机 并通过 P0 口和 P2 口控制数码管 显示时间 通过 P1 口外接 4 个按键对时间进行调整 定时设计 利用 AT89S52 单片机内部的定时 计数器进行中断定时 由于采用 12MHZ 的晶振提供时钟频率 可选择定时器设为工作方式 1 定时时间为 50ms 则计数溢出 20 次即得时钟计时最小单位秒 采用中断方式进行溢出次数累计 计满 20 次为秒计时 1 秒 从秒到分和从分 到时的计时是通过累加和数值比较实现 此方案利用了单片机的定时功能 不过对 定时器须非常熟悉 初值设定正确 否则误差很大 计时不准 本系统采用的单片机芯片是 AT89S52 它具有的特点 40 个引脚 4k Bytes Flash 片内程序存储器 32 个外部双向输入 输出 I O 口 所以采用这种设计方 案 本系统总的设计框图如图 1 所示 1 图 1 系统整体框图 关于电子钟的时钟时间在八位数码管上进行显示 由于我们采用的是非压缩 BCD 即时显示数字放在一个单元里面 同理分 秒 在内部 RAM 中设置显示缓冲 区共 4 个单元 其中一个作为 50ms 到 1s 的中转缓存区 其余作为时 分 秒的缓 冲区 而程序中我们采用的是赋值命令 具体分布单元如表 1 所示 表 1 数码管的数据存储表 LED 显示 LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED1 地址 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 显示位数 时十位 时个位 间隔符 分十位 分个位 间隔符 秒个位 秒个位 2 2 数字电子钟的硬件系统设计 AT89s52 单片机是一种低功耗 高性能的片内含有 4KB 可编程 擦除只读存储 器 FPEROM Flash Programmable and Erasable Read Only Memory 的 8 位 COMS 微控制器 使用高密度 非易失存储技术制造 并且与 AT89C52 引脚和指令系统 完全兼容 芯片上的 FLASH 允许在线编程或采用通用的非易失存储编程器对存储 器重复编程 AT89S52 各引脚功能介绍 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能驱动 8 个 TTL 逻 辑电平 对 P0 端口写 1 时 引脚用作高阻抗输入 当访问外部程序和数据 存储器时 P0 口也被作为低 8 位地址 数据复用 在这种模式下 P0 不具有内部上 拉电阻 在 flash 编程时 P0 口也用来接收指令字节 在程序校验时 输出指令字 节 程序校验时 需要外部上拉电阻 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 p1 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻把端口拉高 此时可以作 为输入口使用 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时 内部上 拉电阻把端口拉高 此时可以作为输入口使用 在访问外部程序存储器或用 16 位 地址读取外部数据存储器 例如执行 MOVX DPTR 时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上拉发送 1 在使用 8 位地址 如 MOVX RI 访问外部数据存储器时 P2 口输出 P2 锁存器的内容 在 flash 编程和校验 时 P2 口也接收高 8 位地址字节和一些控制信号 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 p3 输出缓冲器能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时 内部上拉电阻把端口拉高 此时可以作 为输入 口使用 P3 口亦作为 AT89S52 特殊功能 第二功能 使用 在 flash 编 程和校验时 P3 口也接收一些控制信号 2 1 硬件系统模块 1 时钟电路 由振荡电路和分频电路组成 其中振荡电路由高增益反相器 以及并联外接的石英晶体和电容构成产生振荡脉冲 而分频电路则用于把振荡脉冲 分频 已得到所需的时钟信号 振荡电路由单片机芯片的 XTAL1 端输入 XTAL2 端输出 通过这两个引脚并接一个石英晶体振荡器和两个电容 而 AT89S52 中自 带有分频电路所以不需要外接电路对脉冲信号进行分频 晶振频率是指晶体振荡器 3 的振荡频率 也就是振荡电路的脉冲频率 也称振荡频率 晶振频率是 12MHz 2 复位电路 共有上电复位 按键电平复位和按键脉冲复位 3 种 其中上 电自动复位是通过电容充电来实现的 手动复位是通过按键来实现的 有电平方式 和脉冲方式两种 其中按键电平复位端经电阻与 Vcc 电源接通而实现的 本设计中 采用相对简单而实用的按键电平复位方式 3 电源电路 主要由 发光二极管 电阻 导线组成 其发光二极管主要 是观察电源是否一直保持稳定以及通电是否正常 采用的是 5V 直流稳压电源对整 个系统进行供电 4 数码管显示电路 数码管采用的是两个 4 位 1 体的共阳极数码管 P0 口 接段控线 并加接限流电阻 P2 口接位控线 并加接三极管 以加大负载电流 提 高显示亮度 数码管显示电路采用动态显示方式 5 键盘电路 主要由 4 个按键和电阻组成 由于我们采用的是独立式键盘 使用的是低电平有效 为了确保为低电平有效 所有的键盘必须接上拉电阻 具体 的设计是 P1 口的 P1 0 作为启动 停止键 P1 1 作为功能键 P1 2 作为连加 1 键 P1 3 作为连减 1 键 2 2 数字电子钟电路总原理图 电路总原理图见附录 A 2 3 PCB 图 PCB 图见附录 B 2 4 数字电子钟的元器件清单 数字电子钟的元器件单见附录 C 4 3 数字电子钟的软件系统的设计 3 1 单片机资源使用情况 根据实际和需要 本次设计选用定时器 0 做时钟定时 按方式 1 工作 每隔 50ms 溢出中断一次 计满 20 次为止 P0 0 P0 7 段控线 接 LED 的显示段 a b c d e f g dp P2 0 P2 7 位控线 LED7 LED6 LE5 LED4 LED3 LED2 LED1 LED0 使用定时器 计数器 0 定时功能 工作方式 1 提供 50 毫秒的定时时间 以中断方 式工作 计满 20 次即得到秒计时单位 3 2 软件系统各模块功能介绍 1 主程序 主要建立堆栈和对 PSW 清零 显示 P 2 时钟运行程序 对定时器设置计数初值 开启定时器和中断 并调显示程 序显示时钟的运行情况 3 时钟调整程序 关定时器 调键盘扫描程序 对时钟的时 分 秒进行加 减的调整 4 键盘扫描程序 读 P1 口的数据 把按键的状态输入单片机 5 显示程序 把存放在显示缓冲区里的时钟数据通过查表得到所对应的段控 码送到数码管上 以使数码管正确的显示时间 6 中断服务程序 进行计时操作用于完成对时 分 秒的加减操作 以使电 子钟能够正常运行 7 时钟加 1 程序 使时钟时 分 或者秒完成加 1 的操作 5 3 3 软件系统各程序模块流程图 电子钟主程序程序流程框图如图 2 所示 图 2 电子钟主程序程序流程框图 开始 程序初始化 显示 判A键是否按下 设置定时 计数器初值 开定时器和中断 调显示子程序 判S3是否按下 关定时器 调键盘扫描子程序 是否有键按下 S3按下 选择时或分 或秒 加一 减一 S4按下 S6按下 S5按下 时清零 到24h到60s到60min 秒清零 分清零 N N Y Y N N N NN NN N N N Y YY Y Y Y Y Y Y Y 6 中断服务程序流程图如图 3 所示 图 3 中断服务程序流程图 显示流程框图如图 4 所示 键盘扫描程序流程图如图 5 所示 开始 保护现场 选择寄存器组 重置计数初值 中断次数减1 分清零 秒加1 分加1 秒清零 中断次数是否满20次 恢复现场 结束 秒是否到60s 分是否满60min 时加1 时清零 时是否到24h N Y Y Y N N Y 7 图 4 显示程序流程图 图 5 键盘扫描程序流程图 3 4 软件系统程序清单 程序清单见附录 D 开始 是否有键按下 调显示程序去抖动 保存键值 按键是否已释放 结束 调显示程序 N Y Y 是否有键按下 N N Y 开始 保护现场 选择寄存器组 查表取段控码 送位控码 送段控码 延时 改变位控码 改变段控码 是否到数码管最高位 恢复现场 结束 N Y 8 4 设计总结 4 1 数字电子钟使用说明 该电子钟上电或按键复位后能自动显示系统提示符 P 进入时钟准备状态 第一次按电子钟启动 调整键即 S3 电子钟从 0 时 0 分 0 秒开始运行 进入时钟运 行状态 再次按 S3 时钟停止运行 电子钟进入时钟调整状态 此时可利用各调 整键即 S4 选择调整小时还是分钟还是秒钟 S5 键为加一键 S6 为减一键 由于 我们采用的是连加调整固可按住键盘不放对时间进行调整 调整结束后可按启动 调 整键即 S3 再次进入时钟运行状态 4 2 设计结论 在本次设计中 我觉得重点和难点在于如何对电子钟进行时间的调整 对电子 钟的调整有多种方案 选择在设计了个加 1 键和减 1 键基础上 在这次设计中 关 键是利用定时器中断来对时钟计时 利用定时器中断 一旦定时器中断请求已产生 立即跳往中断服务程序 只要给定时器初值初始化恰当 计时产生的误差可以忽略 当在设计中还有很多地方有局限性 虽然实现了随意选择时 分 秒进行调整 但 是不能实现整点报时的功能扩展 4 3 实物图及误差分析 1 实物图见附录 E 2 误差分析产生时间误差额度原因主要有软件和硬件两个方面 软件方面 是由中断程序中的指令执行时间导致误差的产生 对定时器 T0 定时 50ms 每中断 一次 对相应的单元加一 判断满 20 次就产生一秒的基准时间 在中断程序中 中断响应时间需要一定的机器周期 这种误差可以通过调整定时器 0 所装的初值来 弥补 硬件方面主要是晶振不够精确使得基本的机器周期不对 这种误差很小 可以 买比较好的器材来弥补 还值得提到的就是 信号在硬件线路传输产生的延时可以 使时钟变慢 4 4 设计体会 本次课程设计虽然功能已完成了指导书的要求 但还存在很多不足之处 其重 点和难点就是软件系统程序的编写 虽然分开几种程序模块来写没有太大问题 但 是 程序串在一起就不行了 需要使用 Keil 软件反复调试 并把生成的代码写入芯 片 反复调试 9 通过这次课程设计让我明白一点就是课程设计一定要学好理论知识 同时要经 过实践来检验知识 硬件方面的设计是在老师的监督安排下顺利完成的 动手从画原理图到 PCB 图 然后转印 腐蚀以及焊元器件一路做过来收获很多 明白了制作实物的大概流 程 通过一学期的单片机学习 一步步从硬件到软件 学了不少 但是知道的越多 感觉不知道的地方越多 但设计过程中还是受益匪浅的 学到了很多书本上没有的 东西 比如动手能力 克服困难的毅力 10 结束语 课程设计是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻炼实践能力的重要环节 是对学生实际工作能力的具体训练和考察过程 通过这 次的单片机课设 加深了对单片机理论知识的理解 并锻炼了编写程序的能力 具 备了单片机简单程序的基本设计能力和基本调试能力 在设计程序之前 要对所用单片机芯片的内部结构有一个系统的了解 知道该 用到单片机的哪些资源 要有一个清晰的思路和一个完整的程序流程图 不要妄想 一次就将整个程序设计好 反复修改 不断改进 是程序设计的必经之路 回顾起此次单片机课程设计 至今我仍感慨颇多 从编程到实物验证 在 这段日子里 可以说得是苦多于甜 但是可以学到很多很多的的东西 同时不仅可 以巩固了以前所学过的知识 而且学到了很多在书本上所没有学到过的知识 通 过这次课程设计使我懂得了理论与实际相结合是很重要的 只有理论知识是远 远不够的 只有把所学的理论知识与实践相结合起来 从理论中得出结论 才能 真正为社会服务 从而提高自己的实际动手能力和独立思考的能力 11 致 谢 在本次课程设计中遇到了许多困难和问题 但好在都在老师和同学的帮助下解 决了 在此要感谢凌云老师 没有您的帮助和指导 我的课程设计难以成功 正是 你的悉心教导和不厌其烦的解释给了我前进的方向和动力 让我顺利的完成此次课 程设计 同时也要感谢我的同学们 你们的热情帮助是这次课程设计不可或缺的因 素 再次感谢可亲可敬的凌云老师和热情耐心的同学们 12 参考文献 1 李广弟 朱月秀 等 单片机基础 M 北京 北京航空航天大学出版社 2007 Li Guangdi Zhu Yuexiu et al microcontroller based on M Beijing Beijing Aerospace University Press 2007 in Chinese 2 张洪润 兰清华 单片机原理与应用 M 北京 清华大学出版社 1997 Zhanghong Run Lan Qinghua microcomputer application technology tutorial M Beijing Tsinghua University Press 1997 in Chinese 3 马忠梅 单片机 C 程序设计 M 北京 北京航空航天大学出版社 2007 Ma Zhongmei microcontroller C programming M Beijing Beijing Aerospace University Press 2007 in Chinese 13 附录 附 录 A 电路原理图 14 附 录 B PCB 图 15 附 录 C 元器件清单 元器件名称规 格数 目 AT89S52单片机40P1 AT89S52单片机芯片锁紧座40P1 四位一体共阳数码管2 四位一体共阳数码管插座40P1 74HC57320P1 74HC573芯片插座20P1 晶振12MHz1 发光二极管9 单排插针40P3 三极管90121 蜂鸣器1 小按键10 下载口座子1 六脚按键电源开关1 USB 电源线1 USB 电源线插座1 电阻2001 电阻4708 电阻1K4 电解电容22uf2 瓷片电容33pf2 排阻10k4 排阻4701 短路冒3 杜邦线8P1 PCB 板子1 固定螺钉螺帽3mm4 USB 下载线无需安装驱动程序1 16 附 录 D 程序清单 项目名称 数字电子钟 设计者名称 李熔钢 指导老师 凌云老师 设计时间 2014 12 30 功能 上电后数码管就全部显示 P 字符 S3 为启动 停止键 S4 为功能键键 S5 为加一键 S6 为减一键 在系统提示符状态下 只有按启动键 停止键才能开启 电子钟 电子钟进入运行状态 再次按下启动键 停止键 电子钟进入调整状态 此时 连加一键 连减一键 功能选择键才可以工作 调整结束后 按下启动键 停止键 电子钟由调整状态返回运行状态 紧跟着以调整以后的时间运行 时间是 24 小时制 显示范围 0 到 23 小时 0 到 59 分 0 到 59 秒 时 分 秒之间自设分 隔符 使用说明 P1 口连接独立式键盘 P0 口 P2 口分别控制数码管位和段 include include delay h include display h include key h define uchar unsigned char define uint unsigned int uchar num 0 v a b c i signed char hour min sec 显示缓冲数组 存放显示信息的字形码的序号 uchar find code 8 函数名 set find 17 功能 设置缓冲数组初始值 调用函数 无 调用数组 find code 输入参数 无 输出参数 无 说明 按照程序定义额段选数组 按照须显示段选数 相应的设置缓冲数组的初 始值 void set find m0 m1 m2 m3 m4 m5 m6 m7 find code 0 m0 find code 1 m1 find code 2 m2 find code 3 m3 find code 4 m4 find code 5 m5 find code 6 m6 find code 7 m7 主函数 void main EA 1 打开总中断使能位 ET0 1 打开定时器 0 使能位 TMOD 0 x01 设置定时 0 为工作方式 TH0 0 x3c 设置定时 0 为 50ms 计数初值 TL0 0 xb0 v key 调键扫描函数 set find 17 17 17 17 17 17 17 17 设置缓冲数组初始值 P while 1 等待中断 display 调显示函数 switch v 18 case 0 x00 display v key break case 0 x01 b 1 a if a 1 TR0 1 if a 2 a 0 TR0 0 set find sec 10 sec 10 20 min 10 min 10 20 hour 10 hour 10 display v key break case 0 x02 if a 0 if c 4 c 1 set find sec 10 sec 10 20 min 10 min 10 20 hour 10 hour 10 display v key break case 0 x04 if a 0 if hour 24 hour 0 19 if c 2 min if min 60 min 0 if c 3 sec if sec 60 min 0 set find sec 10 sec 10 20 min 10 min 10 20 hour 10 hour 10 display v key break case 0 x08 if a 0 if hour 1 hour 23 if c 2 min if min 1 min 59 if c 3 20 sec if sec 1 sec 59 set find sec 10 sec 10 20 min 10 min 10 20 hour 10 hour 10 v key break default if b 1 set find sec 10 sec 10 20 min 10 min 10 20 hour 10 hour 10 display v key break while a 0 for i 0 i 50i display v key set find sec 10 sec 10 20 min 10 min 10 20 21 21 for i 0 i 50i display v key 21 break while a 0 for i 0 i 50i display v key set find sec 10 sec 10 20 21 21 20 hour 10 hour 10 for i 0 i 50i display v key break while a 0 for i 0 i 50i display v key set find 21 21 20 min 10 min 10 20 hour 10 hour 10 for i 0 i 50i display v key break 22 中断服务程序 void timer 0 interrupt 1 num if num 20 num 0 sec if sec 60 min sec 0 if min 60 hour min 0 if hour 24 hour 0 TH0 0 x3c 重新设置定时 0 为 50ms 的计数初值 TL0 0 xb0 find code 0 sec 10 find code 1 sec 10 find code 2 20 find code 3 min 10 find code 4 min 10 find code 5 20 23 find code 6 hour 10 find code 7 hour 10 Display 程序程序 include include display h include delay h define uchar unsigned char define uint unsigned int 显示缓冲数组 存放显示信息的字型码的序号 u

温馨提示

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

评论

0/150

提交评论