691_Mikushin_A.V._Programmirovanie_mikroprotsessorov_
.pdf111 |
6F |
o |
Строчная латинская буква o |
|
|
|
|
112 |
70 |
p |
Строчная латинская буква p |
|
|
|
|
113 |
71 |
q |
Строчная латинская буква q |
|
|
|
|
114 |
72 |
r |
Строчная латинская буква r |
|
|
|
|
115 |
73 |
s |
Строчная латинская буква s |
|
|
|
|
116 |
74 |
t |
Строчная латинская буква t |
|
|
|
|
117 |
75 |
u |
Строчная латинская буква u |
|
|
|
|
118 |
76 |
v |
Строчная латинская буква v |
|
|
|
|
119 |
77 |
w |
Строчная латинская буква w |
|
|
|
|
120 |
78 |
x |
Строчная латинская буква x |
|
|
|
|
121 |
79 |
y |
Строчная латинская буква y |
|
|
|
|
122 |
7A |
z |
Строчная латинская буква z |
|
|
|
|
123 |
7B |
{ |
Открывающая фигурная скобка |
|
|
|
|
124 |
7С |
| |
Вертикальная черта |
|
|
|
|
125 |
7D |
} |
Закрывающая фигурная скобка |
|
|
|
|
126 |
7E |
~ |
Тильда |
|
|
|
|
127 |
7F |
⌂ |
|
|
|
|
|
128 |
80 |
А |
Прописная русская буква А |
|
|
|
|
129 |
81 |
Б |
Прописная русская буква Б |
|
|
|
|
130 |
82 |
В |
Прописная русская буква В |
|
|
|
|
131 |
83 |
Г |
Прописная русская буква Г |
|
|
|
|
132 |
84 |
Д |
Прописная русская буква Д |
|
|
|
|
133 |
85 |
Е |
Прописная русская буква Е |
|
|
|
|
134 |
86 |
Ж |
Прописная русская буква Ж |
|
|
|
|
135 |
87 |
З |
Прописная русская буква З |
|
|
|
|
136 |
88 |
И |
Прописная русская буква И |
|
|
|
|
137 |
89 |
Й |
Прописная русская буква Й |
|
|
|
|
138 |
8A |
К |
Прописная русская буква К |
|
|
|
|
139 |
8B |
Л |
Прописная русская буква Л |
|
|
|
|
140 |
8C |
М |
Прописная русская буква М |
|
|
|
|
141 |
8D |
Н |
Прописная русская буква Н |
|
|
|
|
142 |
8E |
О |
Прописная русская буква О |
|
|
|
|
141
143 |
8F |
П |
Прописная русская буква П |
|
|
|
|
144 |
90 |
Р |
Прописная русская буква Р |
|
|
|
|
145 |
91 |
С |
Прописная русская буква С |
|
|
|
|
146 |
92 |
Т |
Прописная русская буква Т |
|
|
|
|
147 |
93 |
У |
Прописная русская буква У |
|
|
|
|
148 |
94 |
Ф |
Прописная русская буква Ф |
|
|
|
|
149 |
95 |
Х |
Прописная русская буква Х |
|
|
|
|
150 |
96 |
Ц |
Прописная русская буква Ц |
|
|
|
|
151 |
97 |
Ч |
Прописная русская буква Ч |
|
|
|
|
152 |
98 |
Ш |
Прописная русская буква Ш |
|
|
|
|
153 |
99 |
Щ |
Прописная русская буква Щ |
|
|
|
|
154 |
9A |
Ъ |
Прописная русская буква Ъ |
|
|
|
|
155 |
9B |
Ы |
Прописная русская буква Ы |
|
|
|
|
156 |
9C |
Ь |
Прописная русская буква Ь |
|
|
|
|
157 |
9D |
Э |
Прописная русская буква Э |
|
|
|
|
158 |
9E |
Ю |
Прописная русская буква Ю |
|
|
|
|
159 |
9F |
Я |
Прописная русская буква Я |
|
|
|
|
160 |
A0 |
а |
Строчная русская буква а |
|
|
|
|
161 |
A1 |
б |
Строчная русская буква б |
|
|
|
|
162 |
A2 |
в |
Строчная русская буква в |
|
|
|
|
163 |
A3 |
г |
Строчная русская буква г |
|
|
|
|
164 |
A4 |
д |
Строчная русская буква д |
|
|
|
|
165 |
A5 |
е |
Строчная русская буква е |
|
|
|
|
166 |
A6 |
ж |
Строчная русская буква ж |
|
|
|
|
167 |
A7 |
з |
Строчная русская буква з |
|
|
|
|
168 |
A8 |
и |
Строчная русская буква и |
|
|
|
|
169 |
A9 |
й |
Строчная русская буква й |
|
|
|
|
170 |
AA |
к |
Строчная русская буква к |
|
|
|
|
171 |
AB |
л |
Строчная русская буква л |
|
|
|
|
172 |
AC |
м |
Строчная русская буква м |
|
|
|
|
173 |
AD |
н |
Строчная русская буква н |
|
|
|
|
174 |
AE |
о |
Строчная русская буква о |
|
|
|
|
142
175 |
AF |
п |
Строчная русская буква п |
|
|
|
|
176 |
B0 |
░ |
|
|
|
|
|
177 |
B1 |
▒ |
|
|
|
|
|
178 |
B2 |
▓ |
|
|
|
|
|
179 |
B3 |
│ |
Символ псевдографики |
|
|
|
|
180 |
B4 |
┤ |
Символ псевдографики |
|
|
|
|
181 |
B5 |
╡ |
Символ псевдографики |
|
|
|
|
182 |
B6 |
╢ |
Символ псевдографики |
|
|
|
|
183 |
B7 |
╖ |
Символ псевдографики |
|
|
|
|
184 |
B8 |
╕ |
Символ псевдографики |
|
|
|
|
185 |
B9 |
╣ |
Символ псевдографики |
|
|
|
|
186 |
BA |
║ |
Символ псевдографики |
|
|
|
|
187 |
BB |
╗ |
Символ псевдографики |
|
|
|
|
188 |
BC |
╝ |
Символ псевдографики |
|
|
|
|
189 |
BD |
╜ |
Символ псевдографики |
|
|
|
|
190 |
BE |
╛ |
Символ псевдографики |
|
|
|
|
191 |
BF |
┐ |
Символ псевдографики |
|
|
|
|
192 |
C0 |
└ |
Символ псевдографики |
|
|
|
|
193 |
C1 |
┴ |
Символ псевдографики |
|
|
|
|
194 |
C2 |
┬ |
Символ псевдографики |
|
|
|
|
195 |
C3 |
├ |
Символ псевдографики |
|
|
|
|
196 |
C4 |
─ |
Символ псевдографики |
|
|
|
|
197 |
C5 |
┼ |
Символ псевдографики |
|
|
|
|
198 |
C6 |
╞ |
Символ псевдографики |
|
|
|
|
199 |
C7 |
╟ |
Символ псевдографики |
|
|
|
|
200 |
C8 |
╚ |
Символ псевдографики |
|
|
|
|
201 |
C9 |
╔ |
Символ псевдографики |
|
|
|
|
202 |
CA |
╩ |
Символ псевдографики |
|
|
|
|
203 |
CB |
╦ |
Символ псевдографики |
|
|
|
|
204 |
CC |
╠ |
Символ псевдографики |
|
|
|
|
205 |
CD |
═ |
Символ псевдографики |
|
|
|
|
206 |
CE |
╬ |
Символ псевдографики |
|
|
|
|
143
207 |
CF |
╧ |
Символ псевдографики |
|
|
|
|
208 |
D0 |
╨ |
Символ псевдографики |
|
|
|
|
209 |
D1 |
╤ |
Символ псевдографики |
|
|
|
|
210 |
D2 |
╥ |
Символ псевдографики |
|
|
|
|
211 |
D3 |
╙ |
Символ псевдографики |
|
|
|
|
212 |
D4 |
╘ |
Символ псевдографики |
|
|
|
|
213 |
D5 |
╒ |
Символ псевдографики |
|
|
|
|
214 |
D6 |
╓ |
Символ псевдографики |
|
|
|
|
215 |
D7 |
╫ |
Символ псевдографики |
|
|
|
|
216 |
D8 |
╪ |
Символ псевдографики |
|
|
|
|
217 |
D9 |
┘ |
Символ псевдографики |
|
|
|
|
218 |
DA |
┌ |
Символ псевдографики |
|
|
|
|
219 |
DB |
█ |
|
|
|
|
|
220 |
DC |
▄ |
|
|
|
|
|
221 |
DD |
▌ |
|
|
|
|
|
222 |
DE |
▐ |
|
|
|
|
|
223 |
DF |
▀ |
|
|
|
|
|
224 |
E0 |
р |
Строчная русская буква р |
|
|
|
|
225 |
E1 |
с |
Строчная русская буква с |
|
|
|
|
226 |
E2 |
т |
Строчная русская буква т |
|
|
|
|
227 |
E3 |
у |
Строчная русская буква у |
|
|
|
|
228 |
E4 |
ф |
Строчная русская буква ф |
|
|
|
|
229 |
E5 |
х |
Строчная русская буква х |
|
|
|
|
230 |
E6 |
ц |
Строчная русская буква ц |
|
|
|
|
231 |
E7 |
ч |
Строчная русская буква ч |
|
|
|
|
232 |
E8 |
ш |
Строчная русская буква ш |
|
|
|
|
233 |
E9 |
щ |
Строчная русская буква щ |
|
|
|
|
234 |
EA |
ъ |
Строчная русская буква ъ |
|
|
|
|
235 |
EB |
ы |
Строчная русская буква ы |
|
|
|
|
236 |
EC |
ь |
Строчная русская буква ь |
|
|
|
|
237 |
ED |
э |
Строчная русская буква э |
|
|
|
|
238 |
EE |
ю |
Строчная русская буква ю |
|
|
|
|
144
239 |
EF |
я |
Строчная русская буква я |
|
|
|
|
240 |
F0 |
Ё |
Прописная русская буква Ё |
|
|
|
|
241 |
F1 |
ё |
Строчная русская буква ё |
|
|
|
|
242 |
F2 |
Є |
Прописная русская буква Є |
|
|
|
|
243 |
F3 |
є |
Строчная русская буква є |
|
|
|
|
244 |
F4 |
Ї |
|
|
|
|
|
245 |
F5 |
Ї |
|
|
|
|
|
246 |
F6 |
Ў |
|
|
|
|
|
247 |
F7 |
ў |
|
|
|
|
|
248 |
F8 |
° |
Знак градуса |
|
|
|
|
249 |
F9 |
∙ |
Знак умножения (точка) |
|
|
|
|
250 |
FA |
· |
|
|
|
|
|
251 |
FB |
√ |
Радикал (взятие корня) |
|
|
|
|
252 |
FC |
№ |
Знак номера |
|
|
|
|
253 |
FD |
¤ |
Знак денежной единицы (рубль) |
|
|
|
|
254 |
FE |
■ |
|
|
|
|
|
255 |
FF |
|
|
|
|
|
|
145
П.2. Программа часов
Листинг модуля main.c
C51 COMPILER V7.01 MAIN |
08/04/2006 10:30:35 PAGE 1 |
C51 COMPILER V7.01, COMPILATION OF MODULE MAIN OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c ROM(SMALL) OPTIMIZE(9,SIZE) BROWSE DEBUG - OBJECTEXTEND CODE SYMBOLS PRINT(.\lst\main.lst) PAGEWIDTH(92) TABS(2)
OBJECT(.\obj\main.obj -)
stmt level |
source |
1#include<reg51.h>
2#include "Global.h"
3#include "clock.h"
4#include "Indic.h"
5#include "CorrVrem.h"
7void Timer0(void) interrupt 1 //ВЕКТОР ПРЕРЫВАНИЯ ТАЙМЕРА T0
8 |
|
{TH0=-50000/256; |
//Загрузить старший байт таймера |
9 |
1 |
TL0=-50000; |
//Загрузить младший байт таймера |
10 |
1 |
} |
|
11 |
|
|
|
12/********************************************************************
13Подпрограмма настройки таймера T0 на 50мс режим работы
14********************************************************************/
15void Timer0_Init(void)
16 |
|
{TMOD=(0<<7)| |
//Запретить управление таймером T1 от ножки INT1 |
17 |
1 |
(0<<6)| |
//Синхронизировать таймер T1 от внутреннего генератора |
18 |
1 |
(0<<4)| |
//Перевести таймер T1 в тринадцатиразрядный режим работы |
19 |
1 |
(0<<3)| |
//Запретить управление таймером T0 от ножки INT0 |
20 |
1 |
(0<<2)| |
//Синхронизировать таймер T0 от внутреннего генератора |
21 |
1 |
1; |
//перевести таймер T0 в первый режим работы |
221
231 //Настройка таймера на генерацию 50-ти миллисекундного интервала времени
24 |
1 |
|
TH0=-50000/256; |
//Загрузить старший байт таймера |
25 |
1 |
|
TL0=-50000; |
//Загрузить младший байт таймера |
26 |
1 |
|
|
|
27 |
1 |
|
IE |=(1<<7)| |
//Разрешить прерывания в микроконтроллере |
28 |
1 |
|
(1<<1); |
//Разрешить прерывания конкретно от таймера T0 |
29 |
1 |
|
TR0=1; |
//включить таймер T0 |
30 |
1 |
} |
|
//и вернуться в основную программу |
31 |
|
|
|
|
32 |
|
|
|
|
33/********************************************************************
34ВЫПОЛНЕНИЕ ПРОГРАММЫ НАЧИНАЕТСЯ ОТСЮДА
35********************************************************************/
36void main(void)
37{//-------------ИНИЦИАЛИЗАЦИЯ МИКРОКОНТРОЛЛЕРА-------------------------
381 Timer0_Init(); //Настроить таймер T0 на прерывания с периодом 50мс
391 //-------------ОСНОВНАЯ ПРОГРАММА МИКРОКОНТРОЛЛЕРА--------------------
40 |
1 |
while(1) |
//Бесконечный цикл |
41 |
1 |
{ |
|
42 |
2 |
OprosKnop(); |
//Опросить кнопки |
43 |
2 |
|
|
44 |
2 |
Indic(); |
//Произвести индикацию состояния часов на светодиодных |
45 |
2 |
|
//индикаторах |
46 |
2 |
|
|
47 |
2 |
CorrClock(); |
//Выполнить команду коррекции времени |
482
492 if(--Delit==0) //Если прошла одна секунда, то
50 |
2 |
{Delit=20; |
//настроить делитель на коэффициент деления 20 |
51 |
3 |
Clock(); |
//и вызвать подпрограмму счётчика секунд. |
52 |
3 |
} |
|
146
53 |
2 |
PCON=1; |
//Перевести микроконтроллер в пониженный режим |
|
C51 COMPILER V7.01 |
MAIN |
08/04/2006 10:30:35 PAGE 2 |
||
54 |
2 |
} |
|
//потребления тока и подождать переполнения таймера |
55 |
1 |
} |
|
|
56 |
|
|
|
|
C51 COMPILER V7.01 |
MAIN |
08/04/2006 10:30:35 PAGE 3 |
||
ASSEMBLY LISTING OF |
GENERATED OBJECT CODE |
; FUNCTION Timer0 (BEGIN)
|
|
|
; SOURCE LINE # 7 |
|
|
|
; SOURCE LINE # 8 |
0000 |
758C3D |
MOV |
TH0,#03DH |
|
|
|
; SOURCE LINE # 9 |
0003 |
758AB0 |
MOV |
TL0,#0B0H |
|
|
|
; SOURCE LINE # 10 |
0006 |
32 |
RETI |
|
|
|
; FUNCTION Timer0 (END) |
|
|
|
; FUNCTION Timer0_Init (BEGIN) |
|
|
|
|
; SOURCE LINE # 15 |
|
|
|
; SOURCE LINE # 16 |
0000 |
758901 |
MOV |
TMOD,#01H |
|
|
|
; SOURCE LINE # 24 |
0003 |
758C3D |
MOV |
TH0,#03DH |
|
|
|
; SOURCE LINE # 25 |
0006 |
758AB0 |
MOV |
TL0,#0B0H |
|
|
|
; SOURCE LINE # 27 |
0009 |
43A882 |
ORL |
IE,#082H |
|
|
|
; SOURCE LINE # 29 |
000C |
D28C |
SETB |
TR0 |
|
|
|
; SOURCE LINE # 30 |
000E |
22 |
RET |
|
;FUNCTION Timer0_Init (END)
;FUNCTION main (BEGIN)
|
|
|
|
; SOURCE LINE # 36 |
|
|
|
|
; SOURCE LINE # 37 |
|
|
|
|
; SOURCE LINE # 38 |
0000 |
1100 |
R |
ACALL |
Timer0_Init |
0002 |
|
?C0003: |
|
|
|
|
|
|
; SOURCE LINE # 40 |
|
|
|
|
; SOURCE LINE # 41 |
|
|
|
|
; SOURCE LINE # 42 |
0002 |
1100 |
E |
ACALL |
OprosKnop |
|
|
|
|
; SOURCE LINE # 44 |
0004 |
1100 |
E |
ACALL |
Indic |
|
|
|
|
; SOURCE LINE # 47 |
0006 |
1100 |
E |
ACALL |
CorrClock |
|
|
|
|
; SOURCE LINE # 49 |
0008 |
D50005 |
E |
DJNZ |
Delit,?C0005 |
|
|
|
|
; SOURCE LINE # 50 |
000B |
750014 |
E |
MOV |
Delit,#014H |
|
|
|
|
; SOURCE LINE # 51 |
000E |
1100 |
E |
ACALL |
Clock |
|
|
|
|
; SOURCE LINE # 52 |
0010 |
|
?C0005: |
|
|
|
|
|
|
; SOURCE LINE # 53 |
0010 |
758701 |
|
MOV |
PCON,#01H |
|
|
|
|
; SOURCE LINE # 54 |
0013 |
80ED |
|
SJMP |
?C0003 |
; FUNCTION main (END)
147
C51 COMPILER V7.01 |
MAIN |
|
|
|
08/04/2006 10:30:35 PAGE 4 |
||
NAME |
|
|
CLASS |
MSPACE |
TYPE |
OFFSET |
SIZE |
==== |
|
|
===== |
====== |
==== |
====== |
==== |
CorrClock. . . . . . |
. |
. . . . |
. . . . EXTERN |
CODE |
PROC |
----- |
----- |
IE . . . . . . . . . |
. |
. . . . . |
. . . SFR |
DATA |
U_CHAR |
00A8H |
1 |
main . . . . . . . . |
. |
. . . . . |
. . . PUBLIC |
CODE |
PROC |
0000H |
----- |
Timer0_Init. . . . . |
. |
. . . . . |
. . . PUBLIC |
CODE |
PROC |
0000H |
----- |
OprosKnop. . . . . . |
. |
. . . . . |
. . . EXTERN |
CODE |
PROC |
----- |
----- |
PCON . . . . . . . . |
. |
. . . . . |
. . . SFR |
DATA |
U_CHAR |
0087H |
1 |
Timer0 . . . . . . . |
. |
. . . . . |
. . . PUBLIC |
CODE |
PROC |
0000H |
----- |
TMOD . . . . . . . . |
. |
. . . . . |
. . . SFR |
DATA |
U_CHAR |
0089H |
1 |
TH0. . . . . . . . . |
. |
. . . . . |
. . . SFR |
DATA |
U_CHAR |
008CH |
1 |
TL0. . . . . . . . . |
. |
. . . . . |
. . . SFR |
DATA |
U_CHAR |
008AH |
1 |
TR0. . . . . . . . . |
. |
. . . . . |
. . . ABSBIT |
----- |
BIT |
008CH |
1 |
Indic. . . . . . . . |
. |
. . . . . |
. . . EXTERN |
CODE |
PROC |
----- |
----- |
Clock. . . . . . . . |
. |
. . . . . |
. . . EXTERN |
CODE |
PROC |
----- |
----- |
Delit. . . . . . . . |
. |
. . . . . |
. . . EXTERN |
DATA |
U_CHAR |
----- |
1 |
MODULE INFORMATION: |
|
STATIC OVERLAYABLE |
|
|
|
|
|
CODE SIZE |
= |
43 |
---- |
|
|
|
|
CONSTANT SIZE |
= |
---- |
---- |
|
|
|
|
XDATA SIZE |
= |
---- |
---- |
|
|
|
|
PDATA SIZE |
= |
---- |
---- |
|
|
|
|
DATA SIZE |
= |
---- |
---- |
|
|
|
|
IDATA SIZE |
= |
---- |
---- |
|
|
|
|
BIT SIZE |
= |
---- |
---- |
|
|
|
|
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
Листинг модуля Global
C51 COMPILER V7.01 GLOBAL 08/04/2006 10:45:16 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE GLOBAL
OBJECT MODULE PLACED IN .\obj\Global.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Global.c ROM(SMALL) OPTIMIZE(9,SIZE) BROWSE DEB
-UG OBJECTEXTEND CODE SYMBOLS PRINT(.\lst\Global.lst) PAGEWIDTH(92) TABS(2)
OBJECT(.\obj\Glob
-al.obj)
stmt level |
source |
1unsigned char Delit=20;//8-ми разрядная ячейка памяти для делителя частоты 1с
2unsigned char SEC=60; //Переменная счётчика секунд
3 |
unsigned char MIN=0; |
//Переменная |
счётчика минут |
4 |
unsigned char Chas=0; |
//Переменная счётчика часов |
|
5 |
|
|
|
6 |
unsigned char SostKn=0;//Переменная состояния кнопок |
||
7 |
|
|
|
C51 COMPILER V7.01 |
GLOBAL |
|
|
08/04/2006 10:45:16 PAGE 2 |
|
ASSEMBLY LISTING OF |
GENERATED OBJECT CODE |
|
|
|
|
C51 COMPILER V7.01 |
GLOBAL |
|
|
08/04/2006 10:45:16 PAGE 3 |
|
NAME |
CLASS |
MSPACE |
TYPE |
OFFSET |
SIZE |
==== |
===== |
====== |
==== |
====== |
==== |
Chas . . . . . . . . . . . . . . . . . PUBLIC |
DATA |
U_CHAR |
0000H |
1 |
148
SEC. . . . . . . . . |
. |
. . . . |
. . . . PUBLIC DATA U_CHAR |
0001H |
1 |
MIN. . . . . . . . . |
. |
. . . . . |
. . . PUBLIC DATA U_CHAR |
0002H |
1 |
SostKn . . . . . . . |
. |
. . . . . |
. . . PUBLIC DATA U_CHAR |
0003H |
1 |
Delit. . . . . . . . |
. |
. . . . . |
. . . PUBLIC DATA U_CHAR |
0004H |
1 |
MODULE INFORMATION: |
|
STATIC OVERLAYABLE |
|
|
|
CODE SIZE |
= |
---- |
---- |
|
|
CONSTANT SIZE |
= |
---- |
---- |
|
|
XDATA SIZE |
= |
---- |
---- |
|
|
PDATA SIZE |
= |
---- |
---- |
|
|
DATA SIZE |
= |
5 |
---- |
|
|
IDATA SIZE |
= |
---- |
---- |
|
|
BIT SIZE |
= |
---- |
---- |
|
|
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
Заголовочный файл модуля Global.h
extern unsigned char Delit; extern unsigned char SEC; extern unsigned char MIN; extern unsigned char Chas;
extern unsigned char SostKn;
Листинг модуля clock
//8-ми разрядная ячейка памяти для делителя частоты (1с) //Переменная счётчика секунд //Переменная счётчика минут //Переменная счётчика часов
//Переменная состояния кнопок
C51 COMPILER V7.01 CLOCK |
08/04/2006 10:30:35 PAGE 1 |
C51 COMPILER V7.01, COMPILATION OF MODULE CLOCK OBJECT MODULE PLACED IN .\obj\clock.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE clock.c ROM(SMALL) OPTIMIZE(9,SIZE) BROWSE DEBU -G OBJECTEXTEND CODE SYMBOLS PRINT(.\lst\clock.lst) PAGEWIDTH(92) TABS(2)
OBJECT(.\obj\clock.
-obj)
stmt level |
source |
1 #include "Global.h"
2
3void IncMin(void)
4{if(++MIN==60) //Если один час ещё не прошёл, то
5 |
1 |
MIN=0; |
6 |
1 |
} |
7 |
|
|
8void IncChas(void)
9{if(++Chas==24) //Если один час ещё не прошёл, то
10 |
1 |
Chas=0; |
11 |
1 |
} |
12 |
|
|
13/********************************************************************
14Подпрограмма реализации часов
15********************************************************************/
16void Clock(void)
17{if(--SEC!=0) //Если одна минута ещё не прошла, то
18 |
1 |
return; |
//вернуться из подпрограммы в основной цикл |
19 |
1 |
SEC=60; |
//настроить счётчик секунд на коэффициент деления 60 |
20 |
1 |
IncMin(); |
//Увеличить показания счетчика минут |
21 |
1 |
if(MIN!=0) |
//Если один час ещё не прошёл, то |
22 |
1 |
return; |
//вернуться из подпрограммы в основной цикл |
23 |
1 |
IncChas(); |
//Увеличить показания счетчика часов |
24 |
1 |
} |
|
25 |
|
|
|
149
C51 COMPILER V7.01 CLOCK |
08/04/2006 10:30:35 PAGE 2 |
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION IncMin (BEGIN)
|
|
|
|
; SOURCE LINE # 3 |
|
|
|
|
; SOURCE LINE # 4 |
0000 |
0500 |
E |
INC |
MIN |
0002 |
E500 |
E |
MOV |
A,MIN |
0004 |
B43C03 |
|
CJNE |
A,#03CH,?C0002 |
|
|
|
|
; SOURCE LINE # 5 |
0007 |
E4 |
|
CLR |
A |
0008 |
F500 |
E |
MOV |
MIN,A |
|
|
|
|
; SOURCE LINE # 6 |
000A |
|
?C0002: |
|
|
000A |
22 |
|
RET |
|
;FUNCTION IncMin (END)
;FUNCTION IncChas (BEGIN)
|
|
|
|
; SOURCE LINE # 8 |
|
|
|
|
; SOURCE LINE # 9 |
0000 |
0500 |
E |
INC |
Chas |
0002 |
E500 |
E |
MOV |
A,Chas |
0004 |
B41803 |
|
CJNE |
A,#018H,?C0004 |
|
|
|
|
; SOURCE LINE # 10 |
0007 |
E4 |
|
CLR |
A |
0008 |
F500 |
E |
MOV |
Chas,A |
|
|
|
|
; SOURCE LINE # 11 |
000A |
|
?C0004: |
|
|
000A |
22 |
|
RET |
|
;FUNCTION IncChas (END)
;FUNCTION Clock (BEGIN)
;SOURCE LINE # 16
;SOURCE LINE # 17
0000 |
D5000B |
E |
|
DJNZ |
SEC,?C0006 |
|
|
|
|
0003 |
|
?C0005: |
|
|
|
|
|
|
|
|
|
|
|
|
; SOURCE LINE # 19 |
|
|
||
0003 |
75003C |
E |
|
MOV |
SEC,#03CH |
|
|
|
|
|
|
|
|
|
; SOURCE LINE # 20 |
|
|
||
0006 |
1100 |
R |
|
ACALL |
IncMin |
|
|
|
|
|
|
|
|
|
; SOURCE LINE # 21 |
|
|
||
0008 |
E500 |
E |
|
MOV |
A,MIN |
|
|
|
|
000A |
7002 |
|
|
JNZ |
?C0006 |
|
|
|
|
000C |
|
?C0007: |
|
|
|
|
|
|
|
|
|
|
|
|
; SOURCE LINE # 23 |
|
|
||
000C |
1100 |
R |
|
ACALL |
IncChas |
|
|
|
|
|
|
|
|
|
; SOURCE LINE # 24 |
|
|
||
000E |
|
?C0006: |
|
|
|
|
|
|
|
000E |
22 |
|
|
RET |
|
|
|
|
|
|
|
; FUNCTION Clock (END) |
|
|
|
|
|||
C51 COMPILER V7.01 |
CLOCK |
|
|
|
08/04/2006 10:30:35 PAGE 3 |
||||
NAME |
|
|
|
|
CLASS |
MSPACE |
TYPE |
OFFSET |
SIZE |
==== |
|
|
|
|
===== |
====== |
==== |
====== |
==== |
Chas |
. . . . |
. . . . |
. |
. . . . |
. . . . EXTERN DATA U_CHAR |
----- |
1 |
||
IncChas. . . |
. . . . |
. |
. . . . |
. . . . PUBLIC |
CODE |
PROC |
0000H |
----- |
|
IncMin . . . |
. . . . |
. |
. . . . |
. . . . PUBLIC |
CODE |
PROC |
0000H |
----- |
|
SEC. |
. . . . |
. . . . |
. |
. . . . |
. . . . EXTERN DATA U_CHAR |
----- |
1 |
||
MIN. |
. . . . |
. . . . |
. |
. . . . |
. . . . EXTERN DATA U_CHAR |
----- |
1 |
||
Clock. . . . |
. . . . |
. |
. . . . |
. . . . PUBLIC |
CODE |
PROC |
0000H |
----- |
|
MODULE INFORMATION: |
|
STATIC OVERLAYABLE |
|
|
|
|
|||
CODE SIZE |
|
= |
37 |
---- |
|
|
|
|
|
CONSTANT SIZE |
= |
---- |
---- |
|
|
|
|
||
XDATA SIZE |
= |
---- |
---- |
|
|
|
|
150