标题:
数码管显示浅显易懂
[打印本页]
作者:
daming
时间:
2014-12-29 19:37
标题:
数码管显示浅显易懂
#include<reg52.h>//头文件
#define uchar unsigned char //宏定义
#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,//数码管显示的数值
0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint x) //延时子函数
{
uint i,j;
for(i=x;i>0;i--)
for(j=500;j>0;j--);
}
void main() //主函数
{
uchar i,j; //定义局部变量
while(1) //无限循环
{
for(i=0;i<16;i++) //从0-f显示
{
P1=0xf8; //点亮第一个数码管
P2=table[i];
delay(200); //延时0.5s
}
for(i=0;i<16;i++)//点亮两位数码管从0-f
{
for(j=100;j>0;j--)
{
P1=0xf8; //点亮第一个数码管
P2=table[i];
delay(1); //延时0.5s
P1=0xf9;
P2=table[i];
delay(1);
}
}
for(i=0;i<16;i++) //间隔数码管显示从0-f
for(j=100;j>0;j--)
{
P1=0xf8;
P2=table[i];
delay(1);
P1=0xfa;
P2=table[i];
delay(1);
P1=0xfc;
P2=table[i];
delay(1);
P1=0xfe;
P2=table[i];
delay(1);
}
}
}
/*
注:先一个数码管显示0-f,再两个数码管显示0-f,
然后一个数码管同时显示0-f,
*/
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1