




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书 第 页 单片机原理 及应用课程设计 电子时钟设计 院 系 名称 信 息 工 程 学 院 专 业 班 级 XX 普 本 电 信 X 班 学 号 XXXXXXX 学 生 姓 名 XXX 指 导 教 师 201X 年 X 月 XX 日 课程设计说明书 第 I 页 电子时钟设计 摘 要 在我们身边 单片机随处可见 只是它藏得比较隐蔽 需要我们细心观察才可以发 现 其实 计算器 MP3 手机 电脑 还有家里用的电饭锅 电冰箱 洗衣机等家 电设备 他们的核心部件都是单片机 只是性能不一样而已 当然电子时钟也是单片 机的使用领域之一 生活中很多地方需要使用电子时钟 比如说上体育课跑步时用的 表 广告牌上的倒计时等等 那些电子时钟看起来功能很强大 就是由一块单片机 加上几个按钮及其他电子元器件组成的 本课程设计就是用一块 89C51 单片机和 LCD 液晶显示屏及其他元器件设计出一个电子时钟 用单片机的定时器来产生时钟信号 用液晶显示屏来显示时钟的变化 通过扫描几个按键来控制时钟 把这几个模块的程 序及原理图设计好后组合在一起就成了一个电子时钟 关键词 AT89C51 单片机 LCD 液晶显示 定时器 课程设计说明书 第 II 页 目 录 1 绪论 1 1 1 要求及主要内容 1 1 2 系统的组成框图及工作原理 1 2 89C51 单片机简介 2 3 系统硬件设计 2 3 1 时钟复位电路 3 3 2 键盘电路 4 3 3 数码显示电路 4 3 4 蜂鸣器电路 5 4 系统软件设计 5 4 1 计时时钟实现的基本方法及步骤 6 4 2 主程序模块设计 6 4 3 计时子程序模块的实现 7 4 4 时钟设定子程序模块的实现 8 4 5 程序说明 9 5 汇编语言源程序 10 6 整机电路的设计 13 总 结 15 致 谢 16 参考文献 17 课程设计说明书 第 0 页 1 绪论 1 1 要求及主要内容 开机时 显示 00 00 00 的时间开始计时 能秒 分 时调节功能 能复位功能 1 确定系统设计方案 2 进行系统的硬件设计 3 完成必要的参数计算与元器件选择 4 完成应用程序设计 5 进行单元电路及应用程序设计 1 2 系统的组成框图及工作原理 图 1 系统的组成框图 电子时钟是利用单片机内部的定时器 计数器来实现的 它的处理过程 如下 首先 设定单片机内部的一个定时器 计数器工作于定时方式 对机器周期计数形成基准时间 然后用另一个定时器 计数器或软件计数的方法对基准时间计数形成秒 秒计 60 次形成 分 分计 60 次形成小时 小时计 24 次则计满一天 然后通过数码管把它们的内容在 相应位置显示出来即可 1 数码管显示可以采用静态显示方法或动态显示方法 静态显示方法需要数据锁存器 课程设计说明书 第 1 页 等硬件 接口复杂 时钟显示采用 6 个数码管 由于系统没有其他的复杂的任务处理 而且显示的时钟信息随时都可能变化 一般采用动态显示方式 动态显示方法线路相 对简单 但需动态扫描 扫描频率要大于人眼视觉暂留频率 信息看起来才稳定 译 码方式可分为软件译码和硬件译码 软件译码通过译码程序查得显示信息的字段码 硬件译码通过硬件译码器得到显示信息的字段码 实际中通常采用软件译码 在具体处理时 定时器计数器采用中断方式工作 对时钟的形成在中断服务程序中 实现 在主程序中只需对定时器计数器初始化 调用显示子程序和控制子程序 另外 为了使用方便 设计了简单的按键 可以通过按键实现时 分的调整 这样在主程序 中就加入了键盘设置子程序 2 2 AT89C51 单片机简介 如图 2 VCC 电源 GND 接地 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 当 P1 口的管脚第一次写 1 时 被定义为高阻输入 P0 能 够用于外部程 序数据存储器 它可以被定义为数据 地址的第八位 在 FIASH 编程时 P0 口作为原码输入口 当 FIASH 进行校验时 P0 输出原码 此时 P0 外部必须被拉 高 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收输出 4TTL 门电流 P1 口管脚写入 1 后 被内部上拉为高 可用作 输入 P1 口被外部下拉 为低电平时 将输出电流 这是由于内部上拉的缘故 在 FLASH 编程和校验时 P1 口作为第八位地址接收 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓 冲器可接收 输出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电阻 拉高 且作为输入 并因此作为输入时 P2 口的管脚被外部拉低 将输出电流 这是 由于内部上拉的缘故 课程设计说明书 第 2 页 图 2 89C51 单片机 3 系统硬件设计 3 1 时钟复位电路 实验板的时钟振荡源电路如图 3 所示 其中 JT 为 11 0592MHz 的晶振 改变两电 容 CB 的值即可对此晶振频率进行调节 该电路提供单片机工作所需的振荡频率 计 算定时器初值即需此晶振频率 在通信时也需知道晶振频率 以对波特率进行计算 图 3 时钟电路 如图 4 所示为实验板的复位电路 当 RESET 信号为低电平时 实验板为工作状态 当 RESET 信号为高电平时 实验板为复位或下载程序状态 由于 AT89C51 具有 ISP 的功能 即可以通过并口线直接将程序下载到单片机内 因此 AT89C51 具有两种 状态 下载程序状态和运行状态 该复位电路能实现上电自动复位 也能手动复位 课程设计说明书 第 3 页 一般复位时 RESET 应保持 20 毫秒以上高电平 此复位时间由接地电容控制 图 4 复位电路 3 2 键盘电路 如图 5 所示为阵列按键电路 各设置及转换信号由此电路输入 实验板提供了 16 个按键 由 P1 口经 SN74F244 驱动芯片 输出扩展成 4 4 的阵列按键 P1 0 P1 3 为行线 P1 4 P1 7 为列线 SN74F244 有一片选信号线 当此口线为低电平时 G A1 A4 与 Y1 Y4 接通 反之 A1 A4 与 Y1 Y4 断开 此键盘用扫描工作方式 若有键按下 则相应位端口被拉低为低电平 由于本系统 只用了 4 个按键 所以只需对 4 个按键进行扫描 扫描时 先置 P3 3 口为高电平 向 P1 口送 0EFH MOV P1 0EFH 再置 P3 3 口为低电平 读 P1 口 MOV A P1 最后判断 P1 口低 4 位哪位是低电平 若某位为低电平 则相应按键被按下 如 P1 0 为低电平 ACC 0 0 则 K1 键被按下 3 图 5 阵列按键 3 3 数码显示电路 课程设计说明书 第 4 页 如图 6 所示为数码显示电路 实验板使用了 6 个共阳数码管 P0 口为段码信号线 B1 B6 为位控线 是 P1 口经 SN74F573 反向驱动芯片 即输入为高电平 则输出为 低电平 反之则输出为高电平 该芯片也有一片选信号 C 当此信号为高电平时有效 反向得到 再由 B1 B6 控制晶体管 Q1 Q6 以达到控制每位数码管的目的 3 系统采用动态显示 先向 P0 口送第一位数码管需要显示的段码值 再给 P1 口送 0FEH 延时 1 毫秒使第一位数码管显示 又向 P0 口送第二位数码管需要显示的段码 值 P1 口送 0FDH 延时 1 毫秒 使第二位数码管显示 依次递推 直到最后一位数 码管 然后再循环 改变延时时长可以调节数码管显示的亮度 由于单片机执行速度 很快 所以看上去数码管一直亮着 3 图 6 数码显示电路 3 4 蜂鸣器电路 其硬件原理图如图 7 所示 此电路用于定时时发出提示音 SPEAKER 与 P3 2 口 相连 当 SPEAKER 输出高电平时蜂鸣器不响 而 SPEAKER 输出低电平时蜂鸣器发 出响声 只需控制 SPEAKER 输出高低电平的时间和变化频率 就可以让蜂鸣器发出 不同的声音 此电路用于产生定时器提示音 10 课程设计说明书 第 5 页 图 7 蜂鸣器电路 4 系统软件设计 数据存储单元分配如表 1 所示 表 1 数据存储单元分配 标志位单元 20H 分配如表 2 所示 表 2 标志位单元 20H 分配 4 1 计时时钟实现的基本方法及步骤 时钟的最小计时单位是秒 使用定时器的方式 1 最大的定时时间也只能达到 131 毫秒 4 可把定时器的定时时间定为 50 毫秒 这样 计数溢出 20 次即可得到时钟的最 小计时单位 秒 从秒到分 从分到时 以及日 月 年都是通过软件累加并进行比 较的方法实现的 4 系统采用模块化结构 主程序只需调用各个子程序模块即可实现相应功能 其模 块结构图如图 8 所示 课程设计说明书 第 6 页 图 8 程序各模块方框图 4 2 主程序模块设计 整个程序进行模块化设计 主程序只需调用相应的程序即可 主程序流程如图 9 所示 图 9 主程序流程图 4 3 计时子程序模块的实现 当 T0 中断时 执行本程序 因 T0 设为 50 毫秒中断 故中断 20 次为 1 秒 中断 程序分别有 20 次计数 1 秒 60 次计数 1 分 60 次计数 1 小时 24 次计数 1 天 28 29 30 31 次计数 1 个月 12 次计数 1 年 当前位到设定数值时写 0 或 1 下一位加 1 由于本世纪是 21 世纪 年位前两位是 4 的倍数 故判断闰年时只 需对年的后两位进行计算 能被 4 整除为闰年 否则为平年 年位只进行加 1 大于 99 时又重新开始 计时中断流程图如图 10 所示 课程设计说明书 第 7 页 图 10 计时子程序流程图 4 4 时钟设定子程序模块的实现 当设定时间时 断开 T0 中断 秒单元清 0 进入时 分单元设定 设定好后重装 T0 初值 开 T0 中断 流程图如图 11 所示 课程设计说明书 第 8 页 图 11 时钟设定子程流程图 4 5 程序说明 定时器初值计算及初始化 因定时器工作于方式 1 需要 50ms 的中断 所以计数初值 216 t fosc 12 65536 50 10 3 11 0592 106 12 19456 表示成十六进制为 4C00H 故 TH0 4CH TL0 00H 程序初始化时 清相应内存单元 20H 4FH 共 48 个单元 送时间 00 时 00 分 00 秒 日期 07 年 10 月 01 日 初值 送定时器 T0 T1 初值 TH0 TH1 4CH TL0 TL1 00H 特殊寄存器 SP 50H TMOD 11H 值等 13 5 汇编语言源程序 采用 6 位 LCD 软件译码动态显示程序 12 使用 AT89C51 单片机 12MHZ 晶振 P0 输出字段码 P2 口输出位选码 用共阳 LCD 数码管 P1 0 为调时位选择按键 P1 1 为加 1 键 P1 2 为减 1 键 片内 RAM 的 70H 到 77H 单元为 LED 数码管的显示缓冲区 78H 79H 7AH 分别为秒 分 小时计数单元 7BH 为 50ms 计数器 7CH 为调时按键计数器 ORG 0000H LJMP START ORG 000BH 定时器 计数器 T0 中断程序入口 LJMP INTT0 主程序 课程设计说明书 第 9 页 START MOV R0 70H MOV R7 0CH INIT MOV R0 00H INC R0 DJNZ R7 INIT MOV 72H 10 MOV 75H 10 MOV TMOD 01H MOV TL0 0B0H MOV TH0 03CH SETB EA SETB ET0 SETB TR0 START1 LCALL SCAN LCALL KEYSCAN SJMP START1 延时 1MS 子程序 DL1MS MOV R6 14H DL1 MOV R7 19H DL2 DJNZ R7 DL2 DJNZ R6 DL1 RET 延时 20MS 子程序 DL20MS ACALL SCAN ACALL SCAN ACALL SCAN RET 数码管显示程序 SCAN MOV A 78H 时间存入显示缓冲区相应位置 MOV B 0AH DIV AB MOV 71H A MOV 70H B MOV A 79H MOV B 0AH DIV AB MOV 74H A MOV 73H B MOV A 7AH MOV B 0AH DIV AB MOV 77H A MOV 76H B MOV R1 70H 循环扫描显示 课程设计说明书 第 10 页 MOV R5 80H MOV R3 08H SCAN1 MOV A R5 MOV P2 A MOV A R1 MOV DPTR TAB MOVC A A DPTR MOV P0 A MOV A R5 LCALL DL1MS INC R1 MOV A R5 RR A MOV R5 A DJNZ R3 SCAN1 MOV P2 00H MOV P0 0FFH RET TAB DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H 0BFH 0 9 的共阳极字段码 定时器 计数器 T0 中断服务程序 INTT0 PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0 0B0H MOV TH0 03CH SETB TR0 INC 7BH MOV A 7BH CJNE A 14H OUTT0 MOV 7BH 00 INC 78H MOV A 78H CJNE A 3CH OUTT0 MOV 78H 00 INC 79H MOV A 79H CJNE A 3CH OUTT0 MOV 79H 00 INC 7AH MOV A 7AH CJNE A 18H OUTT0 MOV 7AH 00 课程设计说明书 第 11 页 OUTT0 SETB ET0 POP PSW POP ACC RETI 按键处理程序 KEYSCAN CLR EA JNB P1 0 KEYSCAN0 JNB P1 1 KEYSCAN1 JNB P1 2 KEYSCAN2 KEYOUT SETB EA RET KEYSCAN0 LCALL DL20MS JB P1 0 KEYOUT WAIT0 JNB P1 0 WAIT0 INC 7CH MOV A 7CH CLR ET0 CLR TR0 CJNE A 03H KEYOUT MOV 7CH 00 SETB ET0 SETB TR0 SJMP KEYOUT KEYSCAN1 LCALL DL20MS JB P1 1 KEYOUT WAIT1 JNB P1 1 WAIT1 MOV A 7CH CJNE A 02H KSCAN11 INC 79H MOV A 79H CJNE A 3CH KEYOUT MOV 79H 00 SJMP KEYOUT KSCAN11 INC 7AH MOV A 7AH CJNE A 18H KEYOUT MOV 7AH 00 SJMP KEYOUT KEYSCAN2 LCALL DL20MS JB P1 2 KEYOUT WAIT2 JNB P1 2 WAIT2 MOV A 7CH CJNE A 02H KSCAN21 课程设计说明书 第 12 页 DEC 79H MOV A 79H CJNE A 0FFH KEYOUT MOV 79H 3BH SJMP KEYOUT KSCAN21 DEC 7AH MOV A 7AH CJNE A 0FFH KEYOUT MOV 7AH 17H SJMP KEYOUT END 6 整机电路的设计 总体电路图如图 13 所示 图 13 整机电路 课程设计说明书 第 13 页 总 结 通过这次的课程设计 我了解相关软件的使用 用软件练习电子时钟的设计 不 仅能够掌握此软件的使用方法 而且复习了原来的汇编语言 对电子时钟的原理和电 子时钟的汇编程序有了更进一步的理解 软件实现了把抽象的东西具体化 把理论和 实际结合起来 更利于对单片机程序的理解掌握 并且 在这次的课程设计中 我知 道了 要自己熟练地掌握一个软件 不能光看老师的演示过程 得自己去学习这个软 件 明白每一个步骤的确切含义 自己逐步的亲手去进行演示 这样才能变成自己的 知识来熟练应用 总之 在设计过程中学到了许多 作为现代大学生的我们 如果仅停留在以往的 层次上 是远远跟不上时代的步伐
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行黄南藏族自治州同仁市2025秋招笔试EPI能力测试题专练及答案
- 农发行沧州市南皮县2025秋招笔试专业知识题专练及答案
- 农发行温州市乐清市2025秋招数据分析师笔试题及答案
- 国家能源常德市临澧县2025秋招半结构化面试模拟30问及答案
- 昌吉吉木萨尔县中储粮2025秋招面试典型题目及答案
- 宝鸡金台区中储粮2025秋招笔试题库含答案
- 2025年春季漳州能源校园招聘全面启动模拟试卷及答案详解(名校卷)
- 2025年安徽中医药大学招聘教学、科研人员37人考前自测高频考点模拟试题及答案详解(有一套)
- 2025年滁州南谯城市投资控股集团有限公司招聘10人考前自测高频考点模拟试题及参考答案详解1套
- 2025年黄山市黄山区医疗卫生急需紧缺人才招聘引进5人模拟试卷带答案详解
- 高考英语1600个必考高频词汇
- 法院调令申请书范本
- GB/T 23451-2023建筑用轻质隔墙条板
- 驻足思考瞬间整理思路并有力表达完整版
- 第二章 盛唐诗歌边塞诗派公开课一等奖课件省赛课获奖课件
- 企业数字化转型的国外研究现状
- 滚筒干燥机设计毕业设计
- 第六讲-关于学术规范课件
- 真空包装机作业指导书
- 法学类专业课复习资料-马工程《宪法学》重点整理
- 2023年上海16区高考一模英语听力合集附音频含答案含原文
评论
0/150
提交评论