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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm8003單片機驅(qū)動lcd1602 四線驅(qū)動出現(xiàn)問題 求大神幫忙

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:543220 發(fā)表于 2021-12-25 09:59 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
現(xiàn)在發(fā)現(xiàn)驅(qū)動出現(xiàn)亂碼 以及 不顯示 ,功能很不正常
下面附上代碼以及 原理圖

#ifndef __LCD1602_H
#define __LCD1602_H

/***********LCD1602 四線驅(qū)動***********/

#include "system.h"
#include "delay.h"

/***********Definition***********/
#define LINE0   0x80
#define LINE1   0xC0

#define Rx_PORT (GPIOD)//RS= PD6  RW=PD5 EN=PD4
#define RS_PIN (GPIO_PIN_6) /* PD6 */
//#define RW_PIN (GPIO_PIN_5) /* PD5 */ /* NOT USE(RW接地) */
#define EN_PIN (GPIO_PIN_4) /* PD4 */
#define Rx_FOUR_PINS (RS_PIN | EN_PIN)
//#define Rx_ALL_PINS (RS_PIN | RW_PIN | EN_PIN) /* NOT USE */

#define Dx_PORT (GPIOC)
//#define D0_PIN (GPIO_PIN_0) /* PC0 */ /* NOT USE */
//#define D1_PIN (GPIO_PIN_1) /* PC1 */ /* NOT USE */
//#define D2_PIN (GPIO_PIN_2) /* PC2 */ /* NOT USE */
//#define D3_PIN (GPIO_PIN_3) /* PC3 */ /* NOT USE */
#define D4_PIN (GPIO_PIN_4) /* PC4 */
#define D5_PIN (GPIO_PIN_5) /* PC5 */
#define D6_PIN (GPIO_PIN_6) /* PC6 */
#define D7_PIN (GPIO_PIN_7) /* PC7 */
#define Dx_FOUR_PINS (D4_PIN | D5_PIN | D6_PIN | D7_PIN)
//#define Dx_ALL_PINS (D0_PIN | D1_PIN | D2_PIN | D3_PIN | D4_PIN | \
                     D5_PIN | D6_PIN | D7_PIN) /* NOT USE */

#define RS_LOW  GPIO_WriteLow (Rx_PORT, RS_PIN)
#define RS_HIGH GPIO_WriteHigh(Rx_PORT, RS_PIN)
#define EN_LOW  GPIO_WriteLow (Rx_PORT, EN_PIN)
#define EN_HIGH GPIO_WriteHigh(Rx_PORT, EN_PIN)
#define Dx_CLR  GPIO_Write(Dx_PORT, 0x00)

/***********Function***********/
void LCD1602_Cmd(uint8_t cmd);
void LCD1602_Data(uint8_t data);
void LCD1602_Init(void);
void LCD1602_SetCursor(uint8_t x, uint8_t y);
void LCD1602_PrintStr(uint8_t x, uint8_t y, uint8_t *str);

#endif /* __LCD1602_H */


#include "lcd1602.h"

/******發(fā)送命令******/
void LCD1602_Cmd(uint8_t cmd)
{
  delay_ms(2000);
  EN_LOW;
  RS_LOW; /* RS=0,寫入命令 */
  delay_us(10);
  GPIO_Write(Dx_PORT, (cmd&0xf0));     /* 接收高四位命令 */
  EN_HIGH;
  delay_ms(1);
  EN_LOW;

  GPIO_Write(Dx_PORT, (cmd&0xf0)<<4); /* 接收低四位命令 */
  EN_HIGH;
  delay_ms(1);
  EN_LOW;
}

/******發(fā)送數(shù)據(jù)******/
void LCD1602_Data(uint8_t data)
{  
  delay_ms(200);
  EN_LOW;
  RS_HIGH; /* RS=1,寫入數(shù)據(jù) */
  delay_us(10);

  GPIO_Write(Dx_PORT, (data&0xf0));     /* 接收高四位數(shù)據(jù) */
  EN_HIGH;
  delay_ms(1);
  EN_LOW;
  delay_us(10);
  GPIO_Write(Dx_PORT, (data&0xf0)<<4); /* 接收低四位數(shù)據(jù) */
  EN_HIGH;
  delay_ms(1);
  EN_LOW;
}

/******LCD初始化******/
void LCD1602_Init(void)
{

    delay_ms(200);
//  LCD1602_Cmd(0x20);
//  LCD1602_Cmd(0x32);
//  delay_ms(5);
//  LCD1602_Cmd(0x28);  // 最后發(fā)0x28,進(jìn)入4線模式,設(shè)置16*2顯示,115*7點陣,4位數(shù)據(jù)接口
//  delay_ms(5);
//  LCD1602_Cmd(0x28);
//  delay_ms(5);
//  EN_HIGH;
//  LCD1602_Cmd(0x28);
//  EN_LOW;
  LCD1602_Cmd(0x30);
  delay_ms(5);
  LCD1602_Cmd(0x30);
  delay_ms(5);
  LCD1602_Cmd(0x30);
  delay_ms(5);

  LCD1602_Cmd(0x28);
  LCD1602_Cmd(0x08);

  LCD1602_Cmd(0x01); /* 清屏 */
  LCD1602_Cmd(0x06);
  LCD1602_Cmd(0x0f);
  delay_ms(2);

  //LCD1602_Cmd(0x06); /* 寫入數(shù)據(jù)光標(biāo)右移,寫入新數(shù)據(jù)顯示屏不移動 */
  //LCD1602_Cmd(0x0C); /* 開顯示,有光標(biāo),光標(biāo)閃爍 */

}


/* 0x80和0xC0分別是兩行的開始地址,將字符的序號加上行的地
   址作為命令發(fā)送給LCD1602會讓下一個字符輸出在指定的位置  */
/******發(fā)送地址******/
void LCD1602_SetCursor(uint8_t x, uint8_t y) // x:列坐標(biāo) y:行坐標(biāo)
{
  LCD1602_Cmd(x + (y ? LINE1:LINE0));
}

/******連續(xù)發(fā)送數(shù)據(jù)******/
void LCD1602_PrintStr(uint8_t x, uint8_t y, uint8_t *str)
{
  LCD1602_SetCursor(x, y);
  while(*str != '\0')
  {
    LCD1602_Data(*str++);
  }
}



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

使用道具 舉報

沙發(fā)
ID:517951 發(fā)表于 2022-1-3 13:24 | 只看該作者
發(fā)下亂碼顯示照片, 注意一下上電復(fù)位時序,還有發(fā)送數(shù)據(jù)的速度。lcd1602是慢速器件,不能太快。
另外論壇里有PCF8574驅(qū)動LCD1602的例程,你可以參照他們的程序來,也是采用4線驅(qū)動方式做的。
回復(fù)

使用道具 舉報

板凳
ID:543220 發(fā)表于 2022-1-5 14:27 | 只看該作者
rayin 發(fā)表于 2022-1-3 13:24
發(fā)下亂碼顯示照片, 注意一下上電復(fù)位時序,還有發(fā)送數(shù)據(jù)的速度。lcd1602是慢速器件,不能太快。
另外論壇 ...

感謝  , 已經(jīng)解決與了 ,由于用的是ST_LINK仿真, 雖然程序初始化  有顯示清空的程序, 但還是不行, 需要重新上電。  所以 不重新上電會導(dǎo)致亂碼  , 還是得感謝你
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美在线视频观看 | 99在线资源 | 国产精品国产a级 | www.se91| 亚洲三级在线观看 | 999国产视频 | 美女视频h | 亚洲欧美在线视频 | a级免费视频| 久久精品一区 | 亚洲性综合网 | 亚洲一区二区精品视频 | 911影院| 一级毛片免费视频观看 | 成人a在线 | 中文字幕在线一区二区三区 | 干狠狠 | 国产欧美精品在线观看 | 美国黄色一级片 | 中文字幕免费在线 | 亚洲欧洲视频 | 成人av网站在线观看 | 男人电影天堂 | 欧美精品欧美精品系列 | 中文字幕一区二区三区乱码图片 | 欧美理论 | 久久精品久久久久久 | 久久久久国产精品一区二区 | 亚洲欧美综合精品久久成人 | 中文字幕av亚洲精品一部二部 | 自拍视频一区二区三区 | 在线观看国产 | av网站在线免费观看 | 日韩精品一区二区三区视频播放 | 欧美激情国产日韩精品一区18 | 婷婷激情综合 | 亚洲视频在线观看免费 | 日韩欧美一级精品久久 | 欧美黄色片| 夜夜艹 | 一区二区视屏 |