Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Разработка программного обеспечения

РефератПомощь в написанииУзнать стоимостьмоей работы

009C D9 F5 DJNZ R_C, st ;отсчет времени для распознавания дребезга. Задание имен переменных для индикации выходных величин. 0099 B5 90 F5 CJNE A, P1, drbzg ;сравнение аккум. с портом и переход. 0037 12 00 AA CALL xx0 ;вызов подпрограммы обработки условия X0. 0034 12 00 91 CALL drbzg ;вызов подпрограммы обработки дребезга. 0031 75 A0 FF MOV P2, #1 111 1111b ;обнуляем выходы порта P2 (Q2,Q1,Q0). A0… Читать ещё >

Разработка программного обеспечения (реферат, курсовая, диплом, контрольная)

При выборе микропроцессорной системы управления существенно уменьшается количество дискретных элементов. Что упрощает систему, и, следовательно, повышает ее надежность. С другой стороны отказ самого микропроцессора (само по себе это явление редкое, чаще сказываются ошибки проектирования) ведет к выходу абсолютно всей системы. В то же время появляется необходимость в управляющей программе. Каждый тип микропроцессора обладает рядом только ему присущих особенностей: архитектурой, набором команд, функциональными возможностями и так далее. Все это было принято к сведению при написании программы для спроектированной системы управления.

Программа была написана на языке ассемблера для МК-51 с использованием системы отладки AVSIM51. Далее приводится алгоритм работы программы, листинг программы и hex файл, представляющий собой образ ПЗУ предназначенный непосредственно для прошивки в микросхему.

Алгоритм работы программы

Используя особенность микропроцессора МК-51 работать с отдельными битами (булев процессор) данное задание можно выполнить напрямую запрограммировав все состояния и условия переходов.

Листинг программы:

2500 A.D. 8051 Macro Assembler — Version 4.02a.

Input Filename: kurs.asm.

Output Filename: kurs.obj.

Для удобства именуем переменные состояния.

  • 8 0020 X0: EQU 20h
  • 9 0021 X2: EQU 21h
  • 10 0022 X3: EQU 22h
  • 11 0023 X4: EQU 23h
  • 12 0024 X5: EQU 24h
  • 13−14 0040 R_N: EQU 55h ;задержка для антидребезговой подпрограммы
  • 15 0001 R_C: REG R1 ;именуем регистр для антидребезговой подпрограммы
  • 16 0000
  • 17 0025 PER: EQU 25h ;временная переменная для сравнения
  • 18 0000
  • 19 0000 BSECT ;переход к битовой секции
  • 20 -21 ;Задаем имена переменных для обозначения входных параметров
  • 22 0090 S1: REG P1.0 ;
  • 23 0091 S2: REG P1.1 ;
  • 24 0092 S3: REG P1.2 ;
  • 25 0093 U1: REG P1.3 ;
  • 26 0094 U3: REG P1.4 ;
  • 27 0095 U7: REG P1.5 ;
  • 28 0096 L40: REG P1.6 ;
  • 29 0097 L100: REG P1.7 ;
  • 30 00B1 L50: REG P3.1 ;
  • 31 00B2 INDL50: REG P3.2 ;
  • 32 0000
  • 33 ;Задание имен переменных для индикации выходных величин
  • 34 0000
  • 35 0080 IND: REG P0.0 ;имя переменной для обозначения порта индикации
  • 36 0000
  • 37 ;Начало программы располагаем по адресу 30h
  • 38 0000 02 00 30 JMP x0
  • 39 0030 ORG 30H
  • 40 -41 ;Обработка состояния X0
  • 42 0030 C3 x0: CLR C ;сбрасываем флаг переноса C
  • 43 0031 75 A0 FF MOV P2, #1 111 1111b ;обнуляем выходы порта P2 (Q2,Q1,Q0)
  • 44 0034 12 00 91 CALL drbzg ;вызов подпрограммы обработки дребезга
  • 45 0037 12 00 AA CALL xx0 ;вызов подпрограммы обработки условия X0
  • 46 003A A2 20 MOV C, X0 ;записываем в C 1, если X0=1
  • 47 003C 40 43 JC x5 ;переход на метку x5, если перенос C=1
  • 48 003E 02 00 41 JMP x1 ;иначе переход на метку x1
  • 51 ;Обработка состояния X1
  • 52 0041 C3 x1: CLR C
  • 53 0042 75 A0 F6 MOV P2, #1 111 0110b ;записываем в P2 значения выходов и индикации
  • 54 0045 12 00 91 CALL drbzg
  • 55 0048 A2 96 MOV C, L40
  • 56 004A 40 E4 JC x0
  • 57 004C 02 00 71 JMP x4
  • 60 ;Обработка состояния X2
  • 61 004 °F C3 x2: CLR C
  • 62 0050 75 A0 DB MOV P2, #1 101 1011b
  • 63 0053 12 00 91 CALL drbzg
  • 64 0056 12 00 B1 CALL xx2
  • 65 0059 A2 21 MOV C, X2
  • 66 005B 40 03 JC x3
  • 67 005D 02 00 71 JMP x4
  • 69 ;Обработка состояния X3
  • 70 0060 C3 x3: CLR C
  • 71 0061 75 A0 ED MOV P2, #1 110 1101b
  • 72 0064 12 00 91 CALL drbzg
  • 73 0067 12 00 C1 CALL xx3
  • 74 006A A2 22 MOV C, X3
  • 75 006C 40 D3 JC x1
  • 76 006E 02 00 71 JMP x4
  • 79 ;Обработка состояния X4
  • 80 0071 C3 x4: CLR C
  • 81 0072 75 A0 E4 MOV P2, #1 110 0100b
  • 82 0075 12 00 91 CALL drbzg
  • 83 0078 12 00 C8 CALL xx4
  • 84 007B A2 23 MOV C, X4
  • 85 007D 40 02 JC x5
  • 86 007 °F 01 4 °F JMP x2
  • 89 ;Обработка состояния X5
  • 90 0081 C3 x5: CLR C
  • 91 0082 75 A0 D2 MOV P2, #1 101 0010b
  • 92 0085 12 00 91 CALL drbzg
  • 93 0088 12 00 CF CALL xx5
  • 94 008B A2 24 MOV C, X5
  • 95 008D 40 C0 JC x2
  • 96 008 °F 01 71 JMP x4
  • 99 ;Подпрограмма обработки дребезга, индикации
  • 100 0091 drbzg:
  • 101 0091 79 40 MOV R_C, #R_N ;загрузка в регистр константы для антидребезга
  • 102 0093 E5 90 st: MOV A, P1 ;загрузка в аккум. значение порта P1
  • 103 0095 7B 0A MOV R3, #10 ;задержка для опред. дребезга
  • 104 0097 DB FE DJNZ R3, $ ;
  • 105 0099 B5 90 F5 CJNE A, P1, drbzg ;сравнение аккум. с портом и переход
  • 106 009C D9 F5 DJNZ R_C, st ;отсчет времени для распознавания дребезга
  • 107 009E E5 90 MOV A, S1 ;секция индикации входных сигналов
  • 108 00A0 F4 CPL A ;инверсия значений, т.к. управление идет по 0
  • 109 00A1 F5 80 MOV IND, A ;запись в порт для индикации
  • 110 00A3 C3 CLR C
  • 111 00A4 A2 B1 MOV C, L50
  • 112 00A6 B3 CPL C
  • 113 00A7 92 B2 MOV INDL50, C ;
  • 114 00A9 22 RET ;возврат из подпрограммы
  • 116 ;Подпрограмма обработки условия X0
  • 117 00AA A2 90 xx0: MOV C, S1 ;
  • 118 00AC B0 95 ANL C,/U7 ;логическое И бита и переноса
  • 119 00AE 92 20 MOV X0, C
  • 120 00B0 22 RET
  • 123 ;Подпрограмма обработки условия X2
  • 124 00B1 A2 90 xx2: MOV C, S1 ;
  • 125 00B3 B0 91 ANL C,/S2
  • 126 00B5 92 25 MOV PER, C
  • 127 00B7 A2 91 MOV C, S2
  • 128 00B9 B0 90 ANL C,/S1
  • 129 00BB 72 25 ORL C, PER
  • 130 00BD 82 93 ANL C, U1
  • 131 00BF 92 21 MOV X2, C
  • 134 ;Подпрограмма обработки условия X3
  • 135 00C1 A2 92 xx3: MOV C, S3 ;
  • 136 00C3 B0 B1 ANL C,/L50
  • 137 00C5 92 22 MOV X3, C
  • 138 00C7 22 RET
  • 139
  • 140
  • 141 ;Подпрограмма обработки условия X4
  • 142 00C8 A2 91 xx4: MOV C, S2 ;
  • 143 00CA B0 94 ANL C,/U3
  • 144 00CC 92 23 MOV X4, C
  • 145 00CE 22 RET
  • 148 ;Подпрограмма обработки условия X5
  • 149 00CF A2 97 xx5: MOV C, L100 ;
  • 150 00D1 92 24 MOV X5, C
  • 151 00D3 22 RET
  • 152 00D4
  • 153 00D4 END
Lines Assembled: 153 Assembly Errors: 0

Образ ПЗУ для прошивки.

:300 000 002 0030CB.

:1 000 3000C375A0FF1200911200AAA2204043020043.

:100 040 0041C375A0F6120091A29640E4020071C36C.

:100 050 0075A0DB1200911200B1A2214003020071D1.

:1 000 6000C375A0ED1200911200C1A22240D302007C.

:10 007 0004FC375A0D21200911200CFA22440C0012C.

:1 000 800 071 7940E5907B0ADBFEB590F5D9F5E590E6.

:1000A000F4F580C3A2B1B392B222A290B9 592 208 °F.

:0400D00097922422BD.

:01FF.

Показать весь текст
Заполнить форму текущей работой