www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(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); //光標(biāo)定位到第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 時表示"準(zhǔn)備"寫指令,RS=1 時表示"準(zhǔn)備"寫顯示的數(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決定是否需要讀取忙標(biāo)志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忙標(biāo)志就...
{
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; //相同的操作相當(dāng)于等待幾個時鐘周期
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)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉