{
WriteData(tab[i]); //显示第一行字符
mydelay(50); //每显示一个字符后停留一会,越过液晶的“忙”状态
}
mydelay(50); WriteCMD(0x01);
//清屏,准备进行下一行显示
WriteCMD(0x80+0x40+15);//改变DDRAM的地址,更改为第二行末尾,从此处开始进入字符
for(i=0;i<33;i++) {
WriteData(tab1[i]); mydelay(50); }
mydelay(50);
WriteCMD(0x01); WriteCMD(0x80+15); 进入下一次循环,显示重新开始 } }
void Delay() {
uint uiCount;
for(uiCount=0;uiCount<250;uiCount++); }
void WriteCMD(uchar Command) 寄存器
//开始输入第二行字符
//DDRAM的地址改回第一行,准备
//写命令函数,用于修改液晶的状态
{
Delay(); //先延时,越过液晶“忙”状态 LCDE=1; //使能端先置1 LCDRS=0; LCDRW=0;
//设置RS为0,打开指令寄存器 //设置为写寄存器状态
LCDPORT=Command; //输出命令
LCDE=0; //使能端由1变0,出现下降沿有效,执行命令
}
void WriteData(uchar dat) 的字符
//写数据函数,用于提供液晶的显示
{
Delay();
LCDE=1; //把LCD改为写入数据状态
LCDRS=1;
LCDRW=0;
LCDPORT=dat; //再输出数据
LCDE=0; //使能端有效,显示数据 }
void init()
//初始化程序,模块化使程序更清晰
{
LCDRW=0;
LCDE=0;
WriteCMD(0x38); //设置双行显示、8位数据接口 WriteCMD(0x0c); //设置整体显示开、光标关、字符不闪烁
WriteCMD(0x07); //设置为增量方式,整体显示移动开 WriteCMD(0x01); //清屏
WriteCMD(0x80+15); //设置字符进入屏幕的初始位置 }
void mydelay(int x) {
int i,j;
for(i=x;i>0;i--) for(j=255;j>0;j--); }
六、 仿真调试
1、软件调试
借助 Keil 和 Proteus进行单片机系统软硬件的开发、运行、仿真。 由 Keil 软件集成文件管理编译环境,编译 C 语言源程序,下载、运行、调试,连接和定位目标文件和库,创建 HEX 文件,调试目标程序。利用Proteus 完成硬件设计仿真平台,实现硬件原理图的连接,并将hex文件与89c51同频,下载运行,仿真实现。
2、仿真调试
在将电路按原理图连接好之后,通过89c51将由Keil产生的hex文件下载到单片机内。运行调试,观察液晶模块上字幕的显示,符合实验设计要求。
3、难点与解决思路
设计过程中遇到程序设计问题,网上找到视频教程学习程序的编写,以及查阅C语言课本得以解决。调试过程中发现液晶不显示,电路高低电平不符合规律现象,通过检查和改变线路部分连接解决了问题。
七、 课设体会
过本次实验我们认识到了单片机的应用,并掌握了单片机的构造成分,液晶模块的应用领域。而通过自己的实际动手操作,实际查书找资料提高了自己的动手实践能力和知识的储备和应用能力,认识自己的不足并加以改正,增加字自己的成就感,为以后的工作和学习打好坚实的基础。
八、 参考文献
【1】《单片机原理及应用》 主编 李建忠
【2】高锋《单片微型计算机原理与接口技术》 科学出版社
【3】朱清慧、张凤蕊、翟天嵩、王志奎 《Proteus教程——电子线路设计、制板与仿真》,清华大学出版社出版 【4】李全钊、迟荣强 ,《单片机原理及接口技术》,高等教育出版社出版 【5】李学礼,《基于Proteus的80C51单片机实例教程》,电子工业出版社出版 【6】周向红,《51系列单片机应用与实践教程》,北京航空航天大学出版社出版 【7】《单片机应用及技术》,电子工业出版社 【8】Proteus 入门教程
教师评语: 教师: 日期: 设计过程30﹪ 课设报告40﹪
答辩30﹪ 总成绩
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机控制的LCD 1602的电子广告牌(2)在线全文阅读。
相关推荐: