日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]/*************LCD1602A簡(jiǎn)介**********************************************◆ 控制器接口說(shuō)明(HD44780 及兼容芯片): 1 基本操作時(shí)序: 1.1 讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態(tài)字 1.2 寫(xiě)指令:輸

/*************LCD1602A簡(jiǎn)介**********************************************

◆ 控制器接口說(shuō)明(HD44780 及兼容芯片):
1 基本操作時(shí)序:
1.1 讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態(tài)字
1.2 寫(xiě)指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高脈沖輸出:無(wú)
1.3 讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:D0~D7=數(shù)據(jù)
1.4 寫(xiě)數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖輸出:無(wú)

2 狀態(tài)字說(shuō)明
STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0
D7 D6 D5 D4 D3 D2 D1 D0
STA0-6 當(dāng)前數(shù)據(jù)地址指針的數(shù)值
STA7 讀寫(xiě)操作使能 1: 禁止0: 允許
注:對(duì)控制器每次進(jìn)行讀寫(xiě)操作之前,都必須進(jìn)行讀寫(xiě)檢測(cè),確保STA7 為0

3 RAM 地址映射圖
控制器內(nèi)部帶有80X8 位(80字節(jié))的RAM緩沖區(qū),對(duì)應(yīng)關(guān)系如右圖所示:

4 指令說(shuō)明
4.1 初始化設(shè)置
4.1.1 顯示模式設(shè)置
指令碼 功能
0 0 1 1 1 0 0 0 設(shè)置16X2 顯示,5X7 點(diǎn)陣,8 位數(shù)據(jù)接口

4.1.2 顯示開(kāi)/關(guān)及光標(biāo)設(shè)置
指令碼 功能
0 0 0 0 1 D C B

D=1 開(kāi)顯示; D=0 關(guān)顯示
C=1 顯示光標(biāo);C=0 不顯示光標(biāo)
B=1 光標(biāo)閃爍;B=0 光標(biāo)不閃爍


0 0 0 0 0 1 N S
N=1 當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加一,且光標(biāo)加一
N=0 當(dāng)讀或?qū)懸粋€(gè)字符后地址指針減一,且光標(biāo)減一
S=1 當(dāng)寫(xiě)一個(gè)字符,整屏顯示左移(N=1)或右移(N=0),以得到光標(biāo)不移動(dòng)而屏LCD幕移動(dòng)的效果。
S=0 當(dāng)寫(xiě)一個(gè)字符,整屏顯示不移動(dòng)

4.2 數(shù)據(jù)控制
控制器內(nèi)部設(shè)有一個(gè)數(shù)據(jù)地址指針,用戶可通過(guò)它們來(lái)訪問(wèn)內(nèi)部的全部 80 字節(jié)RAM。
4.2.1 數(shù)據(jù)指針設(shè)置
指令碼 功能
80H+ 地址碼( 0-27H ,40H-67H)設(shè)置數(shù)據(jù)地址指針
4.2.2 讀數(shù)據(jù):見(jiàn)1.3 節(jié)
4.2.3 寫(xiě)數(shù)據(jù):見(jiàn)1.4 節(jié)
4.2.4 其他設(shè)置
指令碼 功能
01H 顯示清屏:1.數(shù)據(jù)指針清零
2.所有顯示清零
02H 顯示回車(chē):1.數(shù)據(jù)指針清零
5 初始化過(guò)程(復(fù)位過(guò)程)
5.1 延時(shí)15ms
5.2 寫(xiě)指令38H(不檢測(cè)忙信號(hào))
5.3 延時(shí)5ms
5.4 寫(xiě)指令38H(不檢測(cè)忙信號(hào))
5.5 延時(shí)5ms
5.6 寫(xiě)指令38H(不檢測(cè)忙信號(hào))
5.7 (以后每次寫(xiě)指令、讀/寫(xiě)數(shù)據(jù)操作之前均需檢測(cè)忙信號(hào))
5.8 寫(xiě)指令38H:顯示模式設(shè)置
5.9 寫(xiě)指令08H:顯示關(guān)閉
5.10 寫(xiě)指令01H:顯示清屏
5.11 寫(xiě)指令06H:顯示光標(biāo)移動(dòng)設(shè)置
5.12 寫(xiě)指令0CH:顯示開(kāi)及光標(biāo)設(shè)置
*********************************************************************/

//LCD1602的使用
//★★★★★★★★★L(fēng)CD1602的使用★★★★★★★★★★★\
//單片機(jī)型號(hào):PIC16F877A,LCD1602A
//功能描述:LCD循環(huán)顯不web和tel中的數(shù)據(jù)
//硬件要求:LCD直接與單片機(jī)的A口和D口相連接


#include //包含單片機(jī)內(nèi)部資源預(yù)定義
__CONFIG(0xf73a); //芯片配置字

#define rs RA1 //定義LCD1602數(shù)據(jù)/命令選擇端(H/L)
#define rw RA2 //定義LCD1602讀寫(xiě)控制信號(hào)(H/L)
#define e RA3 //定義LCD1602使能信號(hào)
const char web[]={' ',' ','I',' ',' ','L','O','V','E',' ',' ','Y','O','U',' ',' ',' ',' ','I',' ',' ','L','O','V','E',' ',' ','Y','O','U',' ',' ',' ',' ','I',' ',' ','L','O','V','E',' ',' ','Y','O','U',' ',' '};
//要顯示的數(shù)據(jù)
const char tel[]={'t','e','l','0','7','5','5','-','2','8','1','8','7','9','7','5','t','e','l','0','7','5','5','-','2','8','1','8','7','9','7','5','t','e','l','0','7','5','5','-','2','8','1','8','7','9','7','5'};
//要顯示的數(shù)據(jù)
void init(); //申明I/O口初始化函數(shù)
void lcd_init(); //申明LCD初始化函數(shù)
void write_web(); //申明顯示web函數(shù)
void write_tel(); //申明顯示tel函數(shù)
void write(char X); //申明顯示1字節(jié)數(shù)據(jù)函數(shù)
void lcd_enable(); //申明LCD顯示設(shè)置函數(shù)
void delay(); //申明延時(shí)函數(shù)


//===============================================================================
//函數(shù)功能:主函數(shù)
//函數(shù)名稱(chēng):void main()
void main()
{

while(1)
{
init();
lcd_init();
write_web();
PORTD=0xc0;
lcd_enable();
write_tel();
}
}


//===============================================================================
//函數(shù)功能:初始化函數(shù)
//函數(shù)名稱(chēng):void init()
void init()
{
ADCON1=0x07; //設(shè)置A口為普通I/O口
TRISA=0x00; //設(shè)置A口為輸出
TRISD=0x00; //設(shè)置D口為輸出
}


//===============================================================================
//函數(shù)功能:LCD初始化函數(shù)
//函數(shù)名稱(chēng):void lcd_init()
void lcd_init()
{
//PORTD=0x1; //清除顯示
//lcd_enable();
PORTD=0x38; //8位2行5*7點(diǎn)陣
lcd_enable();
PORTD=0x0c; //顯示開(kāi),光標(biāo)關(guān),不閃爍
lcd_enable();
PORTD=0x07; //文字不動(dòng),光標(biāo)右移,整屏顯示左移
lcd_enable;
PORTD=0x1b; //(設(shè)置數(shù)據(jù)地址指針)80H+ 地址碼
lcd_enable();

}


//===============================================================================
//函數(shù)功能:顯示web函數(shù)
//函數(shù)名稱(chēng):void write_web()
void write_web()
{
int i;
for (i=0;i<0x30;i++) //一共48字節(jié)數(shù)據(jù)
{
write(web[i]); //查表獲取數(shù)據(jù)并調(diào)用寫(xiě)一個(gè)字節(jié)數(shù)據(jù)函數(shù)送LCD顯示
}
}


//===============================================================================
//函數(shù)功能:顯示tel函數(shù)
//函數(shù)名稱(chēng):void write_tel()
void write_tel()
{
int i;
for(i=0;i<0x30;i++) //一共48字節(jié)數(shù)據(jù)
{
write(tel[i]); //查表獲取數(shù)據(jù)并調(diào)用寫(xiě)一個(gè)字節(jié)數(shù)據(jù)函數(shù)送LCD顯示
}
}


//===============================================================================
//函數(shù)功能:寫(xiě)一個(gè)字節(jié)數(shù)據(jù)函數(shù)
//函數(shù)名稱(chēng):void write(char X)
void write(char X)
{
PORTD=X; //待顯示數(shù)據(jù)送PORTD口
rs=1; //該字節(jié)數(shù)據(jù)為數(shù)據(jù),而不是命令
rw=0; //此次操作為寫(xiě),而不是讀
e=0; //拉低使能信號(hào)
delay(); //保持使能信號(hào)為低一段時(shí)間
e=1; //拉高使能信號(hào),建立LCD操作所需要的上升沿
}


//===============================================================================
//函數(shù)功能:LCD顯示設(shè)置函數(shù)
//函數(shù)名稱(chēng):void lcd_enable()
void lcd_enable()
{
rs=0; //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù)
rw=0; //此次操作為寫(xiě),而不是讀
e=0; //拉低使能信號(hào)
delay(); //保持使能信號(hào)為低一段時(shí)間
e=1; //拉高使能信號(hào),建立LCD操作所需要的上升沿
}


//===============================================================================
//函數(shù)功能:延時(shí)子程序
//函數(shù)名稱(chēng):void delay()
void delay()
{
int i;
for(i=0;i<200;i++);
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

//軟件思路:選擇RAO做為模擬輸入通道; // 連續(xù)轉(zhuǎn)換4次再求平均值做為轉(zhuǎn)換結(jié)果 // 最后結(jié)構(gòu)只取低8位 // 結(jié)果送數(shù)碼管的低3位顯示 #include //包含內(nèi)部資源預(yù)定義...

關(guān)鍵字: ad轉(zhuǎn)換 pic16f877a picc

unsigned char eeprom_read(unsigned char addr);void eeprom_write(unsigned char addr, unsigned char value);這兩個(gè)函數(shù)...

關(guān)鍵字: pic16f877a eeprom使用

//*****************電子園PIC16F877A開(kāi)發(fā)板 SPI總線驅(qū)動(dòng)74595實(shí)驗(yàn)***************////CKP=0; 空閑為低電平//CKP=1; 空閑為高電平//STAT_CKE=0;...

關(guān)鍵字: pic16f877a spi總線 驅(qū)動(dòng)74595

用c語(yǔ)言寫(xiě)的一個(gè)時(shí)鬧鐘程序單片機(jī)用16F877,主時(shí)鐘用20MHz,用32768作定時(shí)時(shí)間??梢詫?shí)現(xiàn)2路定鬧,每一路都可分別設(shè)置和開(kāi)關(guān),采用4x4鍵盤(pán),16x2的字符型LCD顯示。連線在程序開(kāi)頭有...

關(guān)鍵字: pic16f877a 時(shí)鐘 程序 語(yǔ)言

/****************************************************標(biāo)題:萬(wàn)年歷**說(shuō)明:包含文件,*****************************...

關(guān)鍵字: pic16f877a 萬(wàn)年歷 程序

//數(shù)碼管顯示//★★★★★★★★★數(shù)碼管顯示★★★★★★★★★★★\\\\ //單征機(jī)型號(hào):PIC16F877A //功能描述:采用動(dòng)態(tài)掃描方式,初始時(shí)顯示123,當(dāng)按下RB0時(shí),數(shù)值加一,當(dāng)按下RB1時(shí),數(shù)值減一...

關(guān)鍵字: pic16f877a 數(shù)碼管顯示

/************************************************PIC16F877A 內(nèi)部EEPROM讀寫(xiě)實(shí)驗(yàn)*******Author:hnrainDate:2010-12-26Ver...

關(guān)鍵字: pic16f877a 內(nèi)部eeprom 內(nèi)部函數(shù) 讀寫(xiě)實(shí)驗(yàn)

/*Capture mode時(shí),外部CCP1事件觸發(fā)后,CCPR1H和CCPR1L將獲取Timer1的TMR1H和TMR1L中的數(shù)值對(duì)于CCP1的觸發(fā)事件,設(shè)置鍵CCP1Con中的相應(yīng)位CCP1M3--CCP1M0CCP...

關(guān)鍵字: capture mode pic16f877a

PIR1 Register The PIR1 register contains the individual flag bits for the peripheralinterrupts.PIR1 REGISTERPS...

關(guān)鍵字: pic16f877a 單片機(jī) spi學(xué)習(xí)
關(guān)閉