接收端:
#include<reg51.h>
unsigned int i ,dat,f1=0,counter=0;
char a=0,b=0;
unsigned char table[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char wei[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void timer_0() interrupt 1 using 1{
TH0=0x3C;TL0=0xB0;
counter++;
if(counter>=10){
counter=0;
f1++;
}
}
void timeSub(){
int j;
for(j=0;j<6;j++){
switch(j){
case(0):P2=0XFF;P1=wei[0];P2 = table[f1%10];break;
case(1):P2=0XFF;P1=wei[1];P2 = table[f1/10%10];break;
case(2):P2=0XFF;P1=wei[2];P2 = table[f1/100%10];break;
case(3):P2=0XFF;P1=wei[3];P2 = table[f1/1000%10];break;
case(4):P2=0XFF;P1=wei[4];P2 = table[f1/10000%10];break;
case(5):P2=0XFF;P1=wei[5];P2 = table[f1/100000%10];break;
}
}
}
void received(void) interrupt 4
{ dat=SBUF; RI=0;
switch(dat){
case 1:TR0=!TR0;break;
case 2:f1=1;break;
case 3:f1=60;break;
case 4:f1=3600;break;
case 5:P1=0;P2=0;f1=0;break;
default:break;
}
}
void main( ){
TMOD=0x21; SCON=0x50; PCON=0x00; TR1=1;
TH1=0xf4; TL1=0xf4;
EA=1; ES=1; PS=1; ET0=1;
TR0=1;
while(1){
timeSub();
}
}
发送端:
#include<reg51.h>
#define Data_pause 1;
#define Data_second 2;
#define Data_min 3;
#define Data_hour 4;
#define Data_clear 5;
sbit Pause=P0^0;
sbit Set_second=P0^1;
sbit Set_min=P0^2;
sbit Set_hour=P0^3;
sbit clear=P0^4;
int i,j;
void delay(void)
{ for(i=0;i<200;i++)
for(j=0;j<100;j++){};
}
void button(void)
{
if(Pause==0) {delay();if(Pause==0) {SBUF=Data_pause; do{}while(!TI);TI=0;}}
if(Set_second==0){delay();if(Set_second==0) {SBUF=Data_second;do{}while(!TI);TI=0; }}
if(Set_min==0){delay();if(Set_min==0) {SBUF=Data_min;do{}while(!TI);TI=0; }}
if(Set_hour==0){delay();if(Set_hour==0) {SBUF=Data_hour;do{}while(!TI);TI=0; }}
if(clear==0) {delay();if(clear==0) {SBUF=Data_clear; do{}while(!TI);TI=0;}}
}
main(){
TMOD=0x20;TL1=0xF4; TH1=0xF4;PCON=0x00;
SCON=0x50;
TR1=1;
while(1)
{ button(); }
}