利用 AT89S51 单片机的 P1.0-P1.3 接四个发光二极管 L1-L4,用来指示当前计 数的数据;用 P1.4-P1.7 作为预置数据的输入端,接四个拨动开关 K1-K4,用 P3.6/WR 和 P3.7/RD 端口接两个轻触开关,用来作加计数和减计数开关。具体的 电路原理图如下图所示
#include <AT89X51.H>
unsigned char curcount;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
void main(void)
{
curcount=P3 & 0x0f;
P1=~curcount;
while(1)
{
if(P3_6==0)
{
delay10ms();
if(P3_6==0)
{
if(curcount>=15)
{
curcount=15;
}
else
{
curcount++;
}
P1=~curcount;
while(P3_6==0);
}
}
if(P3_7==0)
{
delay10ms();
if(P3_7==0)
{
if(curcount<=0)
{
curcount=0;
}
else
{
curcount--;
}
P1=~curcount;
while(P3_7==0);
}
}
}
}
我把原理图改了
|