Разработка управляющей программы
Программа, обеспечивающая работу нашего секундомера, написана на языке Assembler и построена в виде основной программы и подпрограмм. Основная программа выполняет начальные установки режимов работы и регистров. Порты RA0-RA3 и RB0-RB6 настроены на вывод информации, порты RB0-RB6 отвечают за соответствующие сегменты индикатора. Порт RB7 считывает значение с кнопки. Порт RA4 производит вывод логической единицы, для звуковой индикации, которая осуществляется с помощью подпрограммы ZVUK, по первому нажатию кнопки. Подпрограммы INDIKATOR и KOD, необходимы для выработки сигналов, которые управляют семисегментными индикаторами. Подпрограмма DELAY формирует основную задержку на 0,1 с., задержка формируется одним внутренним и одним внешним циклами. Подпрограмма INCTIM меняем, в соответствии с отображаемыми цифрами, значения регистров temp0- temp3, для индикации. Работа программы осуществляется по циклу. Вначале производится инициализация портов, очистка рабочих регистров. Запуск программы осуществляется нажатием кнопки “Пуск/Стоп/Сброс”. Внутри цикла осуществляется проверка на переполнение секундомера (если оно произошло, то происходит обнуление всех регистров и программа ожидает нажатия кнопки “Пуск/Стоп/Сброс”). При нажатии кнопки “Пуск/Стоп/Сброс” происходит остановка подсчета секунд, и программа ожидает обнуления. Текст программы приведен ниже.
LIST P=16F628 #include <P16F628.INC>
temp0 EQU H'20' temp1 EQU H'21' temp2 EQU H'22' temp3 EQU H'23' temp4 EQU H'24' temp5 EQU H'25' temp6 EQU H'26' temp7 EQU H'27' temp8 EQU H'28' i EQU H'29' t EQU H'30' k EQU H'31' N0 EQU H'32' N1 EQU H'33'
org 0 goto Start
Start
clrf PORTA bsf STATUS,RP0 movlw B'10000000' movwf TRISB ;Настроить RB7 на ввод, RB0-RB6 на вывод clrf TRISA bcf STATUS,RP0 clrf PORTB
k1 clrf temp0 clrf temp1 clrf temp2 clrf temp3 clrf temp4 clrf temp5 clrf temp6 clrf temp7 clrf temp8 clrf i clrf t
call INDIKATOR btfss PORTB,7 goto k1
MOVLW 1 MOVWF i
MOVLW 1 MOVWF temp0
call ZVUK goto c1
k2 call DELAY
c1 call INDIKATOR btfsc PORTB,7 goto k3
c2 btfss i,0 goto c1
k7 call INCTIM goto k2
k3 btfsc PORTB,7 goto k3
movf i,0 movwf t incf i
btfss t,0 goto k1 goto c2
INCTIM movlw 0xe6 ;230 раз movwf temp4
k8 decfsz temp4,1 goto k8
;увеличение до 0,9 сек
incf temp0 movf temp0,0 ;инкрементировать на 0,1 сек sublw 9 ;проверка: если >9, то перейти btfsc STATUS,0 ;был заем - да, то clrf temp0 и на следующее увеличение goto I0 ;иначе на IO clrf temp0 ;очистка значения последнего разряда
;увеличение до 9 сек
incf temp1 movf temp1,0 sublw 9 btfsc STATUS,0 goto I1 clrf temp1
;увеличение до 59 сек
incf temp2 movf temp2,0 sublw 5 btfsc STATUS,0 goto I2 clrf temp2
;увеличение 10 мин
incf temp3 movf temp3,0 sublw 9 btfsc STATUS,0 goto I3 clrf temp3
return
I0 nop nop nop nop nop
I1 nop nop nop nop nop
I2 nop nop nop nop nop
I3 nop nop nop nop nop
return
INDIKATOR movf temp0,0 call KOD movwf PORTB bsf PORTA,0 ;общий катод nop nop nop nop bcf PORTA,0
movf temp1,0 call KOD movwf PORTB bsf PORTA,1 nop nop nop nop bcf PORTA,1
movf temp2,0 call KOD movwf PORTB bsf PORTA,2 nop nop nop nop bcf PORTA,2
movf temp3,0 call KOD movwf PORTB bsf PORTA,3 nop nop nop nop bcf PORTA,3
return
KOD addwf PCL retlw B'00111111' ;код 0 retlw B'00000110' ;код 1 retlw B'01011011' ;код 2 retlw B'01001111' ;код 3 retlw B'01100110' ;код 4 retlw B'01101101' ;код 5 retlw B'01111101' ;код 6 retlw B'00000111' ;код 7 retlw B'01111111' ;код 8 retlw B'01101111' ;код 9
ZVUK movlw 100 movwf temp4
k6 btfsc PORTB,7 goto k6
bsf PORTA,4
k5 decfsz temp4,1 goto k5
bcf PORTA,4
call DELAY call INDIKATOR return
DELAY
movlw 0x81 ;128 MOVWF k ;k=ff=255 Cycl_1 movlw 0xff movwf N0
Cycl_0 decfsz N0,1 goto Cycl_0 decfsz k,1 goto Cycl_1
return
end Заключение.
Результатом курсового проекта является разработанная принципиальная электрическая схема цифровой секундомер на базе микроконтроллера PIC16F628 в соответствии с техническими требованиями. Разработан алгоритм и написана программа на языке assembler, на основании которой работает микроконтроллер. Данное устройство очень просто в реализации. Оно содержит минимум элементом, что обеспечивает его дешевизну, и минимизацию затрат на питание. Благодаря простому управлению и индикации пользователь может легко им пользоваться. В ходе проектирования приобретен опыт работы и умение проектировать цифровые и микропроцессорные устройства. В ходе проектирования передатчика использовались программы: Microsoft Word, Microsoft Visio, Mplab IDE v7.20. Список использованной литературы 1.PIC16F62X. Однокристальные 8-разрядные FLASH CMOS с микроконтроллеры компании Microchip technology incorporated: Пер. с англ. –М.: ООО «Микрочип», 2001. – 148 c. www.microchip.ru 2. Бурак А.И., Левкович В.Н. Интегрированная среда MPLab IDE разработки программ для микроконтроллеров PICmicro фирмы Microchip: Метод. пособие к лабораторным работам по курсу «Цифровые и микропроцессорные устройства». – Мн: БГУИР, 2003. – 31 с. 3.Левкович В.Н. Цифровые и микропроцессорные устройства: Лабораторный практикум для студ. спец. I-39 01 02 «Радиоэлектронные системы», I-39 01 03 «Радиоинформатика», I-39 01 04 «Радиоэлектронная защита информации». В 2 ч. Ч. 1. –Мн: БГУИР, 2005. - 38 с.: ил 4.Левкович В.Н., Кащеев А.А. Цифровые и микропроцессорные устройства: Лабораторный практикум для студ. спец. I-39 01 02 «Радиоэлектронные системы», I-39 01 03 «Радиоинформатика», I-39 01 04 «Радиоэлектронная защита информации». В 2 ч. Ч. 2. –Мн: БГУИР, 2006. - 36 с.: ил.
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (161)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |