久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 我的1602跑不起來,幫我看看 [打印本頁]

作者: newchp    時間: 2010-6-10 13:59
標題: 我的1602跑不起來,幫我看看

看看我的LCD咱跑不起來,正常情況是要顯示A的,結果什么也不顯示。

《非原創,是摘錄書的》

#include< at89x51.h>
#include< intrins.h>
#define uchar unsigned char
#define uint  unsigned int
#define DATA_PORT P0
sbit RS=P2^0;
sbit RW=P2^1;
sbit EN=P2^2;
/*********************************************************************
funciton:delay
*********************************************************************/
void DELAYms(uint i)
{   while(--i);
}
/*********************************************************************
function:check busy
*********************************************************************/
void CHECK_BUSY()
{   DATA_PORT=0xFF;
    RS=0;
 RW=1;
 _nop_();
 EN=1;
 _nop_();
 _nop_();
 while(DATA_PORT&0x80);
 EN=0;
}
/*以下是向LCD寫入命令IR
功能:向LCD寫入命令字符CMD
若check=1,表示要進行忙狀態檢查*/
void WRITE_IR(uchar cmd,uchar check)
{   if(check)
        CHECK_BUSY();
 RS=0;
 RW=0;
 _nop_();
 DATA_PORT=cmd;
 _nop_();
 EN=1;
 _nop_();_nop_();
 EN=0;
}
/*以下是寫入DDR寄存器
功能:在當前光標處顯示一個字符*/
void WRITE_DDR(char c)
{   CHECK_BUSY();
    RS=1;
 RW=0;
 _nop_();
 DATA_PORT=c;
 _nop_();
 EN=1;
 _nop_();_nop_();
 EN=0;
}
/*以下是定位光標
功能:光標定位*/
void LCD_POSITION(uchar xpos,uchar ypos)
{   uchar temp;
    xpos=xpos&0x0f;//16**型液晶的范圍是0--15
 ypos=ypos&0x01;//16**型液晶的范圍是0--1
 temp=xpos;
 if(ypos==1)
     temp=temp|0xc0;//第二行
 else
     temp=temp|0x80;//第一行
 WRITE_IR(temp,0);
}
/*以下是初使化函數
功能:向LCD模塊寫入控制參數*/
void LCD_INITIAL()
{   WRITE_IR(0x38,0);//功能指令設置,8位接口,2行,5*7字符
 WRITE_IR(0x38,1);
 WRITE_IR(0x08,1);//顯示開關控制指令,顯示關閉
 WRITE_IR(0x01,1);//清屏指令,將DDRAM數據全部寫入空白
 WRITE_IR(0x06,1);//輸入方式設置指令,字符不動,光標自動右移一格
 WRITE_IR(0x0F,1);//顯示開關控制指令,顯示器開,光標開,光標閃爍
}
//以下是在指定行,指定列顯示字符
void WRITE_CHAR(uchar xpos,uchar ypos,char c)
{   LCD_POSITION(xpos,ypos);
    WRITE_DDR(c);
}
//************************************************************************
//************************************************************************
void main()
{   LCD_INITIAL();
    DELAYms(6000);
 while(1)
 {   WRITE_CHAR(5,0,'A');
 }
}


作者: brantyou    時間: 2010-6-10 20:55
LCD顯示最常用調試方法,首先檢測硬件連接是否正確,各電平有沒有達到要求;其次確定背光是否可以正常開和關;到第三步才開始檢測是否可以顯示。。。。。。。在開始顯示之前,要記得初始化相關的LCD參數。。。(這只是俺的一些小見解,不適用就別用哦)
作者: brantyou    時間: 2010-6-10 21:14

再給你個1602的對比看看啥問題吧

以下是引用brantyou在2010-6-10 21:10:22的發言:
可惜沒有數碼管的那個代碼,只有一個1602顯示的,還有溫度的,給你上傳上來看看吧!。。
 下載信息  [文件大小:63.3 KB  下載次數:0]
圖片點擊可在新窗口打開查看點擊瀏覽該文件:1602液晶+溫度+萬年歷.rar


作者: newchp    時間: 2010-6-10 21:33
好           謝謝
作者: newchp    時間: 2010-6-10 22:05

我測了,各信號連接都正常。背光一直是亮的

我把下面紅色改成1也不能正常顯示

void LCD_INITIAL()
{   WRITE_IR(0x38,0);//功能指令設置,8位接口,2行,5*7字符
 WRITE_IR(0x38,1);
 WRITE_IR(0x08,1);//顯示開關控制指令,顯示關閉
 WRITE_IR(0x01,1);//清屏指令,將DDRAM數據全部寫入空白
 WRITE_IR(0x06,1);//輸入方式設置指令,字符不動,光標自動右移一格
 WRITE_IR(0x0F,1);//顯示開關控制指令,顯示器開,光標開,光標閃爍
}


作者: newchp    時間: 2010-6-10 22:06

把下面的改成5000也不行。

/*********************************************************************
funciton:delay
*********************************************************************/
void DELAYms(uint i)
{   while(--i);
}


作者: laibu88    時間: 2010-8-5 10:18

顯示一個A要那么復雜的程序嗎?不要嚇我啊






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久骚| 羞羞视频网 | 九九综合| 久婷婷| 亚洲欧美一区二区三区在线 | 激情毛片 | 涩爱av一区二区三区 | 日本精品一区二区 | 91精品国产高清久久久久久久久 | 欧美一区二区 | 黄色一级大片在线免费看产 | 欧美黑人体内she精在线观看 | 精品视频一区二区在线观看 | 自拍偷拍第一页 | 亚洲一区二区黄 | 色综合天天综合网国产成人网 | 国产精品日韩 | 亚洲成人一区二区三区 | 99在线精品视频 | 久久丝袜| 日韩精品一区二区三区在线观看 | 亚洲人成网站777色婷婷 | 欧美亚洲国产一区二区三区 | 精品久久精品 | 亚洲导航深夜福利涩涩屋 | 久久久久久久91 | av黄色在线| 国产乱码精品1区2区3区 | 欧美黄在线观看 | 欧美三级电影在线播放 | 欧美一区二区三区在线观看 | 欧美日韩手机在线观看 | 国产精品一区一区 | 一区二区三区在线电影 | 中文亚洲字幕 | 亚洲成人自拍 | 波多野吉衣久久 | 毛片免费在线观看 | 黄瓜av| 亚洲国产成人av好男人在线观看 | 午夜理伦三级理论三级在线观看 |