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




Скачать 84.67 Kb.
НазваниеКурсовая работа по дисциплине «Микпропроцессорные системы»
Дата публикации07.04.2013
Размер84.67 Kb.
ТипКурсовая
odtdocs.ru > Литература > Курсовая
Московский государственный институт электроники и математики

(технический университет)
Кафедра ИКТ

Курсовая работа

по дисциплине

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

Выполнила:

Студентка группы С-75

Старухина Е. В.

Проверил:

Преподаватель

Гудков Ю. И.

Москва 2011 г.

Аннотация


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


Оглавление

Аннотация 2

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

Анализ технического задания 4

Алгоритм основной программы 5

Алгоритм обработчика прерываний по COM-порту 6

Алгоритм обработчика прерываний по таймеру T0 6

Алгоритм основной функции 7

Алгоритм вывода результата 8

Заключение 9

Список литературы 10

Приложение 11


^

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


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

  1. при нажатии на клавиатуру ПК счетчик сбрасывается;

  2. вывод на терминал осуществляется в виде строк, изменяется в которых только число нажатий;
^

Анализ технического задания


Для выполнения требований данного технического задания необходимо осуществить опрос матричной клавиатуры. Для этого может быть использован порт P1. Для реализации сброса счетчика при нажатии на клавиатуру ПК возможно использование прерываний последовательного порта. Кроме того, потребуется вывод строковых констант и значений переменных на терминал, реализуемый с помощью порта SBUF. Все эти функции могут быть реализованы на микропроцессоре Intel 8051.

В основной программе производится инициализация строковых констант, описывающих выводимое значение (Key X pressed (times): 0), а также присвоение счетчикам нажатий на клавиши нулевых значений. После этого программа переходит в режим «холостого хода» и обрабатывает прерывания таймера или COM-порта.
^

Алгоритм основной программы






Алгоритм обработчика прерываний по COM-порту






^

Алгоритм обработчика прерываний по таймеру T0





Алгоритм основной функции





^

Алгоритм вывода результата





Заключение


При выполнении данной работы был запрограммирован контроллер 51 серии на выполнение подсчета нажатий матричной клавиатуры. В работе были использованы прерывания по последовательному порту и таймеру T0, также вывод символов и массивов символов через последовательный порт на терминал.
^

Список литературы


  1. Описание команд процессора 8051

  2. Материалы статей http://digital.sibsutis.ru/content.htm

Приложение


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

# #

# Micro Series 8051 Assembler V1.80/MD2 20/Dec/10 17:52:54 #

# #

# Source = une.s03 #

# List = une.lst #

# Object = une.r03 #

# Options = #

# #

# (c) Copyright IAR Systems 1985 #

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

1 8000 org 8000h

2 8000 02833F jmp main

3

4 800B org 800Bh

5 800B 02833C jmp keybd

6

7 8023 org 8023h

8 8023 0281D3 jmp clear

9

10 8026 48656C6C str: db 'HelloWorld!', 0

802A 6F576F72

802E 6C642100

11 8032 4B657920 str0: db 'Key 0 pressed (times):',0

8036 30207072

803A 65737365

803E 64202874

8042 696D6573

8046 293A00

12 8049 4B657920 str1: db 'Key 1 pressed (times):',0

804D 31207072

8051 65737365

8055 64202874

8059 696D6573

805D 293A00

13 8060 4B657920 str2: db 'Key 2 pressed (times):',0

8064 32207072

8068 65737365

806C 64202874

8070 696D6573

8074 293A00

14 8077 4B657920 str3: db 'Key 3 pressed (times):',0

807B 33207072

807F 65737365

8083 64202874

8087 696D6573

808B 293A00

15 808E 4B657920 str4: db 'Key 4 pressed (times):',0

8092 34207072

8096 65737365

809A 64202874

809E 696D6573

80A2 293A00

16 80A5 4B657920 str5: db 'Key 5 pressed (times):',0

80A9 35207072

80AD 65737365

80B1 64202874

80B5 696D6573

80B9 293A00

17 80BC 4B657920 str6: db 'Key 6 pressed (times):',0

80C0 36207072

80C4 65737365

80C8 64202874

80CC 696D6573

80D0 293A00

18 80D3 4B657920 str7: db 'Key 7 pressed (times):',0

80D7 37207072

80DB 65737365

80DF 64202874

80E3 696D6573

80E7 293A00

19 80EA 4B657920 str8: db 'Key 8 pressed (times):',0

80EE 38207072

80F2 65737365

80F6 64202874

80FA 696D6573

80FE 293A00

20 8101 4B657920 str9: db 'Key 9 pressed (times):',0

8105 39207072

8109 65737365

810D 64202874

8111 696D6573

8115 293A00

21 8118 4B657920 stra: db 'Key A pressed (times):',0

811C 41207072

8120 65737365

8124 64202874

8128 696D6573

812C 293A00

22 812F 4B657920 strb: db 'Key B pressed (times):',0

8133 42207072

8137 65737365

813B 64202874

813F 696D6573

8143 293A00

23 8146 4B657920 strc: db 'Key C pressed (times):',0

814A 43207072

814E 65737365

8152 64202874

8156 696D6573

815A 293A00

24 815D 4B657920 strd: db 'Key D pressed (times):',0

8161 44207072

8165 65737365

8169 64202874

816D 696D6573

8171 293A00

25 8174 4B657920 stre: db 'Key E pressed (times):',0

8178 45207072

817C 65737365

8180 64202874

8184 696D6573

8188 293A00

26 818B 4B657920 strf: db 'Key F pressed (times):',0

818F 46207072

8193 65737365

8197 64202874

819B 696D6573

819F 293A00

27 0030 i0 equ 30h

28 0031 i1 equ 31h

29 0032 i2 equ 32h

30 0033 i3 equ 33h

31 0034 i4 equ 34h

32 0035 i5 equ 35h

33 0036 i6 equ 36h

34 0037 i7 equ 37h

35 0038 i8 equ 38h

36 0039 i9 equ 39h

37 003A iah equ 3ah

38 003B ibh equ 3bh

39 003C ich equ 3ch

40 003D idh equ 3dh

41 003E ieh equ 3eh

42 003F ifh equ 3fh

43 0040 buff1 equ 40h

44 0043 buff3 equ 43h

45

46 81A2 753000 clrc: mov i0,#0

47 81A5 753100 mov i1,#0

48 81A8 753200 mov i2,#0

49 81AB 753300 mov i3,#0

50 81AE 753400 mov i4,#0

51 81B1 753500 mov i5,#0

52 81B4 753600 mov i6,#0

53 81B7 753700 mov i7,#0

54 81BA 753800 mov i8,#0

55 81BD 753900 mov i9,#0

56 81C0 753A00 mov iah,#0

57 81C3 753B00 mov ibh,#0

58 81C6 753C00 mov ich,#0

59 81C9 753D00 mov idh,#0

60 81CC 753E00 mov ieh,#0

61 81CF 753F00 mov ifh,#0

62 81D2 22 ret

63

64 81D3 clear:

65 81D3 31A2 call clrc

66 81D5 128211 call output

67 81D8 C298 clr RI

68 81DA 32 reti

69

70 81DB print:

71 81DB 7800 mov R0, #0

72 81DD E8 pl: mov A, R0

73 81DE 93 movc A, @A+DPTR

74 81DF 600A jz iret

75 81E1 F599 mov SBUF, A

76 81E3 3099FD jnb TI, $

77 81E6 C299 clr TI

78 81E8 08 inc R0

79 81E9 80F2 jmp pl

80

81 81EB iret:

82 81EB 22 ret

83

84 81EC ascii:

85 81EC 7840 mov R0, #buff1

86 81EE loop:

87 81EE 75F00A mov B, #10d

88 81F1 84 div AB

89 81F2 A6F0 mov @R0, B

90 81F4 08 inc R0

91 81F5 6003 jz loopback

92 81F7 B843F4 cjne R0, #buff3, loop

93 81FA loopback:

94 81FA 18 dec R0

95 81FB E6 mov A, @R0

96 81FC 2430 add A, #30h

97 81FE F599 mov SBUF, A

98 8200 3099FD jnb TI, $

99 8203 C299 clr TI

100 8205 B840F2 cjne R0, #buff1, loopback

101 8208 75990A mov SBUF, #0ah

102 820B 3099FD jnb TI, $

103 820E C299 clr TI

104 8210 22 ret

105

106 8211 output:

107 8211 908032 mov DPTR, #str0

108 8214 31DB call print

109 8216 E530 mov A, i0

110 8218 31EC call ascii

111 821A 908049 mov DPTR, #str1

112 821D 31DB call print

113 821F E531 mov A, i1

114 8221 31EC call ascii

115 8223 908060 mov DPTR, #str2

116 8226 31DB call print

117 8228 E532 mov A, i2

118 822A 31EC call ascii

119 822C 908077 mov DPTR, #str3

120 822F 31DB call print

121 8231 E533 mov A, i3

122 8233 31EC call ascii

123 8235 90808E mov DPTR, #str4

124 8238 31DB call print

125 823A E534 mov A, i4

126 823C 31EC call ascii

127 823E 9080A5 mov DPTR, #str5

128 8241 31DB call print

129 8243 E535 mov A, i5

130 8245 31EC call ascii

131 8247 9080BC mov DPTR, #str6

132 824A 31DB call print

133 824C E536 mov A, i6

134 824E 31EC call ascii

135 8250 9080D3 mov DPTR, #str7

136 8253 31DB call print

137 8255 E537 mov A, i7

138 8257 31EC call ascii

139 8259 9080EA mov DPTR, #str8

140 825C 31DB call print

141 825E E538 mov A, i8

142 8260 31EC call ascii

143 8262 908101 mov DPTR, #str9

144 8265 31DB call print

145 8267 E539 mov A, i9

146 8269 31EC call ascii

147 826B 908118 mov DPTR, #stra

148 826E 31DB call print

149 8270 E53A mov A, iah

150 8272 31EC call ascii

151 8274 90812F mov DPTR, #strb

152 8277 31DB call print

153 8279 E53B mov A, ibh

154 827B 31EC call ascii

155 827D 908146 mov DPTR, #strc

156 8280 31DB call print

157 8282 E53C mov A, ich

158 8284 31EC call ascii

159 8286 90815D mov DPTR, #strd

160 8289 31DB call print

161 828B E53D mov A, idh

162 828D 31EC call ascii

163 828F 908174 mov DPTR, #stre

164 8292 31DB call print

165 8294 E53E mov A, ieh

166 8296 31EC call ascii

167 8298 90818B mov DPTR, #strf

168 829B 31DB call print

169 829D E53F mov A, ifh

170 829F 31EC call ascii

171 82A1 7404 mov A, #04h

172 82A3 75990A a2: mov SBUF, #0ah

173 82A6 3099FD jnb TI, $

174 82A9 C299 clr TI

175 82AB 14 dec A

176 82AC 70F5 jnz a2

177

178

179 82AE 22 ret

180

181 82AF 7590FD smKeyb: mov P1, #0FDh ;1st line

182 82B2 30953C jnb P1.5, inc1

183 82B5 309448 jnb P1.4, inc4

184 82B8 309754 jnb P1.7, inc7

185 82BB 30962E jnb P1.6, inc0

186 82BE 7590FE mov P1, #0FEh ;2nd line

187 82C1 309532 jnb P1.5, inc2

188 82C4 30943E jnb P1.4, inc5

189 82C7 30974A jnb P1.7, inc8

190 82CA 309651 jnb P1.6, incA

191 82CD 7590F7 mov P1, #0F7h ;3d line

192 82D0 309528 jnb P1.5, inc3

193 82D3 309434 jnb P1.4, inc6

194 82D6 309740 jnb P1.7, inc9

195 82D9 309647 jnb P1.6, incB

196 82DC 7590FB mov P1, #0FBh ;4th line

197 82DF 309546 jnb P1.5, incC

198 82E2 309448 jnb P1.4, incD

199 82E5 30974A jnb P1.7, incE

200 82E8 30964C jnb P1.6, incF

201 82EB 22 ret

202

203 82EC 0530 inc0: INC i0

204 82EE 4111 jmp output

205 82F0 22 ret

206 82F1 0531 inc1: INC i1

207 82F3 4111 jmp output

208 82F5 22 ret

209 82F6 0532 inc2: INC i2

210 82F8 4111 jmp output

211 82FA 22 ret

212 82FB 0533 inc3: INC i3

213 82FD 4111 jmp output

214 82FF 22 ret

215 8300 0534 inc4: INC i4

216 8302 4111 jmp output

217 8304 22 ret

218 8305 0535 inc5: INC i5

219 8307 4111 jmp output

220 8309 22 ret

221 830A 0536 inc6: INC i6

222 830C 4111 jmp output

223 830E 22 ret

224 830F 0537 inc7: INC i7

225 8311 4111 jmp output

226 8313 22 ret

227 8314 0538 inc8: INC i8

228 8316 4111 jmp output

229 8318 22 ret

230 8319 0539 inc9: INC i9

231 831B 4111 jmp output

232 831D 22 ret

233 831E 053A incA: INC iah

234 8320 4111 jmp output

235 8322 22 ret

236 8323 053B incB: INC ibh

237 8325 4111 jmp output

238 8327 22 ret

239 8328 053C incC: INC ich

240 832A 4111 jmp output

241 832C 22 ret

242 832D 053D incD: INC idh

243 832F 4111 jmp output

244 8331 22 ret

245 8332 053E incE: INC ieh

246 8334 4111 jmp output

247 8336 22 ret

248 8337 053F incF: INC ifh

249 8339 4111 jmp output

250 833B 22 ret

251

252 833C keybd:

253 833C 51AF call smKeyb

254 ;call output

255 ;mov SBUF, P1

256 ;jnb TI, $

257 ;clr TI

258 ;mov A, i7

259 ;call ascii

260 833E 32 reti

261

262

263

264 833F main:

265 833F C299 clr TI

266 8341 C298 clr RI

267 8343 C2AF clr EA

268 8345 31A2 call clrc

269 8347 5111 call output

270 8349 438901 orl TMOD, #00000001b

271 834C D28C setb TR0

272 834E D2AF setb EA

273 8350 D2A9 setb ET0

274 8352 D2AC setb ES

275 8354 7590F0 mov P1, #0f0h

276 8357 80FE jmp $

277

278 8359 end

Errors: None #######

Bytes: 828 # une #

CRC: B024 #######


Добавить документ в свой блог или на сайт

Похожие:

Курсовая работа по дисциплине “Операционные системы” разработка ролевой компьютерной игры
Данная курсовая работа посвящена разработке компьютерной игры на движке «rpg maker xp», включая, в частности, разработку анимаций...

Курсовая работа по дисциплине “Микропроцессорные системы”
Работа выполняется на системе “прототип” на основе микроконтроллера 51 семейства

Курсовая работа по дисциплине «Микропроцессорные системы»
В данной работе реализован десятиразрядный таймер, используюший прерывания по com-порту и таймеру. Работа выполнена на прототипе

Курсовая работа по дисциплине «Сети ЭВМ и Средства Телекоммуникаций»
Данная курсовая работа посвящена организации потокового вещания видео в браузер средствами html5

Курсовая работа по дисциплине «Сети ЭВМ и Средства Телекоммуникаций»
Данная курсовая работа посвящена организации потокового вещания видео в браузер средствами html5

Курсовая работа по дисциплине «Корпоративные информационные системы»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Курсовая работа по дисциплине «Корпоративные информационные системы»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Курсовая работа по дисциплине «Корпоративные информационные системы»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Курсовая работа по дисциплине «Корпоративные информационные системы»
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

Курсовая работа по дисциплине «Базы данных»
Данная курсовая работа посвящена планировке и разработке бдау (Базе Данных Арбитражного Управляющего, работающей «в веб браузере»)...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница