新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機LCD實驗2

        單片機LCD實驗2

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

        代碼如下:
        #include
        #include
        typedef unsigned char BYTE;
        typedef unsigned int WORD;
        typedef bit BOOL ;
        sbit rs = P2^0; //
        sbit rw = P2^1;
        sbit ep = P2^2;
        BYTE code dis1[] = {"welcome!"};
        BYTE code dis2[] = {"china !!!refuel!"};
        delay(BYTE ms)
        { // 延時子程序
        BYTE i;
        while(ms--)
        {
        for(i = 0; i< 250; i++)
        {
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        }
        }
        }
        BOOL lcd_bz()
        { // 測試LCD忙碌狀態
        BOOL result;
        rs = 0;
        rw = 1;
        ep = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        result = (BOOL)(P0 & 0x80);
        ep = 0;
        return result;
        }
        lcd_wcmd(BYTE cmd)
        { // 寫入指令數據到LCD
        while(lcd_bz());
        rs = 0;
        rw = 0;
        ep = 0;
        _nop_();
        _nop_();
        P0 = cmd;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 0;
        }
        lcd_pos(BYTE pos)
        { //設定顯示位置
        lcd_wcmd(pos | 0x80);
        }
        lcd_wdat(BYTE dat)
        { //寫入字符顯示數據到LCD
        while(lcd_bz());
        rs = 1;
        rw = 0;
        ep = 0;
        P0 = dat;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ep = 0;
        }
        lcd_init()
        { //LCD初始化設定
        lcd_wcmd(0x38); //
        delay(1);
        lcd_wcmd(0x0c); //
        delay(1);
        lcd_wcmd(0x06); //
        delay(1);
        lcd_wcmd(0x01); //清除LCD的顯示內容
        delay(1);
        }
        main()
        {
        BYTE i;
        lcd_init(); // 初始化LCD
        delay(10);
        lcd_pos(4); // 設置顯示位置為第一行的第5個字符
        i = 0;
        while(dis1[i] != 主站蜘蛛池模板: 中卫市| 新蔡县| 雷波县| 吉林市| 永登县| 夏邑县| 宜宾市| 辉南县| 四川省| 仁寿县| 江源县| 九台市| 蚌埠市| 荆州市| 枝江市| 万宁市| 南雄市| 钦州市| 连江县| 桂阳县| 从化市| 新建县| 高尔夫| 页游| 渭南市| 宁南县| 准格尔旗| 新宾| 宁德市| 永德县| 旌德县| 广河县| 陈巴尔虎旗| 闻喜县| 永福县| 五峰| 翼城县| 青州市| 红安县| 四川省| 新宾|