使用keil5利用STM32芯片实现0-9数码管显示实验代码和仿真
时间: 2024-03-10 12:48:37 浏览: 120
以下是使用Keil5和STM32芯片实现0-9数码管显示的实验代码和仿真:
代码:
```c
#include "stm32f10x.h"
#define uchar unsigned char
#define uint unsigned int
#define GPIOA_CLOCK RCC_APB2Periph_GPIOA
#define GPIOA_PORT GPIOA
#define GPIO_Pin_0 GPIO_Pin_0
#define GPIO_Pin_1 GPIO_Pin_1
#define GPIO_Pin_2 GPIO_Pin_2
#define GPIO_Pin_3 GPIO_Pin_3
#define GPIO_Pin_4 GPIO_Pin_4
#define GPIO_Pin_5 GPIO_Pin_5
#define GPIO_Pin_6 GPIO_Pin_6
#define GPIO_Pin_7 GPIO_Pin_7
#define GPIO_Pin_8 GPIO_Pin_8
#define GPIO_Pin_9 GPIO_Pin_9
void GPIO_Configuration(void);
void delay_ms(uint ms);
void delay_us(uint us);
int main(void)
{
GPIO_Configuration();
while (1)
{
GPIOA_PORT->ODR = GPIO_Pin_0;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_1;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_2;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_3;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_4;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_5;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_6;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_7;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_8;
delay_ms(500);
GPIOA_PORT->ODR = GPIO_Pin_9;
delay_ms(500);
}
}
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(GPIOA_CLOCK, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA_PORT, &GPIO_InitStructure);
}
void delay_ms(uint ms)
{
uint i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 1141; j++);
}
void delay_us(uint us)
{
uint i, j;
for (i = 0; i < us; i++)
for (j = 0; j < 12; j++);
}
```
仿真:
1. 在Keil5中创建新的项目,选择芯片为STM32F103C8T6。
2. 编辑上述代码,并保存。
3. 编译项目,生成.hex文件。
4. 在仿真器中打开.hex文件,并加载到芯片中。
5. 启动仿真器,观察数码管是否按照预期进行显示。
阅读全文