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

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] 下面表格是16*2LCD液晶與單片機的硬件接法:1VSS接地2VCC接電源,+5V3VO反視度調(diào)整,接地吧4RS寄存器選擇,1-資料、0-指令5R/W讀寫選擇,1-讀、0-寫,如果LCD函數(shù)沒有用到這個IO口的話就把它接地6E信號

下面表格是16*2LCD液晶與單片機的硬件接法:


1

VSS

接地

2

VCC

接電源,+5V

3

VO

反視度調(diào)整,接地吧

4

RS

寄存器選擇,1-資料、0-指令

5

R/W

讀寫選擇,1-讀、0-寫,如果LCD函數(shù)沒有用到這個IO口的話就把它接地

6

E

信號使能,E由 1 -> 0 的下降沿時,LCD對RS和DATA進行取樣和執(zhí)行操作

7

DATA-DB0

懸空

8

DATA-DB1

懸空

9

DATA-DB2

懸空

10

DATA-DB3

懸空

11

DATA-DB4

接 單片機 IO口

12

DATA-DB5

接 單片機 IO口

13

DATA-DB6

接 單片機 IO口

14

DATA-DB7

接 單片機 IO口


//04:lcd_init()//LCD初始化函數(shù)
//05:lcd_DICtate(byte)//寫指令的函數(shù)
//07:lcd_gotoxy(x,y)//列行定位函數(shù)
//06:lcd_putchar(byte)//以ASCII方式顯示一個字節(jié)變量
//08:lcd_hex(byte)//以十六進制顯示一個字節(jié)變量
//09:lcd_byte(byte)//以十進制顯示一個字節(jié)變量
//10:lcd_putsf(地址,個數(shù))//顯示FLASH里面的字符串

#include
#include
#include <1602lcd.h>
unsigned char byte;
unsigned char flash string[]="M8V20";
void main(void)
{

lcd_init(); //1602LCD初始化函數(shù)
lcd_dICtate(1); //LCD清屏指令是(1)
while (1)
{
byte++;
lcd_gotoxy(4,0); //光標定位到第4列第0行
lcd_byte(byte); //以十進制的方式顯示鍵值(字節(jié)形)
lcd_putchar('='); //顯示 = 字符
lcd_putchar(48); //顯示數(shù)字0 ,數(shù)字0的ASCII值是48
lcd_putchar('x'); //顯示 x 字符
lcd_hex(byte); //以十六進制的方式顯示鍵值(字節(jié)型)
lcd_gotoxy(2,1); //定位到第2列第1行
lcd_putsf(string,5); //顯示FLASH里面的字符串
lcd_putsf("-AVRDIY",7); //顯示FLASH里面的字符串
delay_ms(500);
}
}

/*下面是<1602LCD.h>文件內(nèi)容

在使用LCD之前先了解一下4位數(shù)據(jù)線傳輸?shù)脑?br/>1:LCD在E由 1->0 時對RS和DB4-DB7進行取樣和執(zhí)行操作
2:RS=0 時表示"準備"寫指令,RS=1 時表示"準備"寫顯示的數(shù)據(jù)
3:不管是指令數(shù)據(jù)還是顯示數(shù)據(jù),數(shù)據(jù)位都是8位,由于LCD用的是4個數(shù)據(jù)線,所以在傳輸時先傳輸數(shù)據(jù)的高4位(Msb),然后再傳輸數(shù)據(jù)的低4位(Lsb)
比如說我們要寫一個指令,指令是0b11001000 ( 高4位是1100,低4位是1000 )
那么就要這樣:
先傳輸高4位 | 接著傳輸?shù)?位
E=1 ; | E=1 ;
RS=0 ; | RS=0 ;
DB7=1; | DB7=1;
DB6=1; | DB6=0;
DB5=0; | DB5=0;
DB4=0; | DB4=0;
E=0; | E=0;
這樣,我們就完成了寫一個指令了,相反,寫顯示數(shù)據(jù)時就是把RS=1就可以了
對LCD的寫操作只有寫指令和寫顯示數(shù)據(jù)兩種,所以,一個"寫指令函數(shù)"和一個"寫顯示數(shù)據(jù)函數(shù)"就可以滿足全部要求
*/
#ifndef _1602lcd_INCLUDED_ //如果原來沒有宏定義本名字就...
#define _1602lcd_INCLUDED_ //定義一下,防止多次被頭文件包含
#include //本例使用7線連接(也可以使用6線,但是沒有讀"忙"功能,不推薦)
#define RS PORTB.4 //請修改LCD與 單片機 的連接IO口
#define RS_DDRn DDRB.4

#define RW PORTB.5
#define RW_DDRn DDRB.5

#define E PORTB.2
#define E_DDRn DDRB.2

#define DB4 PORTC.4
#define DB4_DDRn DDRC.4

#define DB5 PORTC.5
#define DB5_DDRn DDRC.5

#define DB6 PORTC.6
#define DB6_DDRn DDRC.6

#define DB7 PORTC.7
#define DB7_DDRn DDRC.7
#define DB7_PINn PINC.7

//======================================================================================
//寫LCD
//datas是數(shù)據(jù),高4位有效,rs決定datas是顯示還是指令,read_lcd決定是否需要讀取忙標志BF
void lcd_h(unsigned char datas,unsigned char rs,unsigned char read_lcd)
{
RS_DDRn =1; //RS/RW/E設(shè)置為輸出
RW_DDRn =1;
E_DDRn =1;
if(read_lcd) //如果需要讀LCD忙標志就...
{
DB4_DDRn=0; //先把4個數(shù)據(jù)口設(shè)置為輸入
DB5_DDRn=0;
DB6_DDRn=0;
DB7_DDRn=0;
RS=0;
RW=1; //讀BF
E=1;
E=1; //相同的操作相當于等待幾個時鐘周期
E=1;
while(DB7_PINn); //等待,直到DB7=0
}
RS=rs; //寫指令或者數(shù)據(jù)
RW=0; //寫
DB4_DDRn=1;
DB5_DDRn=1;
DB6_DDRn=1;
DB7_DDRn=1;
E=1;
if(datas&128) DB7=1; else DB7=0;
if(datas&64) DB6=1; else DB6=0;
if(datas&32) DB5=1; else DB5=0;
if(datas&16) DB4=1; else DB4=0;
E=0; //LCD在E下降沿時對RS與DB4-DB7進行取樣
}
//==================================================================================
void lcd_dictate(unsigned char data) //寫指令函數(shù)
{
lcd_h(data,0,1); //輸出高4位
lcd_h(data*16,0,1); //輸出低4位
}
//===================================================================================
void lcd_putchar(unsigned char data) //寫顯示函數(shù)
{
lcd_h(data,1,1); //輸出高4位
lcd_h(data*16,1,1); //輸出低4位
}
//====================================================================================
//初始化函數(shù)
void lcd_init(void)
{
delay_ms(20);
lcd_h(48,0,0); delay_ms(6); //這3條是初始化語句
lcd_h(48,0,0); delay_ms(5);
lcd_h(48,0,0);
lcd_h(32,0,1); //使能4位數(shù)據(jù)線
lcd_dictate(40); //顯示參數(shù)設(shè)定
lcd_dictate(12); //顯示參數(shù)設(shè)定
}

//======================================================================================
//列/行定位函數(shù),最開頭的地址是0列0行
void lcd_gotoxy(unsigned char x, unsigned char y) //列/行定位函數(shù)
{
if(x<=19 && y<=3) //防止輸入的數(shù)據(jù)不正確
{
if(y==0) lcd_dictate(x+128); //第0行的地址是從128開始
if(y==1) lcd_dictate(x+192); //第1行......
if(y==2) lcd_dictate(x+148);
if(y==3) lcd_dictate(x+212);
}
}
//=====================================================================================
void lcd_hex(unsigned char byte_data) //以十六進制顯示一個字節(jié)變量
{
unsigned char data;

data=byte_data>>4; //求高4位
if(data<10) data+=48; else data+=55; //轉(zhuǎn)化為ASCII值
lcd_putchar(data); //顯示

data=byte_data&15; //求低4位
if(data<10) data+=48; else data+=55; //轉(zhuǎn)化為ASCII值
lcd_putchar(data); //顯示
}
//=====================================================================================
void lcd_byte(unsigned char byte_data) //以十進制顯示一個字節(jié)變量
{
unsigned char data;

data=byte_data/100; //求百位數(shù)
lcd_putchar(data+48); //轉(zhuǎn)化為ASCII值再顯示

data=byte_data/10%10; //求十位數(shù)
lcd_putchar(data+48); //轉(zhuǎn)化為ASCII值再顯示

data=byte_data%10; //求個位數(shù)
lcd_putchar(data+48); //轉(zhuǎn)化為ASCII再再顯示
}
//=====================================================================================
void lcd_putsf(flash unsigned char *string , unsigned char n) //顯示FLASH里面的字符串
{
unsigned char i=0;
while(i {
lcd_putchar( string[ i ] ) ; //順序顯示字符
i++;
}
}
//=====================================================================================
#endif//

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

在這篇文章中,小編將對PLC的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進對它的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: PLC 模塊化 程序

7月29日消息,LG Display已將其在美國的70項LCD液晶顯示器相關(guān)專利轉(zhuǎn)讓給三星顯示,值得注意的是,三星顯示已于三年前退出LCD業(yè)務(wù)。

關(guān)鍵字: LCD 三星

HT16K24操作電壓為2.4V~5.5V,內(nèi)建I2C通信接口,提供三種LCD顯示與按鍵模式:24SEG × 4COM + 24 KEY;22SEG × 6COM + 22 KEY;20SEG × 8COM + 20 K...

關(guān)鍵字: LCD MCU 蜂鳴器

離線GPS工具:跟蹤、保存和查找具有距離和方位的航路點——沒有網(wǎng)絡(luò),沒有云,您的數(shù)據(jù),您的規(guī)則。

關(guān)鍵字: GPS設(shè)備 LCD 微控制器 Arduino Uno

在技術(shù)上,LCD和OLED各有其獨特之處。液晶電視通過控制液態(tài)晶體實現(xiàn)圖像顯示,其原理是在兩片玻璃基板中夾入液態(tài)晶體,通過細小的電線控制水晶分子的方向。而OLED憑借自發(fā)光二極管帶來更優(yōu)的視角與色彩表現(xiàn),其RGB色彩信號...

關(guān)鍵字: OLED LCD

雙鎖系統(tǒng),通過鍵盤輸入密碼開門,客人來了用短信開門

關(guān)鍵字: LCD 雙鎖系統(tǒng) L293D 變壓器

在汽車顯示系統(tǒng)領(lǐng)域,TFT LCD顯示屏目前是車載顯示面板的主流選擇。與此同時,OLED和micro-LED顯示屏也逐漸吸引了市場的廣泛關(guān)注。為了適應(yīng)不同的顯示技術(shù),我們需要開發(fā)相應(yīng)的電源技術(shù)。TFT LCD顯示屏通常使...

關(guān)鍵字: LCD OLED micro-LED

如今,汽車行業(yè)對先進顯示屏的需求空前高漲,亟需能夠?qū)崿F(xiàn)更大尺寸、更高亮度、曲面設(shè)計、更高分辨率和更高對比度的解決方案。與此同時,各類新型車載顯示屏也日益受到青睞。目前,TFT LCD是汽車平板顯示技術(shù)的主流選擇。OLED...

關(guān)鍵字: LCD OLED micro-LED

大家好,歡迎回來。在這個項目中,我們將學(xué)習(xí)如何使用鍵盤和LCD顯示制作一個安全的基于Arduino的門鎖。你可以用它來保護你的辦公室、房間或家里的保險箱。要鎖門和開鎖,你需要在安全系統(tǒng)中輸入密碼。這確保了只有經(jīng)過授權(quán)的人...

關(guān)鍵字: 鍵盤 LCD Arduino 電子門鎖

April 1, 2025 ---- 樂金顯示廣州LCD 8.5代線今日(4月1日)正式交割至TCL華星光電,并改名為t11。至此,TCL華星光電將擁有2條6代、4條8.5代、1條8.6代和2條10.5代LCD產(chǎn)線。Tr...

關(guān)鍵字: 電視 PID面板 LCD
關(guān)閉