STM32单片机学习笔记(1):LCD1602

控制/MCU

1814人已加入

描述

项目简介

利用CubMX生成基于32单片机的HAl库工程,然后编写程序在Proteus上仿真验证,首先是对LCD1602的学习。

硬件模块

STM32F103R4

LCD1602

74HC373缓存驱动芯片

软件工具

CubMX

Proteus

Keil

电路连接图

Proteus

Proteus

Proteus

工作流程

首先创建好一个CubaMX工程,设置好PC0--PC7为LCD1602的8个数据位

Proteus

PB0--PB2分别为LCD1602的片选位,读写位和使能位

Proteus

然后设置时钟,仿真的话最好还是用内部时钟,因为后面如果需要串口通信,外部时钟可能会出现一些错误

Proteus

其余根据自己习惯即可

Proteus

然后进入生成的KEIL工程,编写好相应程序即可,主要程序代码在后面给出。

最后进入Proteus验证。

Proteus

程序代码

main.c

unsigned char str[]={"hello123"};


/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* MCU Configuration--------------------------------------------------------*/


  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();


  /* USER CODE BEGIN Init */


  /* USER CODE END Init */


  /* Configure the system clock */
  SystemClock_Config();


  /* USER CODE BEGIN SysInit */


  /* USER CODE END SysInit */


  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_ADC1_Init();
 // MX_USART1_UART_Init();
  MX_TIM1_Init();
  /* USER CODE BEGIN 2 */


  /* USER CODE END 2 */


  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  LCD_INIT();

  LCD_WRITE_StrDATA(str,1,0);
  while(1)
  {


    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

LCD1602.c

void LCD_INIT(void)
{  //初始化
//  HAL_GPIO_Write(GPIOC,0x00ff);
  //GPIO_WRITE_u8_data(GPIOC,0x00);
  delay_us(500);

  LCD_WRITE_CMD( 0x38 );
  LCD_WRITE_CMD( 0x0c );  //开启光标和闪烁
  LCD_WRITE_CMD( 0x06 );
  LCD_WRITE_CMD( 0x01 );  //清屏
}






void LCD_WRITE_StrDATA(volatile unsigned char *StrData,volatile unsigned char row,volatile unsigned char col )
{//写入字符串
  unsigned char baseAddr = 0x00;      //定义8位地址
  if (row){
    baseAddr = 0xc0;
  }else{
    baseAddr = 0x80;                                           
  }   //row为1用户选择第二行
    //row为0用户选择第一行
  baseAddr += col;


  while ( *StrData != '�' ){


    LCD_WRITE_CMD( baseAddr );
    LCD_WRITE_ByteDATA( *StrData );

    baseAddr++;         //每次循环地址加一,数据指针加一
    StrData++;
  }


}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分