寄存器选择控制表 RS 0 0 1 1 R/W 0 1 0 1 操作说明 写入指令寄存器(清除屏等) 读busy flag(DB7),以及读取位址计数器(DB0~DB6)值 写入数据寄存器(显示各字型等) 从数据寄存器读取数据 注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0. busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。
LCD1602驱动电路原理图如下:
图3 LCD1602驱动电路
5
2.2软件设计
2.2.1主程序
此程序所需实现的基本功能主要有:
在液晶芯片显示 1.“湖南理工学院”2.“www.hnist.cn”3. “2011-5-20”。
主要通过89S52单片机对液晶lcd1602的读写来实现(程序清单详见)。
(说明:液晶太小,所以“湖南理工学院”这六个字在一个区域循环显示。) 2.2.2流程图
起 始 初始化液晶 调用显示字符串程序 显示字符串(网址和日期) 调用汉字显示程序 显 示 汉 字 (依次闪现六个汉字) 图8 流程图
6
3系统测试
我们最终采用跳线连接单片机核心板和LCD1602液晶,下载程序液晶显示达到效果,但1602不带汉字库需自行编写,显示字符是5×8的点阵。字符和字符之间,还有一个点的空间,不适合显示汉字。调试的过程就是程序与硬件相结合的过程。必须相互匹配,才能调试成功。 4 总结
本次实习的过程主要可分为以下几个部分。分别是焊接核心板,程序编写,系统测试与调试。
1. 焊接:焊点要适中,焊接时间要适宜,不然容易烧毁元器件和板上的铜线。
2. 程序编写:程序编写需要了解各个接口的作用,在此基础上外加时序和各个汉子和字符的显示程序,尤其汉字的拼写与最终显示的方式有一定的难度。
3. 系统测试:这里主要是程序的测试。程序写好后,需要通过一步步验证,自己的想法与结果是否一致,需要逐个验证。
4. 系统调试;系统调试是最重要的环节,他涉及到程序的各个部分及硬件端口的接线。调试的过程就是程序与硬件相结合的过程。必须相互匹配,才能调试成功。
参考文献
[1]张毅刚等.单片机原理及接口技术.人民邮电出版社,2010. [2]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009. [3]陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010. [4]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007. [5]钟富昭等.8051单片机典型模块设计与应用[M].人民邮电出版社,2007. [6]李平等.单片机入门与开发[M].机械工业出版社,2008.
7
附录1 原理图
8
附录2 源程序 #include
#define uchar unsigned char #define uint unsigned int sbit rs=P2^4; sbit en=P2^6; sbit wr=P2^5;
/*湖南理工学院——汉子图形编码*/
/*******************************************/ /******************湖***********************/ uchar code CGCODE1[]={
0x00,0x04,0x02,0x01,0x00,0x04,0x02,0x01, 0x00,0x04,0x04,0x04,0x1F,0x04,0x04,0x04, 0x00,0x00,0x01,0x02,0x04,0x08,0x00,0x00, 0x1F,0x11,0x11,0x11,0x11,0x1F,0x00,0x00, 0x00,0x1F,0x11,0x11,0x11,0x11,0x1F,0x11, 0x00,0x0E,0x0A,0x02,0x0E,0x08,0x0A,0x0E, 0x11,0x1F,0x11,0x11,0x13,0x11,0x00,0x00, 0x0E,0x0A,0x08,0x0E,0x02,0x0A,0x0E,0x00};
/******************南***********************/ uchar code CGCODE2[]={
0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x07, 0x04,0x04,0x04,0x1F,0x04,0x04,0x04,0x1F, 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04, 0x11,0x0A,0x1F,0x04,0x0E,0x04,0x04,0x04, 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x1C, 0x00,0x0E,0x0A,0x02,0x0E,0x08,0x0A,0x0E, 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x0C, 0x0E,0x0A,0x08,0x0E,0x02,0x0A,0x0E,0x00};
9