




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计说明书 1 目录 1 引言 2 1 1 设计任务与要求 2 1 2 数字钟得实用价值和理论意义 2 1 3 设计所用器件简介 3 1 3 1 单片机简介 3 1 3 2 1602LCD 的基本参数及引脚功能 3 2 设计内容 7 3 程序设计及硬件电路 8 3 1 原理图 protues 8 3 2 原理图 protel 8 4 仿真结果 9 5 收获 体会和建议 11 6 参考文献 11 7 附 源程序 12 单片机课程设计说明书 2 1 1 引言引言 近年来随着计算机在社会领域的渗透和大规模集成电路的发展 单片机的应用正在 不断地走向深入 由于它具有功能强 体积小 功耗低 价格便宜 工作可靠 使用方 便等特点 因此特别适合于与控制有关的系统 越来越广泛地应用于自动控制 智能化 仪器 仪表 数据采集 军工产品以及家用电器等各个领域 单片机往往是作为一个核 心部件来使用 在根据具体硬件结构 以及针对具体应用对象特点的软件结合 以作完 善 单片机模块中最常见的是数字钟 数字钟是一种用数字电路技术实现时 分 秒计 时的装置 与机械式时钟相比具有更高的准确性和直观性 且无机械装置 具有更更长 的使用寿命 因此得到了广泛的使用 数字钟是采用数字电路实现对时 分 秒数字显示 的计时装置 广泛用于个人家庭 车站 码头办公室等公共场所 成为人们日常生活中不可 少的必需品 由于数字集成电路的发展和石英晶体振荡器的广泛应用 使得数字钟的精度 远远超过老式钟表 钟表的数字化给人们生产生活带来了极大的方便 而且大大地扩展 了钟表原先的报时功能 诸如定时自动报警 按时自动打铃 时间程序自动控制 定时 广播 自动起闭路灯 定时开关烘箱 通断动力设备 甚至各种定时电气的自动启用等 所有这些 都是以钟表数字化为基础的 因此 研究数字钟及扩大其应用 有着非常现 实的意义 1 11 1 设计任务与要求设计任务与要求 1 利用 AT89C51 定时器设计一个电子时钟 2 显示格式位 XX XX XX 从左向右分 别是 时 分 秒 3 显示部分用 1602LCD 显示屏 4 具有四个调整键 K0 K1 K2 K3 5 按 下相应的键可以调整时 分 秒 6 调整到哪一位哪一位闪烁 7 在 1602 上方显示 年 月 日 星期 1 21 2 数字钟得实用价值和理论意义数字钟得实用价值和理论意义 数字钟是采用数字电路实现对时 分 秒数字显示的计时装置 广泛用于个人家庭 车站 码头办公室等公共场所 成为人们日常生活中不可少的必需品 由于数字集成电路的发展 和石英晶体振荡器的广泛应用 使得数字钟的精度 远远超过老式钟表 钟表的数字化给 人们生产生活带来了极大的方便 而且大大地扩展了钟表原先的报时功能 诸如定时自 动报警 按时自动打铃 时间程序自动控制 定时广播 自动起闭路灯 定时开关烘箱 通断动力设备 甚至各种定时电气的自动启用等 所有这些 都是以钟表数字化为基础 的 因此 研究数字钟及扩大其应用 有着非常现实的意义 1 31 3 设计所用器件简介设计所用器件简介 1 3 11 3 1 单片机简介单片机简介 单片机课程设计说明书 3 MCS51 是指由美国 INTEL 公司 对了 就是大名鼎鼎的 INTEL 生产的一系列单片机的总称 这 一系列单片机包括了好些品种 如 8031 8051 8751 8032 8052 8752 等 其中 8051 是最早最典 型的产品 该系列其它单片机都是在 8051 的基础上进行功能的增 减 改变而来的 所以人们习惯于 用 8051 来称呼 MCS51 系列单片机 而 8031 是前些年在我国最流行的单片机 所以很多场合会看到 8031 的名称 INTEL 公司将 MCS51 的核心技术授权给了很多其它公司 所以有很多公司在做以 8051 为 核心的单片机 当然 功能或多或少有些改变 以满足不同的需求 其中 89C51 就是这几年在我国非 常流行的单片机 它是由美国 ATMEL 公司开发生产的 以后我们将用 89C51 89S51 来完成一系列的实 验 MCS 51MCS 51 系列单片机系列单片机 MCS 51 系列单片机分为两大系列 即 51 子系列与 52 子系列 5151 子系列 子系列 基本型 根据片内 ROM 的配置 对应的芯片为 8031 8051 8751 8951 5252 子系列 子系列 增强型 根据片内 ROM 的配置 对应的芯片为 8032 8052 8752 8952 这两大系列单片机的主要硬件特性如下表 上表中可以看到 8031 8031 8032 80C32 片内是没有 ROM 的 对应着上表看 我们可以发现 51 系列的单片机的 RAM 大小为 128B 52 系列的 RAM 大小为 256B 51 系列的计数器为两个 16 位 的 52 系列的计数器为三个 16 位计数器 51 系列的中断源为 5 个 52 系列的中断源为 6 个 1 3 21 3 2 1602LCD1602LCD 的基本参数及引脚功能的基本参数及引脚功能 1602LCD 分为带背光和不带背光两种 基控制器大部分为 HD44780 带背光的比不带背光的厚 是否 带背光在应用中并无差别 两者尺寸差别如下图 10 54 所示 图 10 54 1602LCD 尺寸图 1602LCD 主要技术参数 显示容量 16 2 个字符 单片机课程设计说明书 4 芯片工作电压 4 5 5 5V 工作电流 2 0mA 5 0V 模块最佳工作电压 5 0V 字符尺寸 2 95 4 35 W H mm 引脚功能说明 1602LCD 采用标准的 14 脚 无背光 或 16 脚 带背光 接口 各引脚接口说明如表 10 13 所示 编号符号引脚说明编号符号引脚说明 1VSS电源地9D2数据 2VDD电源正极10D3数据 3VL液晶显示偏压11D4数据 4RS数据 命令选择12D5数据 5R W读 写选择13D6数据 6E使能信号14D7数据 7D0数据15BLA背光源正极 8D1数据16BLK背光源负极 引脚接口说明表 第 1 脚 VSS 为地电源 第 2 脚 VDD 接 5V 正电源 第 3 脚 VL 为液晶显示器对比度调整端 接正电源时对比度最弱 接地时对比度最高 对比度过高 时会产生 鬼影 使用时可以通过一个 10K 的电位器调整对比度 第 4 脚 RS 为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄存器 第 5 脚 R W 为读写信号线 高电平时进行读操作 低电平时进行写操作 当 RS 和 R W 共同为低电 平时可以写入指令或者显示地址 当 RS 为低电平 R W 为高电平时可以读忙信号 当 RS 为高电平 R W 为低电平时可以写入数据 第 6 脚 E 端为使能端 当 E 端由高电平跳变成低电平时 液晶模块执行命令 第 7 14 脚 D0 D7 为 8 位双向数据线 第 15 脚 背光源正极 第 16 脚 背光源负极 单片机课程设计说明书 5 1602LCD 的指令说明及时序的指令说明及时序 1602 液晶模块内部的控制器共有 11 条控制指令 如表所示 序号指令RSR WD7D6D5D4D3D2D1D0 1清显示0000000001 2光标返回000000001 3置输入模式00000001I DS 4显示开 关控制0000001DCB 5光标或字符移位000001S CR L 6置功能00001DLNF 7置字符发生存贮器地址0001字符发生存贮器地址 8置数据存贮器地址001显示数据存贮器地址 9读忙标志或地址01BF 计数器地址 10 写数到 CGRAM 或 DDRAM 10 要写的数据内容 11 从 CGRAM 或 DDRAM 读 数 11 读出的数据内容 控制命令表 1602 液晶模块的读写操作 屏幕和光标的操作都是通过指令编程来实现的 说明 1 为高电平 0 为 低电平 指令 1 清显示 指令码 01H 光标复位到地址 00H 位置 指令 2 光标复位 光标返回到地址 00H 指令 3 光标和显示模式设置 I D 光标移动方向 高电平右移 低电平左移 S 屏幕上所有文字是否 左移或者右移 高电平表示有效 低电平则无效 指令 4 显示开关控制 D 控制整体显示的开与关 高电平表示开显示 低电平表示关显示 C 控 制光标的开与关 高电平表示有光标 低电平表示无光标 B 控制光标是否闪烁 高电平闪烁 低电 平不闪烁 指令 5 光标或显示移位 S C 高电平时移动显示的文字 低电平时移动光标 单片机课程设计说明书 6 指令 6 功能设置命令 DL 高电平时为 4 位总线 低电平时为 8 位总线 N 低电平时为单行显示 高电平时双行显示 F 低电平时显示 5x7 的点阵字符 高电平时显示 5x10 的点阵字符 指令 7 字符发生器 RAM 地址设置 指令 8 DDRAM 地址设置 指令 9 读忙信号和光标地址 BF 为忙标志位 高电平表示忙 此时模块不能接收命令或者数据 如 果为低电平表示不忙 指令 10 写数据 指令 11 读数据 与 HD44780 相兼容的芯片时序表如下 读状态输入RS L R W H E H输出D0 D7 状态字 写指令输入RS L R W L D0 D7 指令码 E 高脉 冲 输出无 读数据输入RS H R W H E H输出D0 D7 数据 写数据输入RS H R W L D0 D7 数据 E 高脉冲输出无 2 2 设计内容设计内容 ATC89C51 单片机 lcd1602 显示器 按键 K0 K1 K2 K3 位驱动 单片机课程设计说明书 7 3 3 程序设计及硬件电路 程序设计及硬件电路 程序流程图 3 13 1 原理图 原理图 protuesprotues D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D0 D1 D2 D3 D4 D5 D6 D7 E RS RW 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 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 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 U1 AT89C51 X1 CRYSTAL C1 33pF C2 33pF C3 1nF R1 240 R2 2k D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD3 LM016L RV1 1k 单片机课程设计说明书 8 3 23 2 原理图 原理图 protelprotel 4 4 仿真结果仿真结果 上电后按下上电后按下 K0 开始运行 开始运行 按下按下 K3 秒闪烁秒闪烁 单片机课程设计说明书 9 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD3 LM016L RV1 1k 按下按下 K1 闪烁闪烁 减一 减一 05 调到调到 04 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD3 LM016L RV1 1k 按下按下 K2 加一 加一 04 调到调到 05 根据按下根据按下 K0 的次数可以改变闪烁的位置进行分 时 年 月 日 星期的的次数可以改变闪烁的位置进行分 时 年 月 日 星期的 调整调整 调整分调整分 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LM016L 调整时调整时 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LM016L 调整年调整年 单片机课程设计说明书 10 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LM016L 调整月调整月 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LM016L 调整日调整日 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LM016L 调整星期调整星期 D0 D1 D2 D3 D4 D5 D6 D7 RS E RW D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LM016L 单片机课程设计说明书 11 5 5 收获 体会和建议收获 体会和建议 单片机数字钟可以说是一个较小的系统 开始时我们觉得通过 C 语言较容易实现 确实 只实现一个能够正常走时并且能够校时的数字钟是比较容易的 但我们想错了 毕竟是第一次从总体角度来考虑地完成一个小系统 好多的实际性的问题我们没有考虑 所以造成我们最终设计的数字钟精度不高 并且存在好多问题 当然问题多了对我们来 说是好事 这样我们在解决更多问题时学会更多解决问题的方法 对我们也算是长长经 验吧 通过这次对数字钟的设计 让我了解了设计电路的程序 也让我了解了关于数字钟 的原理与设计理念 要设计一个完整的电路总要经过多次的失败才能成功的 在设计中 遇到了许多匪夷所思的问题 一个人就是想破脑子也做不出来 这时候 就需要去询问 老师 和同学探讨 共同解决出现的问题 也许就是因为老师的一句提醒 同学的探讨 中就会豁然开朗 从这次设计中我也觉得自己还对单片机的功能了解只是个皮毛 单片机强大的功能 还等着我们去开发 通过这次设计 不仅使我学到了知识 让我对电路设计有了大概的 了解 其次 还体会到了团队精神 总而言之 这次设计是成功的 6 6 参考文献参考文献 1 杨文龙 单片机原理及应用 西安 西安电子科技大学出版社 1993 2 李朝青 单片机原理及接口技术 北京 北京航空航天大学出版社 2003 3 胡汉才 单片机原理及系统设计 北京 清华大学出版社 2003 4 杨忠煌 黄博俊 李文昌 单芯片 8051 实务与应用 北京 中国水利水电出版社 2001 7 7 附 源程序附 源程序 include define uchar unsigned char define uint unsigned int uchar code table1 2011 00 00 MON 星期一 MON 星期二 TUE 星期三 WED 星期四 THU 星 期五 FRI 星期六 SAT 星期天 SUN uchar code table2 00 00 00 uchar code table 0 1 2 3 4 5 6 7 8 9 uchar num count miao fen xiao week day month year shi ge flag num1 sbit LCD RW P3 7 sbit LCD RS P3 5 sbit LCD E P3 4 sbit k1 P1 0 选择 单片机课程设计说明书 12 sbit k2 P1 1 增加 sbit k3 P1 2 减少 sbit k4 P1 3 开始 void delay uint z uint x y for x z x 0 x for y 110 y 0 y lcd 显示 void init void 初始化函数 void write com uchar command 写指令函数 void write date uchar dat 写数据函数 void LCD disp char uchar x uchar y uchar dat 在某个屏幕位置上显示一个字符 X 0 16 y 1 2 void LCD check busy void 检查忙函数 我没用到此函数 因为通过率极低 void delay n40us uint n 延时函数 初始化函数 void init void write com 0 x38 设置 8 位格式 2 行 5x7 write com 0 x0c 整体显示 关光标 不闪烁 write com 0 x06 设定输入方式 增量不移位 write com 0 x01 清除屏幕显示 delay n40us 100 实践证明 用 for 循环 200 次就能可靠完成清屏指令 写指令函数 void write com uchar dat P2 dat LCD RS 0 指令 LCD RW 0 写入 LCD E 1 允许 LCD E 0 delay n40us 1 实践证明 我的 LCD1602 上 用 for 循环 1 次就能完成普通写指令 写数据函数 void write date uchar dat P2 dat LCD RS 1 数据 LCD RW 0 写入 LCD E 1 允许 LCD E 0 delay n40us 1 单片机课程设计说明书 13 延时函数 void delay n40us uint n uint i uchar j for i n i 0 i for j 0 j 2 j 在这个延时循环函数中我只做了 2 次循环 实践证明我的 LCD1602 上普通的指令只需 1 次循环 就能可靠完成 void main init write com 0 x80 初始化 for num 0 num 15 num 显示年月日 write date table1 num delay 5 write com 0 x80 0 x40 for num 0 num 15 num 显示时间 write date table2 num delay 5 while 1 if count 20 计时的数 count 0 miao if miao 60 miao 0 fen if fen 60 fen 0 xiao if xiao 24 xiao 0 week if week 8 week 0 switch week case 1 write com 0 x80 0 x0c write date M delay 5 write date O delay 5 write date N break case 2 write com 0 x80 0 x0c write date T delay 5 write date U delay 5 write date E break case 3 write com 0 x80 0 x0c write date W delay 5 write date E delay 5 单片机课程设计说明书 14 write date D break case 4 write com 0 x80 0 x0c write date T delay 5 write date H delay 5 write date U break case 5 write com 0 x80 0 x0c write date F delay 5 write date R delay 5 write date I break case 6 write com 0 x80 0 x0c write date S delay 5 write date T delay 5 write date A break case 7 write com 0 x80 0 x0c write date S delay 5 write date U delay 5 write date N break day if month 2 0 month if month 13 month 1 year shi year 10 ge year 10 write com 0 x80 0 x04 write date table ge write com 0 x80 0 x03 write date table shi shi month 10 ge month 10 write com 0 x80 0 x07 write date table ge write com 0 x80 0 x06 write date table shi shi day 10 ge day 10 write com 0 x80 0 x0a write date table ge write com 0 x80 0 x09 write date table shi shi xiao 10 ge xiao 10 write com 0 x80 0 x45 write date table ge write com 0 x80 0 x44 write date table shi shi fen 10 ge fen 10 单片机课程设计说明书 15 write com 0 x80 0 x48 write date table ge write com 0 x80 0 x47 write date table shi shi miao 10 ge miao 10 write com 0 x80 0 x4b write date table ge write com 0 x80 0 x4a write date table shi 显示目前的年月日和具体时间 if k1 0 按键 K1 按下 delay 10 if k1 0 TR0 0 flag num1 0 if flag 8 flag 1 switch flag case 1 write com 0 x80 0 x4b write com 0 x0f break case 2 write com 0 x80 0 x48 write com 0 x0f break case 3 write com 0 x80 0 x45 write com 0 x0f break case 4 write com 0 x80 0 x0a write com 0 x0f break case 5 write com 0 x80 0 x07 write com 0 x0f break case 6 write com 0 x80 0 x04 write com 0 x0f break case 7 write com 0 x80 0 x0c write com 0 x0f break 时间停止运行 确定调整时间的位置 while k1 消抖 if k2 0 K2 键按下 delay 10 if k2 0 num1 if num1 60 num1 0 60 为周期 switch flag case 1 miao num1 shi miao 10 ge miao 10 write com 0 x80 0 x4b 地址 write date table ge 数据 write com 0 x80 0 x4a write date table shi break case 2 fen num1 shi fen 10 ge fen 10 write com 0 x80 0 x48 write date table ge write com 0 x80 0 x47 单片机课程设计说明书 16 write date table shi break case 3 xiao num1 shi xiao 10 ge xiao 10 write com 0 x80 0 x45 write date table ge write com 0 x80 0 x44 write date table shi break case 4 day num1 shi day 10 ge day 10 write com 0 x80 0 x0a write date table ge write com 0 x80 0 x09 write date table shi break case 5 month num1 shi month 10 ge month 10 write com 0 x80 0 x07 write date table ge write com 0 x80 0 x06 write date table shi break case 6 year num1 shi year 10 ge year 10 write com 0 x80 0 x04 write date table ge write com 0 x80 0 x03 write date table shi break case 7 week num1 switch week case 1 write com 0 x80 0 x0c write date M delay 5 write date O delay 5 write date N break case 2 write com 0 x80 0 x0c write date T delay 5 write date U delay 5 write date E break case 3 write com 0 x80 0 x0c write date W delay 5 write date E delay 5 write date D break case 4 write com 0 x80 0 x0c write date T delay 5 write date H delay 5 write date U break case 5 write com 0 x80 0 x0c write date F delay 5 write date R delay 5 write date I break case 6 write com 0 x80 0 x0c write date S delay 5 write date T delay 5 write date A break case 7 write com 0 x80 0 x0c write date S delay 5 write date U delay 5 write date N break break 是时间加 单片机课程设计说明书 17 while k2 if k3 0 K3 按下 delay 10 if k3 0 if num1 0 num1 60 num1 switch flag case 1 miao num1 shi miao 10 ge miao 10 write com 0 x80 0 x4b write date table ge write com 0 x80 0 x4a write date table shi break case 2 fen num1 shi fen 10 ge fen 10 write com 0 x80 0 x48 write date table ge write com 0 x80 0 x47 write date table shi break case 3 xiao num1 shi xiao 10 ge xiao 10 write com 0 x80 0 x45 write date table ge write com 0 x80 0 x44 write date table shi break case 4 day num1 shi day 10 ge
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年产后恢复师中级考试模拟试题及解析
- 2025年二级建筑师资格认证考试模拟试题及答案详解
- 退役军人优待政策课件
- 幼儿园营养员岗位职责及要求
- 创伤患者压疮护理紧急措施
- 熟料烧结工数字化技能考核试卷及答案
- 沪科版数学八年级上册家校合作计划
- 智慧工地施工进度计划和信息化管理措施
- 稀土废液回收工作业指导书
- 建筑工地食堂安全事故应急预案和应急措施
- 园区卫生清洁管理办法
- 秋季养生课件中医
- 申报书范例《毛泽东思想和中国特色社会主义理论体系概论》在线课程申报书课件
- 闵行区2024-2025学年下学期七年级数学期末考试试卷及答案(上海新教材沪教版)
- DB1331∕T 034-2022 建筑与市政工程无障碍设计图集
- 中信集团协同管理制度
- 军事信息技术课件及教案
- 2025至2030年中国重组人促红素行业市场调查分析及投资发展潜力报告
- 2025-2030中国引航船行业市场发展趋势与前景展望战略研究报告
- DBJ04-T495-2025 《发震断裂区域建筑抗震设计标准》
- 桥梁工程钢筋损耗优化策略
评论
0/150
提交评论