新聞中心

        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] != '

        主站蜘蛛池模板: 玉林市| 铁岭市| 和田县| 遵化市| 天津市| 隆子县| 临湘市| 竹北市| 松滋市| 屏东县| 鹿泉市| 锡林浩特市| 莱州市| 山东省| 民权县| 绥德县| 赫章县| 禄丰县| 香格里拉县| 柘城县| 建瓯市| 长子县| 赤峰市| 澜沧| 涪陵区| 芦溪县| 巍山| 周口市| 巩留县| 富宁县| 勃利县| 奉节县| 大洼县| 上蔡县| 青神县| 米林县| 壶关县| 威信县| 保山市| 延边| 湾仔区|