资源描述
proteus中51控制LM3229液晶显示屏前段时间想弄个大点的液晶来耍,找了一下,我的proteus中最大的也就是LM3229,好像是240*128 的,就写以个程序来耍一下,上网找了一下资料,不好找,下了一个朋友的程序,看不懂,最后找到了它 的驱动芯片T6963,终于把它搞懂了,自己也写了一个程序,主要是借那个朋友的思路,做了一些改动, 添加了一些东西,现吧程序贡献上来,供大家点评,希望对要学习这块芯片的朋友有一点点的帮助LCD1-LM322SRP2 RESFAGK-:西华大学单片机爱好口ADO 凸3AD3AD5a nF;393837363?3429上面这副图是前段时间弄的,没弄好,地址没设好,上面有一些乱码 今天花了差不多一天的时间搞了一下,发现问题了,从新仿真的图如下LCD1-LM322S:THf? 対訓I罪二或皐卑惬貯强e寸OXir-ijj0Qi-J2QT-2igo1- OCi岂Tu:Er-|j_LLu_LJ_dLL_u_dPCO PCIFcFC4PC5还算可以,没有乱码, 程序也改了,贴上来,大家个提提意见 以前写的是51的,这个是AVR的,都差不多#include #include #define uchar unsigned char#define uint unsigned int#define OneLine 32液晶每行的宽度#define LCD_CD_H PORTD|=(1PDO)#define LCD_CD_L PORTD&=(1PD0)#define LCD_RD_H PORTD|=(1PD1)#define LCD_RD_L PORTD&=(1PD1)#define LCD_WR_H PORTD|=(1PD2)#define LCD_WR_L PORTD&=(1PD2)#define LCD_CE_H PORTD|=(1PD3)#define LCD_CE_L PORTD&=(1PD3)#define LCD_RST_H PORTD|=(1PD4)#define LCD_RST_L PORTD&=(18;data1=addres;WriteDDC(data1,data2,0x24);WriteCommand(0xb0);WriteData(str);WriteCommand(0xb2);/* 名称:Write_Photo()*功能:液晶画图程序,row为图片开始行(0127),rol为图片开始列(029),* width为图片长(单位Bit),deep为图片宽(单位bit)*/void Write_Photo(uchar row,uchar rol,uchar width,uchar deep)uint address,Photolength,i;uchar j,data1,data2,cmd;Photolength=width*deep;address = row*32+rol;data1 = address;取地址低八位data2 = address8;取地址高八位cmd = 0x24;WriteDDC(data1,data2,cmd);for(i=0;i8;取地址高八位cmd = 0x24;WriteDDC(data1,data2,cmd);j=0;WriteCommand(OxbO);进入自动写模式WriteCommand(0xb2);/*名称:Write_Chinese()*功能:液晶写汉字程序,row为汉字开始行,rol为汉字开始列,Chinese为汉字字符串在*CGRAM中的初地址length为汉字字符串的长度,(一个16*16点阵的汉字长度为4)*/void SetCGRAM(void)uchar data1,data2,cmd;uint i;data1 = 0x03;data2 = 0x00;设置偏移地址寄存器cmd = 0x22;WriteDDC(data1,data2,cmd);data1 = 0x00;data2 = 0x1c;cmd = 0x24;设置地址指针WriteCommand(cmd);for (i = 0;i 8;取地址高八位cmd = 0x24;设置地址指针,字符显示首位置WriteDDC(data1,data2,cmd);cmd = 0xb0;进去自动写模式WriteCommand(cmd);for(i=0;i8;取地址高八位cmd = 0x24;设置地址指针,字符显示首位置再写汉字下半部分address = address+32;cmd = OxbO;进去自动写模式WriteDDC(data1,data2,cmd);WriteCommand(cmd);for(i=1;ilength;i+)WriteData(Chinese+i);i+;cmd = 0xb2;退出自动写模式WriteCommand(cmd);/* 名称:main()*功能:主函数,画图,写汉字,写汉字前应设置CGRAM*/void main(void)Port_init();LCD_lnit();SetCGRAM();Write_Photo(1,2,12,120);Write_Chinese(3,19,0x80,16);Write_Chinese(6,17,0x90,24);Write_Chinese(9,22,0xa8,4);while(1);
展开阅读全文