设计一 AT89C52 单片机控制系统,采用静态控制方式,同时显示“5678”,画出电路原理图,并编写程序实现该功能。
时间: 2024-06-10 20:05:41 浏览: 12
好的,我理解了你的要求。为你提供以下方案。
首先是电路原理图:
![AT89C52电路原理图](https://img-blog.csdn.net/20180401145748573)
说明:
1. 该设计采用了AT89C52单片机,通过P2口和74LS47数码管译码器控制数码管,实现输出电路为公共阳极方式。
2. 通过K1键盘输入控制器,实现单片机读取键盘输入的完整数字,并通过P2口选通数码管译码器输出显示数字。
接下来是程序代码:
```c
#include <reg52.h>
sbit LSA = P2 ^ 2;
sbit LSB = P2 ^ 3;
sbit LSC = P2 ^ 4;
sbit key = P3 ^ 4;
unsigned char code LED_Code[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
void Delay(unsigned int i) {
while (i--);
}
void main() {
unsigned char num = 0;
LSA = 1;
LSB = 1;
LSC = 0;
while (1) {
if (key == 0) {
Delay(1000); // 防抖动
if (key == 0) { //确认按键按下
num++;
if (num >= 10) num = 0; // 数字从 0 到 9 循环
P0 = LED_Code[num];
Delay(10000);
}
while (key == 0); //按键松开后才能继续输入
}
P0 = LED_Code[5]; // 数码管显示 5
}
}
```
程序功能:
实现数码管静态显示数字5678,同时通过按键输入1-9数字,可以更改数码管的显示内容。
希望这个方案对你有所帮助!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)