可以用仿真图来实现,用两位共阳数码管,分别接在P0,P2口,组成两位静态显示电路。先做加法计数,计数到99,自动改为减法计数,计数到0,再变为加法计数。由此循环。
仿真图
程序如下
#include<reg51.h>
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}
void delay()
{
unsigned int j
for(j=20000j>0j--)//修改j 的初值,可改变计数的速度
}
void main()
{
char n,x=1//先加法计数
while(1)
{
P0=tab[n/10]//显示十位
P2=tab[n%10]//显示个位
delay()
n+=x
if(n>=99)
x=-1//减法计数
if(n==0)
x=1//加法计数
}
}
电路图 如下:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit duan=P2^6
sbit wei=P2^7
uchar code digit[6]={0xf9,0xa4,0xb0,0x99,0x92,0X82}
void delay(xms)
{
uint i,j
for(i=xmsi>0i--)
for(j=110j>0j--)
}
void main()
{
while(1)
{
wei=1
P0=0x01
wei=0
duan=1
P0=digit[0]
duan=0
delay(500)
wei=1
P0=0x02
wei=0
duan=1
P0=digit[1]
duan=0
delay(500)
wei=1
P0=0x04
wei=0
duan=1
P0=digit[2]
duan=0
delay(500)
wei=1
P0=0x08
wei=0
duan=1
P0=digit[3]
duan=0
delay(500)
wei=1
P0=0x10
wei=0
duan=1
P0=digit[4]
duan=0
delay(500)
wei=1
P0=0x20
wei=0
duan=1
P0=digit[5]
duan=0
delay(500)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)