利用 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);
}
}
}
}
我把原理圖改了
|