新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于51單片機的1602LCD液晶反顯程序

        基于51單片機的1602LCD液晶反顯程序

        作者: 時間:2012-11-15 來源:網(wǎng)絡 收藏

        /*1602LCD演示程序*/
        /*單片機型號:*/
        /*晶振:11.0592MHZ*/
        /*作者:http://www.51hei.com*/
        /*編譯環(huán)境:Keil 7.50A*/
        /****包含頭文件*****/
        #include reg51.h>
        #include intrins.h>
        /******************端口定義可根據(jù)你的電路自行修改*******/
        sbit rs=P3^5;
        sbit rw=P2^7;
        sbit cs=P3^4;
        sbit ep=P3^4;/*****顯示數(shù)據(jù)表*******/
        unsigned char code dis1[] = {"xu han jun"};
        unsigned char code dis2[] = {"best wishes"};
        /********************
        函數(shù)功能:LCD延時子程序
        入口參數(shù):ms
        出口參數(shù):
        ********************/
        void delay(unsigned char ms)
        {
        unsigned char i;
        while(ms--)
        {
        for(i = 0; i250; i++)
        {
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        }
        }
        }
        /********************
        函數(shù)功能:測試LCD忙碌狀態(tài)
        入口參數(shù):
        出口參數(shù):result
        **********************/
        bit lcd_bz()
        {
        bit result;
        rs = 0;
        rw = 1;
        ep = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        result = (bit)(P0 0x80);
        ep = 0;
        return result;
        }
        /*****************
        函數(shù)功能:寫指令數(shù)據(jù)到LCD子程序
        入口參數(shù):cmd
        出口參數(shù):
        ***************/
        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;
        }
        /*************************
        函數(shù)功能:設定顯示位置子程序
        入口參數(shù):pos
        出口參數(shù):
        *************************/
        void lcd_pos(unsigned char pos)
        {
        lcd_wcmd(pos | 0x80);
        }
        /***********************
        函數(shù)功能:寫入顯示數(shù)據(jù)到LCD子程序
        入口參數(shù):dat
        出口參數(shù):
        ************************/
        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;
        }
        /**********************
        函數(shù)功能:LCD初始化子程序
        入口參數(shù):
        出口參數(shù):
        ***********************/
        void lcd_init()
        {
        lcd_wcmd(0x38);
        delay(1);
        lcd_wcmd(0x0c);
        delay(1);
        lcd_wcmd(0x01);
        delay(1);
        lcd_wcmd(0x04);
        delay(1);
        }
        /*****************
        函數(shù)功能:主程序
        入口參數(shù):
        出口參數(shù):
        ********************/
        void main(void)
        {
        unsigned char i;
        lcd_init();// 初始化LCD
        delay(10);
        lcd_pos(0x0E);//設置顯示位置
        i = 0;
        while(dis1[i] != '

        主站蜘蛛池模板: 韩城市| 临泉县| 秦安县| 连城县| 张家港市| 上高县| 永胜县| 泰来县| 旺苍县| 毕节市| 元谋县| 深水埗区| 长兴县| 禹州市| 定南县| 南乐县| 庄河市| 吉林省| 阜康市| 宝鸡市| 西华县| 淮安市| 新和县| 麟游县| 滨州市| 宿迁市| 甘泉县| 南城县| 称多县| 利津县| 阿合奇县| 海阳市| 大厂| 翁牛特旗| 南郑县| 曲周县| 金寨县| 郯城县| 米易县| 晋中市| 谷城县|