欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
PIC單片機驅動LCD1602液晶循環顯示兩行字符串程序
[打印本頁]
作者:
wendi
時間:
2013-7-11 02:55
標題:
PIC單片機驅動LCD1602液晶循環顯示兩行字符串程序
#include<pic.h>
__CONFIG(0x1832);
//芯片配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振蕩
//LCD控制線宏定義
#define rs RA0
#define rw RA1
#define e RA2
char web[ ] = {"m.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++);
}
作者:
gzpenglin
時間:
2014-6-10 17:18
多謝分享!
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1