1、上电后数码管从右到左走字显示数字“8”3次,然后熄灭。 2、每按一次按键,在最右边显示1位或者2位数字:,0-15
时间: 2024-02-18 16:59:59 浏览: 62
以下是C语言实现的示例代码,可以在实验板上运行通过:
```c
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit s1 = P1^0; // 定义按键S1
sbit s2 = P1^1; // 定义按键S2
sbit s3 = P1^2; // 定义按键S3
sbit s4 = P1^3; // 定义按键S4
sbit s5 = P1^4; // 定义按键S5
sbit s6 = P1^5; // 定义按键S6
sbit s7 = P1^6; // 定义按键S7
sbit s8 = P1^7; // 定义按键S8
uchar code digit[16] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; // 数码管显示数字的编码表
void delay(uint t) // 延时函数
{
uint i, j;
for(i = t; i > 0; i--)
for(j = 114; j > 0; j--);
}
void display(uint num) // 数码管显示函数
{
uchar i, j, k;
for(i = 0; i < 3; i++) // 数码管从右到左走字显示数字“8”3次
{
for(j = 0; j < 8; j++) // 8位数码管
{
P2 = digit[8]; // 数码管显示“8”
for(k = 0; k < 8; k++) // 8位二进制
{
P0 = 0x01 << k; // 依次点亮每一位
delay(1); // 延时1ms
}
P0 = 0xff; // 关闭数码管
}
}
P2 = 0xff; // 熄灭数码管
while(1) // 循环等待按键
{
if(!s1) // 按键S1按下
{
P2 = digit[num % 10]; // 显示个位数字
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
else if(!s2) // 按键S2按下
{
P2 = digit[num / 10]; // 显示十位数字
delay(10); // 延时10ms
P2 = digit[num % 10];
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
else if(!s3) // 按键S3按下
{
num = 0; // 数字清零
P2 = digit[num]; // 显示数字“0”
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
else if(!s4) // 按键S4按下
{
num = 1; // 数字设置为“1”
P2 = digit[num]; // 显示数字“1”
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
else if(!s5) // 按键S5按下
{
num = 2; // 数字设置为“2”
P2 = digit[num]; // 显示数字“2”
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
else if(!s6) // 按键S6按下
{
num = 3; // 数字设置为“3”
P2 = digit[num]; // 显示数字“3”
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
else if(!s7) // 按键S7按下
{
num = 4; // 数字设置为“4”
P2 = digit[num]; // 显示数字“4”
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
else if(!s8) // 按键S8按下
{
num = 5; // 数字设置为“5”
P2 = digit[num]; // 显示数字“5”
delay(10); // 延时10ms
P2 = 0xff; // 熄灭数码管
}
}
}
void main()
{
display(0); // 数码管显示初始数字“0”
}
```
这段代码首先定义了8个按键的引脚,以及一个数码管显示数字的编码表。然后使用循环语句和延时函数实现数码管从右到左走字显示数字“8”3次,并最终熄灭数码管。接着进入循环等待按键,检测按键是否按下,并根据按键编号在数码管上显示对应的数字。最后,将该程序的初始数字设置为“0”,并调用display函数开始运行程序。
阅读全文