新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 串行2_pin 12864液晶移植到s12

        串行2_pin 12864液晶移植到s12

        作者: 時間:2016-11-28 來源:網絡 收藏
        Createdon:2012-10-17

        Author:zhangbin

        本文引用地址:http://www.104case.com/article/201611/322855.htm

        學習筆記

        forMC9S12XS128lcd12864ser_2_pin

        redesignedbyzhangbin

        2012-10-17

        versions:V-0.1

        AllRightsReserved

        Ser_12864.h文件如下注釋的比較詳細:

        #ifndefSER_12864_H_

        #defineSER_12864_H_

        //設定wr為PA0

        //設定en為PA1

        //在main()中開輸出

        /

        #include"derivative.h"

        /

        //2空函數

        #definenop()_NOP();

        //3*數據輸入口給各個口加了定義可以直接從位的引腳讀出0/1的狀態

        #defineip10(P1IN&0x01)/0x01

        #defineip11(P1IN&0x02)/0x02

        #defineip12(P1IN&0x04)/0x04

        #defineip13(P1IN&0x08)/0x08

        #defineip14(P1IN&0x10)/0x10

        #defineip15(P1IN&0x20)/0x20

        #defineip16(P1IN&0x40)/0x40

        #defineip17(P1IN&0x80)/0x80

        #defineip20(P2IN&0x01)/0x01

        #defineip21(P2IN&0x02)/0x02

        #defineip22(P2IN&0x04)/0x04

        #defineip23(P2IN&0x08)/0x08

        #defineip24(P2IN&0x10)/0x10

        #defineip25(P2IN&0x20)/0x20

        #defineip26(P2IN&0x40)/0x40

        #defineip27(P2IN&0x80)/0x80

        /

        voiddelay_us(intdelaytime)

        {//軟件延時,16M總線頻率時延時時間約為10us

        //系統的晶振為16M的,沒有使用PLL倍頻

        inti;unsignedcharj;

        for(i=0;i

        for(j=0;j<16;j++)

        ;

        }

        voiddelay_ms(intdelaytime)

        {//軟件延時,16M總線頻率時延時時間約為1ms

        inti;

        for(i=0;i

        delay_us(100);

        }

        voidinit_lcd(void)/

        //--------position為任一位置的起始地址--*/

        //--length為長度,取值為1-64---/若只清一行最大為16//

        voidclr_lcd(ucharx,uchary0,ucharlength)//

        {//要寫的數據

        uchara,i,j;

        delay_us(50);

        a=content;

        LCD_SCLK0;//en=0;

        LCD_SID1;//wr=1

        for(i=0;i<5;i++)//數據時序*****************8

        {

        LCD_SCLK1;

        LCD_SCLK0;

        }

        LCD_SID0;//wr=0

        LCD_SCLK1;//en=1

        LCD_SCLK0;//en=0

        if(dat_comm)LCD_SID1;

        elseLCD_SID0;

        LCD_SCLK1;

        LCD_SCLK0;

        LCD_SID0;

        LCD_SCLK1;

        LCD_SCLK0;

        for(j=0;j<2;j++)//

        {

        ucharpos=0;

        switch(y0)

        {

        case0:pos=0x80+x;break;

        case1:pos=0x90+x;break;

        case2:pos=0x88+x;break;

        case3:pos=0x98+x;break;

        default:break;

        }

        wr_lcd(comm,pos);

        }

        //

        {

        ucharpos=0;

        switch(y0)

        {

        case0:pos=0x80+x;break;

        case1:pos=0x90+x;break;

        case2:pos=0x88+x;break;

        case3:pos=0x98+x;break;

        default:break;

        }

        wr_lcd(comm,pos);//comm為零。函數意思是移動光標到此

        wr_lcd(dat,data);//寫入這個數據dat和comm是1,0的標志

        }

        ////

        {

        ucharpos=0;//初始化

        ucharcnt=0;//傳遞過來的是指針,cnt為偏移量,然后一個字符一個字符的寫入。

        switch(y0)

        {

        case0:pos=0x80+x;break;

        case1:pos=0x90+x;break;

        case2:pos=0x88+x;break;

        case3:pos=0x98+x;break;

        default:break;

        }

        wr_lcd(comm,pos);//寫地址

        while(*(p+cnt)!=

        主站蜘蛛池模板: 扎兰屯市| 阿图什市| 赤壁市| 凉城县| 左云县| 遵义县| 维西| 泰和县| 林芝县| 克拉玛依市| 千阳县| 定日县| 维西| 昌吉市| 崇信县| 定远县| 乌什县| 四平市| 文安县| 临西县| 澄城县| 团风县| 玉屏| 叙永县| 林甸县| 东光县| 丰顺县| 安国市| 芦溪县| 五指山市| 长汀县| 武功县| 普兰店市| 正安县| 湟中县| 阿克苏市| 大连市| 黎川县| 滕州市| 石台县| 泉州市|