单片机数字9到0显示程序代码?

如题所述

这里给出一种基于Arduino平台的单片机数字0到9显示的程序代码,可供参考:
c++
Copy code
int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; //定义LED引脚
int numPins[][7] = { //定义数字0~9的LED点阵图形
{1, 1, 1, 1, 1, 1, 0}, //0
{0, 1, 1, 0, 0, 0, 0}, //1
{1, 1, 0, 1, 1, 0, 1}, //2
{1, 1, 1, 1, 0, 0, 1}, //3
{0, 1, 1, 0, 0, 1, 1}, //4
{1, 0, 1, 1, 0, 1, 1}, //5
{1, 0, 1, 1, 1, 1, 1}, //6
{1, 1, 1, 0, 0, 0, 0}, //7
{1, 1, 1, 1, 1, 1, 1}, //8
{1, 1, 1, 1, 0, 1, 1} //9
};
void setup() {
for (int i = 0; i < 10; i++) { //初始化LED引脚为输出模式
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
for (int num = 9; num >= 0; num--) { //从数字9到0循环
for (int i = 0; i < 7; i++) { //依次点亮数字的7个LED
digitalWrite(ledPins[i], numPins[num][i]); //控制LED引脚输出高低电平
}
delay(1000); //延时1秒
}
}
该程序利用数组存储数字09的LED点阵图形,并通过循环依次点亮每个数字的7个LED,从而实现数字09的循环显示。可以根据需要对延时时间进行调整,以达到合适的显示效果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-21
这是一段基本的单片机数字0到9循环显示的C语言代码,使用的是51单片机和Keil C编译器:
#include <reg51.h>
// 数码管共阴极连接,低电平点亮
unsigned char code num[10] = {
0xC0, // 0
0xF9, // 1
0xA4, // 2
0xB0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xF8, // 7
0x80, // 8
0x90 // 9
};
void delay_ms(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 125; j++);
}
void main() {
unsigned char i;
while (1) {
for (i = 0; i <= 9; i++) {
P0 = num[i];
delay_ms(500);
}
}
}
在这个程序中,我们定义了一个数组num,它包含了数字0到9的数码管编码。然后我们使用一个循环来依次显示每个数字,通过P0口输出数码管的控制信号。最后,我们使用一个延时函数来控制数字的显示时间。
相似回答