Мегаобучалка Главная | О нас | Обратная связь


Разработка управляющей программы



2020-02-03 161 Обсуждений (0)
Разработка управляющей программы 0.00 из 5.00 0 оценок




 

Программа, обеспечивающая работу нашего секундомера, написана на языке 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 с.: ил.




2020-02-03 161 Обсуждений (0)
Разработка управляющей программы 0.00 из 5.00 0 оценок









Обсуждение в статье: Разработка управляющей программы

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (161)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)