Báo cáo thí nghiệm bài 3 THÍ NGHIỆM I: Mục tiêu: Nắm được cách thức đi khiéh serial port... Yêu c3: Viết chương trình nhận các ký tự từ máy tính gửi đến EME-MCS thông qua chương trình H
Trang 1Báo cáo thí nghiệm bài 3
THÍ NGHIỆM I:
Mục tiêu: Nắm được cách thức đi khiéh serial port
Yêu c3:
H Viết chương trình phát chuỗi ký tự “Hello world!!!” lên máy tính thông qua HyperTerminal với tốc độ baud 19200 bps mỗi khi SW 310 (gắn vào P1.0) được
nhấn
ORG 2000H
LAP:
LA:
NEXT:
AY:
AX:
MOV DPTR#TABLE
MOV R1,#0
MOV SCON,#01000010B
MOV TMOD #20H
MOV TH 1 #(-3)
SETB TRI
CLR TI
MOV A,RI1
MOVC A,@A+DPTR
MOV SBUFA
JNB TI, LA
JNB P1.0,NEXT
SJMPL
MOV R54
MOV R7,#255
DINZ R6$
DINZ R7,AX DJINZ R5,AY INC R1 CJNE R1#11,LAP SIMP $ TABLE: DB "HELLO WORLD"
END
Trang 2
mm
THÍ NGHIỆM 2:
Mục tiêu: Nắm được cách thức đi khiéh serial port
Yêu c3: Viết chương trình nhận các ký tự từ máy tính gửi đến EME-MCS thông qua chương trình Hercules (bằng cách gõ các ký tự trên bàn phím khi đang ở trong chương trình Hercules) Kí tự nhận được sẽ hiển thị lên LCD tại vị trí cột 0 hàng 0 va ding thời phát trở lai serial port
MAIN:
Trang 3MOV DPTR, #LCDADDR
ACALL CLEAR
ACALL INIT_LCD
MOV SCON,#01010000B
MOV TMOD,#20H
MOV THI #(-3)
SETB TRI
L:
JNB RIL
CLR RI
MOV A,SBUF
ACALL WRITETEXT
SJMPL
INHT LCD:
MOV A, #38H
ACALL WRITECOM
MOV A, #0EH
ACALL WRITECOM
MOV A, #06H
ACALL WRITECOM
RET
CLEAR:
MOV A, #01H
WRITECOM:
MOV DPTR, #LCDADDR SETB LCD E
CLR LCD RS MOVX @DPTR,A CLR LCD_E ACALL WAIT_LCD RET
WRITETEXT:
MOV DPTR, #LCDADDR SETB LCD E SETB LCD_RS MOVX @DPTR,A CLR LCD E ACALL WAITT LCD RET
WAIT_LCD:
DLI:
MOV R6Z10
MOV R7, #250 DINZ R7,$
DJNZ R6,DL1 RET END
Trang 4Kiểm tra:
Biên dịch và kiểm tra hoạt động của chương trình
| BAI HOC BACH KHOA TP.HO CHI MINH j
>
THÍ NGHIỆM 3:
Yêu c3:
Viết chương trình nhận các ký tự từ máy tính gửi đến EME-MCS thông qua cương trình Hercules (bằng cách gõ các ký tự trên bàn phím khi đang ở trong chương trình Hercules) và hiển thị lên LCD theo nguyên tắc sau:
- Nếu ký tự là chữ thì hiển thị lên LCD
- Enter thì xuống hàng
- ESC thì xóa màn hình LCD
- Backspace thi xóa ký tự bên trái dấu nháy
LCD_RS BỊ P3.5 MOV DPTR, #LCDADDR
Trang 5MOV THI #(-3)
SETB TRI
L:
JNB RIL
CLR RI
MOV A,SBUF
CINE A,#1BH,EX
ACALL CLEAR
SJMP L
EX:
CINE A,#13,EX2
MOV A,#0COH
ACALL WRITECOM
SJMP L
EX2:
CINE A,#8,EX3
MOV A,#10H
ACALL WRITECOM
MOV A,#20H
ACALL WRITETEXT
MOV A,#10H
ACALL WRITECOM
SJMP L
EX3:
ACALL WRITETEXT
SJMP L
INIT_LCD:
MOV A,#38H
ACALL WRITECOM
MOV A, #06H ACALL WRITECOM RET
CLEAR:
MOV A, #01H ACALL WRITECOM RET
WRITECOM:
MOV DPTR, #LCDADDR SETB LCD E
CLR LCD RŠS MOVX @DPTR,A CLR LCD E ACALL WAITT LCD RET
WRITETEXT:
MOV DPTR,#LCDADDR SETB LCD E
SETB LCD_RS MOVX @DPTR,A CLR LCD E ACALL WAITT LCD RET
WAIT_LCD:
DLI:
MOV R6Z10
MOV R7, #250 DINZ R7,$
DJNZ R6,DL1 RET END
Trang 6H Biên dịch và kiểm tra hoạt động của chương trình
THÍ NGHIỆM 4:
Yêu c3: Viết chương trình làm song song 2 công việc sau:
- Nhận 1 byte tử máy tính và xuất ngược lại (echo) lên màn hình Hercules
- Bật LED gắn vào PI.I khi SW 317 (gắn vào P1.0) được nhấn, và tắt LED khi phím được nhả
MAIN:
ORG 0000H
LIMP MAIN
ORG 0023H
LJMP ISR_SERIAL
MOV TMOD #20H
MOV TH1 #-3
SETB TRI
MOV SCON,#01010010B
MOV IE,#10010000B
TAT:
JB P1.0,TAT CLR PI.1 SJMPD SETB PI.1 SJMPD ISR_SERIAL:
JNB RLNEXT CLR RI MOV A,SBUE MOV SBUF,A SIMP OUT
Trang 7CLR TI END
Trang 8Biên dịch và kiểm tra hoạt động của chương trình
BỘ MÔN KỸ THUẬT ĐIỆN uid
ĐẠI HOC BACH KHOA TP.HO CHi MINH
Trang 9THÍ NGHIỆM 5:
Yêu cầ:
Viết chương trình hiển thị lên 4 LED 7 đoạn một số có 4 chữ số, 4 ký số này chứa trong các ô nhớ 20H, 21H, 22H và 23H Ô nhớ 20H chứa số hàng nghìn
LJMP MAIN
CJNE R7#1,NEXT2 MOVC A,@A+DPTR
MOV R1 21H TABLE: DB OEOH, ODOH, OBOH , 70H
NEXT3S:
Trang 10Biên dịch và kiểm tra hoạt động của chương trình
BO MON KY THUAT ĐIỆN TL
PAI HOC
BACH tL EA the be) NH
Trang 11THÍ NGHIỆM 6:
Yêu c3: Viết chương trình đếm số l3 nhấn phím SW317, hiển thị lên 4 LED 7 đoạn
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ISR_TO
ORG 0030H
MAIN:
MOV TMOD #01H
SETB TFO
MOV R7,#0
MOV IE,#S2H
MOV 23H,#1
MOV 22H,#0
MOV 21H,#0
MOV 20H,#0
LAP:
JB P1.0,TTEP
INC 23H
MOV R2,23H
CINE R2,#10,TIEP
MOV 23H,#0
INC 22H
MOV R2,22H
CINE R2,#10,TIEP
TIEP:
DINZ R4,$
MOV 22H.#0 INC 21H MOV R2,21H CJNE R2,#10,TIEP MOV 23H.#0 MOV 22H.#0 MOV 21H.#0 INC 20H
MOV R5,#250
MOV R4,#250
DINZ R5,L SJIMP LAP ISR_TO:
CJNE R7,#0,NEXT 1 MOV R1,23H SIMP TT NEXTI:
CJINER7#1.NEXT2 MOYV RI22H SJMPTT NEXT2:
Trang 12MOV R1,21H
SJMP TT
NEXT3:
MOV R1,20H
TT:
LCALL DISPLAYLED
INC R7
CJNE R7,#4,RUN
MOV R7,#40
RUN:
CLR TRO
MOV THO #HIGH(-9216)
SETB TRO RETI DISPLAYLED:
MOV A,R7 MOV DPTR#TABLE MOVC A,@A+DPTR ADDA.RI MOV DPTR,#0000H MOVX @DPTRA RET
TABLE: DB OEOH ODOH OBOH 70H END
Trang 13Kiểm tra:
Biên dịch và kiểm tra hoạt động của chương trình
ai MON kỹ THUẬT ĐIỆN TỪ
ĐẠI HỌC BÁCH KHOA TP HO CHI MINH | IIIl
THÍ NGHIỆM 7:
Yêu cầ:
Viết chương trình thực hiện đ “ng h ôbấm giây, hiển thị lên LED 7 đoạn Hai LED 3 và
2 thể hiện số giây, 2 LED I và 0 thể hiện phần trắm của giây
- Khi SW3 I0 nhấn, đông h Greset v €0
- Khi SW 311 nhấn, đ ng h ồbắt đần chạy
- Khi SW 312 nhấn, đ ông h ôdừững lại
Trang 14LIMP MAIN
ORG 200BH
LJMP ISR_TO
ORG 2030H
MAIN:
MOV TMOD,#01H
SETB TFO
MOV R7,#0
MOV IE.#82H
RE:
MOV 23H.#0
MOV 22H.#0
MOV 21H.#0
MOV 20H,#0
START:
JNB PI.2, RE; PI.2
RESET
JB P1.0, START; P1.0
START
LAP:
JNB P1.2, RE
JB P1.1, LA; P1.1 STOP
SJMP START
LA:
INC 23H
MOV R2,23H
CINE R2,#10,TIEP
MOV 23H.#0
INC 22H
MOV R2,22H
CJNE R2,#10,TIEP
MOV 22H,#0 INC 21H MOV R2,21H CJNE R2,#10,TIEP MOV 23H,#0 MOV 22H,#0 MOV 21H,#0 INC 20H TIEP:
MOV R5,#20
MOV R4,#250 DINZ R4,$ DINZ R5,L SJMP LAP ISR_TO:
CJNE R7,#0,NEXT1 MOV R1,23H SJMP TT
NEXTI:
CJNE R7#1,NEXT2 MOV R1,22H SIMP TT NEXT2:
CJNE R7,#2, NEXT3 MOV R1,21H SIMP TT NEXT3:
MOV R1,20H
TT LCALL DISPLAYLED
Trang 15RUN:
9216)
DISPLAYLED:
CJNE R7, #4, RUN
MOV R7, #0
CLR TRO
MOV THO, #HIGH(-
MOV TLO, #LOW(-9216)
SETB TRO
MOV DPTR, #TABLE MOVCA, @A+DPTR ADDA,RI MOV DPTR, #0000H MOVX @DPTR,A RET
TABLE: DB 0E0H, 0D0H, 0B0H,
END
Trang 16Biên dịch và kiểm tra hoạt động của chương trình
BO MON K¢
Qo T HOC BAc; THUAT ĐIỆN Tử
eles Bios!