新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于TMS320F2812的液晶顯示的設(shè)計(jì)

        基于TMS320F2812的液晶顯示的設(shè)計(jì)

        作者: 時(shí)間:2009-03-04 來(lái)源:網(wǎng)絡(luò) 收藏

        void checkBF()//檢查BF位,判斷LCD 是否忙

        {

        unsigned int check

        EALLOW;

        GpioMuxRegs.GPAMUX.all=0xff00;//設(shè)EVA前8腳為通用I/O口,其他為保留功能

        GpioMuxRegs.GPBMUX.all=0xff00;//設(shè)GPIOB0~2為通用I/O口,其他為保留功能

        GpioMuxRegs. GPBDIR.all=0x00ff;// 設(shè)GPIOB0~2為輸出引腳

        EDIS;

        GpioDataRegs. GPBDAT.bit.GPIOB0=0;

        GpioDataRegs. GPBDAT.bit.GPIOB1=1;//讀BF的狀態(tài),RS=0,R/W=1

        do {

        GpioDataRegs. GPBDAT.bit.GPIOB2=1;//E=1

        Check=GpioDataRegs. GPADAT.all;

        Delay1();//延時(shí)140ns以上

        GpioDataRegs. GPBDAT.bit.GPIOB2=0;//E=0

        check=0x80check;//當(dāng)?shù)?位,即BF為0時(shí)才可以操作

        }while(!check= =0x00);

        }

        void InitialLCD()//液晶初始化

        {

        writeINS(0x30);//LCD選擇為8位并行數(shù)據(jù)傳輸,不擴(kuò)充指令

        Delay2(5);//延時(shí)大于100us

        writeINS(0x0E);//開(kāi)顯示,開(kāi)游標(biāo),關(guān)反白

        Delay2(5);//延時(shí)大于100us

        writeINS(0x01);//清屏顯示

        Delay2(500);//延時(shí)大于10ms

        writeINS(0x06);//DDRAM的地址計(jì)數(shù)器(AC)加1

        Delay2(5);//延時(shí)大于100us

        }

        void Delay1()//延時(shí)子程序

        {

        Int i;

        for ( i=0;i5;i++ );

        }

        void Delay2(unsigned int nTime)

        {

        int ii,jj,kk=0;

        for ( ii=0;iinTime;ii++ )

        {

        for ( jj=0;jj215;jj++ )

        {

        kk++;

        }

        }

        }

        欲在中某一個(gè)位置顯示中文字符時(shí),應(yīng)先設(shè)定顯示字符位置,即先設(shè)定顯示地址,再寫(xiě)入中文字符編碼。當(dāng)字符編碼為兩字節(jié)時(shí),應(yīng)先寫(xiě)入高位字節(jié),再寫(xiě)入低位字節(jié)。的字符顯示地址RAM地址從80H到9FH,與4行8列共32個(gè)字符顯示區(qū)域一一對(duì)應(yīng)。另外,顯示ASCII字符過(guò)程與顯示中文字符過(guò)程相同,不過(guò)在顯示連續(xù)字符時(shí),只須設(shè)定一次顯示位置,有模塊自動(dòng)對(duì)地址加1指向下一個(gè)字符位置,否則,顯示的字符中將會(huì)有一個(gè)空ASCII字符位置。本文以從字庫(kù)中顯示“液晶”字樣為例,給出顯示“液晶”字符的主程序如下:

        main()

        {

        InitialLCD();//初始化液晶

        writeINS(0x80);//設(shè)定顯示地址為首行首列

        writeDATA (0xD2);

        writeDATA (0xBA);//顯示“液”

        writeDATA (0xBE);

        writeDATA (0xA6);//顯示“晶”

        for(;;);

        }

        3 結(jié)論

        從上面的應(yīng)用介紹可看出,本文所采用的方法不需要增加硬件,電路結(jié)構(gòu)簡(jiǎn)單,只占用了的多達(dá)56個(gè)I/O引腳中的11個(gè)。所以,對(duì)剩余較多不用I/O引腳的系統(tǒng)完全可以采用這種控制方法,絕大多數(shù)下是可以滿足要求的。通過(guò)該我們可以說(shuō),采用模擬外部慢速設(shè)備的實(shí)現(xiàn)與其外設(shè)的這種方法是一種簡(jiǎn)單有效的方法,并為各種系統(tǒng)顯示、慢速外設(shè)的提供了一種可以借鑒的方法。


        上一頁(yè) 1 2 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 大同县| 罗定市| 东辽县| 醴陵市| 上高县| 宜良县| 育儿| 辽宁省| 奉节县| 西宁市| 留坝县| 承德市| 明溪县| 梧州市| 东安县| 英德市| 金寨县| 康保县| 绵阳市| 湘潭市| 义马市| 行唐县| 蓬安县| 宁城县| 新兴县| 伽师县| 县级市| 衢州市| 越西县| 阿克| 南充市| 北川| 呼伦贝尔市| 宁晋县| 乳山市| 博白县| 赤水市| 黎平县| 织金县| 东安县| 公安县|