文档详情

验证通过的不带字库12864液晶显示程序.pdf

发布:2017-06-27约字共4页下载文档
文本预览下载声明
#include reg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char #define nop _nop_() #define LCD_data P0 //数据口 sbit LCD_RS = P2^6; //寄存器选择输入 sbit LCD_RW = P2^5; //液晶读/写控制 sbit LCD_EN = P2^7; //液晶使能控制 sbit LCD_CS1 = P3^2; //低电平有效 控制左半屏 sbit LCD_CS2 = P3^3; //低电平有效 控制右半屏 //sbit LCD_RST = P3^4; //液晶复位端口 uchar code wo[]={0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0, 0x20,0x00, 0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,}; void delay(uchar a) //延时 { uchar x,y; for(x=0;xa;x++) for(y=0;y10;y++); } void LCD_busy() //忙检测函数 { LCD_data=0x00; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; while( LCD_data 0x80 ); LCD_EN = 0; LCD_RS = 0; LCD_RW = 1; } void LCD_write_cmmand(uchar cmd) //写指令函数 { // LCD_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; LCD_data = cmd; // nop; // nop; delay(2); LCD_EN = 1; // nop; // nop; delay(2); LCD_EN = 0; } void LCD_write_data(uchar dat) //写数据函数 { // LCD_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; LCD_data = dat; delay(2); LCD_EN = 1; delay(2); LCD_EN = 0; } void set_page(uchar page)//设置页,要那一页直接是那个数字就行了 { //总共有8 页,一页是8 行点阵点,即128*8 page=0xb8|page; //页得首地址为0xB8 1011 1XXX LCD_write_cmmand(page); } void set_line(uchar startline) //设置显示的起始行 { startline=0xc0|startline; //起始行地址为0xc0 LCD_write_cmmand(startline); //设置从哪一行开始,共0--63 11XX XXXX } void set_column(uchar column) //设置显示的列 { column=column0x3f; //列的最大值为64,因为分成两个屏了 column=0x40|column; //列的首地址为0x40; 01XX XXXX LCD_write_cmmand(column); //设置列位置 } void setonoff(uchar onoff) //显示开
显示全部
相似文档