久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

PIC單片機驅動LCD1602液晶顯示字符串程序

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年03月31日   【字體:

/***************************************************************************
*** 功能:LCD1602的使用
*** 實驗內容:LCD顯示本站網址和電話
*** 開發板連接方法: 調節1602電位器,使LCD對比度最好,裝1602時不要裝錯了,否測會燒掉。
***************************************************************************/
#include<pic.h>

__CONFIG(0xFF32);
//芯片配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振蕩

//LCD控制線宏定義
#define rs RA5      
#define rw RA4
#define e  RA3
              
//顯示公司web地址
char web[ ] = {"***.*********.***"};

//顯示公司電話號碼
char tel[ ] = {"    110    " };

void init();                   //申明I/O口初始化函數
void lcd_init();               //申明LCD初始化函數
void write(char x);            //申明顯示1字節數據函數
void lcd_enable();             //申明LCD顯示設置函數
void delay();                  //申明延時函數
void writelcd(char *pt);           //聲明LCD寫字符串函數

/****************************************************************************
* 名    稱:main()
* 功    能:主函數
* 入口參數:
* 出口參數:
* 說    明:
* 備    注:
****************************************************************************/
void main()
{
        init();                //調用I/O口初始化函數
        lcd_init();            //調用LCD初始化函數      
        while (1)
        {
                writelcd(web);                        //調用顯示公司web地址函數
        PORTD = 0XC0;           //設置第2行顯示地址
                lcd_enable();                  //調用LCD顯示設置函數
                writelcd(tel);                        //調用顯示公司tel函數
        }
}

/****************************************************************************
* 名    稱:init()
* 功    能:I/O口初始化
* 入口參數:
* 出口參數:
* 說    明:
* 備    注:
****************************************************************************/
void init()
{
        ADCON1 = 0X07;               //設置A口為普通I/O口
     RA1=1;
        TRISA = 0X00;                //設置A口為輸出
        TRISD = 0X00;                //設置D口為輸出
}

/****************************************************************************
* 名    稱:lcd_init()
* 功    能:LCD初始化
* 入口參數:
* 出口參數:
* 說    明:
* 備    注:
****************************************************************************/
void lcd_init()
{
        PORTD = 0X1;                 //清除顯示
        lcd_enable();
        PORTD = 0X38;                //8位2行5*7點陣
        lcd_enable();
        PORTD = 0X0e;                //顯示開,光標開,閃爍
        lcd_enable();
        PORTD = 0X06;                //文字不動,光標右移
        lcd_enable();
        PORTD = 0X80;                //公司web顯示地址
        lcd_enable();
}

/****************************************************************************
* 名    稱:write()
* 功    能:寫一個字節數據到LCD
* 入口參數:char x 字符
* 出口參數:
* 說    明:
* 備    注:
****************************************************************************/
void write(char x)
{
        PORTD = x;                   //待顯示數據送PORTD口
        rs = 1;                      //該字節數據為數據,而不是命令
        rw = 0;                      //此次操作為寫,而不是讀
        e = 0;                       //拉低使能信號
        delay();                            //保持使能信號為低一段時間
        e = 1;                       //拉高使能信號,建立LCD操作所需要的上升沿
}

/****************************************************************************
* 名    稱:lcd_enable()
* 功    能:LCD顯示設置
* 入口參數:
* 出口參數:
* 說    明:
* 備    注:
****************************************************************************/
void lcd_enable()
{
        rs = 0;                     //該字節數據為命令,而不是數據
        rw = 0;                     //此次操作為寫,而不是讀
        e = 0;                      //拉低使能信號
        delay();                          //保持使能信號為低一段時間
        e = 1;                      //拉高使能信號,建立LCD操作所需要的上升沿
}

/****************************************************************************
* 名    稱:delay()
* 功    能:延時
* 入口參數:
* 出口參數:
* 說    明:
* 備    注:
****************************************************************************/
void delay()
{
        int i;
        for (i = 0;i < 5000;i++);
}

/****************************************************************************
* 名    稱: writelcd()
* 功    能: 在LCD上顯示字符串
* 入口參數:char *pt 字符串的首地址
* 出口參數:
* 說    明:
* 備    注:
****************************************************************************/
void writelcd(char *pt)
{
    while(*pt)
        write(*pt++);
}

關閉窗口

相關文章

主站蜘蛛池模板: 久草视 | 亚洲精品68久久久一区 | 国产一区二区高清在线 | 日韩精品极品视频在线观看免费 | 视频一区在线 | 久久精品国产亚洲一区二区三区 | 古典武侠第一页久久777 | 日韩av成人 | 在线播放国产视频 | 国产精品成人一区二区三区夜夜夜 | 色一情一乱一伦一区二区三区 | 91se在线| 久久久久亚洲 | 一区二区三区视频在线 | 日韩欧美一区二区在线播放 | 欧美日本亚洲 | 亚洲人成网站777色婷婷 | 国产成人免费视频网站高清观看视频 | 欧美日韩在线精品 | 久久99久久 | 久久不卡 | 中文字幕一区二区三区四区五区 | 精品一二区| 久久精品—区二区三区 | 久免费视频 | 一区二区三区在线免费观看 | 日韩高清一区 | 91精品国产综合久久精品 | 国产精品亚洲二区 | 一区二区久久 | 国产精品亚洲第一区在线暖暖韩国 | 三级视频久久 | 日韩欧美国产一区二区 | 久久国产精品免费 | 伦理午夜电影免费观看 | 日韩在线不卡 | 色综合久| 亚洲 欧美 日韩在线 | 国产精品美女久久久 | 91国内精品| 久久久久成人精品免费播放动漫 |