Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- BLINK.C > Serial2Sevensecment
- Device: 89S51
- compiler: SDCC on MIDE-51 >> http://sdcc.sourceforge.net/
- Bandung 21 Mei 13
- Done: 28 Mei 2013
- */
- #include <at89x51.h>
- char tabel[]={238,130,118,214,154,220,252,134,254,222,0,16};
- int i,j,x,id;
- int tock,second,minute,hour;
- volatile unsigned char n ;
- volatile unsigned int tick,k,xblink;
- volatile char index[10],buffer[11];
- void TimerISR (void) __interrupt TF0_VECTOR // OK 22 mei 13
- {
- TH0=0xDC;
- TL0=0x00;
- tick++;
- if(tick==2){
- tick=0;
- if(i==0) {i=0x10;
- }
- i=i>>1;
- P0=i;
- P2 =tabel[index[j]]; //
- j++;
- if(j==10) j=5;
- }
- }
- //--------------
- void SerialISR (void) __interrupt SI0_VECTOR //4 23may13
- {
- if (RI)
- {
- n = SBUF;
- RI = 0;
- if(n=='*'){k=0;}
- //index[k]=n-48;
- buffer[k]=n-48;
- if(n==' '){
- //index[k]=10;
- buffer[k]=10;
- }
- k++;
- xblink=0;
- if(buffer[3]+48=='B'){
- xblink=buffer[4]*10+buffer[5];
- }
- //if(k==10) k=6;
- //}
- }
- else if (TI)
- {
- SBUF = n;
- TI = 0;
- }
- }
- //--------------
- void delay(int n)
- {
- int i, j;
- for (i=1;i<=n;i++)
- for (j=1;j<=10;j++);
- }
- void putchar (char c)
- {
- while (!TI);
- TI = 0;
- SBUF = c;
- }
- char getchar(void)
- {
- if (RI!=0)
- {
- RI = 0;
- return SBUF;
- }
- else
- return -1;
- }
- void initseri()
- {
- PCON = 0x80;
- TH1 = 0xFA;
- TR1 = 1;
- ES = 1;
- TI = 0;
- RI = 0;
- EA = 1;
- }
- void blink()
- {
- delay(5000);
- TR0=0;
- P0=0x00;
- P2=0xff;
- delay(5000);
- TR0=1;
- }
- //------------------------------------------------------------------------------
- int main(void)
- {
- TL0=0;
- TH0=0;
- ET0=1;
- EA = 0;
- SCON = 0x50;
- TMOD |= 0x22;
- TR0=1;
- TR1 = 1;
- ES = 1;
- EA = 1;
- id=P1;
- id &=0b00111111;
- initseri();
- i=0x10;
- j=6;
- index[6]=11;
- index[7]=11;
- index[8]=11;
- index[9]=11;
- k=6;
- while(1) //loop
- {
- int n=0;
- n=((buffer[1])*10)+(buffer[2]); //25may13
- if(n==id){
- n=6;
- while(n<10){
- index[n]=buffer[n];
- n++;
- }
- if(xblink!=0 && (buffer[3]+48=='B')){
- blink();
- xblink--;
- }
- }
- }
- }// main-------
Advertisement
Add Comment
Please, Sign In to add comment