新聞中心

        HD44780讀寫C51程序

        作者: 時(shí)間:2013-01-07 來源:網(wǎng)絡(luò) 收藏

        下面我給大家介紹一個(gè)讀寫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(' ');



        關(guān)鍵詞: HD44780 C51 單片機(jī)

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 木兰县| 屏山县| 杭锦后旗| 黄梅县| 东海县| 苏尼特左旗| 金湖县| 新昌县| 万州区| 八宿县| 屏东市| 克什克腾旗| 旬邑县| 晋中市| 山西省| 南开区| 昌平区| 盐城市| 河间市| 城市| 呼图壁县| 小金县| 绥化市| 维西| 米易县| 盖州市| 中宁县| 花垣县| 吐鲁番市| 邻水| 宁夏| 建始县| 宣武区| 舞阳县| 八宿县| 高清| 嫩江县| 漳浦县| 克山县| 嵊州市| 诸暨市|