Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "reg1210.h"
- #define TRUE 1
- #define FALSE 0
- unsigned char _20_MS_FLAG;
- unsigned int _20_MS_COUNTER;
- unsigned int _1_SEC_COUNTER;
- unsigned int _SEC_COUNTER;
- unsigned char _1_SEC_FLAG;
- unsigned int _MASTER_SEC_COUNTER;
- void TimerInt0() interrupt 1
- {
- TH0 = 0xFC; //napelnia rejestr licznika do 1 ms
- TL0 = 0x18; //napelnia rejestr licznika do 1 ms
- _20_MS_COUNTER++;
- if (_20_MS_COUNTER == 20)
- {
- _20_MS_FLAG = TRUE;
- _1_SEC_COUNTER++;
- _20_MS_COUNTER = 0;
- if (_1_SEC_COUNTER == 50)
- {
- _SEC_COUNTER++;
- _1_SEC_COUNTER = 0;
- _1_SEC_FLAG = TRUE;
- }
- }
- }
- void rr(int *value)
- {
- if (*value != 0x01)
- {
- int rotated_value;
- rotated_value = *value >> 1;
- *value = rotated_value;
- }
- else
- {
- *value = 0x80;
- }
- }
- void choinka()
- {
- static int licznik = 0;
- switch (licznik)
- {
- case 0:
- P2=0x01;
- break;
- case 1:
- P2=0x02;
- break;
- case 2:
- P2=0x04;
- break;
- case 3:
- P2=0x08;
- break;
- case 4:
- P2=0x10;
- break;
- case 5:
- P2=0x20;
- break;
- case 6:
- P2=0x40;
- break;
- case 7:
- P2=0x80;
- break;
- }
- licznik++;
- if(licznik==8)
- {
- licznik=0;
- }
- }
- void main()
- {
- int A;
- _20_MS_FLAG = FALSE;
- _20_MS_COUNTER = 0;
- _1_SEC_FLAG = FALSE;
- _1_SEC_COUNTER = 0;
- _SEC_COUNTER = 0;
- _MASTER_SEC_COUNTER = 0;
- ET0 = 1;
- TMOD = 0x01;
- TR0 = 1;
- EA = 1;
- TH0 = 0xFC;
- TL0 = 0x18;
- A = 0x80; //zapalona wylacznie skrajna dioda
- P3 = A;
- //PETLA GLÓWNA PROGRAMU
- while (1)
- {
- if (_SEC_COUNTER < 15)
- {
- if (_1_SEC_FLAG == TRUE) //wywolanie co 1 sekunde
- {
- _1_SEC_FLAG = FALSE; //na samym poczatku zerowanie flagi
- rr(&A);
- P3 = A;
- choinka();
- }
- }
- else
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement