Так же были получены навыки синтеза управляющих автоматов и сопряжения различных устройств с микропроцессором, изучен язык программирования низкого уровня – ассемблер для микроконтроллера PIC16C84.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Брускин В.Я. Схемотехника автоответчиков. – М.: Наука и техника, 1999. – 176с.
2. Дубровский Е.П. Справочник молодого телефониста. – М.: Высшая школа, 1992. – 224с.
3. Изделия электронной техники. Цифровые микросхемы. Микросхемы памяти. Микросхемы ЦАП и АЦП: Справочник/ О.Н. Лебедев, А.И. Мирошниченко, В.А. Телец. – М.: Радио и связь, 1994. - 248c.
4. Микроконтроллеры PIC16C8X. Архитектура, программирование и применение: Учеб. пособие/ С.И. Малафеев, А.А. Малафеева, В.С. Мамай и др.; Владим. гос. ун-т; Владимир, 1999. 180с.
5. Справочник по интегральным микросхемам/ Б.В. Тарабрин, С.В. Якубовский, Н.А. Барканов и др.; Под ред. Б.В. Тарабрина. – 2-е изд., перераб. и доп. – М.: Энергия, 1981. – 816с.
Приложение 3
Программа для работы микроконтроллера, управляющего записью сообщений
;****************************************
; описание используемых обозначений
;****************************************
porta equ H'05'
portb equ H'06'
status equ H'03'
TMRO equ H'01'
TRISA equ H'85'
TRISB equ H'86'
pr0 equ 5
ra0 equ 0
ra1 equ 1
ra2 equ 2
ra3 equ 3
ra4 equ 4
rb0 equ 0
rb1 equ 1
rb2 equ 2
rb3 equ 3
rb4 equ 4
rb5 equ 5
rb6 equ 6
rb7 equ 7
;****************************************
; инициализация портов и таймера
;****************************************
clrf porta ; инициализация порта А
bsf status, pr0
movlw B'00111'
tris porta
clrf portb ; инициализация потра В
movlw B'00100101'
tris portb
bcf status, pr0
PORTS bsf porta, ra3 ; установка сигнала очистки памяти
bcf portb, rb6 ; установка сигнала управления счетчиком
bsf portb, rb7 ; установка сигнала сброса счетчиков
bsf portb, rb1 ; установка сигнала запуска АЦП
ZERO bcf portb, rb3 ; установка сигнала инициализации памяти
bcf portb, rb4 ; установка соединения АЦП с линией и микрофоном
bcf porta, ra3
bcf portb, rb7
bcf status, pr0
clrf TMRO ; таймер отключен
bsf status, pr0
clrwdt
movlw B'11111000'
movwf H'81'
bcf status, pr0
;****************************************
; главная программа
;****************************************
BEGIN btfsc porta, ra1 ; определение режима работы
goto PORTS
btfsc porta, ra0
goto MIC
btfsc porta, ra2
goto ZV
goto BEGIN
MIC bsf portb, rb4 ;подпрограмма записи приветствия
bsf porta, ra3
bsf portb, rb7
call TIME
bcf porta, ra3
bcf porta, rb7
WAIT btfss porta, ra0 ; проверка возможности окончания подпрограммы:
goto ZERO ; - окончание записи
btfsc portb, rb2
goto LAMP ; - переполнение памяти
clrf TMRO
SUM btfsc TMRO, 6 ; установка частоты дискретизации АЦП
goto AD
goto SUM
AD nop
call REC ; вызов подпрограммы управления записью
goto WAIT
ZV call TIME ; подпрограмма записи поступающего сообщения
WAIT_Z btfss porta, ra2 ; проверка прекращения записи (сигнал от другого контроллера)
goto ZERO
clrf TMRO
SUM_Z btfsc TMRO, 6 ; установка частоты дискретизации АЦП
goto AD_Z
goto SUM_Z
AD_Z nop
call REC ; вызов подпрограммы управления записью
goto WAIT_Z
LAMP bsf porta, ra4 ; подпрограмма индикации переполнения памяти приветствия
goto BEGIN
;****************************************
; подпрограммы
;****************************************
TIME bcf status, pr0 ; подпрограмма инициализации таймера
clrf TMRO
bsf status, pr0
clrwdt
movlw B'11011000'
movwf H'81'
bcf status, pr0
return
REC bsf portb, rb1 ; подпрограмма управления записью (инициализация АЦП)
nop
bsf portb, rb6 ; установка следующего адреса памяти
BUSY btfss portb, rb0 ; проверка сигнала готовности АЦП (через 7.5 мкс после запуска)
goto BUSY
bcf portb, rb1 ; установка данных на выходе АЦП
nop
bsf portb, rb3 ; инициализация памяти
bcf portb, rb6 ; снятие сигнала со счетчика
bcf portb, rb3 ; окончание записи
return
;
end
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.