Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Генератор.doc
Скачиваний:
4
Добавлен:
10.07.2019
Размер:
999.42 Кб
Скачать

3.3 Опис алгоритму управління

Схема алгоритму управління представлена на рисунку 3.5:

Рисунок 3.5 - Алгоритм управління

4 Розробка програми управління

Програма мікроконтролера, що керує, залежить від частоти тактового генератора.

При програмуванні мікроконтролера в конфігураційному слові встановлюють наступні значення битів: тип генератора (OSC) - RC. сторожовий таймер (WDT) - вимкнений, затримка після включення живлення (PWRTE) - дозволена.

Далі привдена програма керованого генератора прямокутного сигналу.

LIST P=16C63A, R=DEC

include "p16c63a.inc"

__CONFIG _WDT_OFF & _XT_OSC & _PWRTE_ON & _BODEN_ON

__IDLOCS H'1200'

StartByte EQU 0x20

Cnt0 EQU 0x21

Cnt1 EQU 0x22

Cnt2 EQU 0x23

TimeH0Loaded EQU 0x24

TimeH1Loaded EQU 0x25

TimeH2Loaded EQU 0x26

TimeL0Loaded EQU 0x27

TimeL1Loaded EQU 0x28

TimeL2Loaded EQU 0x29

TimeH0 EQU 0x30

TimeH1 EQU 0x31

TimeH2 EQU 0x32

TimeL0 EQU 0x33

TimeL1 EQU 0x34

TimeL2 EQU 0x35

ORG 0

Start ;Встановка початкових значень змінних і SFR

BCF PORTC,3 ; заборона видачі частоти синхронізації для CC 60

CLRF PORTB ; виключення світлодіодів і живлення картки

BSF STATUS,RP0 ;вибір другого банку пам'яті

MOVLW 0x01

MOVWF TRISA ;порт A налаштований на роботу як вихід окрім RA0 (I/O)

MOVWF TRISB ;усі виводи порту В налаштовані на роботу як виходи окрім RB0

MOVLW 0xB6

MOVWF TRISC ;RC2 = MCLR

BCF OPTION_REG,7 ;дозволен Pull up резистори на порту B (~200K)

BCF STATUS, RP0 ; із за того що в команді адреса регістра задається тільки 7 бітами, а для адресації всієї пам'яті мікросхеми треба як мінімум 8, старші біти адреси зберігаються окремо в регістрі STATUS, це бити RP0 і RP1. Бит RP1 використовується тільки в мікросхемах з об'ємом RAM більше 256 байт. Бити RP0 і RP1 визначають використовуваний банк регістрів, а номер регистра всередині поточного банку береться з коду команди. Мікросхема має 2 банки регисров. Деякі регістри, що управляють, знаходяться в другому банку.

MOVLW 0 ;0x90

MOVWF INTCON ;скидання не використовується

MOVLW 0x15 ;налагодження таймера 1

MOVWF T1CON

MOVLW 0x0B ;налагодження модуля для скидання таймера 1

MOVWF CCP1CON

MOVLW 0x64

MOVWF CCPR1L

MOVLW 0x57

MOVWF CCPR1H

; CLRF TimeCardOn ;сброс часу для вставки картки

MOVLW 0x90; 0xD0 - for parity

MOVWF RCSTA ;налагодження параметрів приймача USART. Регістр RCSTA керує настройкою приймача послідовного порту

BSF STATUS,RP0 ;вибір другого банку пам'яті

MOVLW 0x24; 0x64 - for parity

MOVWF TXSTA ;налагодження параметрів передавача USART

MOVLW 0x01 ;(115200 бод)

MOVWF SPBRG ;налагодження швидкості обміну по послідовному порту

BCF STATUS,RP0 ;после настройки SFR востанавливаем банк пам'яті

CLRF PORTA

BSF PORTC,0 ; видаємо сигнал комп'ютеру об отсутсвии картки

; BSF Flags,SlotEmpty ; слот порожній

MOVLW 0x20

MOVWF FSR

MOVLW 0xFF

MOVWF Cnt0

MOVWF Cnt1

MOVWF Cnt2

MOVWF TimeH0Loaded

MOVWF TimeH1Loaded

MOVWF TimeH2Loaded

MOVWF TimeL0Loaded

MOVWF TimeL1Loaded

MOVWF TimeL2Loaded

MOVLW 10

MOVWF TimeH0

MOVLW 10

MOVWF TimeH1

MOVLW 10

MOVWF TimeH2

MOVWF TimeL0

MOVWF TimeL1

MOVWF TimeL2

; GOTO NoCarryL

; Збільшуємо значення лічильника TIMEH на одиницю

NoCarryH BTFSC PIR1,RCIF

CALL GetRSData

MOVLW 1

ADDWF TimeH0,W

MOVWF TimeH0

BTFSS STATUS,C

GOTO NoCarryH

MOVLW 1

ADDWF TimeH1,W

MOVWF TimeH1

BTFSS STATUS,C

GOTO NoCarryH

MOVLW 1

ADDWF TimeH2,W

MOVWF TimeH2

BTFSS STATUS,C

GOTO NoCarryH

; Лічильник TIMEH переповнився, востанавлюємо його і починаємо рахувати TIMEL

MOVF TimeH0Loaded,W

MOVWF TimeH0

MOVF TimeH1Loaded,W

MOVWF TimeH1

MOVF TimeH2Loaded,W

MOVWF TimeH2

BSF PORTB,7 ; Виведення позитивного фронту імпульсу

BCF PORTB,6

; CALL SetRSData

NOP

NOP

NOP

NoCarryL BTFSC PIR1,RCIF

CALL GetRSData

MOVLW 1

ADDWF TimeL0,W

MOVWF TimeL0

BTFSS STATUS,C

GOTO NoCarryL

MOVLW 1

ADDWF TimeL1,W

MOVWF TimeL1

BTFSS STATUS,C

GOTO NoCarryL

MOVLW 1

ADDWF TimeL2,W

MOVWF TimeL2

BTFSS STATUS,C

GOTO NoCarryL

MOVF TimeL0Loaded,W

MOVWF TimeL0

MOVF TimeL1Loaded,W

MOVWF TimeL1

MOVF TimeL2Loaded,W

MOVWF TimeL2

BCF PORTB,7 ; Виведення негативного фронту імпульсу

BSF PORTB,6

; CALL SetRSData

; Якщо кількість імпульсів менше константи, рахуємо їх

BTFSS Cnt2,7

GOTO NoCarryH

NoCarryCnt BTFSC PIR1,RCIF

CALL GetRSData

MOVLW 1

ADDWF Cnt0,W

MOVWF Cnt0

BTFSS STATUS,C

GOTO NoCarryH

MOVLW 1

ADDWF Cnt1,W

MOVWF Cnt1

BTFSS STATUS,C

GOTO NoCarryH

MOVLW 1

ADDWF Cnt2,W

MOVWF Cnt2

BTFSS STATUS,C

GOTO NoCarryH

MOVLW 0xFF

MOVWF Cnt0

MOVWF Cnt1

MOVWF Cnt2

GOTO NoCarryCnt

GetRSData

BCF PIR1,RCIF ; Прийом і запис в пам'ять байта

MOVF RCREG,W

MOVWF INDF

; MOVWF TXREG

MOVLW 0x20 ; Перевірка приходу стартовго байта

SUBWF StartByte,W

BTFSS STATUS,Z

RETURN

INCF FSR,F ; Збільшення адреси з

MOVF FSR,W ; перевіркою на переповнювання

SUBLW 0x2A

BTFSS STATUS,Z

RETURN

MOVLW 0x20

MOVWF FSR

GOTO NoCarryH

; SetRSData

; BTFSS PIR1,TXIF ;очикування закінчення передачі

; RETURN

; MOVF PORTB,W

; MOVWF TXREG

; BCF PIR1,TXIF

; RETURN

END

Висновки

В процесі розробки курсового проекту, був розроблений генератор на мікроконтролері PIC16F4A і AD9850, були проведені всі етапи курсового проектування пристроїв, розроблена структурна принципова схема, чимала увага приділена вибору елементної бази та розробці програми, алгоритму управління пристроєм.

Курсовий проект виконаний згідно отриманому завданню та методичним вказівкам від викладача.

Література

1. Большие интегральные схемы запоминающих устройств: Справочник/ А.Ю. Гордонов и др.: Под ред. А.Ю.Гордонова — М: —Радио и связь,1990

2. Горбунов В.Л., Панфілов Д.И., Преснухин Д.Л. Справочное пособие по микропроцессорам и микроЭВМ, М., Высшая школа,1988

3. Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики, М., Энергоатомиздат, 1987

4. Калабеков Б.А. Цифровые устройства и микропроцессорные системы. Учебник для техникумов связи, М., Горячая линия-Телеком, 2002

5. Кривенко В.І. Методичні вказівки до виконання лабораторних робіт з дисципліни «ЕОМ і мікропроцесорні системи», К., Видавництво Європейського університету, 2003

6. Локазюк В.М. Мікропроцесори та мікроЕОМ у виробничих системах, К., Видавничий центр «Академія», 2002

7. Самохвалов К.Г., Вікторов О.В. Микропроцессоры,К., Техніка, 1989

8. Якименко Ю.І., Терещенко Т.О., Сокол Є.І., Жуйков В.Я,

Петергеря Ю.С Мікропроцесорна техніка, К.:Політтехніка, 2004

Додаток А

Перелік елементів схеми електричної принципової

Позначення

Призначення

К-ть

С1

Конденсатор керамічний

1

36 пФ

С2

Конденсатор електролітичний

1

47 мкФх16В

С3-С5

Конденсатор керамічний

3

0,1 мкФ

DD1

Мікроконтролер PIC16F84A

1

DD2

Мікросхема сінтезатор AD9850

1

HG1

Світлодіодна матриця

1

R1,R3-R6

Резистор МЛТ-0,125

5

10к±10%

R2

Резистор МЛТ-0,125

1

7,5к±10%

R7

Резистор змінний

1

10к

R8,R9

Резистор МЛТ-0,125

2

100к±10%

R10, R12

Резистор МЛТ-0,125

2

100±10%

R11

Резистор МЛТ-0,125

1

3,9к±10%

R13

Резистор МЛТ-0,125

1

27±10%

R14

Резистор МЛТ-0,125

1

180±10%

R15

Резистор МЛТ-0,125

1

20±10%

Z1

Фільтр

1

HA1

Динамік HPM14AX

1

G1

Кварцовий генератор

1

14мГц

SB1-SB16

Клавіатура

1