KIỂM TRA TN VI XỬ LÝ 2021
HỌ VÀ TÊN :
MSSV:
NHÓM : L01
TỔ:
ĐỀ THI:
CẤU 1: VIẾT CHƯƠNG TRÌNH TẠO XUNG 1 HZ TẠI CHÂN P1.0. DÙNG VÒNG LẶP
CÂU 2 :VIẾT CHƯƠNG TRÌNH XUẤT HÀNG CHỮ “ GOOGBYE COVID 19” LÊN HÀNG THỨ NHẤT CỦA LCD
VÀ XUỐNG HÀNG ĐẶT CON TRỎ Ở ĐẦU DỊNG THỨ 2.
CÂU 3 :VIẾT CHƯƠNG TRÌNH XUẤT CHUỖI KÝ TỰ “HELLO”RA CỔNG NỐI TIẾP . TỐC ĐỘ TRUYỀN
( BAUD RATE) 19200 Ở CHẾ ĐỘ UART 8 BIT.KHI P1.0 ĐƯỢC ẤN.
CÂU 4 : Chương trình sau để xuất các giá trị 3456 ra 4 LED 7 đoạn
ORG 0000H
LOOP:
LAP:
MOV A,#0
MOV R7,A
MOV DPTR,#LAP
MOVC A,@A+DPTR
MOV DPTR,#6000H
MOVX @DPTR,A
MOV A,R7
INC A
ACALL DELAY_3MS
CJNE A,#4,LAP
SJMP LOOP
TABLE:
DB
73H,54H,085H,0E6H
DELAY_3MS:
MOV TMOD,#01H
MOV TH0,#HIGH(-30000)
MOV TL0,#LOW(-30000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
END
Chương trình chạy chưa đúng. Hãy tìm ra chỗ sai và sửa lại. Giải thích
(u cầu: Khoanh lại hàng lệnh làm cho chương trình bị sai trong đoạn chương trình trên)
CÁC BẠN LÀM BÀI XUỐNG BÊN DƯỚI , ĐƯỢC SỬ DỤNG BẢNG TÓM TẮT CỦA CHIP 8051 VÀ CT LCD. A 51
CÂU 1:
ORG 2000H
MAIN:MOV R5,#4
DL2: MOV R6,#250
DL1: MOV R7,#250
DJNZ R7, $
DJNZ R6,DL1
DJNZ R5,DL2
CPL P1.0
SJMP MAIN
END
CÂU 2 :
LCD_E BIT P3.3
LCD_RS BIT P3.5
LCDADDR EQU 6000H
ORG 2000H
MAIN:
MOV @R0, 30H
MOV DPTR, #LCDADDR
ACALL CLEAR
ACALL INIT_LCD
ACALL DISPLAYSTRING
MOV A,#0C0H
ACALL WRITECOM
SJMP $
INIT_LCD:
MOV A, #38H
ACALL WRITECOM
MOV A, #0EH
ACALL WRITECOM
MOV A, #06H
ACALL WRITECOM
RET
CLEAR:
MOV A, #01H
ACALL WRITECOM
RET
WRITECOM:
CLR LCD_RS
MOV DPTR, #LCDADDR
MOVX @DPTR, A
SETB LCD_E
CLR LCD_E
ACALL WAIT_LCD
RET
WRITETEXT:
MOV DPTR, #LCDADDR
SETB LCD_RS
MOVX @DPTR, A
SETB LCD_E
CLR LCD_E
ACALL WAIT_LCD
RET
DISPLAYSTRING:
MOV A, #0
LOOP:
MOV DPTR, #MESSAGE
MOV R0, A
MOVC A, @A+DPTR
JZ EXIT
ACALL WRITETEXT
MOV A, R0
INC A
DJNZ B, LOOP
EXIT:
RET
WAIT_LCD:
MOV R6, #10
DL1:
MOV R7, #250
DJNZ R7, $
DJNZ R6, DL1
;delay 5ms
RET
MESSAGE:
DB "GOODBYE COVID 19",0
END
CÂU 3:
ORG 2000H
MOV DPTR,#TABLE
MOV SCON,#01000010B
MOV TMOD,#20H
MOV TH1,#(-3)
MOV TL1,TH1
MOV PCON,#80H
SETB TR1
LOOP: MOV R1,#0
LAP: CLR TI
MOV A,R1
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI, $
INC R1
CJNE R1,#6,LAP
L:
JNB P1.0,NEXT
SJMP L
NEXT: MOV R5,#4
AY:
MOV R7,#250
AX:
MOV R6,#250
DJNZ R6,$
DJNZ R7,AX
DJNZ R5,AY
SJMP LOOP
TABLE: DB 'HELLO',0
END
CÂU 4:
ORG 0000H
LOOP:
LAP:
MOV A,#0
MOV R7,A
MOV DPTR,#TABLE ; #TABLE để truy xuất bảng, #LAP khơng có nghĩa
MOVC A,@A+DPTR
MOV DPTR,#0000H
MOVX @DPTR,A
MOV A,R7
INC A
ACALL DELAY_3MS
CJNE A,#4,LAP
SJMP LOOP
TABLE:
DB
73H,0B4H,0D5H,0E6H ; LẦN LƯỢT 4 BIT CAO LÀ VỊ TRÍ LED, 4
BIT THẤP HIỆN SỐ
DELAY_3MS:
MOV TMOD,#01H
MOV TH0,#HIGH(-3000) ; 3.103 =3000
MOV TL0,#LOW(-3000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
END
-
-
-