找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6479|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

lcd單片機(jī)驅(qū)動(dòng)lcd1602寫數(shù)據(jù)0x41,顯示亂碼,仿真正常?赡苁裁磫栴}?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

lcd1602寫數(shù)據(jù)0x41,顯示亂碼,仿真正常?赡苁裁磫栴}?
/***********1602液晶靜態(tài)顯示**************/
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

uchar j;
uchar k;
sbit LCD_EN=P2^5;
sbit LCD_RS=P2^3;
sbit LCD_RW=P2^4;

void delay_10us(uchar i)
{
    unsigned char a;
        for(j=i;j>0;j--)
        {
    for(a=3;a>0;a--);
        }
}

void write_command(uchar com)
{
   LCD_RS=0;
   LCD_RW=0;
   P0=com;
   delay_10us(100);
   LCD_EN=1;
   delay_10us(100);
   LCD_EN=0;
}

void write_data(uchar dat)
{
   LCD_RS=1;
   LCD_RW=0;
   P0=dat;
   delay_10us(100);
   LCD_EN=1;
   delay_10us(100);
   LCD_EN=0;
}

void LCD_init()
{
  LCD_EN=0;
  write_command(0x3c);          //設(shè)置顯示模式
  write_command(0x0f);          //設(shè)置開/關(guān)及光標(biāo)設(shè)置
  write_command(0x06);          //光標(biāo)左右移動(dòng)
  write_command(0x01);          //清屏,及數(shù)據(jù)指針清零
  write_command(0x80);          //數(shù)據(jù)指針地址
}


void main(void)
{
   LCD_init();
   write_data(0x41);
   while(1);
}

評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
onerepulic + 5

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:185407 發(fā)表于 2017-4-4 19:25 | 只看該作者

回帖獎(jiǎng)勵(lì) +5

你設(shè)置端口號(hào)是根據(jù)什么設(shè)置的。就這么點(diǎn)程序嗎???

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:186098 發(fā)表于 2017-4-4 19:35 | 只看該作者
如果仿真沒問題的話,那可能是因?yàn)殡娐放e(cuò)了,你是用的pcb板還是自己焊的

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:151348 發(fā)表于 2017-4-4 21:27 | 只看該作者
這就有點(diǎn)像“理論與實(shí)際的差距”,我之前也有遇到類似的情況,仿真時(shí)用寫好的LCD驅(qū)動(dòng)程序顯示正常,下載到自制的板子上就完全不顯示,我覺得可參考以下兩點(diǎn)修改意見
1、檢查接線,清理干凈板子
2、調(diào)程序,特別是延時(shí)長(zhǎng)短

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:139175 發(fā)表于 2017-4-5 10:54 | 只看該作者
我喜歡賣萌 發(fā)表于 2017-4-4 19:35
如果仿真沒問題的話,那可能是因?yàn)殡娐放e(cuò)了,你是用的pcb板還是自己焊的

用的開發(fā)板
回復(fù)

使用道具 舉報(bào)

6#
ID:139175 發(fā)表于 2017-4-5 11:04 | 只看該作者
liuyier1989 發(fā)表于 2017-4-4 19:25
你設(shè)置端口號(hào)是根據(jù)什么設(shè)置的。就這么點(diǎn)程序嗎???

端口號(hào)是isp自動(dòng)掃描的。根據(jù)郭天祥教程來寫的,就這么多啊。實(shí)在搞不懂了
回復(fù)

使用道具 舉報(bào)

7#
ID:148552 發(fā)表于 2017-4-5 16:20 | 只看該作者
可以提供下這個(gè)函數(shù)嗎
LCD_init();
回復(fù)

使用道具 舉報(bào)

8#
ID:148552 發(fā)表于 2017-4-5 16:22 | 只看該作者
剛說錯(cuò)了,你這個(gè)有可能是數(shù)據(jù)口沒有初始化,
回復(fù)

使用道具 舉報(bào)

9#
ID:148552 發(fā)表于 2017-4-5 16:24 | 只看該作者
寫數(shù)據(jù)和命令之前要判斷顯示屏是否繁忙

void busy()
{
uchar busy;
P0=0xff;//復(fù)位系統(tǒng)總線,非常重要
RS=0;
RW=1;
do
{
E=1;
busy=P0;
E=0;
}
while(busy&0x80);
E=0;
}
回復(fù)

使用道具 舉報(bào)

10#
ID:139175 發(fā)表于 2017-4-6 15:43 | 只看該作者
你像風(fēng)兒來了 發(fā)表于 2017-4-5 16:22
剛說錯(cuò)了,你這個(gè)有可能是數(shù)據(jù)口沒有初始化,

數(shù)據(jù)口沒初始化?能具體說明下嗎?
回復(fù)

使用道具 舉報(bào)

11#
ID:139175 發(fā)表于 2017-4-6 15:44 | 只看該作者
你像風(fēng)兒來了 發(fā)表于 2017-4-5 16:24
寫數(shù)據(jù)和命令之前要判斷顯示屏是否繁忙

void busy()

好的,謝謝啦,我再去試試
回復(fù)

使用道具 舉報(bào)

12#
ID:244633 發(fā)表于 2017-10-31 17:25 | 只看該作者
您好,想請(qǐng)問下您,這個(gè)亂碼的問題解決了么
回復(fù)

使用道具 舉報(bào)

13#
ID:244649 發(fā)表于 2017-10-31 18:14 | 只看該作者
程序我看了,沒問題,既然仿真也沒有問題的話,那就是你硬件的問題了
回復(fù)

使用道具 舉報(bào)

14#
ID:472242 發(fā)表于 2019-2-5 22:33 | 只看該作者
void main(void)
{
   LCD_init();
   write_data(0x41);  //這里是有問題的,你要0x41放到哪個(gè)位置都沒設(shè)好,不出問題才是問題
   while(1);
}

評(píng)分

參與人數(shù) 3黑幣 +62 收起 理由
站著說話不腰疼 + 12
刀刀見紅 + 35
#include51.h + 15

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表