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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

為什么LCD1602不顯示?

[復制鏈接]
跳轉到指定樓層
樓主
這個程序的目的是顯示出welcome Harbin China
我先是使用的查忙程序,但是LCD沒有顯示
后來用的這個程序沒有使用差忙的程序,而是使用的延時函數,但是1602液晶屏還是沒有顯示,誰知道是怎么回事嗎?
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define out P0
sbit RS=P2^0;//將P2口的0,1,2號口作為RS RW E的接口
sbit RW=P2^1;//
sbit E=P2^2;//
void LCD_initialize();//初始化函數
void check_busy();//查忙函數,但是這次沒有用到
void write_command(uchar com);//寫命令函數
void write_data(uchar dat);//寫數據函數
void string(uchar ad,uchar*p,uchar n);//使Lcd顯示字符的函數
void delay(uchar i);//延時函數
void main()
{
  LCD_initialize();//LCD初始化
  while(1)
  {
    string(0x85,"welcome",7);//寫入welcome
  string(0xc2,"Harbin China",12);//寫入Harbin China
  delay(100);
  write_command(0x01);//清屏
  delay(100);
   }
}
void delay(uchar i)//延時函數
{
  uchar t;
  while(i--)
  {
    for(t=0;t<120;t++);
  }
}
void write_command(uchar com)//寫命令函數
{
delay(1);
E=0;
RS=0;
RW=0;
out=com;
delay(1);
E=1;
_nop_();
E=0;
delay(1);
}
void LCD_initialize()//初始化函數
{
  write_command(0x38);
  _nop_();
  write_command(0x0c);
  _nop_();
  write_command(0x0b);
  _nop_();
  write_command(0x01);
  delay(1);
}
void write_data(uchar dat)//寫數據函數
{
delay(1);
E=0;
RS=1;
RW=0;
out=dat;
delay(1);
E=1;
_nop_();
E=0;
delay(1);
}
void string(uchar ad,uchar *p,uchar n)//顯示字符函數
{
  uchar i;
  write_command(ad);
  for(i=0;i<n;i++)
  {
    write_data(*p++);
  delay(100);
  }
}

T@(7QC0)[TGTT$@@%6FEQPO.png (63.88 KB, 下載次數: 102)

T@(7QC0)[TGTT$@@%6FEQPO.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:111634 發表于 2018-5-2 12:52 | 只看該作者
實例67  LCD1602顯示屏顯示
Proteus仿真一下,確認有效。
實例61 LCD1602顯示屏顯示.rar (49.26 KB, 下載次數: 289)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1。書中電路和程序設計有詳細說明,程序語句條條有注解。
回復

使用道具 舉報

板凳
ID:213173 發表于 2018-5-2 16:27 | 只看該作者

改了一下,實物驗證正常。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define out P0
sbit RS=P2^0;//將P2口的0,1,2號口作為RS RW E的接口
sbit RW=P2^1;//
sbit E=P2^2;//
//void LCD_initialize();//初始化函數
//void check_busy();//查忙函數,但是這次沒有用到
//void write_command(uchar com);//寫命令函數
//void write_data(uchar dat);//寫數據函數
//void string(uchar ad,uchar*p,uchar n);//使Lcd顯示字符的函數
//void delay(uchar i);//延時函數

void delay(uchar i)//延時函數
{
  uchar t;
  while(i--)
  {
    for(t=0;t<120;t++);
  }
}
void write_command(uchar com)//寫命令函數
{
//        delay(1);
        E=0;
        RS=0;
//        RW=0;
        out=com;
        delay(1);
        E=1;
        delay(1);
        E=0;
//        delay(1);
}

void write_data(uchar dat)//寫數據函數
{
//        delay(1);
//        E=0;
        RS=1;
//        RW=0;
        out=dat;
        delay(1);
        E=1;
        delay(1);
        E=0;
//        delay(1);
}
void LCD_initialize()//初始化函數
{
        RW=0;
        write_command(0x38);
        write_command(0x01);
        write_command(0x0c);
        write_command(0x06);
//        write_command(0x0b);
        write_command(0x80);
}

void string(uchar ad,uchar *p,uchar n)//顯示字符函數
{
        uchar i;
        write_command(ad);
        for(i=0;i<n;i++)
        {
                write_data(*p++);
                delay(100);
        }
}

void main()
{
        LCD_initialize();//LCD初始化
        while(1)
        {
                string(0x85,"welcome",7);//寫入welcome
                string(0xc2,"Harbin China",12);//寫入Harbin China
                delay(100);
                write_command(0x01);//清屏
                delay(100);
        }
}

回復

使用道具 舉報

地板
ID:301728 發表于 2018-5-4 07:47 | 只看該作者
wulin 發表于 2018-5-2 16:27
改了一下,實物驗證正常。
#include
#include

行,已經改好了,多謝幫助!
回復

使用道具 舉報

5#
ID:301728 發表于 2018-5-4 07:48 | 只看該作者
zl2168 發表于 2018-5-2 12:52
實例67  LCD1602顯示屏顯示
先Proteus仿真一下,確認有效。
以上摘自張志良編著《80C51單片機仿真設計實 ...

已經改好了,多謝幫助!
回復

使用道具 舉報

6#
ID:316256 發表于 2018-5-4 09:41 | 只看該作者
時序問題或者電位器
回復

使用道具 舉報

7#
ID:586957 發表于 2019-8-3 12:30 | 只看該作者
void string(uchar ad,uchar *p,uchar n)//顯示字符函數
{
        uchar i;
        write_command(ad);
        for(i=0;i<n;i++)
        {
                write_data(*p++);
                delay(100);
        }
}
請問這個*號是什么呢?為什么去掉之后就不對了,而顯示亂碼
回復

使用道具 舉報

8#
ID:511461 發表于 2019-8-3 14:13 | 只看該作者
*是指針
回復

使用道具 舉報

9#
ID:586957 發表于 2019-8-4 10:49 | 只看該作者

謝謝蟹蟹,還有個問題,這兩個*都不可省略嘛????
回復

使用道具 舉報

10#
ID:586957 發表于 2019-8-4 12:50 | 只看該作者
* 指針運算符 //*p為p所指向的存儲單元的內容
p就相當于存儲單元地址
回復

使用道具 舉報

11#
ID:586680 發表于 2019-8-4 13:45 | 只看該作者
檢查一下是a6還是a18
回復

使用道具 舉報

12#
ID:594980 發表于 2019-8-4 13:56 | 只看該作者
void LCD_initialize()//初始化函數
{
  write_command(0x38);
  _nop_();
  write_command(0x0c);
  _nop_();
  write_command(0x0b);
  _nop_();
  write_command(0x01);
  delay(1);
}
這個你把0xb改為0x6就可以顯示,但是顯示是一次顯示的。我用自己的實驗板演示了以下。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美精品一区二区三区 | 亚欧精品 | 男女羞羞网站 | 欧美成人h版在线观看 | 国产成人精品一区二区三区在线 | 天堂综合网久久 | 亚洲国产精品99久久久久久久久 | 色婷婷av久久久久久久 | 欧美一级艳情片免费观看 | 天天操夜夜艹 | 国产a级毛毛片 | 日日操视频 | 91日b| 亚洲精品中文字幕 | 日韩视频在线免费观看 | 国产精品久久久久久久久免费樱桃 | 一区二区免费在线视频 | 特黄小视频 | 国产精品三级久久久久久电影 | 日韩一区中文字幕 | 国产精品视频一二三区 | 精品一区二区三区视频在线观看 | 国产一区二区精品在线 | 国产精品毛片av一区 | 视频二区 | 久草青青草| 中文在线播放 | 日韩电影在线 | 99热在线观看精品 | 久久91av| 国产三区精品 | 国产综合网址 | 久草视频网站 | 羞羞的视频在线 | www久久国产 | 欧美一级在线观看 | 国产91丝袜在线播放 | 99亚洲国产精品 | 一区二区三区四区在线视频 | av在线一区二区三区 | 日韩精品在线看 |