-
Notifications
You must be signed in to change notification settings - Fork 0
/
trab4.asm
246 lines (246 loc) · 2.91 KB
/
trab4.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
;;Angelo Monte Serrat Bonini------------------
;;Cronometro Circular---------------
#INCLUDE <P16F628A.INC>
__CONFIG _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF &
_MCLRE_ON & _XT_OSC
CBLOCK
0x20
SEGUNDOS
LED
ENDC
;-----------------------------
ORG
0x0000
CLRF
PORTA ;;CONFIGURACAO DA PORTA A
MOVLW
D'7'
MOVWF
CMCON
GOTO
INICIO
;-----------------------------
ORG
0x0004
BCF
INTCON, T0IF
MOVLW
D'131'
MOVWF
TMR0
DECFSZ LED, 0
GOTO
END_T0
ZERO:
MOVLW
MOVWF D'125'
LED
DECF
GOTO
GOTO SEGUNDOS
UM
ZERO
MOVLW
B'11111110' ;PINOS DO NUMERO 0-------------------
MOVWF
PORTB
MOVLW
D'1'
MOVWF
SEGUNDOS
GOTO
END_T0
CALL BOTAO
;-------------------------------------------------------
UM:
DECF
SEGUNDOS
GOTO
DOIS ;; DIRECIONA PARA O PROXIMO NUMERO
MOVLW
B'00111000' ; PINOS DO NUMERO 1-------------
MOVWF
PORTB
MOVLW
D'2'
MOVWF
SEGUNDOS
GOTO
END_T0
;----------------------------------------------------
DOIS:
DECF
GOTO
SEGUNDOS
TRESMOVLW
B'11011101' ; PINOS DO NUMERO 2-----------
MOVWF
PORTB
MOVLW
D'3'
MOVWF
SEGUNDOS
GOTO
END_T0
;------------------------------------------------------
TRES:
DECF
SEGUNDOS
GOTO
QUATRO
MOVLW
B'01111101' ;PINOS DO NUMERO 3--------------
MOVWF
PORTB
MOVLW
D'4'
MOVWF
SEGUNDOS
GOTO
END_T0
;------------------------------------------------------
QUATRO:
DECF
SEGUNDOS
GOTO
CINCO
MOVLW
B'00111011' ;PINOS DO NUMERO 4---------------
MOVWF
PORTB
MOVLW
D'5'
MOVWF
SEGUNDOS
GOTO
END_T0
;----------------------------------------------------
CINCO:
DECF
SEGUNDOS
GOTO
SEIS
MOVLW
B'01110111' ;PINOS DO NUMERO 5 ---------------
MOVWF
PORTB
MOVLW
D'6'
MOVWF
SEGUNDOS
GOTO
END_T0
;--------------------------------------------
SEIS:
DECF
SEGUNDOS
GOTO
SETE
MOVLW
B'11110111' ; PINOS DO NUMERO 6--------------
MOVWF
PORTB
MOVLW
D'7'
MOVWF
SEGUNDOS
GOTO
END_T0
;---------------------------------------------
SETE:
DECF
SEGUNDOS
GOTO
OITO
MOVLW
B'00111100' ;PINOS DO NUMERO 7---------------
MOVWF
PORTB
MOVLW
D'8'
MOVWF
SEGUNDOS
GOTO
END_T0
;------------------------------------------
OITO:DECF
GOTO
MOVLW
MOVWF
MOVLW
MOVWF
GOTO
SEGUNDOS
NOVE
B'11111111' ; PINOS DO NUMERO 8-------------
PORTB
D'9'
SEGUNDOS
END_T0
;---------------------------------------------
NOVE:
MOVLW
B'00111111' ; PINOS DO NUMERO 9------------
MOVWF
PORTB
MOVWF
SEGUNDOS
GOTO
ZERO
CALL BOTAO
END_T0: RETURN
;-----------------------------
;------------------------------------------------
BOTAO:
L1:
BTFSS PORTA,1
;BOTÃO PRESSIONADO
GOTO L1
L2:
BTFSC PORTA,1
;BOTÃO SOLTO
GOTO L2
L3:
BTFSS PORTA,1
;PRESSIONADO NOVAMENTE
GOTO L3
RETURN
;-------------------------------------------------------
INICIO:
MOVLW
D'0'
MOVWF
SEGUNDOS
BANKSEL PORTA
CLRF
MOVLW
MOVWF PORTA
D'7'
CMCON
BANKSEL
MOVLW
MOVWF
MOVLW TRISA ;;DEFININDO OS PINOS DIGITAIS
B'11111111'
TRISA
B'00000000'
BANKSEL TRISB ;;DEFININDO OS PINOS
CLRF
TRISB
BANKSEL OPTION_REG ;; REGISTRADORES
MOVLW
B'10000101'
MOVWF
OPTION_REG
BANKSEL INTCON
MOVLW
B'10100000'
MOVWF
INTCON
BANKSEL TMR0MOVLW
MOVWF D'131'
TMR0
MOVLW
MOVWF D'125'
LED
END