#include<reg51.h>
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
void delay(unsigned char i);
void main()
{
while(1){
if(P3_0==0&&P3_1==0&&
P3_2==0&&P3_3==1)
{
P1_0=0,P1_1=0;delay(200);
P1_0=1,P1_1=1;
P1_2=0,P1_3=0;delay(200);
P1_2=1,P1_3=1;
P1_4=0,P1_5=0;delay(200);
P1_4=1,P1_5=1;
P1_6=0,P1_7=0;delay(200);
P1_6=1,P1_7=1;
P1_6=0,P1_7=0;delay(200);
P1_6=1,P1_7=1;
P1_4=0,P1_5=0;delay(200);
P1_4=1,P1_5=1;
P1_2=0,P1_3=0;delay(200);
P1_2=1,P1_3=1;
P1_0=0,P1_1=0;delay(200);
P1_0=1,P1_1=1;delay(200); }
else{
P1=0x00;
delay(200);
P1=0xff;
delay(200);}
}
}
void delay(unsigned char i)
{
unsigned char j,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);
}
時鐘程序如下:壹
#include <reg51.h>
void delay1s()
{
unsigned char i;
for(i=0;i<0x0A;i++){
TH1=0x3c;
TL1=0xb0;
TR1=1;
while(!TF1);
TF1=0;
}
}二
void main()
{
unsigned char i,t;
TMOD=0x10; //置T1為工作方式1
while(1)
{for(i=0;i<255;i++)
{t=(((i/16)<<4)|(i%16)); //將i轉換為BCD碼
P1=~t; //計數值取反後送p1口顯示
delay1s(); } //調用1s延時函數
}
}不懂的可以繼續追問。謝謝