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

控制/MCU

1877人已加入

描述

项目简介

利用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"};/** *@briefThe application entry point. *@retvalint */intmain(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

voidLCD_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);//清屏}voidLCD_WRITE_StrDATA(volatileunsignedchar*StrData,volatileunsignedcharrow,volatileunsignedcharcol ){//写入字符串unsignedcharbaseAddr =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阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

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

×
20
完善资料,
赚取积分