单片机液晶汉字显示c语言程序 下载本文

内容发布更新时间 : 2024/5/8 16:33:40星期一 下面是文章的全部内容请认真阅读。

实用标准文案

单片机液晶汉字显示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); /*右区命令输出 */

void Putstr(Uchar *puts,Uchar i); /*中英文字符串输出 */ void Rollscreen(Uchar x); /*屏幕向上滚动演示 */ void Rddata(void); /* 从液晶片上读数据 */ void Linehv(Uchar length); /*横(竖)方向画线 */ void point(void); /*打点 */

void Linexy(Uchar endx,Uchar endy);

/******************数组列表*********************/ Uchar code Ezk[]; /*ASCII常规字符点阵码表 */ Uchar code Hzk[]; /*自用汉字点阵码表 */ Uchar code STR1[]; /*自定义字符串 */ Uchar code STR2[]; // Uchar code STR3[]; // Uchar code STR4[]; //

/********************************/ /* 单片机液晶汉字显示c语言程序 */ /********************************/ void main(void)

{

Uchar x,y; col=0; 精彩文档