色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 16X2 LCD與PIC單片機(jī)的接口

          16X2 LCD與PIC單片機(jī)的接口

          作者: 時間:2023-05-30 來源:電子產(chǎn)品世界 收藏

          在本節(jié)課中,我們將看到如何將16×2的連接到PIC18F4550微控制器,PIC18F系列微控制器。你可以在 "如何將16X2 與8051連接 "一節(jié)中獲得關(guān)于16X2 的信息。

          本文引用地址:http://cafeforensic.com/article/202305/447122.htm

          PIC18F4550的特點(diǎn):

          PIC18F4550屬于PIC18F系列;PIC18F4550是一個8位微控制器,使用RISC架構(gòu)。PIC18F4550在PDIP(雙列封裝)中有40個引腳,在TQFP(四列扁平封裝)中有44個引腳。

          PIC18F4550中嵌入了32KB的閃存,2048字節(jié)的SRAM(同步隨機(jī)存取存儲器),256字節(jié)的EEPROM(電可擦除程序只讀存儲器)。

          它有35個I/O引腳用于與其他外設(shè)的接口和通信,13個通道的10位模擬到數(shù)字轉(zhuǎn)換器用于與模擬外設(shè)(直流電動機(jī)、LDR等)的接口和通信。

          它有2個CCP和1個ECCP模塊,即增強(qiáng)型捕獲和比較模塊,主要用于調(diào)制和波形生成功能。CCP模塊由16位寄存器組成,作為16個捕獲位寄存器,16個比較位寄存器,以及PWM和占空比寄存器工作。

          PIC18F4550具有SPI(串行外設(shè)接口)和i2c(集成電路間)的主從模式。它有SPP(流式并行端口)用于USB流式傳輸。

          PIC18F4550嵌入了4個定時器模塊(定時器0至定時器3),2個比較器模塊和3個外部中斷。它有雙振蕩器選項(xiàng),允許微控制器和USB模塊以不同的時鐘速度運(yùn)行。它可以在2.0V到5.5V的電壓下運(yùn)行。

          16X2 LCD接口的電路圖:

          Circuit Diagram of 16X2 LCD Interfacing PIC Microcontroller

          16X2 LCD與PIC的連接 - 電路解析:

          電阻器R1用于為LCD提供對比度。12MHz的晶體振蕩器被連接到PIC18F4550的OSC1和OSC2引腳,用于系統(tǒng)時鐘。電容器C2和C3將作為晶體振蕩器的過濾器。你可以使用不同的端口或引腳來連接LCD,在使用不同的端口之前,請檢查數(shù)據(jù)表,這些引腳是通用的還是特殊功能引腳。

          對PIC進(jìn)行編程以連接16X2的LCD:

          將LCD連接到PIC與連接到8051沒有區(qū)別。編程的基本概念和要點(diǎn)幾乎是一樣的。請訪問以下鏈接了解更多信息:https://www.electronicshub.org/interfacing-16×2-lcd-8051/。

          只有用于接口的引腳、寄存器和結(jié)構(gòu)會有所不同。當(dāng)我們看程序時,像初始化、向LCD發(fā)送數(shù)據(jù)的功能幾乎是一樣的。

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

          初始化LCD功能:

          lcdcmd(0x38);//將LCD配置為8位模式,2行,5×7字體。

          lcdcmd(0x0C);//開啟顯示,關(guān)閉光標(biāo)

          lcdcmd(0x01);//清除顯示屏幕

          lcdcmd(0x06);// 遞增光標(biāo)

          lcdcmd(0x80);//設(shè)置光標(biāo)位置為第一行第一列

          向LC發(fā)送命令:

          rs=0; 寄存器選擇引腳為低電平。                                                     

          rw=0;讀/寫引腳也用于向LCD寫命令。

          en=1;使能引腳為高電平。

          發(fā)送數(shù)據(jù)到LCD:

          rs=1;寄存器選擇引腳為高電平。

          rw=0;讀/寫引腳也用于向LCD寫入命令。

          en=1;使能引腳為高電平。

          編程的步驟:

          在您的系統(tǒng)中安裝MPLAB并創(chuàng)建一個新的項(xiàng)目,在選擇設(shè)備和系列時,選擇PIC18F系列并將PIC18F4550控制器添加到您的項(xiàng)目中。

          選擇你已經(jīng)安裝的編譯器,并將文件添加到你的項(xiàng)目中。添加文件后,粘貼下面的代碼并運(yùn)行它。因?yàn)樗且粋€預(yù)先編譯和測試過的程序,你不會發(fā)現(xiàn)任何錯誤。

          在編譯程序沒有錯誤后,使用PICKIT2或PICKIT3編程器/調(diào)試器將程序轉(zhuǎn)入你的開發(fā)板。

          如果你沒有使用PICKIT,那么只需編譯代碼并制作HEX文件,使用這個HEX文件為編程。

          將LCD連接到PIC18F4550的程序:

          #define rs LATA.F0
          #define rw LATA.F1
          #define en LATA.F2
          //LCD Data pins
          #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;                             // Configure Port A as output port
          LATA=0;
          TRISB=0;                             // Configure Port B as output port
          LATB=0;
          lcd_init();                              // LCD initialization
          while(data[i]!=’