日本ab视频-日本ab在线-日本a黄-日本a黄色片-国产亚洲精品第一综合linode-国产亚洲精品高清在线

新聞資訊
調(diào)試1602液晶幾種典型顯示狀態(tài)及解決方案
2010-10-10


1602應(yīng)該說(shuō)是很簡(jiǎn)單的一種器件,但是許多人初次使用的時(shí)候可能總是出問(wèn)題,當(dāng)然可能也有一次就試驗(yàn)成功的,但是像我這樣的在AVR ATMega16上調(diào)1602居然花了近3天的時(shí)間,最后調(diào)到快崩潰的地步,對(duì)自己的智商和水平都產(chǎn)生了懷疑,最后解決問(wèn)題卻是充滿了戲劇性。解決問(wèn)題期間在OURAVR上查找了許多帖子,最后才在馬超老師的一句話里發(fā)現(xiàn)了答案呵呵,所以我把我調(diào)1602液晶時(shí)遇到的情況描述一遍供大家參考,算是給AVRFans積攢一點(diǎn)資料。

硬件資料:AVR ATMega16,工作在外部晶振11.0592MHz,MS1602C字符液晶

狀態(tài)1

LCD

上電之后,1602的第一行全黑,即16個(gè)5x7黑塊

產(chǎn)生原因:液晶根本就沒有進(jìn)行初始化操作,需要檢查連線或者程序

狀態(tài)2
屏上顯示兩排灰格

1602液晶 灰塊

產(chǎn)生原因:程序中對(duì)液晶初始化不正常,應(yīng)是部分初始化指令沒有正常接收,建議按照標(biāo)準(zhǔn)初始化步驟調(diào)整程序,或者調(diào)整指令之間的延時(shí)(加大一些試試)----補(bǔ)充:也有可能是對(duì)比度太大,建議調(diào)整對(duì)比度電阻

這個(gè)也可以用來(lái)做判斷液晶是否工作正常,即使程序不工作,將對(duì)比度調(diào)大,也可以看到黑塊的。

狀態(tài)3

此種不用解釋了呵呵,調(diào)通了已經(jīng)
液晶顯示

1602液晶大概就這三種狀態(tài)了,我調(diào)的時(shí)候很費(fèi)勁,8位數(shù)據(jù)線方式接在PC口怎么都不出字符,怎么調(diào)延時(shí)都沒用,總是顯示兩行灰格,最后看見馬老師的提示,PC口有4個(gè)線默認(rèn)是給JTAG用的,默認(rèn)狀態(tài)不做IO口,于是重新將數(shù)據(jù)線接在PB口修改程序重新燒寫后就好使~

另外,我還發(fā)現(xiàn),1602數(shù)據(jù)線接在PB口時(shí),有時(shí)候上電之后顯示工作正常,但有些時(shí)候根本就不工作,懷疑是ISP下載線有影響,拔去下載線,恢復(fù)正常。

下面附上我的初始化程序,參考了OURAVR上的一個(gè)帖子,具體是哪個(gè)我忘了不好意思,有所調(diào)整,按照太陽(yáng)人那個(gè)數(shù)據(jù)手冊(cè)里面推薦步驟進(jìn)行的:

/*
本程序?qū)崿F(xiàn)功能:在1602液晶屏上顯示預(yù)期字符
硬件平臺(tái):AVR ATMega16,外部晶振11.0592MHz
2007.01.04
MYBlog--http://avrnewbie.21ic.org/
*/
#define LCDPORT PORTB //數(shù)據(jù)總線在PB口
#define LCDDDR DDRB
#define LCDPIN PINB
#define En_H PORTA |= _BV(PA2) //sbi(PORTA,2) //En接Pa2
#define En_L PORTA &= ~_BV(PA2) //cbi(PORTA,2)
#define RW_R PORTA |= _BV(PA0) //sbi(PORTA,0) //RW接Pa0
#define RW_W PORTA &= ~_BV(PA0) //cbi(PORTA,0)
#define RS_H PORTA |= _BV(PA3) //sbi(PORTA,3) //RS接Pa3
#define RS_L PORTA &= ~_BV(PA3) //cbi(PORTA,3)
#define DelaytE _delay_us(2)
//#define Clear_Screen Write_Command(0x01)

//延時(shí)程序
void Delay(uint16_t time)
{
while(time>0)
{
time--;
}
}

//產(chǎn)生一個(gè)使能脈沖
void En_Toggle(void)
{
En_H; //拉高使能位
DelaytE; //保持高電平一定時(shí)間
En_L; //拉低使能位,產(chǎn)生一個(gè)下降沿
DelaytE; //保持低電平一定時(shí)間
}

//不斷檢測(cè)LCD忙標(biāo)志BF,直到其為0,表示可以執(zhí)行下一條指令
void Wait_Until_Ready(void)
{
LCDDDR = 0x00; //單片機(jī)設(shè)為輸入,用以讀取LCD忙標(biāo)志

RS_L; //所讀為狀態(tài)位
RW_R; //設(shè)為讀狀態(tài)

DelaytE;
En_H;
DelaytE;
loop_until_bit_is_clear(LCDPIN,7); //不斷循環(huán),直至BF=0
En_L;
}

void Write_Command(uint8_t Command,uint8_t busyFlag)
{
uint8_t busy;
busy = busyFlag;

if (busy == 1) //busy=1表示系統(tǒng)希望檢測(cè)忙信號(hào)
Wait_Until_Ready(); //等待指令執(zhí)行完畢

LCDDDR = 0xff;
RS_L; //寫入的是命令字
RW_W; //置為寫狀態(tài)
LCDPORT = Command;
_delay_us(25);
En_Toggle(); //產(chǎn)生使能脈沖,使之在下降沿開始執(zhí)行指令

}

void Write_Data(uint8_t data)
{
Wait_Until_Ready(); //等待指令執(zhí)行完畢
RS_H; //寫入的是數(shù)據(jù)
RW_W; //置為寫狀態(tài)
LCDDDR = 0xff;
LCDPORT = data;
En_Toggle(); //產(chǎn)生使能脈沖,使之在下降沿開始執(zhí)行指令

}
void Initialize_LCD(void)
{ //主程序中在進(jìn)入初始化程序前已經(jīng)延時(shí)400ms
LCDDDR = 0xff; //LCD控制線在PD口,故將其設(shè)為輸出
//此處可以根據(jù)實(shí)際情況調(diào)整,或者在主程序中設(shè)置
DDRA = 0xff; //E\RS\RW等接在PA口
_delay_ms(15);
Write_Command(0x38,0); //設(shè)為8位接口模式,顯示2行字符,busy=0不檢測(cè)忙信號(hào)
_delay_ms(5);
Write_Command(0x38,0);
_delay_ms(5);
Write_Command(0x38,0);
Write_Command(0x38,1);
Write_Command(0x08,1); //顯示關(guān)閉
Write_Command(0x01,1); //顯示清屏
Write_Command(0x06,1); //寫入新數(shù)據(jù)后光標(biāo)右移
Write_Command(0x0f,1); //顯示功能開,顯示光標(biāo)
}



關(guān)注有人微信公眾號(hào)
了解更多信息
主站蜘蛛池模板: 夜夜澡人人爽人人喊_欧美 夜夜夜夜曰天天天天拍国产 | 视频国产精品丝袜第一页 | 可以免费在线看黄的网站 | 国产成人综合亚洲亚洲欧美 | 日韩特级片 | 日韩手机在线 | 请输入搜索词:www免费 | 免费观看一级特黄三大片视频 | 麻豆传煤天美传媒 | 日韩在线亚洲 | 妻子的诱惑中文版在线免费观看 | 婷婷激情亚洲 | 中文字幕手机在线播放 | a男人天堂| 四虎网址最新 | 免费精品国产自产拍观看 | 99久久这里只有精品 | 奶茶视频影院播放 | 国产午夜视频高清 | 九九九九在线精品免费视频 | 国产精品福利久久2020 | 91情国产l精品国产亚洲区 | 另类视频在线观看 | va在线视频 | 色综合久久天天综合观看 | 成人亚洲欧美日韩在线观看 | 久久99精品国产麻豆宅宅 | 四虎在线精品免费高清在线 | 一级二级毛片 | 日韩一区二区在线免费观看 | 久草精品视频在线观看 | 久草视频在线资源 | 成品人app软件大全免费下载 | 99精品国产成人a∨免费看 | 九九久久精品视频 | 欧美日韩精彩视频 | 三级黄色视屏 | 久久国产精品二区99 | 欧美高清一区二区三区欧美 | 久久国产精品999 | 草逼的视频 |