Скачать 84.67 Kb.
|
Московский государственный институт электроники и математики (технический университет) Кафедра ИКТ Курсовая работа по дисциплине «Микпропроцессорные системы» Выполнила: Студентка группы С-75 Старухина Е. В. Проверил: Преподаватель Гудков Ю. И. Москва 2011 г. АннотацияВ данной работе реализована программа счетчика нажатий на мини-клавиатуру для микроконтроллера 51 семейства, использующая прерывания по COM-порту и таймеру. Работа выполнена на прототипе. Оглавление Аннотация 2 Техническое задание 4 Анализ технического задания 4 Алгоритм основной программы 5 Алгоритм обработчика прерываний по COM-порту 6 Алгоритм обработчика прерываний по таймеру T0 6 Алгоритм основной функции 7 Алгоритм вывода результата 8 Заключение 9 Список литературы 10 Приложение 11 ^ Реализовать счетчик нажатий мини-клавиатуры, удовлетворяющий следующим требованиям:
Для выполнения требований данного технического задания необходимо осуществить опрос матричной клавиатуры. Для этого может быть использован порт P1. Для реализации сброса счетчика при нажатии на клавиатуру ПК возможно использование прерываний последовательного порта. Кроме того, потребуется вывод строковых констант и значений переменных на терминал, реализуемый с помощью порта SBUF. Все эти функции могут быть реализованы на микропроцессоре Intel 8051. В основной программе производится инициализация строковых констант, описывающих выводимое значение (Key X pressed (times): 0), а также присвоение счетчикам нажатий на клавиши нулевых значений. После этого программа переходит в режим «холостого хода» и обрабатывает прерывания таймера или COM-порта. ^ Алгоритм обработчика прерываний по COM-порту![]() ^ ![]() ![]() ![]() ^ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ЗаключениеПри выполнении данной работы был запрограммирован контроллер 51 серии на выполнение подсчета нажатий матричной клавиатуры. В работе были использованы прерывания по последовательному порту и таймеру T0, также вывод символов и массивов символов через последовательный порт на терминал. ^
Приложение################################################################################ # # # 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 | ![]() | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования |
![]() | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | ![]() | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования |
![]() | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования | ![]() | Данная курсовая работа посвящена планировке и разработке бдау (Базе Данных Арбитражного Управляющего, работающей «в веб браузере»)... |