单片机C51时钟的设计报告_第1页
单片机C51时钟的设计报告_第2页
单片机C51时钟的设计报告_第3页
单片机C51时钟的设计报告_第4页
单片机C51时钟的设计报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

单片机课程设计报告 设计名称 单片机电子时钟的设计 班级 电信 08 级 1 班 学号 姓名 指导教师 一 课程设计的目的 单片计算机即单片微型计算机 Single Chip Microcomputer 是 集 CPU RAM ROM 定时 计数和多种接 口于一体的微控制器 他体积小 成本低 功能强 广泛应用于智能产品和工业自动化上 而 51 单片机 是各单片机中最为典型和最有代表性的一种 这次课程设计通过对它的学习 应用 从而达到学习 设计 开发软 硬的能力 二 课程设计的具体要求 该课程设计是利用 MCS 51 单片机内部的定时 计数器 中断系统 以及行列键盘和 LED 显示器等部 件 设计一个单片机电子时钟 设计的电子时钟通过数码管显示 并能通过按键实现设置时间和暂停 启 动控制等 用定时 计数器 T0 工作于定时 采用方式 1 对 12MHZ 的系统时钟进行定时计数 初值设为 XXYY 自己计算 形成定时时间为 50ms 用片内 RAM 的 7BH 单元对 50ms 计数 计 20 次产生秒计数器 78H 单元加 1 秒计数器加到 60 则分计数器 79H 单元加 1 分计数器加到 60 则时计数器 7AH 单元加 1 时 计数器加到 24 则时计数器清 0 然后把秒 分 时计数器分成十位和个位放到 8 个数码管的显示缓冲区 通过数码管显示出来 显示格式为小时十位 小时个位 分十位 分个位 秒十位 秒个位 在处理过程 中加上了按键判断程序 能对按键处理 三 MCS 51 单片机系统简介 40 个引脚按引脚功能大致可分 为 4 个种类 电源 时钟 控制和 I O 引脚 电源 VCC 芯片电源 接 5V VSS 接地端 注 用万用表 测试单片机引脚 电压一般为 0v 或者 5v 这是标准的 TTL 电平 但有 时候在单 片机程序正在工作 时候测试结果并不是这个值而是介于 0v 5v 之间 其实这是万用表的 响应速度 没这么快而已 在某一 个瞬间单片机引脚 电压仍保持在 0v 或者 5v 时钟 XTAL1 XTAL2 晶体振荡电路反相输入端和输出端 控制线 控制线共有 4 根 ALE PROG 地址锁存允许 片内 EPROM 编程脉冲 ALE 功能 用 来锁存 P0 口送出的低 8 位地址 PROG 功能 片 内有 EPROM 的芯片 在 EPROM 编程期间 此引脚 输入编程脉冲 PSEN 外 ROM 读选通信号 RST VPD 复位 备用电源 RST Reset 功能 复位信号输入端 VPD 功能 在 Vcc 掉电情况下 接备用电源 EA Vpp 内外 ROM 选择 片内 EPROM 编程电源 EA 功能 内外 ROM 选择端 Vpp 功能 片 内有 EPROM 的芯片 在 EPROM 编程期间 施加编程电源 Vpp I O 线 80C51 共有 4 个 8 位并行 I O 端口 P0 P1 P2 P3 口 共 32 个引脚 P3 口还具有第二功能 用于特殊信 号输入输出和控制信 号 属控制总线 四 MCS 51 单片机内部定时器 计数器 中断系统简介 定时 计数器是单片机中重要的功能模块之一 在检测 控制和智能仪器等设备中经常用它来定时 MCS 51 系列中 51 子系列有 2 个 16 位的可编程定时 计数器 T0 和 T1 每个定时计数器既可以对系统时钟计数 实现定时 也可以对外部信号计数实现计数功能 通过编程设定来实现 T0 有 4 种工作方式 T1 有 3 种 工作方式 T2 有 3 种工作方式 可通过编程设定 每个定时 计数器计数事件到时产生溢出 使相应的溢 出位置位 溢出可通过查询或中断方式处理 2 中断系统简介 MCS 51 单片机提供 5 个硬件中断源 2 个外部中断源 INT0 P3 2 和 INT1 P3 3 2 个定时 计数器 T0 和 T1 的 溢出中断 TF0 和 TF1 1 个串行口发送 TI 和接收 RI 中断 T0 中断服务程序流程图如图 11 3 五 键盘和 LED 数码管显示器简介 本系统共用 8 个数码管 从右到左依次显示秒个位 秒十位 横线 分个位 分十位 横线 时个位和时 十位 采用软件译码动态显示 按键处理设置为 如没有按键 则时钟正常走时 当按下 K0 按键时 进 入调分状态 时钟停止走动 按 K1 可 K2 按键可进行加 1 或减 1 操作 继续按 K0 键可分别进行分和小时 的调整 最后按 K0 键将退出调整状态 时钟开始计时运行 六 基本原理 1 定时器 计数器 T0 定时器 计数器 T0 用于时间计时 选择方式 1 重复定时 定时时间设为 50ms 定时时间到则 中断 在中断服务程序中用一个计数器对 50ms 计数 计 20 次则对秒单元加 1 秒单元加到 60 则对分单元 加 1 同时秒单元清 0 分单元加到 60 则对时单元加 1 同时分单元清 0 时单元加到 24 则对时单元清 0 标志一天时间计满 在对各单元计数的同时 把它们的值放到存储单元的指定位置 七 硬件电路 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 P1 0 1 P1 1 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 U1 80C51 R3 5 1k R4 5 1k R5 5 1k VCC K2 K1 K0 GND X1 CRYSTAL C2 47uF C3 47uF K0键为模式选择键 按第一次暂停 设小时 按第二次暂停 设分 按第三次重新开始走动 K1为加1键 K2为减1健 八 软件程序流程及代码 1 T0 中断服务程序流程图 开始 现场保护 重置初值 启动下一个 50ms 50ms 计数器加 1 秒单元加 1 50ms 计数器清 0 秒写入秒个位和秒十位 50ms 计数器 20 否 是 分单元加 1 秒单元清 0 分写 入分个位和分十位 秒单元 60 时单元加 1 分单元清 0 时写 入时个位和时十位 分单元 60 时单元清 0 时单元 24 中断返回 否 否 否 是 是 是 开始 T0 T1 设为 16 位计数模式 允许 T0 中断 调用显示子程序 进入功能程序 按下键否 否 是 2 主程序流程图 3 程序代码 ORG 0000H LJMP START ORG 000BH 定时器 计数器 T0 中断程序入口 LJMP INTT0 主程序 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 循环扫描显示 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 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 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 九 设计制作流程 1 在 PROTEUS 中设计硬件 PROTEUS 软件使用过程如下 1 选择元器件 2 放置元器件 3 连线 4 添加程序 5 运行仿真 元器件清单如下 单片机 80C52 按键 BUTTON 电阻 RES 电容 CAP 晶振 CRYSTAL LED 数码管 7SEG MPX8 CA BLUE CA 共阳 CC 共阴 地 GRAND 电源 POWER 2 在 KEIL51 中编写程序 编译 连接形成 HEX 文件 3 在 PROTEUS 中把 HEX 文件加载到单片机芯片上 4 运行仿真看结果 十 总结 这次课程设计 有很多的心得体会 有关于单片机方面

温馨提示

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

评论

0/150

提交评论