1、物理与电子工程学院单片机原理与接口技术课程设计报告书设计题目: 字符式 LCD 移动显示设计 专 业: 班 级: 学生姓名: 学 号: 指导教师: 2015 年 11 月 16 日物理与电子工程学院 2012 级本科课程设计I专业: 班级: 学生姓名 学号课程名称 单片机原理与接口技 术 设计题目 字符式 LCD 移动显示设计设计目的、主要内容(参数、方法)及要求设计目的:掌握由单片机控制的硬件电路和软件程序的设计方法。掌握 Keil uVision 编程软件和 Proteus Professional 仿真软件的使用方法。设计主要内容及要求:1、 1602LCD 的显示与 STC12C5A6
2、0S2 的应用2、掌握 1602LCD 的显示原理3、用软件的形式控制 1602LCD4、实现 1602LCD 的字符移动显示工作量 2 周时间,每天 3 学时,共计 42 学时进度安排第 1 天:明确课程设计的目的和意义,根据课程设计要求查找相关资料第 2-3 天:查询 STC12C5A60S2 和 1602LCD 资料第 4-5 天:设置硬件电路第 6-7 天:用 Proteus 绘制电路图第 8-10 天:用 Keil 编写程序,完成软件设计第 11-12 天:应用 Proteus 仿真第 13-14 天:编写课程设计报告主要参考资料1李全利.单片机原理及接口技术(第二版)M.北京:高等
3、教育出版社,2009.259-2742郭天祥.51 单片机 C 语言教程M.北京:电子工业出版社,2009指导教师签字 教研室主任签字物理与电子工程学院 2012 级本科课程设计II摘 要本次课程设计用到的单片机是 STC12C5A60S2,以 STC12C5A60S2 为控制核心,以 LCD1602 液晶为显示模块。通过编程的方式让 LCD1602 液晶显示字符,采用移屏显示。首先把所要显示的字符写在 LCD1602 的地址为 10 到 27 和 50 到 67的隐藏显示区域,然后经过移屏指令把所要显示的字符移动到 LCD1602 的地址为 00 到 0F 和 40 到 4F 的显示区域。关
4、键词:STC12C5A60S2 ;1602;移屏显示物理与电子工程学院 2012 级本科课程设计III目 录1 STC12C5A60S2 简介 .11.1 STC1602 的性能 11.2 引脚动能 .22 1602LCD 简介 33 硬件设计 64 软件设计 75 仿真 96 心得体会 9参 考 文 献 10附 录 .11物理与电子工程学院 2012 级本科课程设计11 STC12C5A60S2 简介1.1 STC1602 的性能本次课程用 STC12C5A60S2 作为控制核心,下面是有关 STC12C5A60S2 的介绍:STC12C5A60S2/AD/PWM 系列单片机是宏晶科技生产的
5、单时钟/机器周期(T1)的单片机,是高速/功耗/超强抗干扰的新一代 8051 单片机,指令代码完全兼容传统 8051,但速度快 8-12 倍。内部集成 MAX810 专用复位电路,2 路PWM,8 路高速 10 位 A/D 转换(250k/s) ,针对电机控制,强干扰场合。(1) 增强型 8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051;(2) 工作电压:STC12C5A60S2 系列工作电压:5.5V-3.3V(5V 单片机)(3) 工作频率范围:0-35MHZ,相当于普通 8051 的 0420MHZ;(4) 用户应用程序空间 8K/16K/20K/32K/40K/48
6、K/52K/60K/62K 字节;(5) 片上集成 1280 字节 RAM;(6) 通用 I/O 口(36/40/44 个) ,复位后为:准双向口/弱上拉(普通 8051传统 I/O 口) ,可设置成四种模式:准双向口 /弱上拉,推挽/强上拉,仅为输入/高阻, 开漏,每个 I/O 口驱动能力均可达到 20ma;(7) ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片;(8) 有 EERROM 功能(STC12C5A60S2/AD/PWM 无内部 EERROM) ;(9) 看门狗:(10)内部集成
7、MAX810 专用复位电路(外部晶体 12M 以下时,复位脚可以直接 1K 电阻到地) ;(11)外部掉电检测电路:在 P4.6 口有一个抵押门槛比较器,5V 单片机为1.32V,误差为+/-5%,3.3V 单片机,误差为+/-3%;(12) 共有 4 个 16 位定时器,2 个时钟输出口,可由 T0 的溢出在 P3.4/T0输出时钟,可由 T1 的溢出在 P3.5/T1 输出时钟;(13) 外部中断 I/O 口 7 路,PWM(2 路)/PCA(可编程计数器阵列 2 路);(14) A/D 转换,10 位精度 ADC,共 8 路,转换速度可达 250K/S;(15) 通用全双工异步串行口(U
8、ART) ,由于 STC12 系列是高速的 8051,可在用定时器或 PCA 软件实现多串口;(16) STC12C5A60S2 系列有双串口,后缀有 S2 标志的才有双串口,RXD2/P1.2,TXD/P1.3;工作温度范围:-40+85(工业级)/0+75(商业级) ;物理与电子工程学院 2012 级本科课程设计2(17) 封装:PDIP-40,LQFP-44,LQFP-48,I/O 口不够时,可用到 2 到 3 根普通 I/O 口线外接 74HC164/165/595(均可级联)来扩展 I/O 口,还可以用 A/D键盘扫描来节省 I/O 口,或者双用 CPU,三线通信,还多了串口。1.2
9、 引脚动能STC12C5A60S2 的引脚如图 1-1 所示。图 1-1 STC12C5A60S2 引脚图VCC:供电电压GND:接地P0 口:P0 口为一个 8 位漏极开路双向 I/O 口,每个管脚可吸收 8TTL 门电流。当 PI 口管脚写“1” 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/ 地址的第八位。在 FLASH 编程时,P0 口作为源码输入口,当 FASH 进行校验时, P0 输出原码,此时 P0 外部电位必须拉高:P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接受输出 4TTL 门电流。P1 口管脚写入“1”
10、后,电位被内部上拉为高,可用作输入,P1 口碑内部下拉为低电平时,将输入电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接受:P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接受,输入 4 个 TTL 门电流,当 P2 口碑写“1”时,其管脚电位被内部上拉电阻拉高,物理与电子工程学院 2012 级本科课程设计3且作为输入。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接受输出 4 个TTL 门电流。当 P3 口写入 “1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3 口将输
11、出电流,也是由于上拉的缘故。P3.0 RXD(串行输入口)P3.1 TXD(串行输出口 )P3.2 INT0(外部中断 0)P3.3 INT1(外部中断 1)P3.4 T0(计时器 0 外部输入)P3.5 T1(计时器 1 外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)RST:复位输入ALE/PROG:当访问外部存储器时,地址锁存器允许的输出电平用于锁存地址的低位字节。PSEN:外部程序存储器的选通信号。EA/VPP:当 EA 保持低电平时,访问外部 ROM;注意加密方式 1 时,EA 将内部锁定为 RESET;当 EA 端保持高电平时,访问内部 ROM
12、。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源;XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2:来自反向振荡器的输出。2 1602LCD 简介本次设计以 1602LCD 作为显示屏,下面是关于 1602LCD 的简介:LCD1602 是专用的字母、符号、数字显示液晶,本次课程设计我们以长沙太阳人电子有限公司的字符型 1602 作为显示器作介绍,如图 2-1、2-2 所示。物理与电子工程学院 2012 级本科课程设计4图 2-1 1602LCD 实物图图 2-2 1602LCD 实物图1602LCD 的引脚图如图 2-3。图 2-3 1602LCD 引脚图1
13、602LCD 采用标准的 14 脚或着 16 接口,其中 14 脚无背光,16 脚有背光;各个引脚说明如表 2-1 所示。表 2-1 1602LCD 引脚引脚编号 符号 引脚说明 引脚编号 符号 引脚说明1 VSS 电源负极 9 D2 数据2 VDD 电源正极 10 D3 数据3 VL 液晶显示偏压 11 D4 数据4 RS 数据/命令 12 D5 数据5 R/W 读/写 13 D6 数据6 E 使能端 14 D7 数据物理与电子工程学院 2012 级本科课程设计57 D0 数据 15 BLA 背光源正极8 D1 数据 16 BLK 背光源负极1602LCD 的 RAM 地址映射如图 2-4
14、所示图 2-4 1602LCD 的 RAM 地址映射1602LCD 的 RAM 地址 00H-0FH 和 40H-4FH 是外部显示地址,10H-27H 和50H-67H 是内部显示地址。也就是说如果我们把所要显示的内容写在 00H-0FH和 40H-4FH 任何一个地址,我们都可以直接观察得到,而把所要显示的内容写在 10H-27H 和 50H-67H 任何一个地址我们是观察不到的,是隐藏的,只有经过移位指令把它们移到 00H-0FH 和 40H-4FH 才能观察得到。如果我们想在现在 1602 的第一行第一个地址写上字符,必须使光标定位在第一行第一个地址,实际的地址应该是 80H+00H,
15、因为写入显示地址时要求最高位 D7 始终为高电平 1,所以再原来的地址上加 80H;若要在第二行最后一个地址写上字符,同样的道理,地址应是 80H+4FH。1602LCD 模块内部的 CGROM 已经存储了 160 个不同的点阵字符图形,如图所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“A”,本次课程设计用的是数组,所以用不到字符代码。点阵字符代码如表 2-2 所示。物理与电子工程学院 2012 级本科课程
16、设计6表 2-2 1602LCD 点阵字符代码1602LCD 读写操作时序如图 2-5 所示。图 2-5 1602LCD 读写操作时序图物理与电子工程学院 2012 级本科课程设计73 硬件设计(1)系统的原理图如图 3-1 所示。图 3-1 系统原理图单片机 STC12C5A60S2 的 P0 口接 1602LCD 的数据端 D0-D7,P0 口外加上拉电阻;P3.0、P3.1、P3.2 分别接 1602LCD 的 E、RW、RS 引脚;单片机的第 9 引脚作为复位引脚,采用按键复位;最小系统采用的晶振频率为 12MHZ。(2)最小系统电路图如图 3-2 所示。图 3-2 最小系统单片机的
17、XTAL1 和 XTAL2 引脚外接 12MHZ 晶振与 30PF 瓷片电容,RST 作复位引脚,ALE 接+5V 电压。物理与电子工程学院 2012 级本科课程设计84 软件设计软件设计流程图如图 4-1 所示。图 4-1 软件流程图首先液晶初始化,然后把第一个要写的字符串写在液晶的 ARM 的 10H-27H上,检测是否写完第一个字符串,如果未写完,则继续执行书写第一个字符串NYNY1602LCD 初始化写第一行字符第一行是否写完写第二行字符第二行是否写完整屏左移 16 位结束开始物理与电子工程学院 2012 级本科课程设计9的命令,否则执行下一个命令写第二个字符串;第二个字符串写在液晶的
18、 ARM的 50H-67H 上,再检测第二个字符串是否写完,若未写完则继续填写,否则执行整屏左移命令把要显示的数据移到 RAM 为 00-0F 和 40-4F 的区域,指令停止在此。5 仿真仿真用的是现在最流行的软件 Proteus,仿真效果如图 5-1 所示。图 5-1 仿真效果图因为在 Proteus 里面没有 STC12C5A60S2 单片机,所以仿真用 AT89C51 单片机来代替 STC125A60S2 单片机。下载程序到单片机 AT89C51,按下 Proteus 仿真运行按钮,仿真原理图开始运行,仿真效果会如图 5-1 一样,要显示的数据从液晶的右边左移到液晶的左边并显示“JIN
19、SHICHUAN AI WANGTINGLING”字符样式。6 心得体会以前自己学习过液晶显示方面的知识,那时候我学的是 1286LCD,1286LCD能显示字母、阿拉伯数字、符号和汉字。本次采用 1602LCD 显示字符,虽然难度不大,但是我也不能大意,因为在软件设计方面,如果不小心谨慎就很容易出错,比如说给液晶写数据的时候,使能端 E 要从高电平变成低电平的过程要有一个时间的延时,大概是 5ms 左右,如果不延时有可能会出错。此次的设计液晶移动显示我没有用到检测液晶忙等功能,而是简单是用数组来代替,在检测液晶是否忙这方面的知识我学的不够理想,以后的生活学习中要加强,打造一个全新的自己。物理
20、与电子工程学院 2012 级本科课程设计10参 考 文 献1李全利.单片机原理及接口技术(第二版)M.北京:高等教育出版社,2009.259-2742郭天祥.51 单片机 C 语言教程M.北京:电子工业出版社,2009物理与电子工程学院 2012 级本科课程设计11附 录程序清单#include#define uchar unsigned char#define uint unsigned intsbit E=P30;sbit RW=P31;sbit RS=P32;void well_bb(uchar bb);void well_aa(uchar aa);uchar code table=“J
21、INSHICHUAN AI“;uchar code table1=“WANGTINGLING“;uchar num;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-); void well_aa(uchar aa)RS=0;P0=aa;delay(5);物理与电子工程学院 2012 级本科课程设计12E=1;delay(5);E=0;void well_bb(uchar bb)RS=1;P0=bb;delay(5);E=1;delay(5);E=0; void init()RW=0;E=0;well_aa(0x38);well_a
22、a(0x0c);well_aa(0x06);well_aa(0x01);well_aa(0x80+0x10); void main()init();for(num=0;numx80%)中等(80%x70%)及格(70%x60%)不及格(x60%)项目 分值参考标准 参考标准 参考标准 参考标准 参考标准评分平时考核 20学习态度认真,科学作风严谨,严格保证设计时间并按任务书中规定的进度开展各项工作。学习态度比较认真,科学作风良好,能按期圆满完成任务书规定的任务。学习态度尚好,遵守组织纪律,基本保证设计时间,按期完成各项工作。学习态度尚可,能遵守组织纪律,能按期完成任务。学习马虎,纪律涣散,工作
23、作风不严谨,不能保证设计时间和进度。报告内容组织书写20结构严谨,逻辑性强,层次清晰,语言准确,文字流畅,完全符合规范化要求,书写工整或用计算机打印成文;图纸非常工整、清晰。结构合理,符合逻辑,文章层次分明,语言准确,文字流畅,符合规范化要求,书写工整或用计算机打印成文;图纸工整、清晰。结构合理,层次较为分明,文理通顺,基本达到规范化要求,书写比较工整;图纸比较工整、清晰。结构基本合理,逻辑基本清楚,文字尚通顺,勉强达到规范化要求;图纸比较工整。内容空泛,结构混乱,文字表达不清,错别字较多,达不到规范化要求;图纸不工整或不清晰。课程设计报告技术水平20设计合理、理论分析与计算正确,文献查阅能力强、引用合理、调查调研非常合理、可信。设计合理、理论分析与计算正确,文献引用、调查调研比较合理、可信。设计合理,理论分析与计算基本正确,主要文献引用、调查调研比较可信。设计基本合理,理论分析与计算无大错。设计不合理,理论分析与计算有原则错误,文献引用、调查调研有较大的问题。物理与电子工程学院 2012 级本科课程设计15仿真/制作 40实验数据准确,有很强的实际动手能力和计算机应用能力。实验数据比较准确,有较强的实际动手能力和计算机应用能力。实验数据比较准确,有一定的实际动手能力。实验数据无大错。实验数据不可靠,实际动手能力差。指导教师签名 指导教师评定成绩