Технология цифровой связи

Проектирование цифровой линии

Текст подпрограмм

Текст подпрограмм

В независимости от функционального назначения устройства алгоритм его работы содержит последовательность типовых операций: инициализация системы, чтение/запись памяти, чтение клавиатуры и портов ввода, вывод информации на индикаторы и порты вывода и др.

Рассмотрим примеры инициализации и работы с устройствами ввода-вывода разработанного устройства.

;ATmega64

.include "m64def.inc"

.def out_fig_code = r21 ;код выводимого символа для индикатора

.def out_seg = r22 ;номер текущего сегмента

.def d1 = r4

.def d2 = r5

.def d3 = r6d1 = r7

.def d2 = r8

.def d3 = r9d1 = r10

.def d2 = r11

.def d3 = r12d1 = r13

.def d2 = r14

.def d3 = r15d1 = r16

.def d2 = r17d1 = r18

.def d2 = r19

.equ out_seg16 = 7

.dseg

.org 0x100

.cseg

.org 0reset

;-------------

; начало программы

reset:out_fig_codeout_seg

ldi r20, out_seg16

; программирование портов F и С на вывод

ldi r20, 7ddrc, r20r20, $ffddrf, r20:out_seg, 1 ; на сегмент 1out_fig_code, LLHLHHHL ; вывод . out_pp ; вызов подпрограммы вывода

ldi out_seg, 2 ; на сегмент 2out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 3 ; на сегмент 3out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 4 ; на сегмент 4out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 5 ; на сегмент 5out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 6 ; на сегмент 6out_fig_code, LLHLHLHL ; вывод *

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 7 ; на сегмент7out_fig_code, LHLLHLLL ; вывод H

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 8 ; на сегмент 8out_fig_code, LHLLLHLH ; вывод E

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 9 ; на сегмент 9out_fig_code, LHLLHHLL ; вывод L

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, A ; на сегмент 10out_fig_code, LHLLHHLL ; вывод L

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, B ; на сегмент 11out_fig_code, LHLLHHHH ; вывод O

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, C ; на сегмент 12out_fig_code, LLHLHLHL ; вывод *

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, D ; на сегмент 13out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, E ; на сегмент 14out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, F ; на сегмент 15out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 10 ; на сегмент 16out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

;-------------

; подпрограмма вывода на индикатор

out_pp:

out PORTC, r20PORTF, out_fig_code

out PORTC, out_seg

Рис.


Другое по теме:

Цифровой блок управления электроприводом Номер зачетной книжки 20001484 Элементная база: ТТЛ Диапазон изменения угла поворота: a=150+5n±5=165 - 175 кодовых импульсов Относительный световой ток фотодиода: IC / IT = 5+n=9 Относительная амплитуда помехи: IП / IC = 0,1 Номина ...