隨著科技的不斷發(fā)展,各種各樣的顯示設(shè)備也越來(lái)越多樣化,二十世紀(jì)80年代的扭曲屏幕,到如今的智能顯示屏,各種各樣的顯示設(shè)備創(chuàng)造了不同的展示形式。其中,16x2 lcd是一種常用的顯示設(shè)備,具有簡(jiǎn)單易用的特點(diǎn),適合連接到單片機(jī)開(kāi)發(fā)板進(jìn)行開(kāi)發(fā)。
在使用16x2 lcd時(shí),我們需要把lcd和arm7-lpc2148單片機(jī)連接在一起,以便單片機(jī)可以控制lcd并顯示文字。連接時(shí)需要注意的是,必須確保每個(gè)引腳的電壓水平一樣,否則會(huì)對(duì)設(shè)備造成損壞。因此,建議使用專門(mén)的轉(zhuǎn)接板進(jìn)行連接,以降低連接難度和提高連接可靠性。
接下來(lái),我們需要準(zhǔn)備一些基本的元件,例如16x2 lcd、電路板和導(dǎo)線等。首先,將電路板上的相關(guān)元件連接好,并根據(jù)lcd的引腳定義,將lcd連接到電路板上。
接下來(lái),我們需要編寫(xiě)代碼,以使單片機(jī)完成lcd的控制和文字的顯示。lpc2148單片機(jī)使用的是arm7內(nèi)核,因此我們可以使用keil uvision等開(kāi)發(fā)軟件來(lái)編寫(xiě)程序。以下是一個(gè)簡(jiǎn)單的程序示例:
#include
void delay(int i) //延時(shí)函數(shù)
{
while(i--);
}
void lcd_write_cmd(unsigned char c) //寫(xiě)命令函數(shù)
{
io0pin &= ~(1<<17);
io0pin &= ~(1<<16);
io0pin &= ~(0xff<<0);
io0pin |= (c<<0);
io0pin |= (1<<18);
delay(1000);
io0pin &= ~(1<<18);
}
void lcd_write_data(unsigned char c) //寫(xiě)數(shù)據(jù)函數(shù)
{
io0pin |= (1<<17);
io0pin &= ~(1<<16);
io0pin &= ~(0xff<<0);
io0pin |= (c<<0);
io0pin |= (1<<18);
delay(1000);
io0pin &= ~(1<<18);
}
void lcd_init(void) //初始化函數(shù)
{
lcd_write_cmd(0x38);
lcd_write_cmd(0x0e);
lcd_write_cmd(0x06);
lcd_write_cmd(0x01);
}
int main(void)
{
lcd_init();
lcd_write_data('h');
lcd_write_data('e');
lcd_write_data('l');
lcd_write_data('l');
lcd_write_data('o');
lcd_write_data(' ');
lcd_write_data('w');
lcd_write_data('o');
lcd_write_data('r');
lcd_write_data('l');
lcd_write_data('d');
while(1);
}
上述代碼中,我們定義了幾個(gè)函數(shù),包括寫(xiě)命令函數(shù)、寫(xiě)數(shù)據(jù)函數(shù)、初始化函數(shù)和延時(shí)函數(shù)。在主函數(shù)中,我們先初始化lcd,然后寫(xiě)入一些數(shù)據(jù),以測(cè)試lcd是否可以正常工作。在這里,我們寫(xiě)入了“hello world”這個(gè)字符串,并通過(guò)上述連接方式將字符串顯示在lcd上。
總的來(lái)說(shuō),使用16x2 lcd與arm7-lpc2148連接并顯示文字的過(guò)程比較簡(jiǎn)單,只需連接好相關(guān)元件,編寫(xiě)好程序,然后就可以輕松地實(shí)現(xiàn)lcd的控制和數(shù)據(jù)的顯示了。以下是一個(gè)完整的連接圖例: