.
液晶屏测试程序/////LCD12864(已通过)///////////////液晶屏型号:
HJ12864M-1////////#include<>ucharunsignedchar#defineuintun: .
液晶屏测试程序/////LCD12864(已通过)///////////////液晶屏型号:
HJ12864M-1////////#include<>ucharunsignedchar#defineuintunsignedint#define
口数据接入IO//8bit8位数据线〃P0#definePartP0接//控制数据端指令寄H:数据寄存器L:12864sbitLCD_RS=P5;//定义液晶RS端,寄存器选择信号存器L:写读定义12864液晶R碱,/写信号H:读;sbitLCD_RW=P6//锁存数据LCDEh®晶端,片选信号下降沿触发,//sbit
LCD_EN=P2;定义12864端,H:并行L:申行液晶;sbitLCD_PSB=P3A2//定义12864PSB复位L:RST//;定义12864液晶端,H:不复位4sbitLCD_RST=P3A};ucharcodedis1[]=(床前明月光};疑是地上霜ucharcodedis2[]={};
举头望明月ucharcodedis3[]={};ucharcodedis4[]={低头思故乡
//毫秒延时函数xms)delay(uintvoid{i,j;uint;i<xms;j++)0for(j=;i++);;i<1100for(i=}
忙检测函数//LCDbitlcd_busy(){bitresult;;LCD_RS=0;LCD_RW=1;
1LCD_EN=);0x80result=(bit)(Part&
;0LCD_EN=result;return}
液晶写命令函数//lcd_write_cmd(ucharcom)void{(lcd_busy());
while选择指令寄存器0LCD_RS=;//;LCD_RW=0//写;LCD_EN0Part=com;//指令值赋给口PC);5delay(;LCD_EN=1);
5delay(;LCD_EN=0}
//液晶写一个字符数据函数lcd_write_dat(uchardate)void{(lcd_busy());while
//LCD_RS=;选择数据寄存器LCD_RW=//写;LCD_EN0P0=date;P0数据值赋给口//);delay(5;1LCD_EN=);
5delay(;LCD_EN=0}
void{
液晶写一个字符申函数//lcd_write_string(uchar*str)
)//未结束'\0'while(*str!={
lcd_write_dat(*str++););5delay(}
}
液晶显示位置函数//位置开始显示X行的第Y从第voidlcd_pos(ucharx,uchary)//{ucharpos;
第一行1)//if(x==;}0x80{x=//第二行(x==elseif2)
LCD液晶屏测试程序 来自淘豆网www.taodocs.com转载请标明出处.