欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6682|回復: 1
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
ID:51707 發表于 2013-7-11 02:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<pic.h>

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

//LCD控制線宏定義
#define rs RA0  
#define rw RA1
#define e  RA2

char web[ ] = {"www.raoushi.com"};
char tel[ ] = {"QQ:776860123 " };

  
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初始化函數

    {
        writelcd(web);          //調用顯示公司web地址函數
        PORTD = 0XC0;           //設置第2行顯示地址
        lcd_enable();           //調用LCD顯示設置函數
        writelcd(tel);          //調用顯示公司tel函數
    }
    while (1);
}

/****************************************************************************
* 名    稱: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++);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:56605 發表于 2014-6-10 17:18 | 只看該作者
多謝分享!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表