欢迎来到天天文库
浏览记录
ID:27348063
大小:62.00 KB
页数:8页
时间:2018-12-02
《液晶(LCD)显示程序doc.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、*************************************************************功能:液晶(LCD)显示程序;LCD: TRULYM19264-5A1 192*64点阵驱动器:S6B0108/S6B0107或HD61202及相兼容驱动器MPU:AT89S51开发环境:KEILC51作者:纪长城日期:2005年10月************************************************************/#include#include#defin
2、eDISP_OFF0X3E//关闭显示#defineDISP_ON0X3F//打开显示#defineSTART_ROW0xC0//设置起始行#defineFIRST_PAGE0xB8//设置页#defineSTART_YADD0x40//设置列/*----------------------------------------MPU端口定义----------------------------------------*/#defineLCD_PORT P0#defineLCD_RESET P2_2#defineLCD_CSA P2_3#defin
3、eLCD_CSB P2_4#defineLCD_RS P2_5#defineLCD_RW P2_6#defineLCD_E P2_7/*------------------------------------------LCD的区选择程序:F为要选通的区,取值为0,1,2,对应选中三个区,取其它值选中第三个区--------------------------------------------*/voidLCD_CSAB_SET(unsignedcharblock){if(0==block)//0选择第一区{LCD_CSA=0
4、;LCD_CSB=0;}elseif(1==block)//1选择第二区{LCD_CSA=0;LCD_CSB=1;}else//2选择第三区{LCD_CSA=1;LCD_CSB=0;}}/*---------------------------------------//延时子程序 ----------------------------------------*/voidDelay_xMs(unsignedintxMs){unsignedinti,j;for(i=0;i5、--------------------------向LCD中写入指令或指令,F=0是指令,F=1是数据,bkock是选择写入哪个区---------------------------------------*/voidLCD_Write(unsignedcharCom,bitF){LCD_PORT =Com;//把数据输出LCD_RS=F;//确定是数据还是指令LCD_RW =0;LCD_E =1;LCD_E =0;//电平下降沿数据写入控制器}/*----------------------------------------------坐标定位程序6、参数XPage 定位页取值0--7共8页 Y 横向定位取值0-191共192列-----------------------------------------------*/voidLCD_XY_SET(unsignedcharX,unsignedcharYPage){if(X<64)//在第一个区中{LCD_CSAB_SET(0);LCD_Write(FIRST_PAGE7、YPage,0); LCD_Write(START_YADD8、X,0);}elseif(X<128)//在第二个区中{LCD_CSAB_SET(1);LCD_Write(FI9、RST_PAGE10、YPage,0);LCD_Write(START_YADD11、X-64,0);}elseif(X<192)//在第三个区中{LCD_CSAB_SET(2);LCD_Write(FIRST_PAGE12、YPage,0);LCD_Write(START_YADD13、X-128,0);}}/*--------------------------------------------清除一行的子程序 H是要清的页,取值0-3--------------------------------------------*/voidLCD_Clear_H(unsig14、nedcharH){unsignedc
5、--------------------------向LCD中写入指令或指令,F=0是指令,F=1是数据,bkock是选择写入哪个区---------------------------------------*/voidLCD_Write(unsignedcharCom,bitF){LCD_PORT =Com;//把数据输出LCD_RS=F;//确定是数据还是指令LCD_RW =0;LCD_E =1;LCD_E =0;//电平下降沿数据写入控制器}/*----------------------------------------------坐标定位程序
6、参数XPage 定位页取值0--7共8页 Y 横向定位取值0-191共192列-----------------------------------------------*/voidLCD_XY_SET(unsignedcharX,unsignedcharYPage){if(X<64)//在第一个区中{LCD_CSAB_SET(0);LCD_Write(FIRST_PAGE
7、YPage,0); LCD_Write(START_YADD
8、X,0);}elseif(X<128)//在第二个区中{LCD_CSAB_SET(1);LCD_Write(FI
9、RST_PAGE
10、YPage,0);LCD_Write(START_YADD
11、X-64,0);}elseif(X<192)//在第三个区中{LCD_CSAB_SET(2);LCD_Write(FIRST_PAGE
12、YPage,0);LCD_Write(START_YADD
13、X-128,0);}}/*--------------------------------------------清除一行的子程序 H是要清的页,取值0-3--------------------------------------------*/voidLCD_Clear_H(unsig
14、nedcharH){unsignedc
此文档下载收益归作者所有