Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <REGX52.H>
- typedef unsigned char byte;
- byte xdata LED_PREK _at_ 0x8000;
- byte xdata PLAVE_LED _at_ 0x8003;
- byte LEDS;
- byte prek;
- byte smer;
- void poc_stanje(byte x )
- {
- switch (x&0x03)
- {
- case 0:
- LEDS=~0x01;
- break;
- case 1:
- LEDS=~0x03;
- break;
- case 2:
- LEDS=~0x07;
- break;
- case 3:
- LEDS=~0x0f;
- break;
- }
- }
- void main()
- {
- unsigned long i;
- prek=LED_PREK;
- poc_stanje(prek);
- while(1)
- {
- prek=LED_PREK;
- smer=(0x04&prek)>>2;
- if(smer==0x01)
- LEDS=(LEDS>>1)|((LEDS&0x01)<<7);
- else
- LEDS=(LEDS<<1)|((LEDS&0x80)>>7);
- for(i=0; i<100000 ;i++);
- PLAVE_LED=LEDS;
- }
- }
- //******************************************* DRUGI NACIN
- #include<REGX52.H>
- typedef unsigned char byte;
- byte xdata led_prek _at_ 0x8000;
- byte xdata plave_led _at_ 0x8003;
- byte leds;
- byte prek;
- byte smer;
- unsigned int brojac=0;
- void poc_stanje(byte x)
- {
- switch(x&0x03)
- {
- case 0:
- leds=~0x01;
- break;
- case 1:
- leds=~0x03;
- break;
- case 2:
- leds=~0x07;
- break;
- case 3:
- leds=~0x0f;
- break;
- }
- }
- void timer2_ISR() interrupt 5
- { EA=0;
- if(++brojac>10000)
- {
- prek=led_prek;
- smer=(0x04&prek)>>2;
- if(smer==0x01)
- leds=(leds>>1)|((leds&0x01)<<7);
- else
- leds=(leds<<1)|((leds&0x80)>>7);
- plave_led=leds;
- brojac=0;
- }
- TF2=EXF2=0;
- EA=1;
- }
- void main()
- {
- RCAP2H=0xfa;
- RCAP2L=0x00;
- T2CON=0x00;
- ET2=1;
- TR2=1;
- EA=1;
- prek=led_prek;
- poc_stanje(prek);
- while(1);
- }
Advertisement
Add Comment
Please, Sign In to add comment