- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机的LCD汉字显示
单片机课程设计
基于单片机的 LCD汉字显示
姓名:贾一超
班级:电1101-4班
学号:
专业:电气工程及其自动化
第一章 概述
1.1课程设计任务
课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象.?其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。?
1.2 LCD显示技术
液晶的物理特性是:当通电时导通,排列变的有秩序,使光线容易通过;不通电时排列混乱,阻止光线通过。液晶显示器的显像原理,是将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来,若加上彩色滤光片,则可显示彩色影像。液晶显示器便是根据此电压有无,使面板达到显示效果。
1.3单片机及LCD选型?
此设计是通过AT89C51单片机来控制LCD来显示一些要求的汉字,如石家庄铁道大学、电气工程学院、单片机等字样。对于LCD,此设计使用128×64的LCD,同时由于LGM12641BSIR LCD的资料比较容易得到,且比较通俗易懂,便于快速上手,所以就选用LGM12641BSIR LCD用来作为显示。
第二章 硬件设计
2.1主要芯片介绍
单片机AT89C51
AT89C51是ALTEM公司的一种高效微控制器,它将多功能8位cpu和闪烁存储器组合在单个芯片中,带有4k字节可编程可擦除只读存储器,有128Byte片内RAM。并且与工业标准的MCS-51指令集和输出管脚想兼容,灵活运用于各种控制领域。
液晶模块LGM12641BSIR LCD
液晶模块 128x64点阵的汉字图形液晶显示模块,可显示汉字及图片
VSS:电源地。
VDD: +5V电源输入。
VO:液晶显示对比度调节。
RS:数据命令选择端。高电平数据,低电平命令。
RW:读写选择端。高电平读信号,低电平写信号。
E:读写使能端。
DB0-DB7:数据总线。
PSB:并串选择端口。高电平并行传输,低电平串行传输。
RST:复位端,低电平有效。
L+:背光源正端(+5V)。
L-:背光源负端。
2.2 模块电路设计
电源部分
通过USB接口给整个电路提供+5V的电压驱动电路。
晶振部分
如图所示两根线分别连接AT89C51的XTAL1与XTAL2引脚为系统提供的12MHz的时钟频率。
液晶模块
连接AT89CT1的RST端,单片机上电后会自动复位,当软件运行出现未知错误需要复位时,按下开关S2本电路在RST端产生高电平,系统复位,程序重新开始执行。
单片机AT89C51引脚
电路原理图
第三章 软件设计
3.1 程序流程设计 程序实现功能:本设计可以实现16x16汉字显示程序流程图如图5所示:
3.2 C语言程序设计
#includereg51.h
#includeabsacc.h
typedef unsigned char uchar;
typedef unsigned int uint;
#define LLCD_CMD_WR PBYTE[0x10]
#define LLCD_CMD_RD PBYTE[0x11]
#define LLCD_DATA_WR PBYTE[0x12]
#define LLCD_DATA_RD PBYTE[0x13]
#define RLCD_CMD_WR PBYTE[0x20]
#define RLCD_CMD_RD PBYTE[0x21]
#define RLCD_DATA_WR PBYTE[0x22]
#define RLCD_DATA_RD PBYTE[0x23]
sbit busy=P0^1;
uchar code hz0[]=
{
0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00,
0x00,0x20,0x10,0x8C,0xA7,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0xA4,0x24,0x04,0x04,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0
原创力文档


文档评论(0)