天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開(kāi)發(fā)

專(zhuān)注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開(kāi)發(fā)工具

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

如何使用PIC單片機(jī)控制LCD顯示屏?

更新時(shí)間: 2021-12-06
閱讀量:4420

在本案例中,英銳恩單片機(jī)開(kāi)發(fā)工程師將介紹如何將16×2 LCD顯示屏連接到PIC18F系列的PIC18F4550單片機(jī)。

PIC18F4550的特點(diǎn):

(1)PIC18F4550屬于PIC18F系列;PIC18F4550是一款8位單片機(jī),采用RISC架構(gòu)。PIC18F4550有40個(gè)PDIP(雙列直插式封裝)引腳和44個(gè)TQFP(四方扁平封裝)引腳。
(2)PIC18F4550中嵌入了32KB閃存、2048字節(jié)的SRAM(同步隨機(jī)存取存儲(chǔ)器)、256字節(jié)的EEPROM(電可擦除程序只讀存儲(chǔ)器)。
(3)它有35個(gè)I/O引腳,用于與其他外圍設(shè)備接口和通信,13通道10位模數(shù)轉(zhuǎn)換器,用于連接和通信模擬外圍設(shè)備(直流電機(jī)、LDR等)。
(4)它有2個(gè)CCP和1個(gè)ECCP模塊,是增強(qiáng)型捕獲和比較模塊,主要用于調(diào)制和波形生成功能。CCP模塊是16位寄存器,作為16位捕捉位寄存器、16位比較位寄存器、PWM和占空比寄存器。
(5)PIC18F4550具有SPI(串行外設(shè)接口)和i2c(內(nèi)部集成電路)用于主從模式。它具有用于USB流傳輸?shù)腟PP(流并行端口)。
(6)PIC18F4550內(nèi)嵌了4個(gè)定時(shí)器模塊(timer0到timer3)、2個(gè)比較器模塊和3個(gè)外部中斷。它具有雙振蕩器選項(xiàng),允許單片機(jī)和USB模塊以不同的時(shí)鐘速度運(yùn)行。它可以在2.0V至5.5V下工作。

16X2 LCD接口PIC單片機(jī)電路圖:

Circuit-Diagram-of-16X2-LCD-Interfacing-PIC-Microcontroller.png

16X2 LCD接口PIC單片機(jī)-電路說(shuō)明:

電阻器R1用于為L(zhǎng)CD提供對(duì)比度。12MHz的晶振連接到Pic單片機(jī)PIC18F4550的OSC1和OSC2引腳作為系統(tǒng)時(shí)鐘。電容C2和C3將作為晶體振蕩器的濾波器。您可以使用不同的端口或引腳來(lái)連接LCD,然后再轉(zhuǎn)到不同的端口,請(qǐng)檢查數(shù)據(jù)手冊(cè)中的引腳是通用引腳還是特殊功能引腳。

將16X2 LCD連接到PIC:

將LCD連接到PIC與連接到8051沒(méi)有什么不同。只有用于接口的引腳、寄存器和架構(gòu)會(huì)有所不同。當(dāng)我們查看程序時(shí),初始化、向LCD發(fā)送數(shù)據(jù)等功能幾乎相同。

在用于初始化LCD的pic編程中,R/W引腳應(yīng)為低電平以寫(xiě)入數(shù)據(jù),啟用引腳應(yīng)為高電平,寄存器選擇引腳(RS)應(yīng)為高電平以寫(xiě)入數(shù)據(jù)。要發(fā)送命令,RS應(yīng)為低電平,R/W引腳應(yīng)為低電平,使能引腳應(yīng)為高電平。

初始化LCD功能:

lcdcmd(0x38);//配置LCD為8位模式,2行5×7字體
lcdcmd(0x0C);//顯示開(kāi)啟和關(guān)閉光標(biāo)
lcdcmd(0x01);//清除顯示屏幕
lcdcmd(0x06);//增加光標(biāo)
lcdcmd(0x80);//設(shè)置光標(biāo)位置為第一行第一列

向LC發(fā)送命令:

rs=0;寄存器選擇引腳為低電平。
rw=0;讀/寫(xiě)引腳也用于向LCD寫(xiě)入命令。
en=1;使能引腳為高電平。
向LCD發(fā)送數(shù)據(jù):
rs=1;寄存器選擇引腳為高電平。
rw=0;讀/寫(xiě)引腳也用于向LCD寫(xiě)入命令。
en=1;使能引腳為高電平。

編程步驟:

在您的系統(tǒng)中安裝MPLAB并創(chuàng)建一個(gè)新項(xiàng)目,在選擇設(shè)備和系列時(shí)選擇PIC18F系列并將PIC18F4550控制器添加到您的項(xiàng)目中。
選擇您已安裝的編譯器并將文件添加到您的項(xiàng)目中。添加文件后粘貼下面給出的代碼并運(yùn)行它。因?yàn)樗且粋€(gè)預(yù)編譯和測(cè)試過(guò)的程序,所以你不會(huì)發(fā)現(xiàn)任何錯(cuò)誤。
在沒(méi)有錯(cuò)誤的情況下編譯程序后,使用PICKIT2或PICKIT3編程器/調(diào)試器將程序轉(zhuǎn)儲(chǔ)到您的開(kāi)發(fā)板上。
如果您不使用PICKIT,則只需編譯代碼并使HEX文件使用此HEX文件對(duì)PIC單片機(jī)進(jìn)行編程。

LCD與PIC18F4550接口程序:

#define rs LATA.F0
#define rw LATA.F1
#define en LATA.F2
//LCD 數(shù)據(jù)引腳
#define lcdport LATB

void lcd_init();
void lcdcmd(unsigned char);
void lcddata(unsigned char);
unsigned char data[20]=”hello world”;
unsigned int i=0;

void main(void)
{
TRISA=0;                             // 將端口 A 配置為輸出端口
LATA=0;
TRISB=0;                             // 配置端口 B 為輸出端口
LATB=0;
lcd_init();                              // LCD 初始化
while(data[i]!=’\0′)
{
lcddata(data[i]);     // 調(diào)用lcddata函數(shù)
i++;
Delay_ms(300);
}
}

void lcd_init()
{
lcdcmd(0x38);
lcdcmd (0x0C);
lcdcmd(0x01);
lcdcmd(0x06);
lcdcmd(0x80);

}

void lcdcmd(unsigned char cmdout)
{
lcdport=cmdout;
rs=0;
rw=0;
en=1;
Delay_ms(10);
en=0;
}

void lcddata(unsigned char dataout)
{
lcdport=dataout;
rs=1;
rw=0;
en=1;
Delay_ms(10);
en=0;
}

以上就是英銳恩單片機(jī)開(kāi)發(fā)工程師分享的“如何使用PIC單片機(jī)控制LCD顯示屏?”。英銳恩專(zhuān)注單片機(jī)應(yīng)用方案設(shè)計(jì)與開(kāi)發(fā),提供8位單片機(jī)、16位單片機(jī)、32位單片機(jī)。

联系我们: 嘉黎县| 犍为县| 额济纳旗| 札达县| 齐河县| 临西县| 会同县| 偏关县| 黔东| 重庆市| 樟树市| 称多县| 五台县| 巴南区| 喀什市| 英吉沙县| 保山市| 内乡县| 嵩明县| 呼伦贝尔市| 香河县| 澄城县| 龙口市| 马尔康县| 如皋市| 白水县| 柘荣县| 寿光市| 义马市| 新龙县| 奉节县| 武威市| 自治县| 黄平县| 南城县| 门头沟区| 万盛区| 克什克腾旗| 石嘴山市| 杨浦区| 昌乐县|