单片机液晶汉字显示c语言程序单片机液晶汉字显示c语言程序.doc
文本预览下载声明
单片机液晶汉字显示c语言程序
/*液晶屏分为4行*12列汉字,全部使用模拟接口方式。/* TGLCMLIMIT64A接口程序(模拟方式);**********************单片机液晶汉字显示c语言程序*****************************************************;连线图:;*LCM---89C52* *LCM---89C52* *LCM-------89C52* *LCM----------89C52* *;*DB0---P0.0* *DB4---P0.4* *D/I-------P2.6* *CS1----------P2.4* *;*DB1---P0.1* *DB5---P0.5* *R/W-------P2.7* *CS2----------P2.5* *;*DB2---P0.2* *DB6---P0.6* *RST--------VCC* *CS3----------P3.2* * ;*DB3---P0.3* *DB7---P0.7* *E---------P2.3* *;注:89C52的晶振频率为12MHz *;*****************************单片机液晶汉字显示c语言程序**********************************************///画线部分请参照avr的c程序。/*#pragma src /*生成ASM文件开关,必要时打开 */#include#include#include
#define Uchar unsigned char
/***********液晶显示器接口引脚定义***************/
sbit Elcm= P2^3; //sbit CS1LCM= P2^4; //sbit CS2LCM= P2^5; //sbit CS3LCM= P3^2; /*这个连接只是做实验的临时接法。*/sbit Dilcm= P2^6; //sbit Rwlcm= P2^7; //sfr Datalcm= 0x80; //数据口unsigned char testi[]={浸渠叁绳漱塔烃威牺晓玄瑶};
/***********常用操作命令和参数定义***************/#define DISPON 0x3f /*显示on */#define DISPOFF 0x3e /*显示off */#define DISPFIRST 0xc0 /*显示起始行定义 */#define SETX 0x40 /*X定位设定指令(页) */#define SETY 0xb8 /*Y定位设定指令(列) */#define Lcdbusy 0x80 /*LCM忙判断位 */
/**************显示分区边界位置*****************/#define MODL 0x00 /*左区 */#define MODM 0x40 /*左区和中区分界 */#define MODR 0x80 /*中区和右区分界 */#define LCMLIMIT 0xC0 /*显示区的右边界 */
/****************全局变量定义*******************/Uchar col,row,cbyte; /*列x,行(页)y,输出数据 */bit xy; /*画线方向标志:1水平 */
/*****************函数列表**********************/void Lcminit(void); /*液晶模块初始化 */void Delay(Uchar); /*延时,入口数为Ms */void lcdbusyL(void); /*busy判断、等待(左区) */void lcdbusyM(void); /*busy判断、等待(中区) */void lcdbusyR(void); /*busy判断、等待(右区) */void Putedot(Uchar); /*半角字符输出 */void Putcdot(Uchar); /*全角(汉字)输出 */void Wrdata(Uchar); /*数据输出给LCM */void Lcmcls( void ); /*LCM全屏幕清零(填充0) */void wtcom(void); /*公用busy等待 */void Locatexy(void); /*光标定位 */void WrcmdL(Uchar); /*左区命令输出 */void WrcmdM(Uchar); /*中区命令输出 */void WrcmdR(Uchar); /*右区命令输出 */
显示全部