新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51 單片機綜合學習系統之 1602字符型液晶顯示篇

        51 單片機綜合學習系統之 1602字符型液晶顯示篇

        作者: 時間:2016-11-28 來源:網絡 收藏

        10.8.3.2 程序流程圖

        圖10-61 軟件流程圖

        10.8.3.3 軟件代碼

        #include

        #include

        sbit rs= P2^0;

        sbit rw = P2^1;

        sbit ep = P2^2;

        unsigned char code dis1[] = {"www.hificat.com"};

        unsigned char code dis2[] = {"0571-85956028"};

        void delay(unsigned char ms)

        {

        unsigned char i;

        while(ms--)

        {

        for(i = 0; i< 250; i++)

        {

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        }

        }

        }

        bit lcd_bz()

        {

        bit result;

        rs = 0;

        rw = 1;

        ep = 1;

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        result = (bit)(P0 & 0x80);

        ep = 0;

        return result;

        }

        void lcd_wcmd(unsigned char cmd)

        {

        while(lcd_bz());//判斷LCD是否忙碌

        rs = 0;

        rw = 0;

        ep = 0;

        _nop_();

        _nop_();

        P0 = cmd;

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        ep = 1;

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        ep = 0;

        }

        void lcd_pos(unsigned char pos)

        {

        lcd_wcmd(pos | 0x80);

        }

        void lcd_wdat(unsigned char dat)

        {

        while(lcd_bz());//判斷LCD是否忙碌

        rs = 1;

        rw = 0;

        ep = 0;

        P0 = dat;

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        ep = 1;

        _nop_();

        _nop_();

        _nop_();

        _nop_();

        ep = 0;

        }

        void lcd_init()

        {

        lcd_wcmd(0x38);

        delay(1);

        lcd_wcmd(0x0c);

        delay(1);

        lcd_wcmd(0x06);

        delay(1);

        lcd_wcmd(0x01);

        delay(1);

        }

        void main(void)

        {

        unsigned char i;

        lcd_init();// 初始化LCD

        delay(10);

        lcd_pos(0x01);//設置顯示位置

        i = 0;

        while(dis1[i] != /0)

        {

        lcd_wdat(dis1[i]);//顯示字符

        i++;

        }

        lcd_pos(0x42);// 設置顯示位置

        i = 0;

        while(dis2[i] != /0)

        {

        lcd_wdat(dis2[i]);// 顯示字符

        i++;

        }

        while(1);

        }


        上一頁 1 2 3 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 逊克县| 边坝县| 陆良县| 安福县| 东阿县| 台南市| 太原市| 饶阳县| 安西县| 徐水县| 墨竹工卡县| 永济市| 江山市| 卓资县| 平乐县| 江门市| 通化县| 南木林县| 平和县| 报价| 庆云县| 平山县| 三门峡市| 洪洞县| 奉贤区| 灌阳县| 攀枝花市| 葫芦岛市| 施甸县| 讷河市| 沙洋县| 华安县| 荣昌县| 呼图壁县| 保德县| 宜兰县| 巩留县| 安岳县| 广宁县| 灵宝市| 南汇区|