数码管多位计数程序和原理(比如从00--99)

如题所述

第1个回答  2010-10-13
原理是利用数码管的动态扫描,通过按键来进行计数
程序如下:

#include<regX51.h>
#define k1 P1_7//开始定义p1_7时出错

unsigned char i,b,count=0;
unsigned char code table[]={0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x7D,0x7,0x7F,0x6F};
void delay ()
{
for(i=4;i>0;i--)
for(b=248;b>0;b--);//第一次忘了打都逗号要多注意
}
void js ()
{
P2=0xfe;
P0=table[count/10];
delay();
P2=0xfd;
P0=table[count%10];
delay();
}
void main (void)
{
P2=0xff;
P1=0xff;
P2=0xfe;//开始赋值数码管好显示P2=0xfe;
P0=table[0];
delay();
P2=0xfd;
P0=table[0];
delay();
while(1)
{
if(k1==0)
{

if(k1==0)
{
while(k1==0)js();//在后面用函数可以在按键是就显示前面的值
count=count+1;
if(count==100)count=0;

}
}
}
}本回答被网友采纳
相似回答