BÀI 1: LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN ......... 3 Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 va hiển thị ra led được nối tại chân P1.7( bit thứ 0 của led thanh BL202) ...................................................................................3 Thí nghiệm 2: Viết chương trình tạo xung vuông 1kHz, chu kỳ nhiệm vụ 50% trên P3.0 .......................................................................................3 BÀI 2: HIỂN THỊ LED 7 ĐOẠN .............................................6 Thí nghiệm 1: Viết chương trình con DisplayLed0 hiển thị lên LED 7 đoạn số 0 bằng giá trị chứa trong thanh ghi R0 ........................................................6 Thí nghiệm 2: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng thời gian 1s ............................................................7 BÀI 3: GIAO TIẾP LCD VÀ ADC ............................................8 Thí nghiệm 1: Viết chương trình hiển thị tên sinh viên lên hàng đầu. ............8 Thí nghiệm 2: Viết chương trình hiển thị điện áp đo được lên LCD. .............12 BÀI 4: LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT ............15 Thí nghiệm 1:Viết chương trình tạo song vuông 1Hz trên chân P1.0 sử dụng timer 0 ở chế độ 1 ....................................................................................15 Thí nghiệm 2: Viết chương trình tạo song vuông 1 Hz trên chân P1.0 sử dụng timer0 ở chế độ 2 ...................................................................................16 Thí nghiệm 3: 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 SW310 (gắn vào P1.0) được nhấn .........................................................................................17BÀI 1: LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN ......... 3 Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 va hiển thị ra led được nối tại chân P1.7( bit thứ 0 của led thanh BL202) ...................................................................................3 Thí nghiệm 2: Viết chương trình tạo xung vuông 1kHz, chu kỳ nhiệm vụ 50% trên P3.0 .......................................................................................3 BÀI 2: HIỂN THỊ LED 7 ĐOẠN .............................................6 Thí nghiệm 1: Viết chương trình con DisplayLed0 hiển thị lên LED 7 đoạn số 0 bằng giá trị chứa trong thanh ghi R0 ........................................................6 Thí nghiệm 2: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng thời gian 1s ............................................................7 BÀI 3: GIAO TIẾP LCD VÀ ADC ............................................8 Thí nghiệm 1: Viết chương trình hiển thị tên sinh viên lên hàng đầu. ............8 Thí nghiệm 2: Viết chương trình hiển thị điện áp đo được lên LCD. .............12 BÀI 4: LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT ............15 Thí nghiệm 1:Viết chương trình tạo song vuông 1Hz trên chân P1.0 sử dụng timer 0 ở chế độ 1 ....................................................................................15 Thí nghiệm 2: Viết chương trình tạo song vuông 1 Hz trên chân P1.0 sử dụng timer0 ở chế độ 2 ...................................................................................16 Thí nghiệm 3: 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 SW310 (gắn vào P1.0) được nhấn .........................................................................................17BÀI 1: LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN ......... 3 Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 va hiển thị ra led được nối tại chân P1.7( bit thứ 0 của led thanh BL202) ...................................................................................3 Thí nghiệm 2: Viết chương trình tạo xung vuông 1kHz, chu kỳ nhiệm vụ 50% trên P3.0 .......................................................................................3 BÀI 2: HIỂN THỊ LED 7 ĐOẠN .............................................6 Thí nghiệm 1: Viết chương trình con DisplayLed0 hiển thị lên LED 7 đoạn số 0 bằng giá trị chứa trong thanh ghi R0 ........................................................6 Thí nghiệm 2: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng thời gian 1s ............................................................7 BÀI 3: GIAO TIẾP LCD VÀ ADC ............................................8 Thí nghiệm 1: Viết chương trình hiển thị tên sinh viên lên hàng đầu. ............8 Thí nghiệm 2: Viết chương trình hiển thị điện áp đo được lên LCD. .............12 BÀI 4: LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT ............15 Thí nghiệm 1:Viết chương trình tạo song vuông 1Hz trên chân P1.0 sử dụng timer 0 ở chế độ 1 ....................................................................................15 Thí nghiệm 2: Viết chương trình tạo song vuông 1 Hz trên chân P1.0 sử dụng timer0 ở chế độ 2 ...................................................................................16 Thí nghiệm 3: 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 SW310 (gắn vào P1.0) được nhấn .........................................................................................17BÀI 1: LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN ......... 3 Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 va hiển thị ra led được nối tại chân P1.7( bit thứ 0 của led thanh BL202) ...................................................................................3 Thí nghiệm 2: Viết chương trình tạo xung vuông 1kHz, chu kỳ nhiệm vụ 50% trên P3.0 .......................................................................................3 BÀI 2: HIỂN THỊ LED 7 ĐOẠN .............................................6 Thí nghiệm 1: Viết chương trình con DisplayLed0 hiển thị lên LED 7 đoạn số 0 bằng giá trị chứa trong thanh ghi R0 ........................................................6 Thí nghiệm 2: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng thời gian 1s ............................................................7 BÀI 3: GIAO TIẾP LCD VÀ ADC ............................................8 Thí nghiệm 1: Viết chương trình hiển thị tên sinh viên lên hàng đầu. ............8 Thí nghiệm 2: Viết chương trình hiển thị điện áp đo được lên LCD. .............12 BÀI 4: LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT ............15 Thí nghiệm 1:Viết chương trình tạo song vuông 1Hz trên chân P1.0 sử dụng timer 0 ở chế độ 1 ....................................................................................15 Thí nghiệm 2: Viết chương trình tạo song vuông 1 Hz trên chân P1.0 sử dụng timer0 ở chế độ 2 ...................................................................................16 Thí nghiệm 3: 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 SW310 (gắn vào P1.0) được nhấn .........................................................................................17
Trang 1ĐẠI HỌC BÁCH KHOA TP HỒ CHÍ MINH
KHOA ĐIỆN ĐIỆN TỬ
- -
BÁO CÁO THÍ NGHIỆM
VI XỬ LÝ GVHD: VŨ QUANG THỜI
Sinh viên thực hiện: Hồ Hoàng Thi
MSSV : 1513157
Nhóm : 8
Buổi học: Thứ sáu, tiết 2-5
Tp.Hồ Chí Minh, ngày 10 tháng 5 năm 2019
Trang 2MỤC LỤC
BÀI 1: LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN ……… 3
Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 va hiển thị ra led được nối tại chân P1.7( bit thứ 0 của led thanh BL202) ……… 3
Thí nghiệm 2: Viết chương trình tạo xung vuông 1kHz, chu kỳ nhiệm vụ 50% trên P3.0 ………3
BÀI 2: HIỂN THỊ LED 7 ĐOẠN ………6
Thí nghiệm 1: Viết chương trình con DisplayLed0 hiển thị lên LED 7 đoạn số 0 bằng giá trị chứa trong thanh ghi R0 ……… 6
Thí nghiệm 2: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng thời gian 1s ………7
BÀI 3: GIAO TIẾP LCD VÀ ADC ……… 8
Thí nghiệm 1: Viết chương trình hiển thị tên sinh viên lên hàng đầu …………8 Thí nghiệm 2: Viết chương trình hiển thị điện áp đo được lên LCD ………….12
BÀI 4: LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT …………15
Thí nghiệm 1:Viết chương trình tạo song vuông 1Hz trên chân P1.0 sử dụng timer 0 ở chế độ 1 ………15 Thí nghiệm 2: Viết chương trình tạo song vuông 1 Hz trên chân P1.0 sử dụng timer0
ở chế độ 2 ……… 16 Thí nghiệm 3: 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 SW310 (gắn vào P1.0) được nhấn ……… 17
Trang 3BÀI 1: LẬP TRÌNH GIAO TIẾP PHÍM ĐƠN VÀ LED ĐƠN
Thí nghiệm 1: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 va hiển thị ra led được nối tại chân P1.7( bit thứ 0 của led thanh BL202)
CODE:
Thí nghiệm 2: Viết chương trình tạo xung vuông 1kHz, chu kỳ nhiệm vụ 50% trên P3.0
CODE:
ORG 2000H
LOOP: MOV C, P1.0
MOV P1.1, C
SJMP LOOP
END
ORG 2000H
LOOP: SETB P3.0
ACALL DELAY
CLR P3.0
LCALL DELAY1
SJMP LOOP
DELAY: PUSH 07
PUSH 06
PUSH 05
Trang 4
MOV R5,#2
L1_2: MOV R6,#150
L1_1: MOV R7,#250
DJNZ R7,$
DJNZ R6,L1_1
JNZ R5,L1_2
POP 05
POP 06
POP 07
RET
DELAY1: PUSH 07
PUSH 06
PUSH 05
MOV R5,#7
L2_2: MOV R6,#150
L2_1: MOV R7,#250
DJNZ R7,$
DJNZ R6,L1_1
JNZ R5,L1_2
POP 05
POP 06
POP 07
RET
END
Trang 5DELAY1SINS: MOV R5,A
MOV R6,#150
MOV R7,#250
DJNZ R7,$
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
CPL P1.0
RET
END
Trang 6BÀI 2: HIỂN THỊ LED 7 ĐOẠN
Thí nghiệm 1: Viết chương trình con DisplayLed0 hiển thị lên LED 7 đoạn số 0 bằng giá trị chứa trong thanh ghi R0
CODE:
Viết chương trình chính hiển thị số 9 lên LED 7 đoạn số 0 bằng cách cho R0 bằng 9 và gọi chương trình con DisplayLed0
CODE:
ORG 2000H
MOV TMOD, #01H
AGAIN: MOV DPTR, #0000H
MOV A,#71H
MOVX @DPTR, A
LCALL DELAY
SJMP AGAIN
DELAY: MOV TH0, #HIGH(-1000)
MOV TL0, #LOW(-1000)
SETB TR0
JNB TF0, $
CLR TR0
CLR TF0
RET
END
Trang 7Thí nghiệm 2: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng thời gian 1s
CODE:
ORG 2000H
MOV TMOD , #01H
AGAIN: MOV A,#0E4H
MOV A,#71H
MOVX @DPTR, A
LCALL DELAY
SJMP AGAIN
DELAY: MOV TH0, #HIGH(-1000)
MOV TL0, #LOW(-1000)
SETB TR0
JNB TF0, $
CLR TR0
CLR TF0
RET
END
Trang 8ORG 2000H
MOV TMOD, #01H
MOV DPTR, #0000H
AGAIN:
MOV A, #0E0H
NEXT: MOVX @DPTR, A
LCALL DELAY
INC A
CJNE A, #0EAH, NEXT
SJMP AGAIN
DELAY:MOV R7, #40
DELAY1: MOV TH0, #HIGH(-50000)
MOV TL0, #LOW(-50000)
SETB TR0
JNB TF0, $
CLR TR0
CLR TF0
DJNZ R7, DELAY1
RET
END
Trang 9BÀI 3: GIAO TIẾP LCD VÀ ADC
Thí nghiệm 1: Viết chương trình hiển thị tên sinh viên lên hàng đầu
CODE:
ORG 2000H
MOV A,#01H
ACALL WRITE_COMMAND
EN BIT P3.4
RS BIT P3.5
MAIN:MOV DPTR, #8000H
ACALL LCD_INIT
MOV A, #01H
ACALL WRITE_COMMAND
MOV A, #90H
ACALL WRITE_COMMAND
MOV R1, #11
MOV A, #0
PUSH ACC
LOOP: ACALL TRABANG
ACALL WRITE_TEXT
POP ACC
INC A
PUSH ACC
DJNZ R1, LOOP
MOV R1,#27
LOOP1:MOV A, #18H
ACALL WRITE_COMMAND
ACALL DELAY
DJNZ R1,LOOP1
SJMP MAIN
Trang 10TRABANG: MOV DPTR, #TABLE1
MOVC A, @A+DPTR
RET
;========================================
=======================;
LCD_INIT: KHOI DONG LCD
;========================================
=======================;
LCD_INIT:MOV A, #38H
ACALL WRITE_COMMAND
MOV A, #0EH
ACALL WRITE_COMMAND
MOV A, #06H
ACALL WRITE_COMMANDRET
;========================================
=======================;
========================================
=======================; CHO 50MS DE LCD THUC HIEN XONG LENH;===================
========================================
====;
WAIT_LCD: MOV R7, #100
LL1: MOV R6, #250
DJNZ R6, $
DJNZ R7, LL1
RET
;========================================
=======================;
DELAY: MOV R5, #20
LLL1: MOV R7, #10
LLL2: MOV R6, #250
DJNZ R6, $
DJNZ R7, LLL2
DJNZ R5, LLL1
RET
Trang 11; TRUYEN DU LIEU CHO LCD - RS=1
;====================================
===========================
WRITE_TEXT: MOV DPTR, #8000H
LCALL WAIT_LCD
SETB RS
MOVX @DPTR, A
SETB EN
CLR EN
RET
;====================================
===========================; TRUYEN L
ENH CHO LCD - RS=0
;====================================
===========================
WRITE_COMMAND:MOV DPTR, #8000H
LCALL WAIT_LCD
CLR RS
MOVX @DPTR, A
SETB EN
CLR EN
RET
;====================================
===========================
TABLE1:DB ‘HO HOANG THI’
END
Trang 12Thí nghiệm 2: Viết chương trình hiển thị điện áp đo được lên LCD
CODE:
ORG 2000H
MAIN: ACALL LCD_INIT
MOV TMOD,#21H
LOOP:MOV DPTR,#4000H
MOV A,#0
MOVX @DPTR,A
ACALL DELAY100US
MOVX A,@DPTR
ACALL BINTOASCII
ACALL CLR_LCD
MOV A,R4
ACALL WRITE_TEXT
AMOV A,R3
ACALL WRITE_TEXT
MOV A,R2
ACALL WRITE_TEXT
ACALL DELAY3MS
ACALL DELAY3MS
SJMP LOOP
DELAY100US: MOV TH1,#-100
MOV TL1,#-100
SETB TR1
JNB TF1,$
CLR TF1
CLR TR1
RET
BINTOASCII:
Trang 13ACALL DELAY3MS RET
WRITE_TEXT: MOV DPTR,#8000H SETB P3.4
SETB P3.5 MOVX @DPTR,A CLR P3.4CALL DELAY3MS RET
CLR_LCD:MOV DPTR,#8000H SETB P3.4
CLR P3.5 MOV A,#01H MOVX @DPTR,A CLR P3.4
ACALL DELAY3MS RET
END
Trang 14BÀI 4: LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL
PORT
Thí nghiệm 1:
Viết chương trình tạo song vuông 1Hz trên chân P1.0 sử dụng timer 0 ở chế độ 1
CODE:
ORG 2000H LOOP: CPL P1.0 ACALL DL500 SJPM LOOP DL500: MOV TMOD, #01H PUSH 05
MOV R5, #10 LOOP1: MOV TH0, #HIGH(-50000) MOV TL0, #LOW(-50000)
SETB TR0 JNB TF0, $ CLR TF0 CLR TR0 DJNZ R5, LOOP POP R5
RET END
Trang 15Thí nghiệm 2: Viết chương trình tạo song vuông 1 Hz trên chân P1.0 sử dụng timer0 ở chế độ 2
CODE:
ORG 2000H
LJMP MAIN
ORG 200BH
INC R5
CJNE R5, #10, ISRT0
MOV R5, #1
CPL P1.0
ISRT0: CLR TR0
CLR TF0
MOV TH0, #HIGH(-50000)
MOV TL0, #LOW(-50000)
SETB TR0
RETI
ORG 2030H
MAIN: MOV TMOD ,#01H
SETB TF0
MOV IE, #82H
SJMP $
END
Trang 16Thí nghiệm 3: 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 SW310 (gắn vào P1.0) được nhấn
CODE:
ORG 2000H
MOV SCON,#52H
MOV TMOD,#20H
MOV TH1,#-3
SETB TR1
MOV R7,#11
MOV A,#0
PUSH ACC
LOOP: MOV DPTR, #TABLE
MOVC A, @A+DPTR
CALL OUT_CHAR
POP ACC
INC ACC
PUSH ACC
DJNZ R7, LOOP
SJMP $
OUT_CHAR: JNB TI, $
CLR TI
MOV SBUF, A
RET
TABLE:DB 'Hello world'
END