<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC18F4521602簡(jiǎn)單顯示規律

PIC18F4521602簡(jiǎn)單顯示規律

作者: 時(shí)間:2018-07-31 來(lái)源:網(wǎng)絡(luò ) 收藏

本文主要介紹了PIC18F4521602簡(jiǎn)單顯示規律的問(wèn)題。

本文引用地址:http://dyxdggzs.com/article/201807/384692.htm

1602液晶顯示器資料

所謂1602是指顯示的內容為16*2,即可以顯示兩行,每行16個(gè)字符。目前市面上字符液晶絕大多數是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫(xiě)的控制程序可以很方便地應用于市面上大部分的字符型液晶。

1. 1602液晶的正面(綠色背光,黑色字體)   2.1602液晶背面(綠色背光,黑色字體)   3.另一種1602液晶模塊,顯示屏是藍色背光白色字體

字符型LCD1602通常有14條引腳線(xiàn)或16條引腳線(xiàn)的LCD,多出來(lái)的2條線(xiàn)是背光電源線(xiàn)VCC(15腳)和地線(xiàn)GND(16腳),其控制原理與14腳的LCD完全一樣,引腳定義。

HD44780內置了DDRAM、CGROM和CGRAM。

A. DDRAM就是顯示數據RAM,用來(lái)寄存待顯示的字符代碼。共80個(gè)字節.那么一行可有40個(gè)地址呀?是的,在1602中我們就用前16個(gè)就行了。第二行也一樣用前16個(gè)地址。

若想要在LCD1602屏幕的第一行第一列顯示一個(gè)A字,就要向DDRAM的00H地址寫(xiě)入“A”字的代碼就行了。這是一個(gè)令初學(xué)者很容易出錯的地方,原因就是如果你要想在DDRAM的00H地址處顯示數據,則必須將00H加上80H,即80H,若要在DDRAM的01H處顯示數據,則必須將01H加上80H即81H。依次類(lèi)推。

B. 1602液晶模塊內部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形。字符代碼0x00~0x0F為用戶(hù)自定義的字符圖形RAM(對于5X8點(diǎn)陣的字符,可以存放8組,5X10點(diǎn)陣的字符,存放4組),就是CGRAM了。后面我會(huì )詳細說(shuō)的。 0x20~0x7F為標準的ASCII碼,0xA0~0xFF為日文字符和希臘文字符,其余字符碼(0x10~0x1F及0x80~0x9F)沒(méi)有定義。

D44780的指令集及其設置說(shuō)明,共11條指令:

1.清屏指令;2.光標歸位指令;3.進(jìn)入模式設置指令;4.顯示開(kāi)關(guān)控制指令;5.設定顯示屏或光標移動(dòng)方向指令;6.功能設定指令;7.設定CGRAM地址指令;8.設定DDRAM地址指令;9.讀取忙信號或AC地址指令;10.數據寫(xiě)入DDRAM或CGRAM指令一覽;11.從CGRAM或DDRAM讀出數據的指令一覽

程序編寫(xiě):1.初始化設置指令;2.寫(xiě)指令帶忙檢測函數;3.寫(xiě)數據帶忙檢測函數;4.寫(xiě)地址坐標函數。

#include //調用頭文件,可以去PICC18軟件下去查找PIC18FXX2.H

__CONFIG(1,XT) ; //晶振為外部4M

__CONFIG(2,WDTDIS) ; //看門(mén)狗關(guān)閉

__CONFIG(4,LVPDIS) ; //禁止低電壓編程

#define RSPIN RB5 //0 input instrument;1 input data

#define RWPIN RB4 //0 give LCD write instrument or data;1 read LCD information

#define EPIN RB3 //1 read infor;1-0 action instrument

//名稱(chēng): 1602檢測到忙

void lcd_wait_busy(void)//RS R/W DB7 DB6~DB0

{//讀取忙信號或AC地址信號:0 1 FB AC內容7位

//BF=1 表示液晶顯示忙,暫無(wú)法接受數據或指令

TRISD7=1;//為讀狀態(tài)做準備

RSPIN=0;//選擇指令寄存器

RWPIN=1;//選擇讀

EPIN=1; //使能電平,1,讀信息

while(RD7==1);//,BF=1表示液晶顯示器忙

EPIN=0;

TRISD7=0;

}

//名稱(chēng): 1602寫(xiě)命令函數(帶忙檢測)

void lcd_write_com_busy(unsigned char combuf)

{

lcd_wait_busy(); //調用忙檢測函數

RSPIN=0;//input instrument

RWPIN=0;//give LCD writing instrument or data

PORTD=combuf;//command to PD

EPIN=1;

asm(NOP);

EPIN=0;//1 to 0 action instrument

}

//名稱(chēng): 1602寫(xiě)數據函數(帶忙檢測)

void lcd_write_data_busy(unsigned char combuf)

{

lcd_wait_busy(); //調用忙檢測函數

RSPIN=1;

RWPIN=0;

PORTD=combuf;

EPIN=1;

asm(NOP);

EPIN=0;

}

//名稱(chēng): 1602寫(xiě)給顯示地址函數

void lcd_write_address(unsigned char x,unsigned char y)

{

x=0x0f; //列地址限制在0-15

y=0x01; //行地址限制在0-1

if(y==0x00)//送地址的時(shí)候應該是0x80+Address

lcd_write_com_busy(x|0x80); //第一行的列地址寫(xiě)入

else//second row 0x40

lcd_write_com_busy((x+0x40)|0x80); //第二行的列地址寫(xiě)入

}

//名稱(chēng): 指定地址寫(xiě)入函數

void lcd_write_char(unsigned char x,unsigned char y,unsigned char buf)

{

lcd_write_address(x,y); //寫(xiě)入地址

lcd_write_data_busy(buf); //寫(xiě)入顯示數據

}

//初始化開(kāi)始

void lcdreset(void)

{

lcd_write_com_busy(0x38); //功能設定指令,設定數據總線(xiàn)位數、顯示的行數及字型。

lcd_write_com_busy(0x08); //顯示開(kāi)關(guān)控制指令,顯示功能關(guān),無(wú)光標

lcd_write_com_busy(0x01); //清屏指令

lcd_write_com_busy(0x06); //進(jìn)入模式,每次定入1位數據后光標右移,屏不移動(dòng)

lcd_write_com_busy(0x14); //設定顯示屏或光標移動(dòng)方向指令,寫(xiě)入新的數據后,光標右移,顯示屏不移動(dòng)

lcd_write_com_busy(0x0c); //顯示功能開(kāi),無(wú)光標,不閃爍

}

void main()

{

ADCON1=0X06; //所有IO均為數字口,模擬量輸入禁止

TRISB=0B11000111; //RB3-5設置為輸出

TRISD=0B00000000; //RD設置為輸出

lcdreset();

lcd_write_char(0,0,0x41); //A

lcd_write_char(1,0,0x42); //B

lcd_write_char(2,0,0x43); //C

lcd_write_char(3,0,0x44); //D

lcd_write_char(4,0,0x45); //E

lcd_write_char(5,0,0x46); //F

lcd_write_char(6,0,0x47); //G

lcd_write_char(7,0,0x48); //H

lcd_write_char(8,0,0x49); //I

lcd_write_char(9,0,0x4A); //J

lcd_write_char(10,0,0x4B); //K

lcd_write_char(11,0,0x4C); //L

lcd_write_char(12,0,0x4D); //M

lcd_write_char(13,0,0x4E); //N

while(1)

{

}

}



關(guān)鍵詞: 單片機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>