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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5905|回復: 6
打印 上一主題 下一主題
收起左側

我的1602跑不起來,幫我看看

[復制鏈接]
跳轉到指定樓層
樓主
ID:16763 發表于 2010-6-10 13:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

看看我的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');
 }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

使用道具 舉報

板凳
ID:23004 發表于 2010-6-10 21:14 | 只看該作者

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

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

回復

使用道具 舉報

地板
ID:16763 發表于 2010-6-10 21:33 | 只看該作者
好           謝謝
回復

使用道具 舉報

5#
ID:16763 發表于 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);//顯示開關控制指令,顯示器開,光標開,光標閃爍
}

回復

使用道具 舉報

6#
ID:16763 發表于 2010-6-10 22:06 | 只看該作者

把下面的改成5000也不行。

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

回復

使用道具 舉報

7#
ID:11238 發表于 2010-8-5 10:18 | 只看該作者

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

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美一区二区三区久久久小说 | 嫩草影院网址 | 欧美专区在线 | 国产小视频自拍 | 亚洲精选一区二区 | 日日天天| 亚洲福利一区 | 国产精品国产三级国产aⅴ无密码 | 日韩免费一区二区 | 免费看a | 日韩欧美成人精品 | 国产一区二区精 | 中文字幕在线第一页 | 成人二区| 亚洲免费在线视频 | 综合久久综合久久 | 国产成人精品一区二 | 久久久久久国产精品久久 | 国产精品免费在线 | 日韩高清一区 | 涩涩视频大全 | 日韩在线精品 | 精品久久久久久亚洲精品 | 91久久久精品国产一区二区蜜臀 | 夜夜爽99久久国产综合精品女不卡 | 人人射人人插 | 毛片一区| 成人毛片一区二区三区 | 中文二区| 国产午夜精品久久久久 | 日韩精品在线免费观看视频 | 精品日韩欧美一区二区 | 亚洲一二三区在线观看 | 理论片87福利理论电影 | 毛片入口 | 中文字幕不卡视频在线观看 | 精品一区二区三区不卡 | 欧美一级一区 | 亚洲精品一区二区三区蜜桃久 | 午夜一级黄色片 | 成人在线电影在线观看 |