stm32嵌入式仿真静态两位数码管显示实验步骤
时间: 2023-07-29 17:06:21 浏览: 186
好的,我来回答您的问题。首先,您需要准备以下材料:
1. 一块STM32开发板
2. 两个共阳式两位数码管
3. 杜邦线若干
接下来,按照以下步骤进行实验:
1. 将两位数码管的VCC引脚连接到STM32开发板的5V引脚上,将GND引脚连接到开发板的GND引脚上。
2. 将数码管的A、B、C、D、E、F、G引脚分别连接到开发板的PB0、PB1、PB2、PB3、PB4、PB5、PB6引脚上。
3. 在Keil MDK中新建工程,并将编译选项设置为STM32F103C8T6芯片。
4. 在main函数中初始化GPIO口,将PB0~PB6引脚设置为输出模式。
5. 编写函数`void Display(unsigned char a, unsigned char b)`,该函数用于将a、b两个数字分别显示在两个数码管上。具体实现可以参考下面的代码:
```
void Display(unsigned char a, unsigned char b)
{
unsigned char seg[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; //数码管段码表
unsigned char high, low;
high = a / 10; //分离出高位数字
low = a % 10; //分离出低位数字
GPIOB->ODR = (GPIOB->ODR & 0xff80) | seg[high]; //显示高位数字
Delay(5); //延时5ms
GPIOB->ODR = (GPIOB->ODR & 0xff80) | seg[low]; //显示低位数字
Delay(5); //延时5ms
high = b / 10; //分离出高位数字
low = b % 10; //分离出低位数字
GPIOB->ODR = (GPIOB->ODR & 0xff80) | seg[high] | 0x80; //显示高位数字,并点亮另一个数码管的小数点
Delay(5); //延时5ms
GPIOB->ODR = (GPIOB->ODR & 0xff80) | seg[low]; //显示低位数字
Delay(5); //延时5ms
}
```
6. 在main函数中循环调用`Display`函数,将需要显示的两位数字作为参数传递进去即可。
至此,您就完成了STM32嵌入式仿真静态两位数码管显示实验。希望对您有所帮助!
阅读全文