新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > HD44780讀寫C51程序

        HD44780讀寫C51程序

        作者: 時間:2013-01-07 來源:網絡 收藏

        下面我給大家介紹一個讀寫c51程序

        #include reg51.h>
        #include intrins.h>

        sbit GND_LCD=P1^7;
        sbit rs=P1^0;
        sbit rw=P1^1;
        sbit e=P1^2;

        unsigned char busy(void);
        void ctrl(unsigned char);
        void wd_h(unsigned char);
        void wd_l(unsigned char);
        unsigned char rd(void);
        void write(unsigned char);
        void init(void);
        void NOP(void);

        void disp(unsigned char);


        unsigned int time;

        void int_t0 (void) interrupt 1 {
        TL0=TL0+30;TH0=0xfb;
        time++;
        }

        void wait(unsigned int w){
        time=0;
        while (timew) {}
        }


        void init(void) {
        unsigned char i;
        P1=0;
        for (i=0;i2;i++) {
        wd_l(0x30);
        wait(5);
        }
        wd_h(0x20);
        ctrl(0x28);
        ctrl(0x8);
        ctrl(3);
        ctrl(6);
        disp(0);
        ctrl(1);
        ctrl(8);
        ctrl(0xe);
        ctrl(0x80);
        }


        unsigned char busy(void){
        P1=0;
        return(rd());
        }

        unsigned char rd(void) {
        unsigned char dat0,dat1;
        rw=1;
        rs=0;
        P1=P1|0x78;
        e=1;
        dat0=P1;
        e=0;
        e=1;
        dat1=P1;
        P1=0;
        return(((dat01)0xf0) | ((dat1>>3)0xf) );
        }

        void ctrl(unsigned char dat){
        while (busy()>0x7f) {};
        rw=rs=0;
        wd_h(dat);
        wd_l(dat);
        }
        void wd_h(unsigned char dat){
        e=1;
        P1=P1|((dat0xf0)>>1);
        e=0;
        P1=P10x87;
        }
        void wd_l(unsigned char dat){
        e=1;
        P1=P1|((dat0xf)3);
        e=0;
        P1=0;
        }
        void write(unsigned char dat) {
        while (busy()>0x7f) {};
        rw=0;
        rs=1;
        wd_h(dat);
        wd_l(dat);
        }

        //===============讀寫程序====================================
        void disp(unsigned char i) {
        unsigned char j;
        ctrl(1);
        ctrl(0x80);
        for (j=0;j6;j++) write(d[i][j]);
        write(' ');



        關鍵詞: HD44780 C51 單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 呈贡县| 德昌县| 鹤山市| 彩票| 长治县| 来凤县| 阿拉善右旗| 克拉玛依市| 滦南县| 绥宁县| 新疆| 星子县| 海原县| 五峰| 平泉县| 孙吴县| 鄂托克旗| 北安市| 涟水县| 南汇区| 襄垣县| 长白| 南岸区| 遂宁市| 祁东县| 甘南县| 阳高县| 都匀市| 郯城县| 石林| 慈利县| 隆尧县| 上栗县| 通渭县| 磴口县| 通山县| 桂平市| 改则县| 宁晋县| 赤城县| 大丰市|