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

標(biāo)題: stm8s003驅(qū)動(dòng)lcd1602液晶 死活顯示不出來,不知道哪里問題 求大神幫幫忙 [打印本頁]

作者: a2748446    時(shí)間: 2021-12-25 09:52
標(biāo)題: stm8s003驅(qū)動(dòng)lcd1602液晶 死活顯示不出來,不知道哪里問題 求大神幫幫忙
下面是lcd1602四線的驅(qū)動(dòng)程序,下載后不收亂碼 就是不顯示,求大聲指點(diǎn)
#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點(diǎn)陣,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ù)顯示屏不移動(dòng) */
  //LCD1602_Cmd(0x0C); /* 開顯示,有光標(biāo),光標(biāo)閃爍 */

}


/* 0x80和0xC0分別是兩行的開始地址,將字符的序號(hào)加上行的地
   址作為命令發(fā)送給LCD1602會(huì)讓下一個(gè)字符輸出在指定的位置  */
/******發(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++);
  }
}

#ifndef __LCD1602_H
#define __LCD1602_H

/***********LCD1602 四線驅(qū)動(dòng)***********/

#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 */



@4KCWRE~Q8JMRQA{XB)GRLP.png (81.73 KB, 下載次數(shù): 45)

@4KCWRE~Q8JMRQA{XB)GRLP.png

作者: umer94    時(shí)間: 2023-2-21 07:24
你好,
我如何將我的 PIC16F876A 十六進(jìn)制文件遷移到 stm8s003
作者: lkc8210    時(shí)間: 2023-2-21 09:15
umer94 發(fā)表于 2023-2-21 07:24
你好,
我如何將我的 PIC16F876A 十六進(jìn)制文件遷移到 stm8s003

重寫吧,為啥不開新貼問
作者: lkc8210    時(shí)間: 2023-2-21 09:18
/******發(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&0x0f)<<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&0x0f)<<4); /* 接收低四位數(shù)據(jù) */
  EN_HIGH;
  delay_ms(1);
  EN_LOW;
}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品一区二区三区久久久 | 免费黄色av网站 | av色站 | 色性av| 色久影院| 91在线一区二区三区 | 一级在线视频 | 在线观看国产视频 | 精品国产一区二区三区av片 | 国产精品黄视频 | 日本久久久久久久久 | 精品国产乱码久久久久久丨区2区 | 91一区二区在线观看 | 欧美精品久久久久 | 国产成人精品在线 | 久久精品国产免费一区二区三区 | av在线免费观看不卡 | 欧美日韩成人在线观看 | 中文字幕av第一页 | 羞羞色在线观看 | 国产xxx在线观看 | 99国产精品99久久久久久 | 亚洲精品久久嫩草网站秘色 | 欧美黄色免费网站 | 精品国产一区二区三区久久久四川 | 欧美一级黄 | 一区二区三区在线看 | 超碰在线播 | 国产精品一区在线 | 亚洲一区二区三区四区五区中文 | 色播久久| 午夜三区 | 青青久久 | 亚洲入口 | 色婷婷激情 | 日韩精品成人网 | 成人国产精品久久久 | 另类专区亚洲 | 国内精品视频免费观看 | 欧美一区二区三区四区视频 | 亚洲日本欧美 |