Приклад програми для лабораторної роботи №6
Приклад програми для лабораторної роботи №6 Під час руху джойстика запалюється точка на матриці світлодіодів. ADCCON1 DATA 0EFH ; ADC CONTROL ADCCON2 DATA 0D8H ; ADC CONTROL ADCDATAL DATA 0D9H ; ADC DATA LOW BYTE ADCDATAH DATA 0DAH ; ADC DATA HIGH BYTE ADCI BIT 0DFH ; ADCCON2. 7 - ADC INTURRUPT FLAG SCONV BIT 0DCH ; ADCCON2. 4 - SINGLE CONVERSION ENABLE ; DACCON DATA 0FDH; DAC CONTROL REGISTER ; CFG841 DATA 0AFH; GENERAL FLASH/PWM CONTROL REGISTER dat EQU R0 adr EQU R1 Temp1 EQU R2 Temp2 EQU R3 dat1 EQU R4 Segm EQU 0x02 CSEG ORG 0x0000 jmp begin ORG 0x0033 begin: mov p1, 0xFF mov ADCCON1, #0ECh call off mov TCON, #11111111b mov TMOD, #11001100b beg1: call diagonal jmp beg1 vboky: vbik1: call rezult1 cjne R5, #00000000b, vbik2 cjne R7, #00001110b, vboky mov dat1, #00010000b jmp vbokend vbik2: call rezult1 cjne R5, #01001001b, vbik3 cjne R7, #00001001b, vboky mov dat1, #00001000b jmp vbokend vbik3: call rezult1 cjne R5, #00001000b, vbik4 cjne R7, #00000111b, vboky mov dat1, #00000100b jmp vbokend vbik4: call rezult1 cjne R5, #10010010b, vbik5 cjne R7, #00000100b, vboky mov dat1, #00000010b jmp vbokend vbik5: call rezult1 cjne R5, #00000000b, vbik1 cjne R7, #00000000b, vboky mov dat1, #00000001b jmp vbokend vbokend: ret diagonal: ; JB p3. 2, diagonal ; call vboky run: kavalok1: call rezult2 cjne R5, #00000000b, kavalok2 cjne R6, #00000000b, run call vboky call lampa1 kavalok2: call rezult2 cjne R5, #01001001b, kavalok3 cjne R6, #00000010b, run call vboky call lampa2 kavalok3: call rezult2 cjne R5, #10010010b, kavalok4 cjne R6, #00000100b, run call vboky call lampa3
kavalok4: call rezult2 cjne R5, #00001000b, kavalok5 cjne R6, #00000111b, run call vboky call lampa4 kavalok5: call rezult2 cjne R5, #01001001b, kavalok6 cjne R6, #00001001b, run call vboky call lampa5 kavalok6: call rezult2 cjne R5, #01110111b, kavalok7 cjne R6, #00001010b, run call vboky call lampa6 kavalok7: call rezult2 cjne R5, #00000000b, kavalok1 cjne R6, #00001110b, run call vboky call lampa7 jmp run ret rezult1: mov ADCCON2, #6h clr ADCI setb SCONV jnb ADCI, $ mov b, adcdatal mov a, adcdatah clr acc. 7 clr acc. 6 clr acc. 5 clr acc. 4 mov Tl0, b mov TH0, a mov R5, TL0 mov R7, Th0 ret rezult2:
mov ADCCON2, #7h clr ADCI setb SCONV jnb ADCI, $ mov b, adcdatal mov a, adcdatah clr acc. 7 clr acc. 6 clr acc. 5 clr acc. 4 mov Tl1, b mov TH1, a mov R5, TL1 mov R6, Th1 ret lampa7: mov dat, #10111111b mov adr, #00000101b call strob ; mov dat, #00000100b mov adr, #00000110b call strob1 ret lampa6: mov dat, #11011111b mov adr, #00000101b call strob ; mov dat, #00000100b mov adr, #00000110b call strob1 ret lampa5: mov dat, #11101111b mov adr, #00000101b call strob ; mov dat, #00000100b mov adr, #00000110b call strob1 ret lampa4: mov dat, #11110111b mov adr, #00000101b call strob ; mov dat, #00000100b mov adr, #00000110b call strob1 ret lampa3: mov dat, #11111011b mov adr, #00000101b call strob ; mov dat, #00000100b mov adr, #00000110b call strob1 ret lampa2: mov dat, #11111101b mov adr, #00000101b call strob ; mov dat, #00000100b mov adr, #00000110b call strob1 ret lampa1: mov dat, #11111110b mov adr, #00000101b call strob ; mov dat, #00000100b mov adr, #00000110b call strob1 ret off: mov dat, #11111111b mov adr, #00000101b call strob ; mov dat, #00000000b mov adr, #00000110b call strob1 ret strob: setb P3. 6 mov P0, dat mov P2, adr mov P2, #0x00 ret strob1: setb P3. 6 mov P0, dat1 mov P2, adr mov P2, #0x00 ret Delay: mov Temp1, #0xFF loop: dec Temp1 mov Temp2, #0xFF djnz Temp2, $ cjne Temp1, #0x00, loop ret Ldelay: call delay call delay call delay call delay call delay call delay call delay call delay call delay call delay
RET END
Варіанти індивідуальних завдань
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|