Читайте также:
|
|
О т л а д о ч н а я в е р с и я п р о г р а м м ы
ADDR_TAB EQU 9000h;начальный адрес кодовой таблицы сигналов
N_CODE EQU 16d;количество кодовых комбинаций в таблице
PORT_L EQU 00h;младший байт адреса порта вывода
PORT_H EQU 0ABh;старший байт адреса порта вывода
X EQU 38h;уставка таймера Х (100 мкс при 24 МГц)
START_STOP EQU P1.4;сигнал "START/STOP"
Инициализация микроконтроллера и управляющей программы
JMP BEGIN
ORG 0Bh;организация обслуживания
JMP TIMER;прерывания таймера Т0
ORG 40h
BEGIN: MOV R0,#PORT_L;загрузить указатель младшего байта адреса порта вывода
MOV R2,#N_CODE;загрузить счетчик количества кодовых комбинаций
MOV DPTR,#ADDR_TAB;загрузить указатель адреса кодовой таблицы
MOV IE,#10000010B;разрешить обслуживание прерывания таймера T0 (ET0=1, EA=1)
MOV TMOD,#00000010B;выбрать режим 2 для таймера T0
MOV TH0,#X;загрузить в TH0 значение уставки Х
MOV TL0,#X;загрузить в TL0 значение уставки Х
;***********Режим "Ожидание"
WAIT: CLR TR0;выключить таймер Т0 (в регистре TCON бит TR0=0)
MOV P1,#11111101b;включить VD1, индикация режима "Ожидание"
OPROS: JB START_STOP,WAIT;если "START/STOP"=1 - вернуться в "Ожидание"
;***********Режим "Пуск"
WORK: MOV P1,#11111110b;если "START/STOP"=0 - включить индикацию режима "Пуск"
SETB TR0;включить таймер T0 (в регистре TCON бит TR0=1)
JMP OPROS;повторить опрос кнопки "START/STOP"
ОБРАБОТКА ПРЕРЫВАНИЯ ТАЙМЕРА
TIMER: CLR A;для режима отладки - произвести
MOVC A,@A+DPTR;чтение кодовой комбинации из ВПП
;MOVX A,@DPTR;чтение кодовой комбинации из ВПД
MOV P2,#PORT_H;записать кодовую комбинацию
MOVX @R0,A;в порт вывода дискретных сигналов
INC DPTR;перейти к следующей ячейке в таблице кодовых комбинаций
DJNZ R2,NEXT;последняя кодовая комбинация?
MOV DPTR,#ADDR_TAB;если да - загрузить указатель адреса кодовой таблицы
MOV R2,#N_CODE;загрузить счетчик количества кодовых комбинаций
NEXT: RETI;если нет - выйти из прерывания
;***********РАЗМЕЩЕНИЕ КОДОВОЙ ТАБЛИЦЫ В ВПП (или при совмещении ВПП и ВПД)
ORG 9000h;создание таблицы кодовых комбинаций по адресу 9000h
TABLE: DB 0B0h, 0C0h, 0D0h, 0E0h, 0F0h, 0D8h, 0C0h
DB 0A8h, 90h, 20h, 0h, 0h, 10h, 20h, 30h, 40h
END
Рисунок 6.1 - Временные диаграммы сигналов генератора
Пример сглаживания выходного сигнала генератора при помощи RC-цепи
Дата добавления: 2015-11-13; просмотров: 28 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Translate into English. | | | Форматирование |