123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- #include "reg52.h"
- #include "string.h"
- #include "stdio.h"
- #define uint unsigned int
- #define uchar unsigned char
- sbit SW1=P2^0;
- sbit SW2=P2^1;
- sbit YINPIN1=P2^2;
- sbit YINPIN2=P2^3;
- sbit buzz=P3^3;
- void delay_xms(int xms)
- {
- char ix=0;
- for(;xms>0;xms--)
- for(ix=110;ix>0;ix--);
- }
- uchar SET=0;
- void Timer0Init(void)
- {
-
- TMOD &= 0xF0;
- TMOD |= 0x01;
- TL0 = 0x00;
- TH0 = 0xDC;
- TF0 = 0;
- ET0=1;
- TR0 = 1;
- EA=1;
-
- }
- void TimeISR()interrupt 1
- {
- TL0 = 0x00;
- TH0 = 0xDC;
- }
- void UartInit(void)
- {
- PCON &= 0x7F;
- SCON = 0x50;
- TMOD &= 0x0F;
- TMOD |= 0x20;
- TL1 = 0xFD;
- TH1 = 0xFD;
- ET1 = 0;
- TR1 = 1;
- EA=1;
- ES=0;
- }
- void sendData(char *p,unsigned char n)
- {
- if( p == 0) return ;
- ES = 0;
- if(n > 0)
- {
- while(n --)
- {
- SBUF = *p++ ;
- while(!TI) ;
- TI = 0 ;
- }
- }
-
- }
- void sendString(char *p)
- {
- if(p == 0) return ;
- sendData(p,strlen(p));
- }
- void usart() interrupt 4
- {
- if(RI == 1)
- {
-
- }
- RI = 0;
- TI = 0;
- }
- char data send_buff[17]={0};
- uchar fz[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6};
- uchar zz[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe};
- void zhengzhuan(void)
- {
- char i;
- int j;
- for(j=8*64;j>0;j--)
- {
- for(i=0;i<8;i++)
- {
- P1=zz[i];
- delay_xms(5);
- }
- }
- P1=0x00;
- }
- void fanzhuan(void)
- {
- int b;char a;
- for(b=8*64;b>0;b--)
- {
- for(a=0;a<8;a++)
- {
- P1=fz[a];
- delay_xms(5);
- }
- }
- P1=0x00;
- }
- bit input_flag=0;
- bit output_flag=0;
- bit lock_flag=0;
- void main()
- {
- UartInit();
- Timer0Init();
- while(1)
- {
- if(SW1==0||SW2==0)
- {
- delay_xms(5);
- if(lock_flag==0)
- {
- if(SW1==0)
- {
- input_flag=1;
- lock_flag=1;
- }else if(SW2==0)
- {
- lock_flag=1;
- output_flag=0;
- }
- }
- }else
- {
- lock_flag=0;
- }
-
- if(input_flag)
- {
- input_flag=0;
- YINPIN1=0;
- YINPIN2=1;
- zhengzhuan();
- }
- else if(output_flag)
- {
- output_flag=0;
- YINPIN1=1;
- YINPIN2=0;
- fanzhuan();
- }
- }
- }
|