51单片机数码管显示程序(按键控制显示数据)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90 };
sbit key=P3^3;
uint num;
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void key_scan()
{
if(key==0)
{
delay(1);
if(key==0)
{
while(!key);
num++;
if(num>9999)
num=0;
}
}
}
void main()
{
while(1)
{
key_scan();
P0=0xfe; //位选P0^0=0,选中第一个数码管,其阳极与Vcc相通
P1=table[num/1000]; //送数码管上要显示的数据
delay(1); //延时点亮数码管
P0=0xfd;
P1=table[num%1000/100];
delay(1);
P0=0xfb;
P1=table[num%100/10];
delay(1);
P0=0xf7;
P1=table[num%10];
delay(1);
}
}
/*
数码管显示过程:位选确定哪个管子显示、段选确定在数码管上显示什么。依次点亮各个数码管从而达到动态显示
通过按键改变显示内容。
*/