標題: 51單片機LCD1602顯示失敗 [打印本頁]

作者: grace_qin    時間: 2017-10-27 11:49
標題: 51單片機LCD1602顯示失敗
開發(fā)板配套例程,在LCD上顯示字符“A”
用的是51單片機,我用的芯片時52的,求助為啥沒有顯示?、#include<reg52.h>
typedef unsigned char uint8;//數(shù)據(jù)類型宏定義

sbit BF = P0^7;
sbit EN = P2^5;
sbit RS = P1^0;
sbit RW = P1^1;


void wait(void)
{
         P0=0xFF;
       
         do
                {
                 RS=0;
                 RW=1;
                 EN=0;
                 EN=1;
                 }
         while (BF==1);
         EN=0;
}

//寫數(shù)據(jù)函數(shù)
void w_dat(uint8 dat)
{
        wait();
        EN=0;
        P0=dat;
        RS=1;
        RW=0;
        EN=1;
        EN=0;
}

void w_cmd(uint8 cmd)
{
        wait();
        EN=0;
        P0=cmd;
        RS=0;
        RW=0;
        EN=1;
        EN=0;
}

void Init_LCD1602(void)
{       
   w_cmd(0x38);
        w_cmd(0x0c);
        w_cmd(0x06);
        w_cmd(0x01);
}
main()
{
        Init_LCD1602();//調(diào)用LCD函數(shù)
        w_cmd(0x80);
        w_dat('A'); //顯示一個字符 A   'A'
        while(1);       
}

作者: tkf008    時間: 2017-10-27 12:17
目測沒有延時函數(shù)
作者: wulin    時間: 2017-10-28 06:50
操作LCD1602各控制端之間時序關(guān)系非常重要,也就是各控制端之間誰先誰后及持續(xù)時間的問題。這是某品牌的LCD1602時序圖,其它品牌大同小異。



作者: zl2168    時間: 2017-10-28 22:17
本帖最后由 zl2168 于 2017-10-28 22:19 編輯

實例67  LCD1602顯示屏顯示
Proteus仿真一下,確認有效。
實例61 LCD1602顯示屏顯示.rar (49.26 KB, 下載次數(shù): 9)


若需改變1602顯示內(nèi)容,只須將需顯示的內(nèi)容用ASCII碼寫入顯示數(shù)組,即可。
以上摘自張志良編著《80C51單片機仿真設(shè)計實例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1。書中電路和程序設(shè)計有詳細說明,程序語句條條有注解。仿真電路和Hex文件能在清華出版社網(wǎng)站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網(wǎng)上書店打折購買。





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1