Курсовая работа по дисциплине «Микропроцессорные системы» - davaiknam.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Конспект лекций по дисциплине: «Операционные системы и среды» Екатеринбург... 7 533.63kb.
Курсовая работа по дисциплине «Динамические интеллектуальные системы»... 1 168.94kb.
Курсовая работа по дисциплине : «Информатика» тема: «Особенности... 1 283.04kb.
Курсовая работа На тему: Референдум и его социальная функция По дисциплине... 1 356.09kb.
Курсовая работа по дисциплине «Информационные системы в экономике»... 1 320.93kb.
Курсовая работа по дисциплине "Политическая идеология" по теме ""Утопия"... 1 51.73kb.
Курсовая работа расчетно-пояснительная записка по дисциплине Технология... 3 354.5kb.
Курсовая работа по дисциплине «Экономика труда и социально-трудовые... 8 642.6kb.
Курсовая работа по дисциплине: «Финансы и кредит» 1 58.38kb.
Курсовая работа по дисциплине 1 248.42kb.
Курсовая работа по дисциплине «Информационные технологии» «Кэширующие... 5 396.09kb.
Изучение и практическое применение двухключевых блочных криптографических... 1 51.59kb.
Направления изучения представлений о справедливости 1 202.17kb.

Курсовая работа по дисциплине «Микропроцессорные системы» - страница №1/1

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ

(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Кафедра информационно-коммуникационные технологии

Курсовая работа по дисциплине

«Микропроцессорные системы»

Выполнил: Кузьмин Е.И. C-84

Кулагин Р.В. С-85

Проверил: Гудков Ю.И.

Москва 2012

Аннотация


В данной работе разрабатывается преобразователь ASCII кода, использующий прерывание по таймеру и COM-порту . Работа выполнена на прототипе.


Оглавление


Аннотация 2

Техническое задание 4

Блок схема 5

Заключение 7

Приложение 8



Техническое задание


Реализовать преобразователь ASCII кода, удовлетворяющий следующим требованиям:

  1. ввод одного символа с клавиатуры;

  2. при нажатии на клавишу на малой клавиатуре выбираем тип преобразования ASCII кода;

  3. результат выводится на экран после нажатия клавиши на малой клавиатуре в виде результата преобразования и типа преобразования;


Блок схема



Начало



Конец

Прерывание Com порта

Принять символ, записать в R0

Запрет прерываний по Com порту

Разрешить прерывание по таймеру

Конец

Инициализация

Устройств,

Активация прерываний


Бездействие

Начало



Конец

Конвертируем Байт в oct

Формат


Конвертируем Байт в dec

Формат


Конвертируем Байт в hex

Формат


Нажата

Oct ?


Нажата dec ?

Нажата hex?

Выход

Опрос

клавиатуры



Прерывание по таймеру

Начало

Выводим результат в порт с комментарием



Заключение


Был реализован преобразователь ASСII кода, который осуществляет ввод с параллельного и последовательного порта, используя механизм прерываний. Вывод информации

осуществляется через последовательный порт на терминал.


Приложение


################################################################################

# #


# Micro Series 8051 Assembler V1.80/MD2 01/Jan/03 00:06:49 #

# #


# Source = bbb.s03 #

# List = bbb.lst #

# Object = bbb.r03 #

# Options = #

# #

# (c) Copyright IAR Systems 1985 #



################################################################################

1 0087 PCON equ 87h

2 0000 ORG 0 ; вектор подачи питания

3 0000 020033 jmp main

4

5


6

7 0003 020046 jmp st1

8 000B ORG 000Bh

9 000B 020030 jmp timer

10

11 0023 ORG 23h ; вектор УАПП



12 0023 02003B jmp uart

13


14 0030 ORG 30h

15


16

17 0030 timer:

18 0030 020046 jmp st1

19 0033 main:

20 0033 120157 CALL init

21 0036 12013C CALL init_com ;инициализация COM порта

22 0039 80FE jmp $ ; бездействие

23


24 003B uart: ; прерывания от УАПП

25 003B C298 clr RI ; сброс флагов УАПП

26 003D 309906 jnb TI,st1 ; если прерывание TX то не нужно опрашивать клавиатуру

27 0040 C299 clr TI

28 0042 75A882 mov IE,#10000010B

29 0045 32 reti

30 0046 st1:

31 0046 7590F0 mov P1, #11110000B ;опрос клавиатуры

32 0049 120164 CALL t_40ms ; задержка в 40 мс

33 004C 30940B JNB P1.4,hex ; вывод в hex

34 004F 30953E JNB P1.5,de_c ; вывод в dec

35 0052 309602 JNB P1.6,oc_t ; вывод в oct

36 0055 80EF jmp st1 ; не нажаты эти кнопки

37 ;---------------------------------------------------------

38 0057 0200DA oc_t: jmp oc_t1 ; удлинитель перехода

39 ;---------------------------------------------------------------

40 005A hex:

41 005A A899 mov R0,SBUF ; перегружаем принятый код

42 005C E8 MOV A,R0

43 005D 12016F CALL TXCOM ; выводим принятый символ

44 0060 743D MOV A,#3Dh

45 0062 12016F call TXCOM ; выводим тире

46

47 0065 E8 MOV A,R0 ; разбиение байта



48 0066 03 RR A

49 0067 03 RR A

50 0068 03 RR A

51 0069 03 RR A ; на два регистра

52 006A 540F ANL A,#0Fh

53


54 006C 12012A call HEX_ASC ; преобразование значения в символ

55 006F 12016F call TXCOM ; вывод символа

56 0072 E8 MOV A,R0

57 0073 540F ANL A,#0Fh

58 0075 12012A call HEX_ASC

59 0078 12016F call TXCOM

60

61 007B 7468 MOV A,#68h



62 007D 12016F call TXCOM ; вывод h

63 0080 7465 MOV A,#65h

64 0082 12016F call TXCOM ; вывод e

65 0085 7478 MOV A,#78h

66 0087 12016F call TXCOM ; вывод x

67 008A 7420 MOV A,#20h

68 008C 12016F call TXCOM ; вывод пробела

69 008F 32 reti ; вместо прыжка выход из прерывания

70 ;---------------------------------------------------------------

71 0090 de_c:

72 0090 A899 mov R0,SBUF ; перегружаем принятый код

73 0092 E8 MOV A,R0

74 0093 12016F CALL TXCOM ; вывод принятого символа

75 0096 743D MOV A,#3Dh

76 0098 12016F call TXCOM ; вывод тире

77 009B E8 MOV A,R0 ;

78 009C 75F064 MOV B,#100

79 009F 84 DIV AB ; делим на 100

80 00A0 F510 MOV 10h,A ;

81 00A2 E5F0 MOV A,B

82 00A4 75F00A MOV B,#10 ; делим на 10

83 00A7 84 DIV AB

84 00A8 F511 MOV 11h,A ;

85 00AA 85F012 MOV 12h,B

86 00AD E510 MOV A,10h ; загружаем сотни

87 00AF 12012A call HEX_ASC ; преобразование значения в символ

88 00B2 12016F call TXCOM ; вывод сотен

89 00B5 E511 MOV A,11h ; загружаем десятки

90 00B7 12012A call HEX_ASC ; преобразование значения в символ

91 00BA 12016F call TXCOM ; вывод десятков

92 00BD E512 MOV A,12h ; загружаем единицы

93 00BF 12012A call HEX_ASC ; преобразование значения в символ

94 00C2 12016F call TXCOM ; вывод единиц

95 00C5 7464 MOV A,#64h

96 00C7 12016F call TXCOM ; вывод d

97 00CA 7465 MOV A,#65h

98 00CC 12016F call TXCOM ; вывод e

99 00CF 7463 MOV A,#63h

100 00D1 12016F call TXCOM ; вывод c

101 00D4 7420 MOV A,#20h

102 00D6 12016F call TXCOM ; вывод пробела

103 00D9 32 reti

104 ;---------------------------------------------------------------

105 00DA oc_t1:

106 00DA A899 mov R0,SBUF ; перегружаем принятый код

107 00DC E8 MOV A,R0

108 00DD 12016F CALL TXCOM ; вывод символа

109 00E0 743D MOV A,#3Dh

110 00E2 12016F call TXCOM ; вывод тире

111 00E5 E8 MOV A,R0 ; выделяем единицы

112 00E6 5407 ANL A,#07h

113 00E8 F512 MOV 12h,A ;

114 00EA E8 MOV A,R0

115 00EB 03 RR A

116 00EC 03 RR A

117 00ED 03 RR A

118 00EE 5407 ANL A,#07h ; выделяем десятки

119 00F0 F511 MOV 11h,A

120 00F2 E8 MOV A,R0

121 00F3 03 RR A

122 00F4 03 RR A

123 00F5 03 RR A

124 00F6 03 RR A

125 00F7 03 RR A

126 00F8 03 RR A

127 00F9 5403 ANL A,#03h ; выделяем сотни

128 00FB F510 MOV 10h,A

129 00FD E510 MOV A,10h ; загружаем сотни

130 00FF 12012A call HEX_ASC ; преобразование значения в символ

131 0102 12016F call TXCOM ; вывод

132 0105 E511 MOV A,11h ; загружаем десятки

133 0107 12012A call HEX_ASC ; преобразование значения в символ

134 010A 12016F call TXCOM ; вывод

135 010D E512 MOV A,12h ; загружаем единицы

136 010F 12012A call HEX_ASC ; преобразование значения в символ

137 0112 12016F call TXCOM ; вывод

138 0115 746F MOV A,#6Fh

139 0117 12016F call TXCOM ; вывод

140 011A 7463 MOV A,#63h

141 011C 12016F call TXCOM ; вывод

142 011F 7474 MOV A,#74h

143 0121 12016F call TXCOM ; вывод

144 0124 7420 MOV A,#20h

145 0126 12016F call TXCOM ; вывод

146 0129 32 reti

147 ;---------------------------------------------------------------

148 012A HEX_ASC:

149 012A 04 INC A ; преобразование

150 012B 83 MOVC A,@A+PC ; значения в код символа

151 012C 22 RET ; выборка из таблицы

152 012D 30 DB 30h ; 0

153 012E 31 DB 31h ; 1

154 012F 32 DB 32h ; 2

155 0130 33 DB 33h ; 3

156 0131 34 DB 34h ; 4

157 0132 35 DB 35h ; 5

158 0133 36 DB 36h ; 6

159 0134 37 DB 37h ; 7

160 0135 38 DB 38h ; 8

161 0136 39 DB 39h ; 9

162 0137 41 DB 41h ; A

163 0138 41 DB 41h ; B

164 0139 43 DB 43h ; C

165 013A 44 DB 44h ; D

166 013B 45 DB 45h ; E DB 46h ; F

167 ;==========================================

168 013C init_com:

169 013C C29F clr SM0

170 013E C29D clr SM2

171 0140 D29E setb SM1 ; ПРИЕМОПЕРЕДАТЧИК В РЕЖИМЕ 1

172 0142 D29C setb REN

173 0144 438780 orl PCON, #128

174

175 0147 758DF5 mov TH1, #245 ; СКОРОСТЬ ПЕРЕДАЧИ 4800



176 014A 438920 orl TMOD, #00100000B

177 014D 53892F anl TMOD, #00101111B

178 0150 438840 orl TCON, #01000000B

179 0153 75A890 mov IE,#10010000B

180 0156 22 ret

181 ;===========================================

182 0157 init:

183 0157 751000 mov 10h,#0 ; СБРОС РЕГИСТРОВ

184 015A 751100 mov 11h,#0

185 015D 751200 mov 12h,#0

186 0160 75A895 mov IE,#10010101B ; разрешаем прерывания EA, ES, EX0, EX1

187 0163 22 ret

188 ;===========================================

189 0164 22 t_40ms: ret ; ЗАДЕРЖКА В 40 МКС

190 0165 79FF mov R1,#255 ;2

191 0167 7A33 aa2: mov R2,#51 ;2

192 0169 00 ba1: nop ;1

193 016A DAFD djnz R2,ba1 ;2

194 016C D9F9 djnz R1,aa2 ;2

195 016E 22 ret

196 ;===========================================

197 016F TXCOM: ; ПЕРЕДАЧА ИЗ 'A' В com

198 016F F599 mov SBUF,A ; БАЙТ ИЗ АКК В БУФЕР ПЕРЕДАТЧИКА

199 0171 3099FD tx1: jnb TI,tx1 ; ждем окончания передачи

200 0174 C299 clr TI

201 0176 22 ret

202 ;=========================================================

203 0177 end


Errors: None #######

Bytes: 339 # bbb #



CRC: 6EE8 #######




Прямо трудно поверить, как прекрасно можно обходиться без изобретений 2500 года! Курт Тухольский
ещё >>