1 | .org 0x0000
|
---|
2 | rjmp RESET
|
---|
3 | reti ; INT0_ISR
|
---|
4 | reti ; PCINT0_ISR
|
---|
5 | reti ; TIM1_COMPA_ISR
|
---|
6 | reti ; TIM1_OVF_ISR
|
---|
7 | reti ; TIM0_OVF_ISR
|
---|
8 | reti ; EE_RDY_ISR
|
---|
9 | reti ; ANA_COMP_ISR
|
---|
10 | reti ; ADC_ISR
|
---|
11 | reti ; TIM1_COMPB_ISR
|
---|
12 | reti ; TIM0_COMPA_ISR
|
---|
13 | reti ; TIM0_COMPB_ISR
|
---|
14 | reti ; WDT_ISR
|
---|
15 | reti ; USI_START_ISR
|
---|
16 | reti ; USI_OVF_ISR
|
---|
17 |
|
---|
18 | RESET:
|
---|
19 | ldi R16,0x00 ; R16(LED_MODE) = 0
|
---|
20 | ldi R17,0x00 ; R17(LED_COUNTER) = 0
|
---|
21 | ldi R18,0x00 ; R18(MODE_TIMER) = 0
|
---|
22 | ; LED_INIT
|
---|
23 | ldi R20,0x19 ; R20 <- **011001B
|
---|
24 | out 0x17,R20 ; DDRB <- R20
|
---|
25 | MAIN_LOOP:
|
---|
26 | inc R17
|
---|
27 | inc R18 ; R18(MODE_TIMER)++
|
---|
28 | cpi R18,0x50 ; TimeLimitChekc
|
---|
29 | brne LED_CONTROL
|
---|
30 | ldi R18,0x00 ; R18(MODE_TIMER) CLEAR
|
---|
31 | inc R16 ; R16(LED_MODE)++
|
---|
32 | andi R16,0x03
|
---|
33 | ldi R17,0x00
|
---|
34 | LED_CONTROL:
|
---|
35 | cpi R16,0x01
|
---|
36 | brcs LED_MODE0
|
---|
37 | breq LED_MODE1
|
---|
38 | cpi R16,0x03
|
---|
39 | brne LED_MODE2
|
---|
40 | rjmp LED_MODE3
|
---|
41 | ; -------------------------
|
---|
42 | LED_MODE0:
|
---|
43 | andi R17,0x03
|
---|
44 | breq LED_MODE0L
|
---|
45 | cpi R17,0x02
|
---|
46 | breq LED_MODE0R
|
---|
47 | LED_MODE0C:
|
---|
48 | ldi R20,0xf7 ; R20 <- 11110111B
|
---|
49 | out 0x18,R20 ; PORTB <- R20
|
---|
50 | rjmp LED_MODE0_WAIT
|
---|
51 | LED_MODE0L:
|
---|
52 | ldi R20,0xfe ; R20 <- 11111110B
|
---|
53 | out 0x18,R20 ; PORTB <- R20
|
---|
54 | rjmp LED_MODE0_WAIT
|
---|
55 | LED_MODE0R:
|
---|
56 | ldi R20,0xef ; R20 <- 11101111B
|
---|
57 | out 0x18,R20 ; PORTB <- R20
|
---|
58 | LED_MODE0_WAIT:
|
---|
59 | rjmp LED_WAIT
|
---|
60 | ; -------------------------
|
---|
61 | LED_MODE1:
|
---|
62 | mov R20,R17
|
---|
63 | andi R20,0x04
|
---|
64 | breq LED_MODE1LR
|
---|
65 | LED_MODE1C:
|
---|
66 | ldi R20,0xf7 ; R20 <- 11110111B
|
---|
67 | out 0x18,R20 ; PORTB <- R20
|
---|
68 | rjmp LED_MODE1_WAIT
|
---|
69 | LED_MODE1LR:
|
---|
70 | ldi R20,0xee ; R20 <- 11101110B
|
---|
71 | out 0x18,R20 ; PORTB <- R20
|
---|
72 | LED_MODE1_WAIT:
|
---|
73 | rjmp LED_WAIT
|
---|
74 | ; -------------------------
|
---|
75 | LED_MODE2:
|
---|
76 | cpi R17,0x01
|
---|
77 | breq LED_MODE2_ON
|
---|
78 | cpi R17,0x03
|
---|
79 | breq LED_MODE2_ON
|
---|
80 | andi R17,0x07
|
---|
81 | LED_MODE2_OFF:
|
---|
82 | ldi R20,0xff ; R20 <- 11111111B
|
---|
83 | out 0x18,R20 ; PORTB <- R20
|
---|
84 | rjmp LED_MODE2_WAIT
|
---|
85 | LED_MODE2_ON:
|
---|
86 | ldi R20,0xe6 ; R20 <- 11100110B
|
---|
87 | out 0x18,R20 ; PORTB <- R20
|
---|
88 | LED_MODE2_WAIT:
|
---|
89 | rjmp LED_WAIT
|
---|
90 | ; -------------------------
|
---|
91 | LED_MODE3:
|
---|
92 | cpi R17,0x0e
|
---|
93 | brne LED_MODE3_MAIN
|
---|
94 | ldi R17,0x00
|
---|
95 | LED_MODE3_MAIN:
|
---|
96 | cpi R17,0x01
|
---|
97 | brcs LED_MODE30
|
---|
98 | breq LED_MODE31
|
---|
99 | cpi R17,0x03
|
---|
100 | brcs LED_MODE32
|
---|
101 | breq LED_MODE33
|
---|
102 | cpi R17,0x05
|
---|
103 | brcs LED_MODE34
|
---|
104 | breq LED_MODE35
|
---|
105 | cpi R17,0x07
|
---|
106 | brcs LED_MODE35
|
---|
107 | breq LED_MODE34
|
---|
108 | cpi R17,0x09
|
---|
109 | brcs LED_MODE33
|
---|
110 | breq LED_MODE32
|
---|
111 | cpi R17,0x0b
|
---|
112 | brcs LED_MODE31
|
---|
113 | breq LED_MODE30
|
---|
114 | rjmp LED_MODE35
|
---|
115 | LED_MODE30:
|
---|
116 | ldi R20,0xfe ; R20 <- 11111110B
|
---|
117 | out 0x18,R20 ; PORTB <- R20
|
---|
118 | rjmp LED_MODE3_WAIT
|
---|
119 | LED_MODE31:
|
---|
120 | ldi R20,0xf6 ; R20 <- 11110110B
|
---|
121 | out 0x18,R20 ; PORTB <- R20
|
---|
122 | rjmp LED_MODE3_WAIT
|
---|
123 | LED_MODE32:
|
---|
124 | ldi R20,0xe6 ; R20 <- 11100110B
|
---|
125 | out 0x18,R20 ; PORTB <- R20
|
---|
126 | rjmp LED_MODE3_WAIT
|
---|
127 | LED_MODE33:
|
---|
128 | ldi R20,0xe7 ; R20 <- 11100111B
|
---|
129 | out 0x18,R20 ; PORTB <- R20
|
---|
130 | rjmp LED_MODE3_WAIT
|
---|
131 | LED_MODE34:
|
---|
132 | ldi R20,0xef ; R20 <- 11101111B
|
---|
133 | out 0x18,R20 ; PORTB <- R20
|
---|
134 | rjmp LED_MODE3_WAIT
|
---|
135 | LED_MODE35:
|
---|
136 | ldi R20,0xff ; R20 <- 11111111B
|
---|
137 | out 0x18,R20 ; PORTB <- R20
|
---|
138 | LED_MODE3_WAIT:
|
---|
139 | ldi R20,0x04 ; WAIT_TIME
|
---|
140 | rjmp LED_WAIT
|
---|
141 | ; -------------------------
|
---|
142 | LED_WAIT:
|
---|
143 | ldi R20,0x01 ; WAIT_TIME
|
---|
144 | LED_WAIT0:
|
---|
145 | ldi R21,0x7f ; R21,0xff
|
---|
146 | LED_WAIT1:
|
---|
147 | ldi R22,0xff ; R22,0xff
|
---|
148 | LED_WAIT2:
|
---|
149 | nop
|
---|
150 | dec R22 ; R22--
|
---|
151 | brne LED_WAIT2 ; R22 != 0 LED_WAIT3
|
---|
152 | dec R21 ; R21--
|
---|
153 | brne LED_WAIT1 ; R21 != 0 LED_WAIT2
|
---|
154 | dec R20 ; R20--
|
---|
155 | brne LED_WAIT0 ; R20 != 0 LED_WAIT1
|
---|
156 | rjmp MAIN_LOOP
|
---|