arm嵌入式数码管显示奇数偶数代码
时间: 2023-07-02 09:17:02 浏览: 142
arm嵌入式
假设使用的是4位共阳数码管,以下是使用ARM Cortex-M系列微控制器编写的奇数偶数判断并在数码管上显示的代码:
```c
#include "stm32f10x.h"
#include "stdbool.h"
#define LED_ON() GPIO_SetBits(GPIOB, GPIO_Pin_8)
#define LED_OFF() GPIO_ResetBits(GPIOB, GPIO_Pin_8)
void delay(int count) {
volatile int i = count;
while (i--);
}
bool isEven(int num) {
return (num % 2 == 0);
}
void displayNum(int num) {
int digit[4];
digit[0] = num % 10;
digit[1] = (num / 10) % 10;
digit[2] = (num / 100) % 10;
digit[3] = (num / 1000) % 10;
GPIO_SetBits(GPIOB, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15);
GPIO_ResetBits(GPIOA, GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3);
for (int i = 0; i < 4; i++) {
if (digit[i] == 0) {
GPIO_ResetBits(GPIOB, GPIO_Pin_12 << i);
} else {
GPIO_SetBits(GPIOB, GPIO_Pin_12 << i);
GPIO_ResetBits(GPIOA, (GPIO_Pin_0 << digit[i]) << i);
}
}
}
int main(void) {
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
int num = 0;
bool isEvenNum = false;
while (1) {
isEvenNum = isEven(num);
if (isEvenNum) {
LED_ON();
} else {
LED_OFF();
}
displayNum(num);
delay(100000);
num++;
}
}
```
该代码中,isEven()函数用于判断一个整数是否为偶数,displayNum()函数用于将一个整数在4位共阳数码管上显示。在主函数中,不断循环并不断判断和显示数字,同时根据数字是否为偶数控制一个LED灯的开关。注意,具体的引脚配置和延时时间需要根据实际硬件进行调整。
阅读全文