Prop Часы АНМ

F

firesky1982

Guest
Мне нужна помощь с Trisb portb.Может ли мне помочь с проблемой в коде, что я имею?

 
Код:

;--------

; MclockT3.asm - Изменения на 180 градусов кистью двигатель

; "ОК", чтобы добавить 8 LED - отображаются в таблице 2 и в других местах

; Таймер отсчета, используемые для обеспечения запуска в соответствии со всеми powerups

; Винта "механически сканированный светодиодные часы

; Боб Блик 12 февраля, 1997

; Лицензии точки зрения GNU General Public License, www.gnu.org

Нет гарантии, выраженные или подразумеваемые

; Боб Блик 18 февраля 2002

;--------

Список P = 16F84

Radix шестнадцатиричное

включать "p16F84.inc"

;--------

; Не забудьте установить время взрыва на эту страницу: ОАО = регулярные xtal, WDT = ON

; Сроки все основано на 4 МГц кристалл

;--------

; Эти приравнивает уже включают в файл?
нибудь я с нетерпением.

;--------

W equ 0

F equ 1

;--------

; Начало имеющейся оперативной памяти.

;--------

cblock 0x0c

safe_w; не темп, который используется прервать SVC

safe_s; не темп, который используется прервать SVC

period_count; увеличивается каждый прервать

period_dup; копия period_count застрахован от прерывания

period_calc; стабильный период после гистерезиса Calc.

флаги; b2 = b1 = INT минуту b4 = краю

dot_index, которая в настоящее время колонке отображаются

digit_index; цифр, которые в настоящее время отображается

часов, в формате, не шестнадцатиричное (01-12)

минут 00 до 59

bigtick_dbl; увеличивается каждый прервать

bigtick_hi

bigtick_lo

Ключи; ключевое значение

нуля; нуля значения

галочкой; используемых задержки

endc

;--------

; Начало ROM

;--------

Org 0x00; Начало кода пространства

Гото Начало

;--------

; Interrupt СЕРВИС ОБЫЧНЫЕ

;--------

Org 0x04; вектор прерывания

Intsvc movwf safe_w; спасти W

swapf STATUS, W; своп статус, W

movwf safe_s; сохранить статус (откусывание подкачки, помню)

;--------

; Сделали экономии, в настоящее время приступить к работе

; Прирост период рассчитывать

;--------

incf period_count, F

btfsc STATUS, Z; нулевой набор означает переполнение

decf period_count, F

; Четкий таймер отсчета для обеспечения запуска

clrwdt

; 234375 прерывает каждая минута.
Увеличьте bigtick каждый раз.

incf bigtick_lo, F

btfsc STATUS, Z

incf bigtick_hi, F

btfsc STATUS, Z

incfsz bigtick_dbl, F

Гото Bigtick_out

;--------

; Здесь?
bigtick имеет перенесены к нулю, и одна минута прошла.

; Перезагрузить bigtick и установили флаг на главной борьбе

;--------

movlw 0xFC; 234375 = 0x039387

movwf bigtick_dbl; 0 - 0x039387 = 0xFC6C79

movlw 0x6C

movwf bigtick_hi

movlw 0x79

movwf bigtick_lo

BSF флаги, 1; уведомить Keep_time

Bigtick_out

;--------

; Сделали рабочие, начать восстановление

;--------

swapf safe_s, W; получить статус reswap nibbles

movwf статуса; восстановить статус

swapf safe_w, F; своп nibbles в подготовке

swapf safe_w, W; для подкачки восстановления ж

РМДС INTCON, 2; четкие прервать флаг перед возвращением

retfie; возвращения из прерывания

;--------

; CHARACTER LOOKUP ТАБЛИЦА

; Игнорировать высокий разряд.
набор светодиодных = Off, четкие = светодиод на bit0 = нижний светодиод, bit6 = началу светодиод

;--------

Char_tbl

addwf PCL, F

DT 0xC1, 0xBE, 0xBE, 0xBE, 0xC1; "O"

DT 0xFF, 0xDE, 0x80, 0xFE, 0xFF; "1"

DT 0xDE, 0xBC, 0xBA, 0xB6, 0xCE; "2"

DT 0xBD, 0xBE, 0xAE, 0x96, 0xB9; "3"

DT 0xF3, 0xEB, 0xDB, 0x80, 0xFB; "4"

DT 0x8D, 0xAE, 0xAE, 0xAE, 0xB1; "5"

DT 0xE1, 0xD6, 0xB6, 0xB6, 0xF9; "6"

DT 0xBF, 0xB8, 0xB7, 0xAF, 0x9F; "7"

DT 0xC9, 0xB6, 0xB6, 0xB6, 0xC9; "8"

DT 0xCF, 0xB6, 0xB6, 0xB5, 0xC3; "9"

DT 0xFF, 0xC9, 0xC9, 0xFF, 0xFF; ":"

Char_tbl_end

;--------

; Подпрограммы ИСХОДНОЕ ЗДЕСЬ

;--------

; Важно четкое битов ОЗУ

;--------

Ram_init movlw 0x07

movwf ключи

movlw 0x12; почему часы всегда начало

movwf часов, в 12:00?

clrf минут

clrf dot_index

clrf digit_index

movlw 0xFC

movwf bigtick_dbl

retlw 0

;--------

; Неиспользованные штырям Я настройки для мероприятий

;--------

Port_init movlw 0x00, все производства, b7 = неиспользованные

BSF STATUS, RP0; выбрать память bank1

movwf TRISB; portB в качестве выходного

BCF STATUS, RP0; вернуться к bank0movlw b'00010111 '; Портирование 5 булавки.
Мне нужно 4 входа

; B0 = минут, b1 = 10mins, b2 = часы

; b3 = неиспользованный, b4 = указатель поворота

трис PORTA, на один порт

retlw 0

;--------

; Получить таймер на основе прерываний собирается

;--------

Timer_init РМДС INTCON, 2; четкие TMR0 INT флаг

BSF INTCON, 7; позволить глобального прерывания

BSF INTCON, 5; позволить TMR0 INT

clrf TMR0; четкий таймер

clrwdt; почему это нужно?
Просто сделай это ..

movlw b'11011000 '; создан таймер.
prescaler (bit3) в обход

вариант; отправить З вариант.
генерировать предупреждения.

clrf TMR0; запустить таймер

retlw 0

;--------

; Тест для индекса на основе ротации, и в период хранения period_dup

;--------

Check_index movf PORTA, W; получить состояние порта на

xorwf флаги, W; сравнить с сохраненными состояние

andlw b'00010000 '; только заинтересованы в разрядной 4

btfsc STATUS, Z; тест на краю

retlw 0; не преимущество, те же как и в прошлом

xorwf флаги, F; сохранить в следующий раз

btfsc флаги, 4; тест на падение край

retlw 0; должны были растет край

movf period_count, W; сделать рабочую копию

movwf period_dup; называется период ЮДП

clrf period_count, а новое начало для следующего поворота

clrf digit_index; установлен на первой цифрой

clrf dot_index; первая колонка

; Вычислить срок, который не смущаться и нервничать

; Срок не может быть изменено, если новый период очень разные

movf period_calc, W

subwf period_dup, W; найти разницу

btfss STATUS, C; нести флаг набор средств не занимать

Гото Calc_period_neg, должно быть и другие способы

sublw 2; допустимое отклонение = 3

btfss STATUS, C; брать не пропустить

incf period_calc; новое значение намного большее, чем известково

retlw 0

Calc_period_neg addlw 2; допустимое отклонение = 3

btfss STATUS, C; нести пропустит

decf period_calc; нести не означает, что она должна быть изменена

retlw 0

;--------

; Изменить светодиодные схемы основаны на состояние digit_index и dot_index

;--------

Display_now movlw 0x05

xorwf dot_index, W; тест на конце цифры

movlw 0xFF; образец для пустой столбец

btfsc STATUS, Z

Гото D_lookup_3, она нуждается в пустой

BCF STATUS, C; четкие нести до поворота

rlf digit_index, W; двойной индекс, так как каждый

addwf PCL, F; занимает две инструкции

D_10hr swapf часов, W

Гото D_lookup; какой большой наплыв власти

D_1hr movf часов, ж, и я считаю, если изменение

Гото D_lookup; программа борьбы с

D_colon movlw 0x0A

Гото D_lookup

D_10min swapf минут, W

Гото D_lookup

D_1min movf минут, W

Гото D_lookup

D_nothing retlw 0

D_lookup andlw b'00001111 '; сдирать привет бит

movwf нуля; Умножьте это на 5 для поиска

addwf нуля, F; таблицы базы позиции

addwf нуля, F; это обман?

addwf нуля, ж, я думаю, что нет.

addwf нуля, ж, я думаю, что это сохранения энергии!

btfss STATUS, Z; тест на нуль

Гото D_lookup_2, а не на нулевом

movf digit_index, ж, это просто тест / установка флага

movlw 0xFF; это делает пустой светодиодные схемы

btfsc STATUS, Z; испытаний, если она составляет 10 часов цифр

Гото D_lookup_3; это один ноль

D_lookup_2 movf dot_index, W; получить колонка

addwf нуля, W, добавить его в базу цифры

вызов Char_tbl; получить точку шаблон для этого столбца

D_lookup_3 movwf PORTB; отправить его на светодиоды

BCF STATUS, C; четкие нести флаг до поворота

СБР period_calc, W; периоде / 2, используемых для точки часы

addlw 0xF4; вычесть 12 для компенсации накладных расходов

Задержка вызова; ширина цифры с задержкой

incf dot_index, F; прирост на следующей колонке

movlw 0x06; 6 колонок цифр плюс пространство

xorwf dot_index, W; следующая цифра тест

btfss STATUS, Z

retlw 0; не новая цифра

clrf dot_index новые цифры времени

incf digit_index, F

retlw 0; Display_now сделать.

;--------

; С небольшой задержкой обычных

;--------

Задержка movwf галочкой

Delay_loop decfsz галочку, F

Гото Delay_loop; ж не повреждена, так что задержка может

возвращение; напомнить без перезагрузки

;--------

; Тест на клавиши, и время вызова, если необходимо отрегулировать

;--------

Check_keys movf PORTA, W; получить порт "A"

xorwf клавиш W, сравнивать с предыдущими

andlw b'00000111 ', только забота о кнопке штырям

btfsc STATUS, Z; нулевой набор = нет кнопки

retlw 0; вернуться

xorwf ключи, F; хранить значение ключа

movlw 0x64; довольно длительная задержка будет

movwf нуля; предотвращение отказов ключом

Key_delay movlw 0xFF

Задержка вызова

decfsz нуля

Гото Key_delay

btfss клавиш, 2; тест "минут" кнопки

Гото Inc_mins

btfss ключи, 1; тест "десятки" кнопки

Гото Inc_tens

btfss ключи, 0; тест "часов" кнопки

Гото Inc_hours

retlw 0; должны быть сбой.
Да, верно!

;--------

; Прирост на десять минут

;--------

Inc_tens movlw 0x0A

movwf нуля; нуля из десяти

Inc_tens_loop вызова Inc_mins

decfsz нуля

Гото Inc_tens_loop; еще минута добавлена

retlw 0

;--------

; Прирост один час

;--------

Inc_hours movlw 0x12

xorwf часов, W

btfsc STATUS, Z

Гото Inc_hours_12

movlw 0x07; эта часть получает немного небрежен

addwf часов, W

movlw 0x07

btfss STATUS, DC

movlw 1

addwf часа, F

retlw 0

Inc_hours_12 movlw 0x01

movwf часов

retlw 0

;--------

; Приращение времени основаны на флагах, 1 прислал прервать текущее

; Inc_mins петли используется также время установления регулярной

;--------

Keep_time btfss флаги, 1; протоколы флаг

retlw 0, а не на этот раз

РМДС флаги, 1; очистить минут флаг

Inc_mins movlw 0x07; начало увеличивая время

addwf минут, W; добавить 7 минут в ж

btfsc STATUS, DC; сделал добавить цифру 7 причин нести?

Гото Sixty_mins, то тест на час перемен

incf минут, в противном случае добавить 1 для реального

retlw 0; и вернуться

Sixty_mins movwf минут; спасти минут

movlw 0x60; тест на 60

xorwf минут, W; являются минут на 60?

btfss STATUS, Z

retlw 0; нет?
вернуться

clrf минут, в противном случае нулевой минут

Гото Inc_hours, а прирост часов

;--------

; Конец подпрограммы

; Программа начинается здесь

;--------

Начало вызова Ram_init; набор переменных в Ниццу ценности

вызов Port_init; набор портов направления

вызов Timer_init; запустить таймер основан прервать

;--------

; Готово Initializing запустить бесконечный цикл.

;--------

;

Круг; начало большой петли

;

;--------

; Обнаружения падения края по PORTA, 4 для определения индекса вращающиеся

; Вычислить период вращения и хранить в period_dup

; Сравнить с рабочим периодом (period_calc) и корректировать, если разными способами

;--------

вызов Check_index

;--------

; Проверить отображения состояния и изменения в случае необходимости

;--------

вызов Display_now

;--------

; Проверить клавиатуру и скорректировать время

;--------

вызов Check_keys

;--------

; Минуту проверить флаг и приращения времени, если минуты прошло

;--------

вызов Keep_time

;--------

; Господа, что в часы, держать его прокатки

;--------

Гото Круга, вы слышали о человеке, вперед!

конец

;--------

; Конец файла

;--------
 
firesky1982 писал:Код:

;--------

; MclockT3.asm - Изменения на 180 градусов кистью двигатель

; "ОК", чтобы добавить 8 LED - отображаются в таблице 2 и в других местах

; Таймер отсчета, используемые для обеспечения запуска в соответствии со всеми powerups

; Винта "механически сканированный светодиодные часы

; Боб Блик 12 февраля, 1997

; Лицензии точки зрения GNU General Public License, www.gnu.org

Нет гарантии, выраженные или подразумеваемые

; Боб Блик 18 февраля 2002

;--------

Список P = 16F84

Radix шестнадцатиричное

включать "p16F84.inc"

;--------

; Не забудьте установить время взрыва на эту страницу: ОАО = регулярные xtal, WDT = ON

; Сроки все основано на 4 МГц кристалл

;--------

; Эти приравнивает уже включают в файл?
нибудь я с нетерпением.

;--------

W equ 0

F equ 1

;--------

; Начало имеющейся оперативной памяти.

;--------

cblock 0x0c

safe_w; не темп, который используется прервать SVC

safe_s; не темп, который используется прервать SVC

period_count; увеличивается каждый прервать

period_dup; копия period_count застрахован от прерывания

period_calc; стабильный период после гистерезиса Calc.

флаги; b2 = b1 = INT минуту b4 = краю

dot_index, которая в настоящее время колонке отображаются

digit_index; цифр, которые в настоящее время отображается

часов, в формате, не шестнадцатиричное (01-12)

минут 00 до 59

bigtick_dbl; увеличивается каждый прервать

bigtick_hi

bigtick_lo

Ключи; ключевое значение

нуля; нуля значения

галочкой; используемых задержки

endc

;--------

; Начало ROM

;--------

Org 0x00; Начало кода пространства

Гото Начало

;--------

; Interrupt СЕРВИС ОБЫЧНЫЕ

;--------

Org 0x04; вектор прерывания

Intsvc movwf safe_w; спасти W

swapf STATUS, W; своп статус, W

movwf safe_s; сохранить статус (откусывание подкачки, помню)

;--------

; Сделали экономии, в настоящее время приступить к работе

; Прирост период рассчитывать

;--------

incf period_count, F

btfsc STATUS, Z; нулевой набор означает переполнение

decf period_count, F

; Четкий таймер отсчета для обеспечения запуска

clrwdt

; 234375 прерывает каждая минута.
Увеличьте bigtick каждый раз.

incf bigtick_lo, F

btfsc STATUS, Z

incf bigtick_hi, F

btfsc STATUS, Z

incfsz bigtick_dbl, F

Гото Bigtick_out

;--------

; Здесь?
bigtick имеет перенесены к нулю, и одна минута прошла.

; Перезагрузить bigtick и установили флаг на главной борьбе

;--------

movlw 0xFC; 234375 = 0x039387

movwf bigtick_dbl; 0 - 0x039387 = 0xFC6C79

movlw 0x6C

movwf bigtick_hi

movlw 0x79

movwf bigtick_lo

BSF флаги, 1; уведомить Keep_time

Bigtick_out

;--------

; Сделали рабочие, начать восстановление

;--------

swapf safe_s, W; получить статус reswap nibbles

movwf статуса; восстановить статус

swapf safe_w, F; своп nibbles в подготовке

swapf safe_w, W; для подкачки восстановления ж

РМДС INTCON, 2; четкие прервать флаг перед возвращением

retfie; возвращения из прерывания

;--------

; CHARACTER LOOKUP ТАБЛИЦА

; Игнорировать высокий разряд.
набор светодиодных = Off, четкие = светодиод на bit0 = нижний светодиод, bit6 = началу светодиод

;--------

Char_tbl

addwf PCL, F

DT 0xC1, 0xBE, 0xBE, 0xBE, 0xC1; "O"

DT 0xFF, 0xDE, 0x80, 0xFE, 0xFF; "1"

DT 0xDE, 0xBC, 0xBA, 0xB6, 0xCE; "2"

DT 0xBD, 0xBE, 0xAE, 0x96, 0xB9; "3"

DT 0xF3, 0xEB, 0xDB, 0x80, 0xFB; "4"

DT 0x8D, 0xAE, 0xAE, 0xAE, 0xB1; "5"

DT 0xE1, 0xD6, 0xB6, 0xB6, 0xF9; "6"

DT 0xBF, 0xB8, 0xB7, 0xAF, 0x9F; "7"

DT 0xC9, 0xB6, 0xB6, 0xB6, 0xC9; "8"

DT 0xCF, 0xB6, 0xB6, 0xB5, 0xC3; "9"

DT 0xFF, 0xC9, 0xC9, 0xFF, 0xFF; ":"

Char_tbl_end

;--------

; Подпрограммы ИСХОДНОЕ ЗДЕСЬ

;--------

; Важно четкое битов ОЗУ

;--------

Ram_init movlw 0x07

movwf ключи

movlw 0x12; почему часы всегда начало

movwf часов, в 12:00?

clrf минут

clrf dot_index

clrf digit_index

movlw 0xFC

movwf bigtick_dbl

retlw 0

;--------

; Неиспользованные штырям Я настройки для мероприятий

;--------

Port_init movlw 0x00, все производства, b7 = неиспользованные

BSF STATUS, RP0; выбрать память bank1

movwf TRISB; portB в качестве выходного

BCF STATUS, RP0; вернуться к bank0movlw b'00010111 '; Портирование 5 булавки.
Мне нужно 4 входа

; B0 = минут, b1 = 10mins, b2 = часы

; b3 = неиспользованный, b4 = указатель поворота

трис PORTA, на один порт

retlw 0

;--------

; Получить таймер на основе прерываний собирается

;--------

Timer_init РМДС INTCON, 2; четкие TMR0 INT флаг

BSF INTCON, 7; позволить глобального прерывания

BSF INTCON, 5; позволить TMR0 INT

clrf TMR0; четкий таймер

clrwdt; почему это нужно?
Просто сделай это ..

movlw b'11011000 '; создан таймер.
prescaler (bit3) в обход

вариант; отправить З вариант.
генерировать предупреждения.

clrf TMR0; запустить таймер

retlw 0

;--------

; Тест для индекса на основе ротации, и в период хранения period_dup

;--------

Check_index movf PORTA, W; получить состояние порта на

xorwf флаги, W; сравнить с сохраненными состояние

andlw b'00010000 '; только заинтересованы в разрядной 4

btfsc STATUS, Z; тест на краю

retlw 0; не преимущество, те же как и в прошлом

xorwf флаги, F; сохранить в следующий раз

btfsc флаги, 4; тест на падение край

retlw 0; должны были растет край

movf period_count, W; сделать рабочую копию

movwf period_dup; называется период ЮДП

clrf period_count, а новое начало для следующего поворота

clrf digit_index; установлен на первой цифрой

clrf dot_index; первая колонка

; Вычислить срок, который не смущаться и нервничать

; Срок не может быть изменено, если новый период очень разные

movf period_calc, W

subwf period_dup, W; найти разницу

btfss STATUS, C; нести флаг набор средств не занимать

Гото Calc_period_neg, должно быть и другие способы

sublw 2; допустимое отклонение = 3

btfss STATUS, C; брать не пропустить

incf period_calc; новое значение намного большее, чем известково

retlw 0

Calc_period_neg addlw 2; допустимое отклонение = 3

btfss STATUS, C; нести пропустит

decf period_calc; нести не означает, что она должна быть изменена

retlw 0

;--------

; Изменить светодиодные схемы основаны на состояние digit_index и dot_index

;--------

Display_now movlw 0x05

xorwf dot_index, W; тест на конце цифры

movlw 0xFF; образец для пустой столбец

btfsc STATUS, Z

Гото D_lookup_3, она нуждается в пустой

BCF STATUS, C; четкие нести до поворота

rlf digit_index, W; двойной индекс, так как каждый

addwf PCL, F; занимает две инструкции

D_10hr swapf часов, W

Гото D_lookup; какой большой наплыв власти

D_1hr movf часов, ж, и я считаю, если изменение

Гото D_lookup; программа борьбы с

D_colon movlw 0x0A

Гото D_lookup

D_10min swapf минут, W

Гото D_lookup

D_1min movf минут, W

Гото D_lookup

D_nothing retlw 0

D_lookup andlw b'00001111 '; сдирать привет бит

movwf нуля; Умножьте это на 5 для поиска

addwf нуля, F; таблицы базы позиции

addwf нуля, F; это обман?

addwf нуля, ж, я думаю, что нет.

addwf нуля, ж, я думаю, что это сохранения энергии!

btfss STATUS, Z; тест на нуль

Гото D_lookup_2, а не на нулевом

movf digit_index, ж, это просто тест / установка флага

movlw 0xFF; это делает пустой светодиодные схемы

btfsc STATUS, Z; испытаний, если она составляет 10 часов цифр

Гото D_lookup_3; это один ноль

D_lookup_2 movf dot_index, W; получить колонка

addwf нуля, W, добавить его в базу цифры

вызов Char_tbl; получить точку шаблон для этого столбца

D_lookup_3 movwf PORTB; отправить его на светодиоды

BCF STATUS, C; четкие нести флаг до поворота

СБР period_calc, W; периоде / 2, используемых для точки часы

addlw 0xF4; вычесть 12 для компенсации накладных расходов

Задержка вызова; ширина цифры с задержкой

incf dot_index, F; прирост на следующей колонке

movlw 0x06; 6 колонок цифр плюс пространство

xorwf dot_index, W; следующая цифра тест

btfss STATUS, Z

retlw 0; не новая цифра

clrf dot_index новые цифры времени

incf digit_index, F

retlw 0; Display_now сделать.

;--------

; С небольшой задержкой обычных

;--------

Задержка movwf галочкой

Delay_loop decfsz галочку, F

Гото Delay_loop; ж не повреждена, так что задержка может

возвращение; напомнить без перезагрузки

;--------

; Тест на клавиши, и время вызова, если необходимо отрегулировать

;--------

Check_keys movf PORTA, W; получить порт "A"

xorwf клавиш W, сравнивать с предыдущими

andlw b'00000111 ', только забота о кнопке штырям

btfsc STATUS, Z; нулевой набор = нет кнопки

retlw 0; вернуться

xorwf ключи, F; хранить значение ключа

movlw 0x64; довольно длительная задержка будет

movwf нуля; предотвращение отказов ключом

Key_delay movlw 0xFF

Задержка вызова

decfsz нуля

Гото Key_delay

btfss клавиш, 2; тест "минут" кнопки

Гото Inc_mins

btfss ключи, 1; тест "десятки" кнопки

Гото Inc_tens

btfss ключи, 0; тест "часов" кнопки

Гото Inc_hours

retlw 0; должны быть сбой.
Да, верно!

;--------

; Прирост на десять минут

;--------

Inc_tens movlw 0x0A

movwf нуля; нуля из десяти

Inc_tens_loop вызова Inc_mins

decfsz нуля

Гото Inc_tens_loop; еще минута добавлена

retlw 0

;--------

; Прирост один час

;--------

Inc_hours movlw 0x12

xorwf часов, W

btfsc STATUS, Z

Гото Inc_hours_12

movlw 0x07; эта часть получает немного небрежен

addwf часов, W

movlw 0x07

btfss STATUS, DC

movlw 1

addwf часа, F

retlw 0

Inc_hours_12 movlw 0x01

movwf часов

retlw 0

;--------

; Приращение времени основаны на флагах, 1 прислал прервать текущее

; Inc_mins петли используется также время установления регулярной

;--------

Keep_time btfss флаги, 1; протоколы флаг

retlw 0, а не на этот раз

РМДС флаги, 1; очистить минут флаг

Inc_mins movlw 0x07; начало увеличивая время

addwf минут, W; добавить 7 минут в ж

btfsc STATUS, DC; сделал добавить цифру 7 причин нести?

Гото Sixty_mins, то тест на час перемен

incf минут, в противном случае добавить 1 для реального

retlw 0; и вернуться

Sixty_mins movwf минут; спасти минут

movlw 0x60; тест на 60

xorwf минут, W; являются минут на 60?

btfss STATUS, Z

retlw 0; нет?
вернуться

clrf минут, в противном случае нулевой минут

Гото Inc_hours, а прирост часов

;--------

; Конец подпрограммы

; Программа начинается здесь

;--------

Начало вызова Ram_init; набор переменных в Ниццу ценности

вызов Port_init; набор портов направления

вызов Timer_init; запустить таймер основан прервать

;--------

; Готово Initializing запустить бесконечный цикл.

;--------

;

Круг; начало большой петли

;

;--------

; Обнаружения падения края по PORTA, 4 для определения индекса вращающиеся

; Вычислить период вращения и хранить в period_dup

; Сравнить с рабочим периодом (period_calc) и корректировать, если разными способами

;--------

вызов Check_index

;--------

; Проверить отображения состояния и изменения в случае необходимости

;--------

вызов Display_now

;--------

; Проверить клавиатуру и скорректировать время

;--------

вызов Check_keys

;--------

; Минуту проверить флаг и приращения времени, если минуты прошло

;--------

вызов Keep_time

;--------

; Господа, что в часы, держать его прокатки

;--------

Гото Круга, вы слышали о человеке, вперед!

конец

;--------

; Конец файла

;--------
 

Welcome to EDABoard.com

Sponsor

Back
Top