编写stm32f103c6t6用LCD1602显示数字的代码
时间: 2024-01-04 07:04:37 浏览: 17
以下是使用stm32f103c6t6和LCD1602显示数字的代码,你可以根据你的需求进行修改:
```c
#include "stm32f10x.h"
#include "delay.h"
#define RS GPIO_Pin_0
#define RW GPIO_Pin_1
#define EN GPIO_Pin_2
#define D0 GPIO_Pin_3
#define D1 GPIO_Pin_4
#define D2 GPIO_Pin_5
#define D3 GPIO_Pin_6
#define D4 GPIO_Pin_7
#define D5 GPIO_Pin_8
#define D6 GPIO_Pin_9
#define D7 GPIO_Pin_10
void LCD_command(unsigned char command);
void LCD_data(unsigned char data);
void LCD_init();
void LCD_clear();
void LCD_send_string(char* string);
void LCD_send_number(int number);
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = RS | RW | EN | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
LCD_init();
while (1)
{
LCD_clear();
LCD_send_number(123456);
delay_ms(1000);
}
}
void LCD_command(unsigned char command)
{
GPIO_ResetBits(GPIOA, RS);
GPIO_ResetBits(GPIOA, RW);
GPIO_SetBits(GPIOA, EN);
GPIO_Write(GPIOA, (GPIO_ReadOutputData(GPIOA) & 0xFF00) | command);
delay_us(50);
GPIO_ResetBits(GPIOA, EN);
delay_us(50);
}
void LCD_data(unsigned char data)
{
GPIO_SetBits(GPIOA, RS);
GPIO_ResetBits(GPIOA, RW);
GPIO_SetBits(GPIOA, EN);
GPIO_Write(GPIOA, (GPIO_ReadOutputData(GPIOA) & 0xFF00) | data);
delay_us(50);
GPIO_ResetBits(GPIOA, EN);
delay_us(50);
}
void LCD_init()
{
delay_ms(15);
LCD_command(0x30);
delay_ms(5);
LCD_command(0x30);
delay_us(100);
LCD_command(0x30);
delay_us(100);
LCD_command(0x38);
LCD_command(0x06);
LCD_command(0x01);
LCD_command(0x0C);
}
void LCD_clear()
{
LCD_command(0x01);
delay_ms(2);
}
void LCD_send_string(char* string)
{
while (*string)
{
LCD_data(*string++);
}
}
void LCD_send_number(int number)
{
char buffer[16];
sprintf(buffer, "%d", number);
LCD_send_string(buffer);
}
```
这个代码使用了GPIOA作为LCD的控制信号。你需要在代码中根据你的硬件连接修改引脚定义。代码中使用了一个简单的delay函数,你需要提供一个合适的delay函数以满足你的需求。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)