求C51单片机数码管显示问题
来源:百度知道 编辑:UC知道 时间:2024/06/17 03:16:26
我 的邮箱guifeng_86@163.com
#include <reg51.h>
//定义位操作
sbit ls1=P0^5; //千位公共极
sbit ls2=P0^4; //百位公共极
sbit ls3=P0^3; //十位公共极
sbit ls4=P0^2; //个位公共极
#define Out P1 //数据输出端
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳
// 实际显示 0 1 2 3 4 5 6 7 8 9
//延时----------------------------
Delay(unsigned int t)
{
while(t--);
}
//主程序--------------------------
main()
{
while(1) //循环显示
{
Out=tab[8]; //把数字8查表得到7段显示码数据送P1端口
ls1=0; //点亮千位
Delay(100); //显示一会
ls1=1; //关闭,显示下一位
Out=tab[7]; //把数字7查表得到7段显示码数据送P1端口
ls2=0; //点亮百位
Delay(100); //显示一会
ls2=1; //关闭,显示下一位,下同
Out=tab[6];
ls3=0;
Delay(100);
ls3=1;