蓝色apple 发表于 2009-5-11 17:54

液晶显示原理图

谁有液晶显示的原理图和51单片机的源代码吗?显示汉字和字符的,谢谢啦,哪位好心人!!

wyp1984 发表于 2009-5-22 19:11

测试可用程序

/*********************************包含头文件********************************/<br />#include&nbsp;&ltreg51.h&gt<br /><br />/********************************命令字定义*********************************/<br />#define&nbsp;Disp_On&nbsp;&nbsp;0x3f<br />#define&nbsp;Disp_Off&nbsp;0x3e<br />#define&nbsp;Col_Add&nbsp;&nbsp;0x40<br />#define&nbsp;Page_Add&nbsp;0xb8<br />#define&nbsp;Start_Line&nbsp;0xc0<br /><br />/*********************************端口定义**********************************/<br />sbit&nbsp;Mcs=P2^3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//左半屏使能,当MCS=1,左半屏显示<br />sbit&nbsp;Scs=P2^4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//右半屏使能,当SCS=1,右半屏显示<br />sbit&nbsp;Enable=P2^2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使能<br />sbit&nbsp;Di=P2^0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//数据/命令选择(RS)<br />sbit&nbsp;RW=P2^1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//读/写信号<br />sbit&nbsp;Rst=P2^5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//复位脚<br />sbit&nbsp;Light=P2^6;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//背光脚<br /><br />/**********************************字模表***********************************/<br />/*****************************www.hificat.com*******************************/<br />char&nbsp;code&nbsp;h[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;h&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,<br />};<br />char&nbsp;code&nbsp;w[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;w&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,<br />};<br />char&nbsp;code&nbsp;i[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;i&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,<br />};<br />char&nbsp;code&nbsp;f[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;f&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,<br />};<br />char&nbsp;code&nbsp;c[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;c&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,<br />};<br />char&nbsp;code&nbsp;a[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;a&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,<br />};<br />char&nbsp;code&nbsp;t[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;t&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,<br />};<br />char&nbsp;code&nbsp;o[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;o&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,<br />};<br />char&nbsp;code&nbsp;m[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;m&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,<br />};<br />char&nbsp;code&nbsp;dian[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;.&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,<br />};<br />/*************************************欢迎使用***********************************/<br />char&nbsp;code&nbsp;huan[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;欢&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,<br />0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,<br />};<br />char&nbsp;code&nbsp;yun2[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;迎&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,<br />0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00,<br />};<br />char&nbsp;code&nbsp;shi[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;使&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x40,0x20,0xF0,0x1C,0x07,0xF2,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xF4,0x04,0x00,<br />0x00,0x00,0x7F,0x00,0x40,0x41,0x22,0x14,0x0C,0x13,0x10,0x30,0x20,0x61,0x20,0x00,<br />};<br />char&nbsp;code&nbsp;yong[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;用&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,<br />0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,<br />};<br /><br />/***********************************单片机开发板*********************************/<br />char&nbsp;code&nbsp;dan[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;单&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0xF8,0x28,0x29,0x2E,0x2A,0xF8,0x28,0x2C,0x2B,0x2A,0xF8,0x00,0x00,0x00,<br />0x08,0x08,0x0B,0x09,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x09,0x0B,0x08,0x08,0x00,<br />};<br />char&nbsp;code&nbsp;pian[]={<br />//*--&nbsp;&nbsp;文字:&nbsp;&nbsp;片&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x18,0x10,0x00,<br />0x80,0x40,0x30,0x0F,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,<br />};<br />char&nbsp;code&nbsp;ji[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;机&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x08,0x08,0xC8,0xFF,0x48,0x88,0x08,0x00,0xFE,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,<br />0x04,0x03,0x00,0xFF,0x00,0x41,0x30,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x78,0x00,<br />};<br />char&nbsp;code&nbsp;kai[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;开&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x00,<br />0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,<br />};<br />char&nbsp;code&nbsp;fa[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;发&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x10,0x3E,0x10,0x10,0xF0,0x9F,0x90,0x90,0x92,0x94,0x1C,0x10,0x10,0x10,0x00,<br />0x40,0x20,0x10,0x88,0x87,0x41,0x46,0x28,0x10,0x28,0x27,0x40,0xC0,0x40,0x00,0x00,<br />};<br />char&nbsp;code&nbsp;ban[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;板&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x10,0x10,0xD0,0xFF,0x50,0x90,0x00,0xFE,0x62,0xA2,0x22,0x21,0xA1,0x61,0x00,0x00,<br />0x04,0x03,0x00,0x7F,0x00,0x11,0x0E,0x41,0x20,0x11,0x0A,0x0E,0x31,0x60,0x20,0x00,<br />};<br /><br />char&nbsp;code&nbsp;dang[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;当&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x40,0x42,0x5C,0x48,0x40,0x40,0x7F,0x40,0x50,0x4E,0x44,0xC0,0x00,0x00,<br />0x00,0x00,0x20,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x7F,0x00,0x00,<br />};<br /><br />char&nbsp;code&nbsp;qian[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;前&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x08,0x08,0xE8,0xA8,0xA9,0xAE,0xEA,0x08,0x08,0xC8,0x0C,0x0B,0xEA,0x08,0x08,0x00,<br />0x00,0x00,0x7F,0x04,0x24,0x44,0x3F,0x00,0x00,0x1F,0x40,0x80,0x7F,0x00,0x00,0x00,<br />};<br /><br />char&nbsp;code&nbsp;zhuang[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;状&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x08,0x30,0x00,0xFF,0x20,0x20,0x20,0x20,0xFF,0x20,0xE1,0x26,0x2C,0x20,0x20,0x00,<br />0x04,0x02,0x01,0xFF,0x40,0x20,0x18,0x07,0x00,0x00,0x03,0x0C,0x30,0x60,0x20,0x00,<br />};<br /><br />char&nbsp;code&nbsp;tai1[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;态&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x04,0x04,0x04,0x84,0x44,0x34,0x4F,0x94,0x24,0x44,0x84,0x84,0x04,0x00,0x00,<br />0x00,0x60,0x39,0x01,0x00,0x3C,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x09,0x31,0x00,<br />};<br /><br />char&nbsp;code&nbsp;yun[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;运&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x40,0x41,0xCE,0x04,0x00,0x20,0x22,0xA2,0x62,0x22,0xA2,0x22,0x22,0x22,0x20,0x00,<br />0x40,0x20,0x1F,0x20,0x28,0x4C,0x4A,0x49,0x48,0x4C,0x44,0x45,0x5E,0x4C,0x40,0x00,<br />};<br /><br />char&nbsp;code&nbsp;xing[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;行&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x10,0x08,0x84,0xC6,0x73,0x22,0x40,0x44,0x44,0x44,0xC4,0x44,0x44,0x44,0x40,0x00,<br />0x02,0x01,0x00,0xFF,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,<br />};<br /><br />char&nbsp;code&nbsp;zhong[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;中&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=16x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,<br />0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,<br />};<br /><br />char&nbsp;code&nbsp;maohao[]={<br />/*--&nbsp;&nbsp;文字:&nbsp;&nbsp;:&nbsp;&nbsp;--*/<br />/*--&nbsp;&nbsp;宋体12;&nbsp;&nbsp;此字体下对应的点阵为:宽x高=8x16&nbsp;&nbsp;&nbsp;--*/<br />0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,<br />};<br /><br />/****************************************************************************<br />函数功能:延时程序<br />入口参数:t<br />出口参数:<br />****************************************************************************/<br />void&nbsp;delay(unsigned&nbsp;int&nbsp;t)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;i,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&ltt;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt10;j++);<br />}<br /><br />/*****************************************************************************<br />函数功能:写命令到LCD程序<br />入口参数:cmdcode<br />出口参数:<br />*****************************************************************************/<br />void&nbsp;write_com(unsigned&nbsp;char&nbsp;cmdcode)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Di=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;RW=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;P0=cmdcode;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;Enable=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;Enable=0;<br />}<br /><br />/*****************************************************************************<br />函数功能:写数据到LCD程序<br />入口参数:Dispdata<br />出口参数:<br />*****************************************************************************/<br />void&nbsp;write_data(unsigned&nbsp;char&nbsp;Dispdata)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Di=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;RW=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;P0=Dispdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;Enable=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;Enable=0;<br />}<br /><br />/*****************************************************************************<br />函数功能:清除LCD内存程序<br />入口参数:pag,col,hzk<br />出口参数:<br />*****************************************************************************/<br />void&nbsp;Clr_Scr()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;j,k;<br />&nbsp;&nbsp;&nbsp;&nbsp;Mcs=1;Scs=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_com(Page_Add+0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_com(Col_Add+0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&lt8;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_com(Page_Add+k);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt64;j++)write_data(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;Mcs=0;Scs=0;<br />}<br /><br />/*****************************************************************************<br />函数功能:指定位置显示数字16*16程序<br />入口参数:pag,col,hzk<br />出口参数:<br />*****************************************************************************/<br />void&nbsp;hz_disp16(unsigned&nbsp;char&nbsp;pag,unsigned&nbsp;char&nbsp;col,&nbsp;unsigned&nbsp;char&nbsp;code&nbsp;*hzk)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;j=0,i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt2;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_com(Page_Add+pag+j);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_com(Col_Add+col);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt16;i++)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_data(hzk);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/*****************************************************************************<br />函数功能:指定位置显示数字8*16程序<br />入口参数:pag,col,hzk<br />出口参数:<br />*****************************************************************************/<br />void&nbsp;hz_disp8(unsigned&nbsp;char&nbsp;pag,unsigned&nbsp;char&nbsp;col,&nbsp;unsigned&nbsp;char&nbsp;code&nbsp;*hzk)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;j=0,i=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt2;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_com(Page_Add+pag+j);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_com(Col_Add+col);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt8;i++)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;write_data(hzk);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />/*****************************************************************************<br />函数功能:LCD初始化程序<br />入口参数:<br />出口参数:<br />*****************************************************************************/<br />void&nbsp;init_lcd()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;Mcs=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;Scs=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;delay(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;write_com(Disp_Off);<br />&nbsp;&nbsp;&nbsp;&nbsp;write_com(Page_Add+0);<br />&nbsp;&nbsp;&nbsp;&nbsp;write_com(Start_Line+0);<br />&nbsp;&nbsp;&nbsp;&nbsp;write_com(Col_Add+0);<br />&nbsp;&nbsp;&nbsp;&nbsp;write_com(Disp_On);<br />}<br /><br /><br />/*****************************************************************************<br />函数功能:主程序<br />入口参数:<br />出口参数:<br />*****************************************************************************/<br />void&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;Light=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//开LCD背光<br />&nbsp;&nbsp;&nbsp;&nbsp;init_lcd();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Clr_Scr();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mcs=1;Scs=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//左、右都显示<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mcs=1;Scs=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//左显示<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//欢迎<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(0,32,huan);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(0,48,yun2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//单片机<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(2,16,dan);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(2,32,pian);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(2,48,ji);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//当前状态<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(4,0,dang);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(4,16,qian);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(4,32,zhuang);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(4,48,tai1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//网址:www.hifi<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,0,w);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,8,w);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,16,w);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,24,dian);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,32,h);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,40,i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,48,f);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,56,i);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mcs=0;Scs=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//右显示<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使用<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(0,0,shi);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(0,16,yong);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//开发板<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(2,0,kai);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(2,16,fa);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(2,32,ban);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//:运行中<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(4,0,maohao);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(4,8,yun);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(4,24,xing);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp16(4,40,zhong);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//网址:cat.com<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,0,c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,8,a);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,16,t);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,24,dian);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,32,c);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,40,o);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hz_disp8(6,48,m);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay(2);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />

laurel25_604 发表于 2011-3-15 00:05

看了 眼前一亮

qwqwqw2008 发表于 2011-3-15 08:39

if 程序是 真,,真是太好了,,,:lol

lemenade 发表于 2011-3-22 12:36

收藏了,谢谢三楼

xukai198919 发表于 2011-3-24 15:27

。。。。。。。。。。

achingscar 发表于 2011-3-27 02:46

强人
学习一下

liuzhenya 发表于 2011-3-27 06:33

学习了

xiaofeng1021 发表于 2011-3-27 14:25

学习

荆棘鸟SOS 发表于 2011-3-28 22:10

可以把同一高宽的字放在同一数组用一个变量控制更方便点吧应该

mengzs 发表于 2011-3-30 09:26

顶!

yanwwei312 发表于 2011-4-5 11:44

哦顶

lemenade 发表于 2011-4-5 21:14

oh my god

afei9527 发表于 2011-5-1 01:02

:)

ljwdee 发表于 2011-5-5 16:17

顶啊

yfsbz2449 发表于 2011-5-6 10:29

学习

老鱼探戈 发表于 2011-5-6 10:52

这个裤子是谁给缝的? 太.....2..........了...........

shashadengdai 发表于 2011-5-14 16:18

学习了!

afei9527 发表于 2011-6-10 18:38

:)

yangdejin8 发表于 2011-8-9 21:05

//12864模块//
sbit CS=P1^5;                                                                           //接口定义
sbit SCLK=P1^7;
sbit STD=P1^6;
sbit LCD_PSB=P1^4; //串行数据设置L串口 H并口

void delay(unsigned int ms)                                                  // 延时函数
{
        unsigned int i,j;
        for(j=0;j<=ms;j++)
        {
                for(i=0;i<=120;i++)
                {}
        }
}

          void send(uchar type,uchar transdata)                   //串行通信传输函数,transdata为要写入的数据或指令
{
        uchar firsttype=0xf8;                                           //firsttype为第一字节,用来判断是写数据还是写指令。默认是写指令
        uchar temp;
        uchar i,j=3;

        if(type)                                                               //判断是是写数据还是写指令,0为写指令,1为写数据
                firsttype=firsttype|0x02;                       //如果要写数据,则把第一字节的第七位至高
        CS=1;                                                                        //给CS高电平开始写入操作
        SCLK=0;                                                                        //给SCLK时钟脉冲,在每个上升沿把数据写入到LCD
        while(j>0)                                                                //把写数据指令方式和要写入的数据发送给LCD
        {
                if(j==3)        temp=firsttype;                        //确认要写入第一字节数据,及数据指令判断
                else
                if(j==2)        temp=transdata&0xf0;//确认要写入第二字节数据
                else        temp=(transdata<<4)&0xf0;        //确认要写入第三字节数据
                for(i=8;i>0;i--)                                        //把要写入的数据每个位由STD发送到LCD,写入
                {
                        if(temp&0x80)        STD=1;                        //写入第一字节,及最高字节
                        else        STD=0;
                        SCLK=1;                                                   //给SCLK一个上升沿,写入一位
                        temp<<=1;                                           //把数据指令左移一位,开始写入下一位数据
                        SCLK=0;                                            //给SCLK一个低电平,确保下一次写入数据正常
                }
                delay(1);                                               //做简单的延时
                j--;                                                       //准备写入下一字节数据
        }
        STD=0;                                                                //写入数据指令完毕,给STD和CS低电平
        CS=0;
}

void init()                                                                       // 初始化函数
{
        LCD_PSB=0;                                                                   //把PSB至低,选择串行通信模式
        delay(100);                                                                //延时,保证LCD处于空闲状态
        send(0,0x30);                                                        //初级指令集
        delay(1);                                                               
        send(0,0x0c);                                                        //开显示
        delay(1);                                                          
        send(0,0x01);                                                   //清屏
        delay(1);
}
页: [1] 2 3
查看完整版本: 液晶显示原理图