Опрос дискретных датчиков программным методом - Лабораторная работа

бесплатно 0
4.5 86
Опрос состояния дискретных датчиков. Циклический опрос состояния выходного сигнала дискретного датчика. Распределение кодов нажатых кнопок в таблице клавиатуры. Программа ввода четырехзначного числа с клавиатуры. Расчет констант для подпрограммы.


Аннотация к работе
Практически ни одна МПС не обходится без кнопок, переключателей, клавиатуры и других простейших дискретных датчиков на основе обычных механических контактов. Таблица 1 - Адреса опроса столбцов клавиатуры Столбец (кнопки) Адрес опроса 1 (SW3, SW6, SW9, SW12) 9006h 2 (SW4, SW7, SW10, SW13) 9005h 3 (SW5, SW8, SW11, SW14) 9003h Алгоритм опроса столбца клавиатуры состоит из последовательности следующих шагов: 1) Формирование сканирующего адреса (9006h, 9005h, 9003h); 2) Сканирование состояния клавиатуры (чтение ячейки ВПД); 3) Выделение младшего полубайта данных; 3.1 Инверсия скан-кода 3.2 Маскирование старшей тетрады данных. Таблица 2 - Распределение кодов нажатых кнопок в таблице клавиатуры Адрес таблицы h - код Обозначение (h - код мл. байта) нажатой кнопки нажатой кнопки 0 02 «2» 1 01 «1» 2 04 «4» 3 05 «5» 4 07 «7» 5 08 «8» 6 00 - 7 АА «#» 8 СС «*» 9 00 «0» А 00 - В 09 «9» С 00 - D 06 «6» Е 03 «3» F 00 - Ход работы 1. Содержимое файлов с расширениями ASM, LST,HEX: $INCLUDE(E:\MK51\Compiler\ASM51\MOD\MOD51) ORG 0 jb p3.2,$; опрос состояния кнопки SW15, если ; кнопка нажата-выполняется индикация ; числа 0404h на статическом индикаторе Continue: mov A,#0; установка в исходное состояние mov DPTR,#0A004h ; статического индикатора movx @DPTR,A;отменить гашение знакомест и ;индикацию десятичных точек mov A,#04h ; записать в А число 04h mov DPTR,#0A000h ; индикация числа 04h movx @DPTR,A ; на 0 и 1 знакоместе mov DPTR,#0B000h; индикация числа 04h movx @DPTR,A ; на 2 и 3 знакоместе CALL TIME; вызов подпрограммы задержки mov A,#00001111b; гашение всех знакомест mov DPTR,#0A004h ; статического movx @DPTR,A; индикатора CALL TIME ; вызов подпрограммы задержки jmpContinue ; переход на начало программы TIME: ; подпрограмма задержки mov R1,#0FFh C2: mov R2,#0FFh djnz R2,$ djnz R1,C2 ret;выход из подпрограммы END 521 PAGE 1 =1 1 $INCLUDE(E:\MK51\Compiler\ASM51\MOD\MOD51) =1 2 ; REV. 1.0 MAY 23, 1984 0080 =1 3 P0 DATA 080H ;PORT 0 0081 =1 4 SP DATA 081H ;STACK POINTER 0082 =1 5 DPL DATA 082H ;DATA POINTER - LOW BYTE 0083 =1 6 DPH DATA 083H ;DATA POINTER - HIGH BYTE 0087 =1 7 PCON DATA 087H ;POWER CONTROL 0088 =1 8 TCON DATA 088H ;TIMER CONTROL 0089 =1 9 TMOD DATA 089H ;TIMER MODE 008A =1 10 TL0 DATA 08AH ;TIMER 0 - LOW BYTE 008B =1 11 TL1 DATA 08BH ;TIMER 1 - LOW BYTE 008C =1 12 TH0 DATA 08CH ;TIMER 0 - HIGH BYTE 008D =1 13 TH1 DATA 08DH ;TIMER 1 - HIGH BYTE 0090 =1 14 P1 DATA 090H ;PORT 1 0098 =1 15 SCON DATA 098H ;SERIAL PORT CONTROL 0099 =1 16 SBUF DATA 099H ;SERIAL PORT BUFFER 00A0 =1 17 P2 DATA 0A0H ;PORT 2 00A8 =1 18 IE DATA 0A8H ;INTERRUPT ENABLE 00B0 =1 19 P3 DATA 0B0H ;PORT 3 00B8 =1 20 IP DATA 0B8H ;INTERRUPT PRIORITY 00D0 =1 21 PSW DATA 0D0H ;PROGRAM STATUS WORD 00E0 =1 22 ACC DATA 0E0H ;ACCUMULATOR 00F0 =1 23 B DATA 0F0H ;MULTIPLICATION REGISTER 0088 =1 24 IT0 BIT 088H ;TCON.0 - EXT. INTERRUPT 0 TYPE 0089 =1 25 IE0 BIT 089H ;TCON.1 - EXT. INTERRUPT 0 EDGE FLAG 008A =1 26 IT1 BIT 08AH ;TCON.2 - EXT. INTERRUPT 1 TYPE 008B =1 27 IE1 BIT 08BH ;TCON.3 - EXT. INTERRUPT 1 EDGE FLAG 008C =1 28 TR0 BIT 08CH ;TCON.4 - TIMER 0 ON/OFF CONTROL 008D =1 29 TF0 BIT 08DH ;TCON.5 - TIMER 0 OVERFLOW FLAG 008E =1 30 TR1 BIT 08EH ;TCON.6 - TIMER 1 ON/OFF CONTROL 008F =1 31 TF1 BIT 08FH ;TCON.7 - TIMER 1 OVERFLOW FLAG 0098 =1 32 RI BIT 098H ;SCON.0 - RECEIVE INTERRUPT FLAG 0099 =1 33 TI BIT 099H ;SCON.1 - TRANSMIT INTERRUPT FLAG 009A =1 34 RB8 BIT 09AH ;SCON.2 - RECEIVE BIT 8 009B =1 35 TB8 BIT 09BH ;SCON.3 - TRANSMIT BIT 8 009C =1 36 REN BIT 09CH ;SCON.4 - RECEIVE ENABLE 009D =1 37 SM2 BIT 09DH ;SCON.5 - SERIAL MODE CONTROL BIT 2 009E =1 38 SM1 BIT 09EH ;SCON.6 - SERIAL MODE CONTROL BIT 1 009F =1 39 SM0 BIT 09FH ;SCON.7 - SERIAL MODE CONTROL BIT 0 00A8 =1 40 EX0 BIT 0A8H ;IE.0 - EXTERNAL INTERRUPT 0 ENABLE 00A9 =1 41 ET0 BIT 0A9H ;IE.1 - TIMER 0 INTERRUPT ENABLE 00AA =1 42 EX1 BIT 0AAH ;IE.2 - EXTERNAL INTERRUPT 1 ENABLE 00AB =1 43 ET1 BIT 0ABH ;IE.3 - TIMER 1 INTERRUPT ENABLE 00AC =1 44 ES BIT 0ACH ;IE.4 - SERIAL PORT INTERRUPT ENABLE 00AF =1 45 EA BIT 0AFH ;IE.7 - GLOBAL INTERRUPT ENABLE 00B0 =1 46 RXD BIT 0B0H ;P3.0 - SERIAL PORT RECEIVE INPUT 00B1 =1 47 TXD BIT 0B1H ;P3.1 - SERIAL PORT TRANSMIT OUTPUT 00B2 =1 48 INT0 BIT 0B2H ;P3.2 - EXTERNAL INTERRUPT 0 INPUT 00B3 =1 49 INT1 BIT 0B3H ;P3.3 - EXTERNAL INTERRUPT 1 INPUT 00B4 =1 50 T0 BIT 0B4H ;P3.4 - TIMER 0 COUNT INPUT 00B5 =1 51 T1 BIT 0B5H ;P3.5 - TIMER 1 COUNT INPUT 00B6 =1 52 WR BIT 0B6H ;P3.6 - WRITE CONTROL FOR EXT. MEMORY 00B7 =1 53 RD BIT 0B7H ;P3.7 - READ CONTROL FOR EXT. MEMORY 00B8 =1 54 PX0 BIT 0B8H ;IP.0 - EXTERNAL INTERRUPT 0 PRIORITY 00B9 =1 55 PT0 BIT 0B9H ;IP.1 - TIMER 0 PRIORITY 00BA =1 56 PX1 BIT 0BAH ;IP.2 - EXTERNAL INTERRUPT 1 PRIORITY 00BB =1 57 PT1 BIT 0BBH ;IP.3 - TIMER 1 PRIORITY 00BC =1 58 PS BIT 0BCH ;IP.4 - SERIAL PORT PRIORITY 521 PAGE 2 00D0 =1 59 P BIT 0D0H ;PSW.0 - ACCUMULATOR PARITY FLAG 00D2 =1 60 OV BIT 0D2H ;PSW.2 - OVERFLOW FLAG 00D3 =1 61 RS0 BIT 0D3H ;PSW.3 - REGISTER BANK SELECT 0 00D4 =1 62 RS1 BIT 0D4H ;PSW.4 - REGISTER BANK SELECT 1 00D5
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?