新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > LCD控制時序方式

        LCD控制時序方式

        作者: 時間:2012-09-08 來源:網絡 收藏



        點擊瀏覽下一頁
        的初始化過程如下:
        點擊瀏覽下一頁
        第一行顯示"Welcome";第二行顯示="Happy day";若要顯示其他字符,請直接往 LCMLineOne[16]和LCMLineTwo[16]填充相應的代碼。仿真圖(仿真是在Proteus7.4SP3下仿真通過)
        點擊瀏覽下一頁

        源程序:#includereg51.h>#define uchar unsigned char#define uint unsigned int#define busy 0x80#define DataIO P0sbit RS=P2^0;sbit RW=P2^1;sbit E=P2^7;uchar  data   LineOne[16]="Welcome";  //第一行顯示的數據uchar  data   LCDLineTwo[16]="Happy day"; //第二行要顯示的數據void Delayms(uchar  ms)   //ms級別的延時{uchar  i,j;for(i=0;ims;i++)for(j=0;j57;j++);}void delay12(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void Fbusy(){ uchar LCDStatus;do{ DataIO=0xff;RS=0;RW=1;E=1; LCDStatus=DataIO;E=0;LCDStatus=(LCDStatusbusy);}while(LCDStatus!=0);}//寫指令寄存器void LCDWriteC(uchar  COMData){ Fbusy();RS=0;RW=0;DataIO=COMData;E=1;E=0;}//讀指令寄存器uchar LCDReadC(){uchar LCDStatus;Fbusy();RS=0;RW=1;E=1;LCDStatus=DataIO;E=0;return(LCDStatus);}//讀數據寄存器uchar LCDReadD(uchar addr){uchar LCDStatus;Fbusy();LCDWriteC(0x80+addr);RS=1;RW=1;E=0;E=1;E=0;LCDStatus=DataIO;return(LCDStatus);}//寫數據寄存器帶地址void LCDWriteDAdd(uchar addr,uchar LCDData){Fbusy();LCDWriteC(0x80+addr);RS=1;RW=0;DataIO=LCDData;E=1;E=0;}//寫數據寄存器無地址void LCDWriteD(uchar LCDData){Fbusy();RS=1;RW=0;DataIO=LCDData;E=1;E=0;}//初始化void LCDInit(void){ Delayms(15);RS=0;RW=0;DataIO=0x38;E=1;E=0;Delayms(5);DataIO=0x38;E=1;E=0;Delayms(5);DataIO=0x38;E=1;E=0;Delayms(5);LCDWriteC(0x38);LCDWriteC(0x08);LCDWriteC(0x01);LCDWriteC(0x06);LCDWriteC(0x0c);}main(){ uchar i;LCDInit();DataIO=0xff;while(1){  LCDWriteC(0x80);   //第一行DDRAM地址for(i=0;i16;i++)LCDWriteD(LCDLineOne[i]);LCDWriteC(0x80+0x40);   //第二行DDRAM地址for(i=0;i16;i++)LCDWriteD(LCDLineTwo[i]);}}

        這是采用時序的方式,另外也可以采用總線的方式來控制(見我的另外一篇文章http://www.51hei.com/mcu/1042.html),總的來說,采用時序的方式可以讓我們更好的理解LCD的控制方法,而總線的方式則可以簡化程序。

        LCD顯示屏相關文章:lcd顯示屏原理


        lcd相關文章:lcd原理


        關鍵詞: LCD 控制時序 數組

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临江市| 民勤县| 江山市| 醴陵市| 阿合奇县| 南丹县| 澄城县| 汝城县| 古蔺县| 上饶市| 富川| 嘉鱼县| 汉沽区| 卓尼县| 通海县| 永吉县| 安顺市| 师宗县| 清丰县| 吉安市| 蓝山县| 高州市| 肥城市| 抚顺市| 滨海县| 隆回县| 郑州市| 安化县| 辉南县| 谢通门县| 麟游县| 宁津县| 海淀区| 泉州市| 老河口市| 东兴市| 镇江市| 玉溪市| 南昌县| 江山市| 淮阳县|