Смекни!
smekni.com

Электронный секундомер (стр. 3 из 3)

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 с.: ил.