AT89S52单片机程序50例(00-50)
源代码在线查看: 00-99计数器.c
//00-99计数器
//共阴极数码管
#include
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9的段码值
unsigned char Count; //定义无符号变量Count
sbit SP1=P3^7; //定义P3.0为按键
//10ms延时子程序
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
//主程序
void main(void)
{
Count=0;
P0=table[Count/10];
P2=table[Count%10];
while(1)
{
if(SP1==0) //是否有按键?
{
delay10ms(); //有按键的话,延时消抖
if(SP1==0) //是否真的有按键
{
Count++; //是的话,Count加1
if(Count==100) //Count=100时,重新初始化Count=0
{
Count=0;
}
P0=table[Count/10];
P2=table[Count%10];
while(SP1==0); //按键是否释放?是的话,退出;否的话,等待。
}
}
}
}