C51单片机控制8位数码管显示数字1-8
keil uVision4界面:
#include<reg51.h>
//包含8051单片机寄存器定义的头文件
#define uchar unsigned char
//共阳极数码管段码表
uchar code dis_code1[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};
//共阳极数码管位控码表
uchar code dis_code2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(int x) //延时函数
{
int i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void main()
{
int a;
for(a=0;a<8;a++)
{
P0=dis_code1[a]; //P0口输出段码
P2=dis_code2[a]; //P2口输出位控码
delay(5); //延时,控制每位显示的时间
P2=0x00; //消影
}
}
proteus仿真界面: