51单片机8255键盘控制数码管显示
时间: 2023-09-10 11:14:26 浏览: 107
51单片机的8255芯片可以用来控制键盘和数码管的显示。下面是一个简单的示例代码:
```c
#include <reg51.h>
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit key=P3^4;
sbit beep=P1^5;
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};
void delay(unsigned int i)
{
while(i--);
}
void display(unsigned char i,unsigned char j)
{
unsigned char tmp;
LSA=0;LSB=0;LSC=0;
tmp=table[i];
P0=tmp;
LSA=1;delay(100);LSA=0;
tmp=table[j];
P0=tmp;
LSB=1;delay(100);LSB=0;
}
void main()
{
while(1)
{
if(key==0)
{
beep=0;
display(1,0);
while(!key);
beep=1;
}
else
{
display(0,1);
}
}
}
```
在这个代码中,LSA、LSB、LSC是控制数码管的位选信号,key是接在8255芯片的端口P3.4上的按键输入,beep是控制蜂鸣器的输出,table[]数组中存储了数码管显示的每个数字的编码。在程序中,当按键按下时,蜂鸣器响起,数码管显示数字1,否则数码管显示数字0。
阅读全文