




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MS 基于 1602 字符型液晶 显示器的显示系统 姓名 杨越姓名 杨越 班级 电子班级 电子 11 1 学号 学号 110400104 1 实习目的 1 了解飞思卡尔单片机的基本原理 掌握其基本的工作流程 2 了解 LCD1602 的基本原理及用法 3 能够熟练使用 CodeWarrior 软件编写 C 语言程序 使用 BDM 仿真器下载 程序 4 能够熟练焊接电路板 二 实验设备与器件 CodeWarrior 软件 BDM 仿真器 万用电路板 飞思卡尔单片机 LCD1602 液晶显示器 三 实验内容 内容 利用飞思卡尔单片机制作基于 1602 字符液晶显示器的显示系统 要求 用四个按键控制 按下第一个按键显示 1 按下第二个按键显示 2 以此类推 1 LCD1602 液晶显示器的原理 1602 共 16 个管脚 但是编程用到的主要管 脚不过三个 分别为 RS 数据命令选择端 R W 读写选择端 E 使能信号 以后编程便主要围绕这三个管脚展开进行初始化 写命令 写数据 以下具体阐述这三个管脚 RS 为寄存器选择 高电平选择数据寄存器 低电平选择指令寄存器 R W 为读写选择 高电平进行读操作 低电平进行写操作 E 端为使能端 后面和时序联系在一起 除此外 D0 D7 分别为 8 位双向数据线 操作时序 RSR W操作说明 00写入指令码 D0 D7 01读取输出的 D0 D7 状态字 10写入数据 D0 D7 11从 D0 D7 读取数据 注 关于 E H 脉冲 开始时初始化 E 为 0 然后置 E 为 1 再清 0 读取状态字时 注意 D7 位 D7 1 禁止读写操作 D7 0 允许读写操作 所以对控制器每次进行读写操作前 必须进行读写检测 即后面的读忙子 程序 指令集 LCD 1602 初始化指令小结 0 x38 设置 16 2 显示 5 7 点阵 8 位数据接口 0 x01 清屏 0 x0F 开显示 显示光标 光标闪烁 0 x08 只开显示 0 x0e 开显示 显示光标 光标不闪烁 0 x0c 开显示 不显示光标 0 x06 地址加 1 当写入数据的时候光标右移 0 x02 地址计数器 AC 0 此时地址为 0 x80 光标归原点 但是 DDRAM 中断 内容不变 0 x18 光标和显示一起向左移动 2 飞思卡尔单片机的功能及特点 MC9S12XS128MC9S12XS128 是 16 位单片机 由 16 位中 央处理单元 CPU12X 128KB 程序 Flash P lash 8KB RAM 8KB 数据 Flash D lash 组成片内存储器 主要功能模块包括 内部存储器 内部 PLL 锁相环模块 2 个异步串口通讯 SCI 1 个串行外设接口 SPI MSCAN 模块 1 个 8 通道输入 输出比较定时器模块 TIM 周期中断定时器模块 PIT 16 通道 A D 转换模块 ADC 1 个 8 通道脉冲宽度调制模块 PWM 输入 输出数字 I O 口 本次设计中主要用到 PORTA PORTB 端口 PORTA PORTA 为通用 I O 口 共 8 个 作为通用数字 I O 口使用 未集成特 殊功 能 主要配置寄存器有 数据寄存器 PORTA 数据方向寄存 DDRA 上拉电阻控 制寄存器 PUCR 和驱动控制寄存器 RDR a a 数据寄存器 PORTA 通过写 1 0 使单片机对应引脚输出高低电平 或通过读取数据寄存器获得对应 引脚的高低电平值 例 PORTA PB0 1 b b 数据方向寄存器 DDRA DDRA 寄存器配置引脚为输出口还是输入口 0 输入口 1 输出口 MCU 复位后 DDRA 值为 0 x00 引脚默认为输入口 例 DDRA 0 xFF 配置 PORTA 口为输出 PORTB PORTB 为通用数字 I O 口 共 8 个 其使用与 PORTA 基本一样 主 要配置寄存器有 数据寄存器 PORTB 数据方向寄存 DDRB 上拉电阻控制寄存 器 PUCR 和驱动控制寄存器 RDR 与 PORTA PORTB PORTE PORTK 共用 a a 数据寄存器 PORTB b b 数据方向寄存器 DDRB 四 原理图 器 件 说 明 L C D 1 6 0 2 1 6 管 脚 2 个 排 阻 4 个 1 0 k 电 阻 一 个 1 K 电 阻 飞 思 卡 尔 芯 片 6 4 管 脚 管脚连接 VSSGND DB6PB6 VCCVCCDB7PB7 VEEGNDAVCC RSPA0KGND RWPA1K1PA4 EPA2K2PA5 DB0PB0K4PA6 DB1PB1K4PA7 DB2PB2 DB3PB3 DB4PB4 DB5PB5 五 流程图 否 是 六 程序设计 1 void PLL Init void 内部锁相环模块 单片机使用 PLL 功能能够获得更高 的总线频率 这对于需要提高单片机运行速度的应用场合非常必要 2 void LCD init void 初始化 LCD1602 液晶显示屏 3 void LCD write command uchar dat 写指令 4 void LCD write data uchar dat 写数据 5 void LCD disp char uchar x uchar y uchar dat 显示字符 6 void main void 主函数 include common defines and macros include derivative h derivative specific definitions include MC9S12XS128 h 锁相环设置 开始 初始化 LCD 写指令 写数据 显示字符 是否有键按下 unsigned char a 0 unsigned char b 0 unsigned char c 0 unsigned char d 0 void PLL Init void PLLCLK 2 OSCCLK SYNR 1 REFDV 1 锁相环时钟 2 16 2 1 1 1 48MHz REFDV 1 总线时钟 48 2 24MHz SYNR 2 while CRGFLG CLKSEL 0 x80 选定锁相环时钟 define LCD DB PORTB define LCD RS PORTA PA0 define LCD RW PORTA PA1 define LCD E PORTA PA2 void LCD init void 初始化函数 void LCD write command uchar command 写指令函数 void LCD write data 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 n25us uint n 延时函数 初始化函数 void LCD init void LCD write command 0 x38 设置 8 位格式 2 行 5x7 LCD write command 0 x0c 整体显示 关光标 不闪烁 LCD write command 0 x06 设定输入方式 增量不移位 LCD write command 0 x01 清除屏幕显示 delay n25us 10 实践证明 我的 LCD1602 上 用 for 循环 200 次就能可靠完成清屏指令 LCD write command 0 x06 LCD write command 0 x0c 写指令函数 void LCD write command uchar dat LCD DB dat delay n25us 1 LCD RS 0 delay n25us 1 指令 LCD RW 0 delay n25us 1 写入 LCD E 1 delay n25us 1 允许 LCD E 0 delay n25us 1 实践证明 我的 LCD1602 上 用 for 循环 1 次就能完成普通写指令 写数据函数 void LCD write data uchar dat LCD DB dat delay n25us 1 LCD RS 1 delay n25us 1 数据 LCD RW 0 delay n25us 1 写入 LCD E 1 delay n25us 1 允许 LCD E 0 delay n25us 1 delay n25us 1 显示一个字符函数 void LCD disp char uchar x uchar y uchar dat uchar address if y 1 address 0 x80 x else address 0 xc0 x LCD write command address LCD write data dat 检查忙函数 void LCD check busy 实践证明 在我的 LCD1602 上 检查忙指令通过率极低 以 至于不能正常使用 LCD 因此我没有再 用检查忙函数 而使 do 用了延时的方法 延时还是非常好用的 我试了一下 用 LCD E 0 for 循环作延时 普通指令只要 1 次循就可完 成 清屏指令 LCD RS 0 要用 200 次循环便能完成 LCD RW 1 LCD DB 0 xff LCD E 1 while LCD DB 7 1 延时函数 void delay n25us uint n uint i 0 uchar j 0 for i n i 0 i for j 0 j 2 j 在这个延时循环函数中我只做了 2 次循环 实践证明我的 LCD1602 上普通的指令只 需 1 次循环就能可靠完成 void check key void 判断按键是否可以控制单片机 如果键入正常 则单片机上的 LED 会亮 if PORTAB PA4 PORTE PE5 0 a 1 else if PORTAB PA5 PORTE PE5 0 a 2 else if PORTAB PA6 PORTE PE5 0 a 3 else if PORTAB PA7 PORTE PE5 0 a 4 else PORTE PE5 1 主函数 void port init DDRB 0XFF DDRA 0XFF PORTB 0XFF void main void PLL Init port init LCD init DDRE DDRE5 1 PORTE PE5 1 不亮 DDRA DDRA0 1 DDRA DDRA1 1 DDRA DDRA2 1 DDRA DDRA3 1 DDRA DDRA4 0 SET PORTA I O INPUT DDRA DDRA5 0 DDRA DDRA6 0 DDRA DDRA7 0 PORTAB PA4 1 PORTAB PA5 1 PORTAB PA6 1 PORTAB PA7 1 LCD disp char 4 2 1 for FEED COP feeds the dog check key 检查按键 while 1 if a 1 delay 10 延时去抖 if a 1 LCD disp char 0 2 1 在 LCD 第二行第一位输出 1 else if a 2 delay 10 延时去抖 else if a 2 LCD disp char 1 2 2 在 LCD 第二行第二位输出 2 else if a 3 delay 10 延时去抖 else if a 3 LCD disp char 2 2 3 在 LCD 第二行第 3 位输出 3 else if a 4 延时去抖 delay 10 else if a 4 LCD disp char 3 2 4 在 LCD 第二行第 4 位输出 4 else LCD disp char 12 1 0 LCD disp char 2 1 2 loop forever please make sure that you never leave main 七 调试过程 1 使用 Altium 画出电路图 在电路图设计过程中 注明所用器件名 称 规格 注意管脚的连接 尽可能让电路原理图规范 正确 方便看图焊接 的工作 2 测量电路焊接是否正常 焊接好电路板后 首先用万用表测试是 否连通 将表笔两端分别置于连接的两管脚 将万用表开关置于分贝档 若有 响声 则电路已经联通 分别测试该设计所用的所有管脚 3 检验输入 I0 用万用表分别检测 4 个按键 看按键是否起到输入作 用 将万用表开关置于电压档 分别测试按键按下前后的单片机电压 若按键 前电压为 5v 按键后为 0 则说明按键起到了输入的作用 4 输出 IO 端口 输出口主要检验 lcd1602 的显示情况 首先用万用表 测试 检查 LCD1602 管脚链接是否有问题 注 LCD1602 的 VEE 串联一个电位 器后接地 通过调节电位器 调节显示对比度 否则即使初始化程序正确 字 符也可能显示不出来 5 程序 程序中主要注意 Lcd1602 显示部分 因为 LCD1602 相对于单片 机速度比较慢 所以在编写程序时应注意加延时 八 遇到的问题及解决办法 1 初次焊接 LCD1602 后 屏幕不亮 首先检查了电路板的焊接 及查阅了 LCD1602 的数据手册 因为使用的 1602 为 16 个管脚 需要将 BLK 接电源 2 BDM 仿真器下载不上程序 重新安装 BDM 仿真器 确认文件已拷入相应的路径 3 重复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CERU 0025-2024西樵面料企业生态设计管理指南
- 高中修辞手法比喻的课件
- 高三高原反应课件
- 2024学年嘉兴市高三语文上学期期中考试卷附答案解析
- 高一生物必修二卵母细胞课件
- 高一女性的课件
- 2025秋苏教版(2024)小学科学二年级上册(全册)教学设计(附目录P123)
- 互联网投资担保合同签订流程及风险控制策略
- 离职员工知识产权保护及竞业限制协议范本
- 生态环境局等行政协调的生态修复项目监理合同
- 路灯安装工程项目实施的重点、难点和解决方案
- 2024年中国蚕桑产业发展现状及促进蚕桑产业发展的措施分析
- 《北京市道路桥梁试验检测费用定额》
- 2024年下半年湖北黄冈黄梅县事业单位招聘“三支一扶”服务期满人员17人易考易错模拟试题(共500题)试卷后附参考答案
- 《小儿神经系统查体》课件
- 《初级会计实务》(第五版) 第三章 流动资产
- ps课件教学课件
- 人教版六年级上册道德与法治第一单元测试卷及答案
- 农业行政执法工作指南
- 法律行业 律师事务所品牌建设方案
- 高职计算机专业人工智能技术应用与开发
评论
0/150
提交评论