More than Just Lines on a Map: Best Practices for U.S Bike Routes
Chuong trinh vdk tong hop1
1. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 1
;**************************************************************************
3. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 3
4. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 4
CHƯƠNG TRÌNH CHẠY HAI CHẾ ĐỘ AUTO VÀ HANDDY
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR P1.3
CLR P1.1
MOV TGA,#20
MOV TGB,#17
SETB P1.0
SETB P1.5
;==============================
LAPXB:
JNB P3.0,DAXB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
DJNZ TGB,LAPXB
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR P1.5
SETB P1.4
MOV TGB,#3
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
5. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 5
DJNZ TGB,LAPVB
;=============================================
; Xanh A va Do B sang
;*************************************************
XADB_AUTO:
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#26
MOV TGB,#30
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY ; neu p3.0 o muc thap (0) thi chay Handdy
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay AuTo
DEC TGB
DJNZ TGA,LAPXA
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR P1.2
SETB P1.1
MOV TGA,#4
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY ;|| neu p3.0 o muc cao (1) thi chay Auto
CALL DELAY1S ;|| con p3.0 o muc thap (0) thi chay Handdy
DEC TGB
DJNZ TGA,LAPVA
LJMP MAIN
;************************************************************
HANDDY:
;============================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB P1.0 ;Do A sang
SETB P1.5 ; Xanh B sang
CLR P1.3 ;Tat Do B
CLR P1.4 ;Tat Vang B
CLR P1.2 ;Tat Xanh A
JB P3.0,DAXB_AUTO ;||=>neu p3.0 = 0 thi Chay Handdy
JB P3.1,DAXB_HANDDY ;||=> neu p3.0 = 1 thi chay AUTO
;|| neu p3.1 = 0 thi nhay XADB_HANDDY
;|| neu p3.1 = 1 thi nhay DAXB_HANDDY
;====================================================================
XADB_HANDDY:
MOV P0,#0FFH
SETB P1.2
SETB P1.3
CLR P1.1
CLR P1.0
CLR P1.5
JB P3.0,XADB_AUTO ; ||=>neu p3.0 = 0 thi Chay Handdy
JNB P3.1,XADB_HANDDY ; ||=>neu p3.0 = 1 thi chay AUTO
JMP DAXB_HANDDY ;|| neu p3.1 = 1 thi nhay DAXB_HANDDY
;|| neu p3.1 = 0 thi nhay XADB_HANDDY
6. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 6
;=============================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#40
LAPDELAY1S:
CALL HIENTHI
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;=======================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
7. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 7
RET
;===================================================
END
;===================================================
*****************************************************************
CHƯƠNG TRÌNH 2:
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
DOA BIT P1.0
VANGA BIT P1.1
XANHA BIT P1.2
DOB BIT P1.3
VANGB BIT P1.4
XANHB BIT P1.5
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR DOB
CLR VANGA
MOV TGA,#20
MOV TGB,#17
SETB DOA
SETB XANHB
;==============================
LAPXB:
JNB P3.0,DAXB_HANDDY ;|| neu p3.0 =1 thi chay Auto
CALL DELAY1S ;|| con p3.0 =0 thi chay Handdy
DEC TGA
8. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 8
DJNZ TGB,LAPXB
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR XANHB
MOV TGB,#3
SETB VANGB
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ;|| neu p3.0 =1 thi chay Auto
CALL DELAY1S ;|| con p3.0 =0 thi chay Handdy
DEC TGA
DJNZ TGB,LAPVB
;=============================================
; Xanh A va Do B sang
;*************************************************
XADB_AUTO:
CLR DOA
CLR VANGB
MOV TGA,#26
MOV TGB,#30
SETB XANHA
SETB DOB
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPXA
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR XANHA
MOV TGA,#4
SETB VANGA
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPVA
LJMP MAIN
;************************************************************
HANDDY:
;============================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB DOA ;Do A sang
SETB XANHB ; Xanh B sang
CLR DOB ;Tat Do B
CLR VANGB ;Tat Vang B
CLR XANHA ;Tat Xanh A
JB P3.0,DAXB_AUTO ; || neu p3.0 = 0 thi Chay Handdy
9. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 9
JB P3.1,DAXB_HANDDY ; || neu p3.0 = 1 thi chay AUTO
;|| =>neu p3.1 = 1 thi nhay DAXB_HANDDY
;|| =>neu p3.1 = 0 thi nhay XADB_HANDDY
;=======================================
XADB_HANDDY:
MOV P0,#0FFH
SETB XANHA
SETB DOB
CLR VANGA
CLR DOA
CLR XANHB ; || neu p3.0 = 1 thi chay AUTO
JB P3.0,XADB_AUTO ; || neu p3.0 = 0 thi Chay Handdy
JNB P3.1,XADB_HANDDY ; || =>neu p3.1 = 1 thi nhay DAXB_HANDDY
JMP DAXB_HANDDY ; || =>neu p3.1 = 0 thi nhay XADB_HANDDY
;=============================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#40
LAPDELAY1S:
CALL HIENTHI
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
10. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 10
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;=======================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;====================================================
**************************************************************
CHƯƠNG TRÌNH CHẠY CHẾ ĐỘ AUTO
;CHUONG TRINH DEN GIAO THONG CHAY AUTO CO HIEN THI THOI GIAN
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
;Chuong trinh chinh
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#0H
MAIN:
MOV TGA,#30
MOV TGB,#25
SETB P1.0
SETB P1.5
;===============================
;Thoi gian cua Do A va Xanh B
LAPXB:
CALL DELAY1S
11. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 11
DEC TGA
DJNZ TGB,LAPXB
CLR P1.5
SETB P1.4
MOV TGB,#5
;==============================
;Thoi gian cua Do A va Vang B
LAPVB:
CALL DELAY1S
DEC TGA
DJNZ TGB,LAPVB
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#18
MOV TGB,#20
;==============================
;Thoi gian cua Do B va Xanh A
LAPXA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPXA
CLR P1.2
SETB P1.1
MOV TGA,#2
;==============================
;Thoi gian cua Do B va Vang A
LAPVA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPVA
CLR P1.1
CLR P1.3
LJMP MAIN
;=================================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
12. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 12
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#40
LAPDELAY1S:
CALL HIENTHI
CALL DELAY40MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY40MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;============================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
**********************************************************
CHƯƠNG TRÌNH HOÀN HIỆN HƠN 1:
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan .
; khi TGA hay TGB nho hon 10 thi chi co LED hang don vi sang
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
13. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 13
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR P1.3 ;Tat Do B
CLR P1.1 ;Tat Vang A
MOV TGA,#20
MOV TGB,#17
MOV R6,#8
SETB P1.0 ; do a sang
SETB P1.5 ; Xanh B Sang
;==============================
LAPXB:
CALL DELAY1S_1
DEC TGA
DEC TGB
JNB P3.0,DAXB_HANDDY ;|| Neu p3.0 = 0 thi chay Handdy
DJNZ R6,LAPXB ;|| con p3.0 = 1 thi chay AUTO
MOV R6,#3
LAPXB1:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_3
DEC TGA
DEC TGB
DJNZ R6,LAPXB1
LAPXB2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGA
DJNZ TGB,LAPXB2
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR P1.5
SETB P1.4
MOV TGB,#3
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ;|| neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S_4 ;|| con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
DJNZ TGB,LAPVB
CALL DELAY1S_4
;=============================================
; Xanh A va Do B sang
14. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 14
;*************************************************
XADB_AUTO:
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#25
MOV TGB,#30
MOV R6,#16 ; THAY DOI KHI TGB VA TGA THAY DOI R6 = TGA - 9
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY ; ||=>neu p3.0 o muc thap (0) thi chay Handdy
CALL DELAY1S_1 ; ||=>con p3.0 o muc cao (1) thi chay AuTo
DEC TGB
DEC TGA
DJNZ R6,LAPXA
MOV R6,#5 ; Thay Doi Khi TGB Va TGA Thay Doi R6 = TGB - TGA.
LAPXA1:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_2
DEC TGA
DEC TGB
DJNZ R6,LAPXA1
LAPXA2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGB
DJNZ TGA,LAPXA2
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR P1.2
SETB P1.1
MOV TGA,#5
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY ;|| neu p3.0 = 1 thi chay Auto
CALL DELAY1S_4 ;|| con p3.0 = 0 thi chay Handdy
DEC TGB
DJNZ TGA,LAPVA
CALL DELAY1S_4
TIEP:
LJMP MAIN
;************************************************************
HANDDY:
;============================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB P1.0 ;Do A sang
SETB P1.5 ; Xanh B sang
CLR P1.3 ;Tat Do B
CLR P1.4 ;Tat Vang B
CLR P1.2 ;Tat xanh A
JB P3.0,TIEP ; || neu p3.0 = 0 thi Chay Handdy
JB P3.1,DAXB_HANDDY ; || neu p3.0 = 1 thi chay AUTO
15. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 15
; ||=> neu p3.1 = 1 thi nhay DAXB_HANDDY
;||=> neu p3.1 = 0 thi nhay XADB_HANDDY
;====================================================================
XADB_HANDDY:
MOV P0,#0FFH
SETB P1.2 ; Xanh A sang
SETB P1.3 ; Do B sang
CLR P1.1 ;Tat vang A
CLR P1.0 ;Tat do A
CLR P1.5 ; Tat Xanh B
JB P3.0,XADB_AUTO ; || neu p3.0 = 0 thi Chay Handdy
;|| neu p3.0 = 1 thi chay AUTO
JNB P3.1,XADB_HANDDY ;||=>neu p3.1 = 1 thi nhay DAXB_HANDDY
JMP DAXB_HANDDY ;||=>neu p3.1 = 0 thi nhay XADB_HANDDY
;=============================================
HIEN_THI1:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI2:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI3:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI4:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
16. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 16
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S_1:
MOV R0,#40
LAPDELAY1S_1:
CALL HIEN_THI1
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_1
RET
;===============================================
DELAY1S_2:
MOV R0,#40
LAPDELAY1S_2:
CALL HIEN_THI2
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_2
RET
;===============================================
DELAY1S_3:
MOV R0,#40
LAPDELAY1S_3:
CALL HIEN_THI3
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_3
RET
;===============================================
DELAY1S_4:
MOV R0,#40
LAPDELAY1S_4:
CALL HIEN_THI4
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_4
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
17. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 17
CLR TF0
RET
;=======================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;******************************************************
CHƯƠNG TRÌNH HOÀN HIỆN HƠN 2:
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
DOA BIT P1.0
VANGA BIT P1.1
XANHA BIT P1.2
DOB BIT P1.3
VANGB BIT P1.4
XANHB BIT P1.5
;===================================================
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#00H
;===================================================
;Chuong trinh chinh
MAIN:
;****************************************************
; Do A va Xanh b sang
;***************************************************
DAXB_AUTO:
CLR DOB
CLR VANGA
MOV TGA,#20
MOV TGB,#17
MOV R6,#8
SETB DOA
18. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 18
SETB XANHB
;==============================
LAPXB:
CALL DELAY1S_1
DEC TGA
DEC TGB
JNB P3.0,DAXB_HANDDY
DJNZ R6,LAPXB
MOV R6,#3
LAPXB1:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_3
DEC TGA
DEC TGB
DJNZ R6,LAPXB1
LAPXB2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGA
DJNZ TGB,LAPXB2
;=================================================
; Do A va vang B sang
;************************************************
DAVB_AUTO:
CLR XANHB
SETB VANGB
MOV TGB,#3
;=====================================
LAPVB:
JNB P3.0,XADB_HANDDY ; neu p3.0 =1 thi chay Auto
CALL DELAY1S_4 ; con p3.0 =0 thi chay Handdy
DEC TGA
DJNZ TGB,LAPVB
CALL DELAY1S_4
;=============================================
; Xanh A va Do B sang
;*************************************************
XADB_AUTO:
CLR DOA
CLR VANGB
SETB XANHA
SETB DOB
MOV TGA,#25
MOV TGB,#30
MOV R6,#16 ; thay doi khi TGB va TGA thay doi R6 = TGA - 9
;==============================
LAPXA:
JNB P3.0,XADB_HANDDY ;|| neu p3.0 =0 thi chay Handdy
CALL DELAY1S_1 ; || con p3.0 =1 thi chay AuTo
DEC TGB
DEC TGA
DJNZ R6,LAPXA
MOV R6,#5 ; thay doi khi TGB va TGA thay doi R6 = TGB - TGA
LAPXA1:
JNB P3.0,DAXB_HANDDY
19. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 19
CALL DELAY1S_2
DEC TGA
DEC TGB
DJNZ R6,LAPXA1
LAPXA2:
JNB P3.0,DAXB_HANDDY
CALL DELAY1S_4
DEC TGB
DJNZ TGA,LAPXA2
;======================================
;Vang A va Do B sang
;*************************************************
VADB_AUTO:
CLR XANHA
SETB VANGA
MOV TGA,#5
;=============================
LAPVA:
JNB P3.0,DAXB_HANDDY ;|| neu p3.0 = 1 thi chay Auto
CALL DELAY1S_4 ; || con p3.0 = 0 thi chay Handdy
DEC TGB
DJNZ TGA,LAPVA
CALL DELAY1S_4
TIEP:
LJMP MAIN
;************************************************************
;CHE DO HANDDY
;==================================
DAXB_HANDDY:
MOV P0,#0FFH ; Khong cho hien thoi gian
SETB DOA ;Do A sang
SETB XANHB ; Xanh B sang
CLR DOB ;Tat Do B
CLR VANGA ;Tat Vang A
CLR XANHA ;Tat Xanh A
JB P3.0,TIEP ;|=> neu p3.0 = 0 thi Chay Handdy
JB P3.1,DAXB_HANDDY ;|=>neu p3.0 = 1 thi chay AUTO
;|==>neu p3.1 = 1 thi nhay DAXB_HANDDY
;|==> neu p3.1 = 0 thi nhay XADB_HANDDY
;====================================================================
XADB_HANDDY:
MOV P0,#0FFH
SETB XANHA ;XANH A SANG
SETB DOB ; DO B SANG
CLR VANGB ; TAT VANG B
CLR DOA ; DO A TAT
CLR XANHB ; XANH B TAT
JB P3.0,XADB_AUTO ; neu p3.0 = 1 thi chay AUTO
JNB P3.1,XADB_HANDDY ; neu p3.0 = 0 thi Chay Handdy
JMP DAXB_HANDDY ;neu p3.1 = 1 thi nhay DAXB_HANDDY
; neu p3.1 = 0 thi nhay XADB_HANDDY
;=============================================
HIEN_THI1:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
20. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 20
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI2:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI3:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
HIEN_THI4:
CALL MAHOA
MOV P0,DONVIA
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S_1:
MOV R0,#40
LAPDELAY1S_1:
CALL HIEN_THI1
21. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 21
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_1
RET
;===============================================
DELAY1S_2:
MOV R0,#40
LAPDELAY1S_2:
CALL HIEN_THI2
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_2
RET
;===============================================
DELAY1S_3:
MOV R0,#40
LAPDELAY1S_3:
CALL HIEN_THI3
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_3
RET
;===============================================
DELAY1S_4:
MOV R0,#40
LAPDELAY1S_4:
CALL HIEN_THI4
CALL DELAY50MS
DJNZ R0,LAPDELAY1S_4
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-25000)
MOV TL0,#LOW(-25000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;=======================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;***********************************************************
22. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 22
AD0
AD1
AD2
AD3
QA1
QB1
QC1
QD1
QE1
QF1
QG1
QA2
QB2
QC2
QD2
QE2
QF2
QG2
QA3
QB3
QC3
QD3
QE3
QF3
QG3
QA4
QB4
QC4
QD4
QE4
QF4
QG4
AD3
AD2
AD1
AD0
AD0
AD1
AD2
AD3
AD0
AD1
AD2
AD3
AD0
AD1
AD2
AD3
QG1
QA1
QB1
QC1
QD1
QE1
QF1
QA2
QB2
QC2
QD2
QE2
QF2
QG2
QG3
QA4
QB4
QC4
QD4
QE4
QG4
QF4
QA3
QB3
QC3
QD3
QE3
QF3
AD6
AD7
AD5
AD4
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7 AD7
AD6
AD5
AD4
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
U1
80C51
R0
10k
C1
1u
VCC
X1
12MHz
C2
27p
C3
27p
VCC
TUYEN DUONG A
A
7
B
1
C
2
D
6
LT
3
BI
4
LE/STB
5
QA
13
QB
12
QC
11
QD
10
QE
9
QF
15
QG
14
U2
4511
VCC
VCC
VCC
2
3
4
5
6
7
8
9
1
DRT2
10K
Q6
2N2369
Q1
2N2369
Q2
2N2369
Q3
2N2369
Q4
2N2369
Q5
2N2369
TUYEN DUONG B
CHUC A DON VI A
CHUC B DON VI B
R9
4k7
R10
4k7
R11
4k7
R12
4k7
R13
4k7
R14
4k7
A
7
B
1
C
2
D
6
LT
3
BI
4
LE/STB
5
QA
13
QB
12
QC
11
QD
10
QE
9
QF
15
QG
14
U3
4511
A
7
B
1
C
2
D
6
LT
3
BI
4
LE/STB
5
QA
13
QB
12
QC
11
QD
10
QE
9
QF
15
QG
14
U4
4511
A
7
B
1
C
2
D
6
LT
3
BI
4
LE/STB
5
QA
13
QB
12
QC
11
QD
10
QE
9
QF
15
QG
14
U5
4511
2
3
4
5
6
7
8
9
1
RP1
10K
BÀI 1: CHƯƠNG TRÌNH ĐÈN GIAO THÔNG
PHẦN 1: CHƯƠNG TRÌNH ĐÈN GIAO THÔNG TỰ ĐỘNG CÓ HIỂN THỊ THỜI GIAN
BẰNG LED 7 ĐOẠN :
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
23. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 23
;===================================================
;Chuong trinh chinh
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#0H
MAIN:
MOV TGA,#30
MOV TGB,#25
SETB P1.0
SETB P1.5
;===============================
;Thoi gian cua Do A va Xanh B
LAPXB:
CALL DELAY1S
DEC TGA
DJNZ TGB,LAPXB
CLR P1.5
SETB P1.4
MOV TGB,#5
;==============================
;Thoi gian cua Do A va Vang B
LAPVB:
CALL DELAY1S
DEC TGA
DJNZ TGB,LAPVB
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#25
MOV TGB,#30
;==============================
;Thoi gian cua Do B va Xanh A
LAPXA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPXA
CLR P1.2
SETB P1.1
MOV TGA,#5
;==============================
;Thoi gian cua Do B va Vang A
LAPVA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPVA
CLR P1.1
CLR P1.3
LJMP MAIN
;=================================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
24. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 24
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#20
LAPDELAY1S:
CALL HIENTHI
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
DELAY:
LOOP1:
MOV R1,#20
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;*********************************************************************
25. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 25
;DONG HO SO THE HIET PHUT VA GIAY
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
;Chuong trinh chinh
ORG 0000H
INIT:
MOV TMOD,#01H
MOV P1,#0H
MAIN:
MOV TGA,#30
MOV TGB,#25
SETB P1.0
SETB P1.5
;===============================
;Thoi gian cua Do A va Xanh B
LAPXB:
CALL DELAY1S
DEC TGA
DJNZ TGB,LAPXB
CLR P1.5
SETB P1.4
MOV TGB,#5
;==============================
;Thoi gian cua Do A va Vang B
LAPVB:
CALL DELAY1S
DEC TGA
DJNZ TGB,LAPVB
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#18
MOV TGB,#20
;==============================
;Thoi gian cua Do B va Xanh A
LAPXA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPXA
CLR P1.2
SETB P1.1
MOV TGA,#2
;==============================
26. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 26
;Thoi gian cua Do B va Vang A
LAPVA:
CALL DELAY1S
DEC TGB
DJNZ TGA,LAPVA
CLR P1.1
CLR P1.3
LJMP MAIN
;=================================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#50
LAPDELAY1S:
CALL HIENTHI
CALL DELAY40MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY40MS:
MOV TH0,#HIGH(-20000)
MOV TL0,#LOW(-20000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
27. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 27
;============================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;***************************************************************
PHẦN 2: CHƯƠNG TRÌNH ĐÈN GIAO THÔNG CHẠY 2 CHẾ ĐỘ VÀ CÓ HIỂN THỊ THỜI GIAN
RA LED 7 ĐOẠN
;CHUONG TRINH DEN GIAO THONG 2 CHE DO CO HIEN THI THOI GIAN RA LED 7 DOAN
;Nguoi viet :VUONG VAN HUNG
;Ngay viet :20/06/2008
;===================================================
TGA DATA 7CH
CHUCA DATA 2EH
DONVIA DATA 7DH
TGB DATA 7EH
DONVIB DATA 7FH
CHUCB DATA 2FH
;===================================================
ORG 0000H
;=======================================
;Chuong trinh chinh
INIT:
MOV TMOD,#01H
MOV P1,#00H
MAIN:
;===================================
AUTO:
; Do A va Xanh b sang
DAXB_AUTO:
MOV P2,#1 ;xuat so 1 ra led 7 doan: dang chay che do tu dong
CLR P1.3
CLR P1.1
CLR P1.2
MOV TGA,#30
MOV TGB,#25
SETB P1.0
SETB P1.5
LAPXB:
28. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 28
JNB P3.0,DAXB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
DJNZ TGB,LAPXB
;======================================================================
; Do A va vang B sang
DAVB_AUTO:
CLR P1.5
SETB P1.4
MOV TGB,#5
LAPVB:
JNB P3.0,DAXB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGA
DJNZ TGB,LAPVB
;=======================================================================
; Xanh A va Do B sang
XADB_AUTO:
MOV P2,#1
CLR P1.0
CLR P1.4
SETB P1.2
SETB P1.3
MOV TGA,#25
MOV TGB,#30
LAPXA:
JNB P3.0,XADB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGB
DJNZ TGA,LAPXA
;======================================
;Vang A va Do B sang
VADB_AUTO:
CLR P1.2
SETB P1.1
MOV TGA,#5
LAPVA:
JNB P3.0,XADB_HANDDY ; neu p3.0 o muc thap (0) thi chay Auto
CALL DELAY1S ; con p3.0 o muc cao (1) thi chay Handdy
DEC TGB
DJNZ TGA,LAPVA
LJMP MAIN
;=================================================
HANDDY:
DAXB_HANDDY:
CLR TR0 ; Khong cho hien thoi gian
MOV P0,#00H ; Khong cho hien thoi gian
MOV P2,#0 ; xuat gia tri 0 ra led 7 doan: chay che do Handdy
SETB P1.0 ;Do A sang
SETB P1.5 ; Xanh B sang
29. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 29
CLR P1.3 ;Tat Do B
CLR P1.4 ;Tat Vang B
CLR P1.2 ; Tat Xanh A
JB P3.0,DAXB_AUTO ; neu p3.0 o muc thap (0) thi chay Auto
JB P3.1,DAXB_HANDDY ; Neu p3.1 muc 0 cho XADB_HANDDY sang
;Neu p3.1 muc 1 cho DAXB_HANDDY sang
;====================================================================
XADB_HANDDY:
CLR TR0
MOV P0,#00H
MOV P2,#0
SETB P1.2
SETB P1.3
CLR P1.1
CLR P1.0
CLR P1.5
JB P3.0,XADB_AUTO
JNB P3.1,XADB_HANDDY ; Neu p3.1 muc 0 cho XADB_HANDDY sang
JMP DAXB_HANDDY ;Neu p3.1 muc 1 cho DAXB_HANDDY sang
;=============================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCA
CALL DELAY
MOV P0,DONVIA
CALL DELAY
MOV P0,CHUCB
CALL DELAY
MOV P0,DONVIB
CALL DELAY
RET
;================================================
MAHOA:
MOV A,TGA
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCA,A
MOV A,B
ADD A,#01110000B
MOV DONVIA,A
MOV A,TGB
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCB,A
MOV A,B
ADD A,#11010000B
MOV DONVIB,A
RET
;================================================
DELAY1S:
MOV R0,#20
LAPDELAY1S:
30. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 30
CALL HIENTHI
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
DELAY:
LOOP1:
MOV R1,#20
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;**********************************************************************
BÀI 2: CHƯƠNG TRÌNH ĐỌC ENCODER
PHẦN 1: CHƯƠNG TRÌNH ĐỌC ENCODER VA XUAT XUNG ĐIỀU KHIỂN ĐÔNG CƠ
CÁCH 1:
;===================================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
;===================================================
;Khai bao ngat ngoai
;===================================================
ORG 0000H
LJMP INIT
ORG 001BH
LJMP NGATTTIMER1
;===================================================
;Chuong trinh chinh
INIT:
MOV IE,#88H ; NGAT COUNTER 1
MOV TMOD,#61H ;TIMER 1 HD CHE DO COUNTER1
MOV TH1,#(-20)
MOV TL1,#(-20)
SETB TR1
MOV DEM,#0
MOV P2,DEM
31. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 31
;==================================
MAIN:
CALL XUATXUNG
MOV A,DEM
CJNE A,#5,MAIN
MOV DEM,#0
SETB P1.7
SJMP $
;=======================================
XUATXUNG:
WAIT:
CLR P1.7
MOV TH0,#HIGH(-8000)
MOV TL0,#LOW(-8000)
SETB TR0
WAIT1:
JNB TF0,WAIT1
CLR TF0
CLR TF0
SETB P1.7
MOV TH0,#HIGH(-2000)
MOV TL0,#LOW(-2000)
SETB TR0
WAIT2:
JNB TF0,WAIT2
CLR TF0
CLR TR0
RET
;==================================
NGATTTIMER1:
INC DEM
MOV P2,DEM
RETI
;===================================================
END
;**********************************************************************
CÁCH 2:
;===================================================
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP NGATTTIMER1
;===================================================
;Chuong trinh chinh
MAIN:
MOV IE,#88H
MOV TMOD,#51H
MOV TH1,#HIGH(-12800) ; encoder 128 xung/vong
MOV TL1,#LOW(-12800) ;tuong ung voi 100 vong quay cua Dong Co
SETB TR1
32. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 32
NHANSTART:
JB P3.7,$
WAIT:
CLR P1.7
MOV TH0,#HIGH(-8000)
MOV TL0,#LOW(-8000)
SETB TR0
WAIT1:
JNB TF0,WAIT1
CLR TF0
CLR TF0
SETB P1.7
MOV TH0,#HIGH(-2000)
MOV TL0,#LOW(-2000)
SETB TR0
WAIT2:
JNB TF0,WAIT2
CLR TF0
CLR TR0
SJMP WAIT
;====================================
NGATTTIMER1:
SETB P1.7
SJMP $
RETI
;===================================================
END
;**************************************************
CÁCH 3:
;Ngay viet :26/06/2008
;===================================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
;===================================================
;Khai bao ngat ngoai
;===================================================
ORG 0000H
LJMP INIT
ORG 001BH
INC DEM
RETI
;===================================================
;Chuong trinh chinh
INIT:
MOV IE,#88H
MOV TMOD,#61H
MOV TH1,#(-128)
MOV TL1,#(-128)
33. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 33
MOV DEM,#0
MOV P2,DEM
SETB TR1
; ============================
NHANSTART:
JB P3.7,$
; ==========================
MAIN:
CALL XUAT_XUNG
MOV P2,DEM
MOV A,DEM
CJNE A,#10,MAIN ; tuong ung voi dong co quay 10 vong
SETB P1.7
SJMP $
;===============================================
; Chuong trinh xuat xung 100hz co do rong 80% dieu khien dong co
XUAT_XUNG:
WAIT:
CLR P1.7
MOV TH0,#HIGH(-8000)
MOV TL0,#LOW(-8000)
SETB TR0
WAIT1:
JNB TF0,WAIT1
CLR TF0
CLR TF0
SETB P1.7
MOV TH0,#HIGH(-2000)
MOV TL0,#LOW(-2000)
SETB TR0
WAIT2:
JNB TF0,WAIT2
CLR TF0
CLR TR0
RET
;===================================================
END
;***********************************************************
CÁCH 4:
;CHUONG TRINH SU DUNG NGAT COUNTER
;===================================================
;Khai bao bien / hang so / dau vao/ra
;==================================================
DEM DATA 7EH
CHUC DATA 7AH
DONVI DATA 7BH
;===================================================
;Khai bao ngat ngoai
;===================================================
34. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 34
ORG 0000H
LJMP INIT
ORG 001BH
LJMP NGATCOUNTER1
;===================================================
;Chuong trinh chinh
;====================================================
ORG 0030H
INIT:
MOV IE,#88H ; NGAT COUNTER 1
MOV TMOD,#61H ;TIMER 1 HD CHE DO COUNTER1
MOV TH1,#(-5)
MOV TL1,#(-5)
SETB TR1
MOV DEM,#0
;==================================
MAIN:
CALL HIENTHI
MOV A,DEM
CJNE A,#100,MAIN
MOV DEM,#0
SJMP $
;=======================================
NGATCOUNTER1:
INC DEM
MOV P2,DEM
RETI
;=============================================
HIENTHI:
CALL MAHOA
MOV P0,CHUC
CALL DELAY
MOV P0,DONVI
CALL DELAY
RET
;================================================
MAHOA:
MOV A,DEM
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUC,A
MOV A,B
ADD A,#01110000B
MOV DONVI,A
RET
;================================================
DELAY1S:
MOV R0,#20
LAPDELAY1S:
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
35. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 35
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;==================================================
DELAY:
MOV R1,#10
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;*******************************************************************
36. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 36
PHẦN 2: CHƯƠNG TRÌNH ĐỌC ENCODER CỦA ĐÔNG CƠ
;=============================================================
;Khai Bao Bien/Hang So/ Dau Vao Ra
DEM DATA 7EH
TRAM DATA 7FH
CHUC DATA 7AH
DONVI DATA 7BH
TOCDO DATA 7CH
;============================================================
ORG 0000H
LJMP INIT
;===========================================================
;KHAI BAO NGAT
ORG 0003H
LJMP NHANSTART
;===========================================================
;CHUONG TRINH CHINH
ORG 0030H
INIT:
SETB IT0 ;Ngat Canh Xuong
MOV TMOD,#01010001B ;Timer1 Dem 16bit, Timer0 Dinh Thoi 8bit Nap Lai
MOV TOCDO,TH1
MOV TH0,#(-200)
SETB TR0
CLR TF1
MOV IE,#10000001B
SETB IT0 ;Cho Phep Ngat Ngoai0 Va Ngat Tiemr0
SETB TR1 ; Cho Phep Doc Encoder
MOV P1,#0FFH
MOV DEM,#0
MAIN:
JB TF0,HIENTHILED
SJMP MAIN
;=============================================================
;Cac Chuong Trinh Con Va Phuc Vu Ngat
NHANSTART:
CLR P1.7
INC DEM
MOV P2,DEM
MOV A,DEM
CJNE A,#10,THOATNHANSTART
MOV A,#0
MOV DEM,A
SETB P1.7
CLR TF1
THOATNHANSTART:
RETI
;========================================================
37. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 37
HEXTOBCD:
MOV A,TOCDO
MOV B,#100
DIV AB
ADD A,#11010000B
MOV TRAM,A
MOV A,B
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUC,A
MOV A,B
ADD A,#01110000B
MOV DONVI,A
RET
;==========================================================
HIENTHILED:
CLR TF0
MOV TOCDO,TH1
CALL HEXTOBCD
CALL XUATLED
SJMP MAIN
;==========================================================
XUATLED:
MOV P0,TRAM
CALL DELAY
MOV P0,CHUC
CALL DELAY
MOV P0,DONVI
CALL DELAY
RET
;=========================================================
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#100
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===========================================================
END
;****************************************************************
PHẦN 3: CHƯƠNG TRÌNH ĐỌC ENCODER CỦA ĐÔNG CƠ VÀ XUẤT XUNG ĐIỀU KHIỂN
ĐỘNG CƠ :
;Doc encoder + xuat xung dieu khien dong co DC
;===================================================
;Khai bao bien / hang so / dau vao/ra
38. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 38
TOCDO DATA 7FH
TRAM DATA 7EH
CHUC DATA 7DH
DONVI DATA 7CH
DONGCO BIT P1.7
;===================================================
ORG 0000H
LJMP INIT
;===================================================
;Khai bao ngat
ORG 0003H
LJMP DEMTOCDO
ORG 000BH
LJMP XUATXUNG
ORG 0030H
;===================================================
;Chuong trinh chinh
INIT:
SETB IT0 ; NGAT CANH XUONG
MOV TMOD,#01010010B ; TIMER 1 DEM 16 BIT, TIMER 0 DINH THOI 8 BIT NAP LAI
MOV TH1,#0
MOV TL1,#0
MOV TH0,#5
MOV TL0,#5
CLR TF0
CLR TF1
MOV TOCDO,#0
MOV R0,#1
MOV R7,#40
JB P3.0,$ ; DOI DEN KHI NHAN NUT MOI BAT DAU CHAY
JNB P3.0,$
MOV IE,#10000011B ; CHO PHEP NGAT NGOAI 0 VA TIMER 0
SETB TR1 ; CHO PHEP DOC ENCODER
MAIN:
CALL KIEMTRATOCDO
CALL HEXTOBCD ;
CALL XUATLED
SJMP MAIN
;===================================================
KIEMTRATOCDO:
MOV P2,TOCDO
MOV A,TOCDO
CJNE A,#0,TIEP
CLR TR0 ; NGUNG DONG CO
SETB DONGCO
SJMP THOATKIEMTRA
TIEP:
SETB TR0 ; CHO XUAT XUNG
THOATKIEMTRA:
RET
;===================================================
HEXTOBCD:
MOV A,TH1
MOV B,#100
DIV AB
ADD A,#11010000B
MOV TRAM,A
MOV A,B
39. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 39
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUC,A
MOV A,B
ADD A,#01110000B
MOV DONVI,A
RET
;===================================================
XUATLED:
MOV P0,TRAM
CALL DELAY10MS
MOV P0,CHUC
CALL DELAY10MS
MOV P0,DONVI
CALL DELAY10MS
RET
;===================================================
DELAY:
LOOP1:
MOV R1,#20
LOOP2:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP2
RET
DELAY10MS:
DELAY1:
MOV R1,#10
DELAY2:
MOV R2,#50
DJNZ R2,$
DJNZ R1,DELAY2
RET
;===================================================
DEMTOCDO:
INC TOCDO
MOV A,TOCDO
CJNE A,#10,THOATNGATNGOAI
MOV TOCDO,#0
THOATNGATNGOAI:
RETI
;===================================================
XUATXUNG:
DJNZ R7,THOAT
MOV R7,#40
JB DONGCO,DANGLEN ; BIT DONGCO DANG O MUC 1 : TAT
DJNZ R0,THOAT
SETB DONGCO
MOV A,#10
CLR C
SUBB A,TOCDO
MOV R0,A
SJMP THOAT
DANGLEN:
DJNZ R0,THOAT
CLR DONGCO
40. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 40
MOV R0,TOCDO
THOAT:
RETI
;===================================================
END
;*************************************************************************
41. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 41
A8
A9
A10
A11
A12
A13
A14
A15
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
B7
B6
B5
B4
B3
B2
B1
A15
A14
A13
A12
A11
A10
A9
A8
B0
B0
B1
B2
B3
B4
B5
B6
B7
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
U1
80C51
R0
10k
C1
1u
VCC
RES
RES
X1
11.059MHz
C2
27p
C3
27p
VCC
VCC
D7
14
D6
13
D5
12
D4
11
D3
10
D2
9
D1
8
D0
7
E
6
RW
5
RS
4
VSS
1
VDD
2
VEE
3
LCD1
LM016L
123
6 5 4
89
=
7
++ C
ON
0
A
B
C
D
1
2
4
3
BÀI 3: CHƯƠNG TRÌNH HIỂN THỊ LED MA TRẬN
PHẦN 1 : CHƯƠNG TRÌNH XUẤT CHỮ A RA LED MA TRẬN :
; HIEN THI LED MATRAN
;===================================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
QUAY DATA 7BH
;===================================================
;Khai bao ngat ngoai o
ORG 0000H
JMP MAIN
;===================================================
MAIN:
MOV DPTR,#MAA
MOV DEM,#8
MOV QUAY,#0FEH
LAP:
MOV P1,QUAY
MOV A,DEM
DEC A
MOVC A,@A+DPTR
MOV P2,A
MOV A,QUAY
RL A
42. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 42
MOV QUAY,A
CALL DELAY
DJNZ DEM,LAP
JMP MAIN
DELAY:
MOV R0,#10
LOOP: MOV R1,#100
DJNZ R1,$
DJNZ R0,LOOP
RET
ORG 4000H
MAA: DB 20H,50H,88H,88H,0F8H,88H,88H,88H
MAH: DB 88H,88H,88H,0F8H,88H,88H,88H,88H
END
;********************************************************************************
PHẦN 2 : CHƯƠNG TRÌNH QUÉT BÀN PHÍM MA TRẬN VÀ HIỂN THỊ RA LED MAT TRẬN
;===================================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
QUAY DATA 7BH
MAPHIM DATA 7AH
;===================================================
;Khai bao ngat ngoai o
ORG 0000H
;===================================================
INIT:
MOV DPTR,#XOA
MAIN:
CALL QUET_PHIM
CALL XET_PHIM
CALL XUAT_LED_MATRAN
CALL DELAY
JMP MAIN
;===================================
QUET_PHIM:
MOV DEM,#4
MOV QUAY,#11111110B
LAP_QUET_PHIM:
MOV P3,QUAY
MOV A,P3
ANL A,#0F0H
CJNE A,#0F0H,COPHIM
MOV A,QUAY
RL A
45. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 45
MACHIA : DB 18H,18H,00H,0FFH,0FFH,00H,18H,18H
MACONG: DB 18H,18H,18H,0FFH,0FFH,18H,18H,18H
MATRU : DB 00H,00H,00H,0FFH,0FFH,00H,00H,00H
SOKHONG: DB 70H,88H,88H,88H,88H,88H,88H,70H
SOMOT: DB 60H,0E0H,60H,60H,60H,60H,60H,60H
SOHAI: DB 70H,88H,08H,08H,10H,20H,40H,0F8H
SOBA: DB 0F8H,08H,10H,20H,70H,08H,08H,0F0H
SOBON: DB 88H,88H,88H,0F8H,08H,08H,08H,08H
SONAM: DB 0F8H,80H,80H,0F8H,08H,08H,08H,0F8H
SOSAU: DB 70H,88H,80H,0F0H,88H,88H,88H,70H
SOBAY: DB 078H,88H,08H,08H,08H,08H,08H,08H
SOTAM: DB 70H,88H,88H,70H,88H,88H,88H,70H
SOCHIN: DB 0F8H,88H,88H,0F8H,08H,08H,08H,0F8H
MABANG: DB 0FFH,0FFH,0H,0H,0H,0H,0FFH,0FFH
XOA : DB 0H,0H,0H,0H,0H,0H,0H,0H
TEST : DB 1H,2H,3H,4H,5H,6H,7H,8H
MAA: DB 20H,50H,88H,88H,0F8H,88H,88H,88H
;===================================================
END
;*****************************************************
A15
A14
A13
A12
A11
A10
A9
A8
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
AD4
AD5
AD6
AD7
A8
A9
A10
A11
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
AD3
AD2
AD1
AD0
XTAL2
18
XTAL1
19
ALE
30
EA
31
PSEN
29
RST
9
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
P2.7/A15
28
P2.0/A8
21
P2.1/A9
22
P2.2/A10
23
P2.3/A11
24
P2.4/A12
25
P2.5/A13
26
P2.6/A14
27
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P3.0/RXD
10
P3.1/TXD
11
P3.2/INT0
12
P3.3/INT1
13
P3.4/T0
14
P3.7/RD
17
P3.6/WR
16
P3.5/T1
15
U1
80C51
R0
10k
C1
1u
VCC
X1
11.059MHz
C2
27p
C3
27p
VCC
A
7
B
1
C
2
D
6
LT
3
BI
4
LE/STB
5
QA
13
QB
12
QC
11
QD
10
QE
9
QF
15
QG
14
U2
4511
VCC
+88.8
DC2
Q1
2N2905
VCC
VCC
A
7
B
1
C
2
D
6
LT
3
BI
4
LE/STB
5
QA
13
QB
12
QC
11
QD
10
QE
9
QF
15
QG
14
U21
4511
2
3
4
5
6
7
8
9
1
DRT1
10K
VCC
2
3
4
5
6
7
8
9
1
DRT2
10K
+88.8
DC1
Q2
2N2905
VCC
46. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 46
BÀI 4: CHƯƠNG TRÌNH BĂNG CHUYỀN :
PHẦN 1 : CHƯƠNG TRÌNH BĂNG CHYỀN SẢN PHẨM :
CÁCH 1:
;Ngay viet :09/06/2008
;===================================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7AH
;===================================================
ORG 0000H
LJMP INIT
ORG 0003H
LJMP TACDONGCAMBIEN
;===================================================
;Khai bao ngat
;===================================================
;Chuong trinh chinh
INIT:
MOV IE,#81H
SETB IT0
MOV DEM,#0
MOV P2,DEM
SETB P1.6
SETB P1.7
MAIN:
JNB P3.0,MUCTHAP
CLR P1.7
SJMP MAIN
MUCTHAP:
JB P3.1,THUNGNHO
THUNGLON:
CLR P1.6
SETB P1.7
MOV A,DEM
CJNE A,#10,THUNGLON
MOV DEM,#0
MOV P2,DEM
CLR P1.7
SETB P1.6
JMP MAIN
THUNGNHO:
CLR P1.6
SETB P1.7
MOV A,DEM
CJNE A,#5,THUNGNHO
MOV DEM,#0
MOV P2,DEM
CLR P1.7
SETB P1.6
JMP MAIN
TACDONGCAMBIEN:
INC DEM
MOV P2,DEM
MOV A,DEM
47. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 47
RETI
;===================================================
END
;***********************************************************
CÁCH 2:
;Ngay viet :23/06/2008
;===================================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7AH
;===================================================
ORG 0000H
LJMP INIT
ORG 0003H
LJMP TACDONGCAMBIEN
;===================================================
ORG 0030H
;Chuong trinh chinh
INIT:
MOV IE,#81H
SETB IT0
MOV DEM,#0
MOV P2,DEM
;=============================
MAIN:
NHANSTART:
JB P3.4,NHANSTART
NHANSTOP:
JNB P3.5,EXIT
JNB P3.0, MUCTHAP ; khi co thung chua sp cam bien tich cuc muc thap.
CLR P1.7 ; cho bang tai mang thung chua san pham hoat dong.
SJMP NHANSTOP
MUCTHAP:
JB P3.1,THUNGNHO
;==============================
THUNGLON:
CLR P1.6
SETB P1.7
MOV A,DEM
CJNE A,#10,NHANSTOP
MOV DEM,#0
MOV P2,DEM
SETB P1.6
CLR P1.7
SJMP NHANSTOP
;=====================================
THUNGNHO:
CLR P1.6
SETB P1.7
MOV A,DEM
CJNE A,#5,NHANSTOP
MOV DEM,#0
48. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 48
MOV P2,DEM
SETB P1.6
CLR P1.7
JMP NHANSTOP
;===========================================
TACDONGCAMBIEN:
INC DEM
MOV P2,DEM
MOV A,DEM
RETI
EXIT:
SETB P1.6
SETB P1.7
;===================================================
END
;********************************************************
CÁCH 3:
;===================================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7AH
;===================================================
ORG 0000H
LJMP INIT
ORG 0003H
LJMP TACDONGCAMBIEN
;===================================================
;Khai bao ngat
;===================================================
;Chuong trinh chinh
INIT:
MOV IE,#81H
SETB IT0
MOV DEM,#0
MOV P2,DEM
;============================================
NHANSTART:
JB P3.4,NHANSTART
MAIN:
NHANSTOP:
JNB P3.5,EXIT
JB P3.0, MAIN
MUCTHAP:
JB P3.1,THUNGNHO
;======================================
THUNGLON:
CLR P1.6
SETB P1.7
MOV A,DEM
CJNE A,#9,MAIN
MOV DEM,#0
MOV P2,DEM
SETB P1.6
49. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 49
CLR P1.7
JMP MAIN
;=====================================
THUNGNHO:
CLR P1.6
SETB P1.7
MOV A,DEM
CJNE A,#5,MAIN
MOV DEM,#0
MOV P2,DEM
SETB P1.6
CLR P1.7
JMP MAIN
;===================================
TACDONGCAMBIEN:
INC DEM
MOV P2,DEM
MOV A,DEM
RETI
EXIT:
SETB P1.6
SETB P1.7
;===================================================
END
;********************************************************
BÀI 5: CHƯƠNG TRÌNH HIỂN THỊ LED 7 ĐOẠN
PHẦN 1 : CHƯƠNG TRÌNH HIỆN THỊ LED 7 ĐOẠN VỚI SỐ : 250 GIẢM VỀ 0 :
; CHUONG TRINH XUET LED HANG TRAM
;===================================================
TRAM DATA 2AH
CHUC DATA 2BH
DONVI DATA 2CH
DEM DATA 2DH
;===================================================
;Chuong trinh chinh
ORG 0000H
MAIN:
MOV TMOD,#21H
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
MOV TH1,#HIGH(-100)
SETB TR1
SETB TR0
MOV DEM,#250
LAP:
MOV R7,#10
WAIT: JB TF0,TANSO1
JB TF1,TANSO2
SJMP WAIT
50. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 50
TANSO1:
CLR TR0
CLR TF0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
DJNZ R7,WAIT
DJNZ DEM,LAP
CLR TR0
CLR TF0
SJMP WAIT
TANSO2:
CLR TF1
CALL HEXTOBCD
CALL XUATLED
SJMP WAIT
HEXTOBCD:
MOV A,DEM
MOV B,#100
DIV AB
ADD A,#11010000B
MOV TRAM,A
MOV A,B
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUC,A
MOV A,B
ADD A,#01110000B
MOV DONVI,A
RET
;==========================================================
XUATLED:
MOV P0,TRAM
CALL DELAY
MOV P0,CHUC
CALL DELAY
MOV P0,DONVI
CALL DELAY
DELAY:
MOV R1,#100
LOOP:
MOV R2,#250
DJNZ R2,$
DJNZ R1,LOOP
RET
END
;***********************************************************
CACH 2:
; CHUONG TRINH XUET LED HANG TRAM
;===================================================
TRAM DATA 2AH
CHUC DATA 2BH
DONVI DATA 2CH
DEM DATA 2DH
51. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 51
;===================================================
;khai bao ngat
ORG 0000H
LJMP INIT
ORG 000BH
DJNZ R0,THOATNGAT
DEC DEM
MOV R0,#20
MOV A,DEM
THOATNGAT:
RETI
;==================================================
ORG 0030H
;Chuong trinh chinh
INIT: MOV IE,#82H
MOV TMOD,#01H
MOV DEM,#250
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
MOV R0,#20
MAIN:
CALL HEXTOBCD
CALL XUATLED
CJNE A,#0,MAIN
SJMP $
;=====================================
HEXTOBCD:
MOV A,DEM
MOV B,#100
DIV AB
ADD A,#11010000B
MOV TRAM,A
MOV A,B
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUC,A
MOV A,B
ADD A,#01110000B
MOV DONVI,A
RET
;==========================================================
XUATLED:
MOV P0,TRAM
CALL DELAY
MOV P0,CHUC
CALL DELAY
MOV P0,DONVI
CALL DELAY
;============================
DELAY:
MOV R1,#100
LOOP:
MOV R2,#200
DJNZ R2,$
DJNZ R1,LOOP
52. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 52
RET
;======================================
END
;***********************************************************************************
PHẦN 2 : CHƯƠNG TRÌNH HIỆN THỊ LED 7 ĐOẠN VỚI SỐ ĐỒNG HỒ SỐ :
;Ngay viet :20/06/2008
;===================================================
GIAY DATA 7CH
DONVIPHUT DATA 7DH
PHUT DATA 7EH
DONVIGIAY DATA 7FH
CHUCPHUT DATA 2EH
CHUCGIAY DATA 2FH
;===================================================
;Chuong trinh chinh
ORG 0000H
INIT:
MOV TMOD,#01H
MOV GIAY,#0
MOV PHUT,#0
;======================================================
MAIN:
CALL DELAY1S
INC GIAY
MOV A,GIAY
CJNE A,#60,MAIN
MOV GIAY,#0
INC PHUT
MOV A,PHUT
CJNE A,#60,MAIN
MOV PHUT,#0
SJMP MAIN
;=================================================
HIENTHI:
CALL MAHOA
MOV P0,CHUCGIAY
CALL DELAY
MOV P0,DONVIGIAY
CALL DELAY
MOV P0,CHUCPHUT
CALL DELAY
MOV P0,DONVIPHUT
CALL DELAY
RET
;================================================
MAHOA:
53. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 53
MOV A,GIAY
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUCGIAY,A
MOV A,B
ADD A,#01110000B
MOV DONVIGIAY,A
MOV A,PHUT
MOV B,#10
DIV AB
ADD A,#11100000B
MOV CHUCPHUT,A
MOV A,B
ADD A,#11010000B
MOV DONVIPHUT,A
RET
;================================================
DELAY1S:
MOV R0,#20
LAPDELAY1S:
CALL HIENTHI
CALL DELAY50MS
DJNZ R0,LAPDELAY1S
RET
;===============================================
DELAY50MS:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
DELAY:
LOOP1:
MOV R1,#10
LOOP2:
MOV R2,#50
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;***************************************************************
BÀI 6: CHƯƠNG TRÌNH HIỂN THỊ LED 7 ĐOẠN
PHẦN 2 : CHƯƠNG TRÌNH MỖI KHI CÓ NGẮT NGOÀI THÌ TĂNG BIẾN ĐẾM HIỂN THỊ RA
LED 7 ĐOẠN GIÁ TRỊ TỪ 0 ĐẾN 9 . ĐỒNG THỜI XUẤT XUNG CÓ TẦN SỐ 100HZ VÀ CÓ ĐỘ
RỘNG ĐẾM /10 :
54. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 54
;==============================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
;===================================================
ORG 0000H
LJMP INIT
;===================================================
;Khai bao ngat ngoai o
ORG 0003H
LJMP NGATNGOAI0
;===================================================
;Chuong trinh chinh
INIT:
MOV DEM,#0
SETB EA
SETB EX0
SETB IT0
MOV A,DEM
;==================================================
MAIN:
BANG0:
CJNE A,#0,KHAC0
MOV P2,#01111110B
JMP MAIN
KHAC0:
CJNE A,#1,KHAC1
MOV P2,#00110000B
SETB P1.7
CALL DELAY10MS
CLR P1.7
CALL DELAY20MS
CALL DELAY20MS
CALL DELAY50MS
LJMP MAIN
KHAC1:
CJNE A,#2,KHAC2
MOV P2,#01101101B
SETB P1.7
CALL DELAY20MS
CLR P1.7
CALL DELAY20MS
CALL DELAY10MS
CALL DELAY50MS
LJMP MAIN
KHAC2:
CJNE A,#3,KHAC3
MOV P2,#01111001B
SETB P1.7
CALL DELAY20MS
CALL DELAY10MS
CLR P1.7
CALL DELAY20MS
CALL DELAY50MS
LJMP MAIN
KHAC3:
56. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 56
INC DEM
MOV A,DEM
CJNE A,#10,THOATNGAT
MOV DEM,#0
MOV A,DEM
THOATNGAT:
RETI
;================================
DELAY20MS:
MOV R1,#100
LOOP:
MOV R2,#100
DJNZ R2,$
DJNZ R1,LOOP
RET
;===================================
DELAY10MS:
MOV R1,#100
LOOP1:
MOV R2,#50
DJNZ R2,$
DJNZ R1,LOOP1
RET
;=================================
DELAY50MS:
MOV R1,#100
LOOP2:
MOV R2,#250
DJNZ R2,$
DJNZ R1,LOOP2
RET
END
;****************************************************************************
PHẦN 3 : CHƯƠNG TRÌNH MỖI KHI CÓ NGẮT NGOÀI THÌ TĂNG BIẾN ĐẾM HIỂN THỊ RA
LED 7 ĐOẠN GIÁ TRỊ TỪ 0 ĐẾN 9 . ĐỒNG THỜI XUẤT XUNG CÓ TẦN SỐ 100HZ VÀ CÓ ĐỘ
RỘNG ĐẾM /10 . CÓ ĐỌC ENCODER :
;======================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
TRAM DATA 7FH
CHUC DATA 7AH
DONVI DATA 7BH
;===================================================
;Khai bao ngat ngoai o
ORG 0000H
LJMP INIT
;===================================================
ORG 0003H
LJMP NGATNGOAI0
;===================================================
;Chuong trinh chinh
ORG 0030H
58. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 58
CALL DELAY50MS
CLR P1.7
CALL DELAY50MS
LJMP MAIN
KHAC5:
CJNE A,#6,KHAC6
SETB P1.7
CALL DELAY10MS
CALL DELAY50MS
CLR P1.7
CALL DELAY20MS
CALL DELAY20MS
LJMP MAIN
KHAC6:
CJNE A,#7,KHAC7
SETB P1.7
CALL DELAY50MS
CALL DELAY20MS
CLR P1.7
CALL DELAY10MS
CALL DELAY20MS
LJMP MAIN
KHAC7:
CJNE A,#8,KHAC8
SETB P1.7
CALL DELAY20MS
CALL DELAY10MS
CALL DELAY50MS
CLR P1.7
LCALL DELAY20MS
LJMP MAIN
KHAC8:
SETB P1.7
CALL DELAY50MS
CALL DELAY20MS
CALL DELAY20MS
CLR P1.7
LCALL DELAY10MS
LJMP MAIN
;============================
NGATNGOAI0:
INC DEM
MOV P2,DEM
MOV A,DEM
CJNE A,#10,THOATNGAT
MOV DEM,#0
MOV P2,DEM
MOV A,DEM
THOATNGAT:
RETI
;======================================
HEXTOBCD:
MOV A,TH1
MOV B,#100
DIV AB
ADD A,#11010000B
MOV TRAM,A
MOV A,B
59. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 59
MOV B,#10
DIV AB
ADD A,#10110000B
MOV CHUC,A
MOV A,B
ADD A,#01110000B
MOV DONVI,A
RET
;==========================================================
XUATLED:
MOV P0,TRAM
CALL DELAY10MS
MOV P0,CHUC
CALL DELAY10MS
MOV P0,DONVI
CALL DELAY10MS
RET
;====================================
DELAY10MS:
MOV R1,#100
LOOP1:
MOV R2,#50
DJNZ R2,$
DJNZ R1,LOOP1
RET
;======================================
DELAY20MS:
MOV R1,#100
LOOP:
MOV R2,#100
DJNZ R2,$
DJNZ R1,LOOP
RET
DELAY50MS:
MOV R1,#100
LOOP2:
MOV R2,#250
DJNZ R2,$
DJNZ R1,LOOP2
RET
;===================================================
END
;**********************************************************
BÀI 7: CHƯƠNG TRÌNH CÁC BỘ ĐỊNH THỜI TIMER
PHẦN 1 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 20KHZ TRÊN CHÂN P1.0
;===================================================
ORG 0000H
;===================================================
;Chuong trinh chinh
MAIN:
MOV TMOD,#20H
60. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 60
MOV TH1,#HIGH(-25)
SETB TR1
WAIT: JNB TF1,WAIT
CLR TF1
CPL P1.0
SJMP WAIT
;===================================================
END
;************************************************
PHẦN 2 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 8KHZ TRÊN CHÂN P1.2
;===================================================
;Khai bao bien / hang so / dau vao/ra
;8KHZ CO 125 CKM VOI MUC CAO 62CKM , MUC THAP 62CKM
;===================================================
ORG 0000H
;===================================================
;Chuong trinh chinh
MAIN:
MOV TMOD,#20H
MOV TH1,#HIGH(-62)
SETB TR1
WAIT: JNB TF1,WAIT
CLR TF1
CPL P1.2
SJMP WAIT
;===================================================
END
;***************************************************************
PHẦN 3 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 1KHZ TRÊN CHÂN P1.2
;===================================================
;Khai bao bien / hang so / dau vao/ra
;1KHZ CO 1000 CKM VOI MUC CAO 500 CKM , MUC THAP 500 CKM
;===================================================
ORG 0000H
;===================================================
;Chuong trinh chinh
MAIN:
MOV TMOD,#10H
AGAIN:
MOV TH1,#HIGH(-500)
61. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 61
MOV TL1,#LOW(-500)
SETB TR1
WAIT: JNB TF1,WAIT
CLR TF1
CLR TR1
CPL P1.2
SJMP AGAIN
;===================================================
END
;************************************************************
PHẦN 4 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 20KHZ TRÊN CHÂN
P1. 3 VÀ 1KHZ TRÊN CHÂN P1.0
;===================================================
ORG 0000H
;===================================================
;Chuong trinh chinh
MAIN:
MOV TMOD,#21H
MOV TH0,#HIGH(-5000)
MOV TL0,#LOW(-5000)
MOV TH1,#HIGH(-25)
SETB TR1
SETB TR0
MOV R0,#100
MOV R1,#10
WAIT: JB TF0,TANSO1
JB TF1,TANSO2
SJMP WAIT
TANSO1:
CLR TR0
CLR TF0
MOV TH0,#HIGH(-5000)
MOV TL0,#LOW(-5000)
SETB TR0
DJNZ R0,WAIT
CPL P1.0
SJMP WAIT
TANSO2:
CLR TF1
DJNZ R1,WAIT
CPL P1.3
SJMP WAIT
;===================================================
END
;****************************************************************
PHẦN 5 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 10KHZ TRÊN CHÂN P1.0
62. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 62
VỚI MỨC CAO 75 CKM MỨC THẤP 25 CKM
CÁCH 1 :
;===================================================
ORG 0000H
;===================================================
;Chuong trinh chinh
MAIN:
MOV TMOD,#22H
MOV TH0,#(-75)
MOV TH1,#(-100)
SETB TR0
SETB TR1
WAIT:
JB TF0,LOOP1
JB TF1,LOOP2
SJMP WAIT
LOOP1:
CLR TF0
CLR P1.1
SJMP WAIT
LOOP2:
CLR TF1
SETB P1.1
SJMP WAIT
;===================================================
END
;***************************************************
CÁCH 2:
;===================================================
ORG 0000H
;===================================================
;Chuong trinh chinh
MAIN:
MOV TMOD,#02H
WAIT:
MOV TH0,#HIGH(-75)
SETB TR0
WAIT1:
JNB TF0,WAIT1
CLR TF0
CLR P1.0
MOV TH0,#HIGH(-25)
SETB TR0
WAIT2:
JNB TF0,WAIT2
SETB P1.0
SJMP WAIT
;===================================================
END
63. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 63
;***************************************************************
PHẦN 6 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 2KHZ TRÊN CHÂN P1.3
VỚI MỨC CAO 400 CKM MỨC THẤP 100 CKM
;===================================================
ORG 0000H
;===================================================
;Chuong trinh chinh
MAIN:
MOV TMOD,#11H
LAP:
MOV TH0,#HIGH(-400)
MOV TL0,#LOW(-400)
MOV TH1,#HIGH(-500)
MOV TL1,#LOW(-500)
SETB TR0
SETB TR1
SETB P1.3
WAIT:
JB TF0,LOOP1
JB TF1,LOOP2
SJMP WAIT
LOOP1:
CLR TF0
CLR P1.3
SJMP WAIT
LOOP2:
CLR TF1
SETB P1.3
SJMP LAP
;===================================================
END
;***********************************************
BÀI 8: CHƯƠNG TRÌNH NGẮT NGOÀI :
PHẦN 1 : CHƯƠNG TRÌNH NHẤN START (P3.2) ĐÈN SÁNG SAU 15S THÌ TẮT , TRONG QUÁ
TRÌNH ĐÈN SÁNG NẾU NHẤN START KHÔNG CÓ TÁC DỤNG
;===================================================
;Khai bao ngat ngoai o
;===================================================
ORG 0000H
JMP MAIN
ORG 0003H
JMP NGATNGOAIO
ORG 000BH
JMP NGATTIMER0
;===================================================
64. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 64
;Chuong trinh chinh
MAIN:
MOV IE,#83H
MOV TMOD,#01H
MOV TH0,#HIGH(-60000)
MOV TL0,#LOW(-60000)
CLR P1.1
SJMP $
;==============================
NGATNGOAIO:
SETB P1.1
MOV R0,#0
SETB TF0
RETI
;==============================
NGATTIMER0:
CLR EX0
INC R0
CLR TR0
MOV TH0,#HIGH(-60000)
MOV TL0,#LOW(-60000)
SETB TR0
CJNE R0,#250,EXIT
CLR P1.1
SETB EX0
CLR TR0
EXIT:
RETI
;===================================================
END
;*************************************************************
PHẦN 2 : CHƯƠNG TRÌNH NHẤN START (P3.2) ĐÈN SÁNG SAU 15S THÌ TẮT , TRONG QUÁ
TRÌNH ĐÈN SÁNG NẾU NHẤN START THÌ ĐÈN SÁNG THÊM 15S NỮA :
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat
ORG 0003H
LJMP NGATNGOAIO
ORG 000BH
LJMP NGATTIMER0
;===================================================
;Chuong trinh chinh
MAIN:
MOV IE,#83H
MOV TMOD,#01H
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
MOV P0,#0FFH
CLR P1.1
65. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 65
SJMP $
;==============================
NGATNGOAIO:
SETB P1.1
MOV R0,#0
SETB TF0
RETI
;==============================
NGATTIMER0:
INC R0
CLR TR0
MOV TH0,#HIGH(-60000)
MOV TL0,#LOW(-60000)
SETB TR0
CJNE R0,#250,EXIT
CLR P1.1
CLR TR0
EXIT:
RETI
;===================================================
END
;***********************************************************
PHẦN 3 : CHƯƠNG TRÌNH NHẤN VÀ DỮ START (P3.2) ĐÈN SÁNG. KHI NHẢ TAY RA ĐÈN
SANG SAU 15S THÌ TẮT , TRONG QUÁ TRÌNH ĐÈN SÁNG NẾU NHẤN START THÌ KHÔNG
CÓ TÁC DỤNG :
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat
ORG 0003H
LJMP NHANSTART
ORG 000BH
LJMP NGATTIMER0
;===================================================
;Chuong trinh chinh
MAIN:
MOV IE,#83H
MOV TMOD,#01H
MOV TH0,#HIGH(-60000)
MOV TL0,#LOW(-60000)
CLR P1.1
SJMP $
;=================================
NHANSTART:
SETB P1.1
MOV R0,#0
JNB P3.2,$
SETB TF0
RETI
;==================================
NGATTIMER0:
CLR EX0
66. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 66
INC R0
CLR TR0
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
CJNE R0,#250,EXIT
CLR P1.1
CLR TR0
SETB EX0
EXIT:
RETI
;===================================================
END
;*****************************************************************
BÀI 9: CHƯƠNG TRÌNH NGẮT BỘ ĐỊNH THỜI TIMER
PHẦN 1 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 2KHZ TRÊN CHÂN P1.1
SỬ DỤNG NGẮT TIMER1
;2KHZ CO 500 CKM VOI MUC CAO 250CKM , MUC THAP 250 CKM
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat ngoai
ORG 001BH
CPL P1.1
RETI
;===================================================
ORG 0030H
;Chuong trinh chinh
MAIN:
MOV IE,#88H
MOV TMOD,#20H
MOV TH1,#HIGH(-250)
SETB TR1
JMP $
;===================================================
END
;*****************************************************
PHẦN 2 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 500HZ TRÊN CHÂN P1.1
SỬ DỤNG NGẮT TIMER1
;500HZ CO 2000 CKM VOI MUC CAO 1000CKM , MUC THAP 1000 CKM
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat ngoai
ORG 001BH
67. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 67
CPL P1.1
CLR TR1
MOV TH1,#HIGH(-1000)
MOV TL1,#LOW(-1000)
SETB TR1
RETI
;===================================================
ORG 0030H
;Chuong trinh chinh
MAIN:
MOV IE,#88H
MOV TMOD,#10H
MOV TH1,#HIGH(-1000)
MOV TL1,#LOW(-1000)
SETB TR1
JMP $
;===================================================
END
;*********************************************************
PHẦN 3 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 10KHZ TRÊN CHÂN P1.0
VỚI MỨC CAO 75 CKM MỨC THẤP 25 CKM . SỬ DỤNG NGẮT TIMER
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat ngoai
ORG 001BH
LJMP NGATTIMER1
ORG 000BH
LJMP NGATTIMER0
;===================================================
ORG 0030H
;Chuong trinh chinh
MAIN:
MOV IE,#8AH
MOV TMOD,#22H
MOV TH1,#(-100)
MOV TH0,#(-75)
SETB TR0
SETB TR1
SJMP $
NGATTIMER0:
CLR TF0
CLR P1.0
CLR ET0 ;Ngung Ngat Timer0
CLR TR0 ;Ngung Hoat Dong Timer0
RETI
NGATTIMER1:
CLR TF1
SETB P1.0
68. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 68
SETB ET0 ;Cho phep Ngat Timer0
SETB TR0 ;Cho Timer0 Hoat Dong
RETI
;===================================================
END
;***********************************************************************
PHẦN 4 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 1KHZ TRÊN CHÂN P1.0
VỚI MỨC CAO 750 CKM MỨC THẤP 250 CKM
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat ngoai
ORG 001BH
LJMP NGATTIMER1
ORG 000BH
LJMP NGATTIMER0
;===================================================
ORG 0030H
;Chuong trinh chinh
MAIN:
MOV IE,#8AH
MOV TMOD,#21H
MOV TH1,#(-250)
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
SETB TR1
SJMP $
NGATTIMER0:
CLR TR0
CLR P1.0
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
SETB ET1 ;Ngung Ngat Timer0
SETB TR1 ;Ngung Hoat Dong Timer0
RETI
NGATTIMER1:
SETB P1.0
CLR ET1 ;Cho phep Ngat Timer0
CLR TR1 ;Cho Timer0 Hoat Dong
RETI
;===================================================
END
;***************************************************************
69. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 69
PHẦN 5 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 10KHZ TRÊN CHÂN P1.0
VỚI MỨC CAO 400 CKM MỨC THẤP 100 CKM
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat ngoai
ORG 001BH
LJMP NGATTIMER1
ORG 000BH
LJMP NGATTIMER0
;===================================================
ORG 0030H
;Chuong trinh chinh
MAIN:
MOV IE,#8AH
MOV TMOD,#11H
MOV TH0,#HIGH(-400)
MOV TL0,#LOW(-400)
MOV TH1,#HIGH(-500)
MOV TL1,#LOW(-500)
SETB TR0
SETB TR1
CLR P1.0
SJMP $
;===================================
NGATTIMER1:
CLR TR1
CLR P1.0
MOV TH0,#HIGH(-400)
MOV TL0,#LOW(-400)
MOV TH1,#HIGH(-500)
MOV TL1,#LOW(-500)
SETB TR1
SETB ET0 ;Cho phep Ngat Timer0
SETB TR0 ;Cho Timer0 Hoat Dong
RETI
;=============================================
NGATTIMER0:
SETB P1.0
CLR ET0 ;Ngung Ngat Timer0
CLR TR0 ;Ngung Hoat Dong Timer0
RETI
;===================================================
END
;****************************************************
PHẦN 6A : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 1KHZ TRÊN CHÂN P1.0
VỚI MỨC CAO 500 CKM ( KHI Ở MỨC CAO LÀ 1 XUNG VUÔNG NHỎ CÓ MỨC CAO 25 MỨC
THẤP 25 ) MỨC THẤP 500 CKM
;===================================================
70. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 70
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat ngoai
ORG 001BH
LJMP NGATTIMER1
ORG 000BH
LJMP NGATTIMER0
;===================================================
ORG 0030H
;Chuong trinh chinh
MAIN:
MOV IE,#8AH
MOV TMOD,#12H
MOV TH0,#HIGH(-25)
MOV TH1,#HIGH(-500)
MOV TL1,#LOW(-500)
SETB TR0
SETB TR1
CLR P1.0
SJMP $
;=======================================
NGATTIMER1:
CLR TR1
MOV TH1,#HIGH(-500)
MOV TL1,#LOW(-500)
CPL P1.0
SETB TR1
RETI
;=============================================
NGATTIMER0:
CPL P1.1
RETI
;===================================================
END
;***********************************************
PHẦN 6B : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 1KHZ TRÊN CHÂN P1.0
VỚI MỨC CAO 10S ( KHI Ở MỨC CAO LÀ 1 XUNG VUÔNG NHỎ CÓ MỨC CAO 100CKM MỨC
THẤP 100CKM ) MỨC THẤP 10S
;===================================================
ORG 0000H
LJMP MAIN
;===================================================
;Khai bao ngat ngoai
ORG 001BH
LJMP NGATTIMER1
ORG 000BH
LJMP NGATTIMER0
;===================================================
ORG 0030H
;Chuong trinh chinh
MAIN:
71. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 71
MOV IE,#8AH
MOV TMOD,#21H
MOV TH1,#(-100)
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR1
SETB TR0
MOV R7,#200
SJMP $
;=================================
NGATTIMER0:
CLR TR0
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
DJNZ R7,THOAT
CPL TR1
CPL ET1
CPL P1.0
THOAT:
RETI
;==============================================
NGATTIMER1:
CPL P1.0
RETI
;===================================================
END
;**********************************************************
BÀI 10: CHƯƠNG TRÌNH ĐIỀU KHIỂN LED ĐƠN
Bài 1: "sáng lần lượt"
Phần cứng: 8 led nối với Port 1, được định vị trí như sau: led 1 nối với
P1.0, lần lượt cho đến led 8 (nối với P1.7). Biết led sáng khi tín hiệu xuất ở các
chân Port 1 ở giá trị 1. Viết chương trình để các led nối với Port 1 sáng lần
lượt từng led từ led 1 đến led 8. Các quá trình trên được lặp lại không ngừng.
Minh hoạ:
•
Cách 1: Cách này đơn giản là làm cho các led sáng bằng cách thiết đặt các
giá trị thích hợp cho các bit của Port để làm led sáng theo từng trạng thái, cách
này đơn giản nhưng cần viết dài và tốn dung lượng bộ nhớ Rom.
Chương trình :
72. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 72
;*******************Chuong trình;*************************************
;**************/////--- LED SANG LAN LUOT -CACH DON GIAN --- ***********
;**////////___ led sang lan luot tu led 1 den led 8-P1___________
;**//////////___ sang o muc 1 va tat o muc 0__________________
;**////////____ lap di lap lai khong gioi han____________________
;** ------- nap gia tri cho tung trang thai ----------////
ORG 000H ; khai bao dia chi de bat dau chuong trinh tren Rom
MOV P1,#00000000B ;===>>>> lam 8 led noi P1 tat
LCALL DELAY ;===>>>>goi chuong trinh con Delay
XUAT:
MOV P1,#00000001B ;===>>>> lam led 1 sang
LCALL DELAY
MOV P1,#00000010B ;===>>>> lam led 2 sang
LCALL DELAY
MOV P1,#00000100B ;===>>>> lam led 3 sang
LCALL DELAY
MOV P1,#00001000B ;===>>>> lam led 4 sang
LCALL DELAY
MOV P1,#00010000B ;===>>>> lam led 5 sang
LCALL DELAY
MOV P1,#00100000B ;===>>>> lam led 6 sang
LCALL DELAY
MOV P1,#01000000B ;===>>>> lam led 7 sang
LCALL DELAY
MOV P1,#10000000B ;===>>>> lam led 8 sang
LCALL DELAY
SJMP XUAT ;===>>>> nhay ve thuc hien tu dau
;**>>>>>>>>>>>>>> delay <<<<<<<<<<<<<<<<<<<<<<<<<<<<
DELAY:
MOV R7,#0FFH ;===>>>> ga'n R7=#0FFH, 1 chu ki may
KT2: MOV R6,#0FFH ;===>>>> ga'n R6=#0FFH, 1 chu ki may
KT1: DJNZ R6,KT1 ;===>>>> giam R6 xuong 1, R6 khac 0->giam tiep,2ckm
DJNZ R7 ,KT2 ;===>>>> giam R7 xuong 1, R6 khac 0-> ve Kt2,2ckm
RET ;===>>>> ket thuc chuong trinh con Delay
;________________________________________________________________________________
END ;===>>>> ket thuc chuong trinh
;*************************************************************
Cách2: Để led sáng lần lượt, cần làm cho tín hiệu xuất ra giá trị 1 một
khoảng thời gian để có thể nhận biết được. Đầu tiên cho P1 tắt, sau đó làm cho
bit A.0 lên 1, sử dụng lệnh xoay trái dữ liệu trên thanh Ram A, mỗi lần xoay giá
trị 1 sẽ chuyển lần lượt qua A.1 - A.2 - A.3 -A.4 - A.5 -A.6 - A.7 - A.0, mỗi lần
xoay xuất tín hiệu ra P1 sẽ thấy led sáng lần lượt từ led 1 đến led 8.
73. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 73
Chương trình:
;****** **********Chuong trình:;******************************
;**************/////--- LED SANG LAN LUOT --- *********************
;**------------------------------------------ ---------------
;**////////////////___ led sang lan luot tu led 1 den led 8___________
;**///////////////___ sang o muc 1 va tat o muc 0__________________
;**//////////////____ lap di lap lai khong gioi han____________________
;**<<<<<< <<<<<<<<---------------------------------->>>>>>>>>>>>>>
;** ------- nap thanh Ram A=#00000001B--------------------////////////////
;**--------ket hop xoay phai thanh Ram A va xuat du lieu---------------////////////////
;*******************************************
ORG 000H ; khai bao dia chi de bat dau chuong trinh tren Rom
MOV P1,#0 ;===>>>> lam 8 led noi P1 tat
LCALL DELAY ;===>>>>goi chuong trinh con Delay
MOV A,#00000001B ;===>>>> A co gia tri 00000001B
XUAT:
MOV P1,A ;===>>>> xuat du lieu A ra P1 dieu khien led
LCALL DELAY ;===>>>>goi chuong trinh con Delay
RL A
SJMP XUAT ;===>>>> nhay ve thuc hien tu dau
;**>>>> >>>>>>>>>>>> delay <<<<<<<<<<<<<<<<<<<<<<<<<<<<
DELAY:
MOV R7,#0FFH ;===>>>> ga'n R7=#0FFH, 1 chu ki may
KT2: MOV R6,#0FFH ;===>>>> ga'n R6=#0FFH, 1 chu ki may
KT1: DJNZ R6,KT1 ;===>>>> giam R6 xuong 1, R6 khac 0->giam tiep,2ckm
74. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 74
DJNZ R7 ,KT2 ;===>>>> giam R7 xuong 1, R6 khac 0-> ve Kt2,2ckm
RET ;===>>>> ket thuc chuong trinh con Delay
;_______________________________________________________
END ;===>>>> ket thuc chuong trinh
;***********************************************************
Giải thích: ORG 000H là lệnh chỉ dẫn: chương trình này được lưu vào ROM bắt đầu từ
địa chỉ 000H.
Khi mới bắt đầu chương trình, Mov P1,#0 làm tất cả các led đều tắt,
LCall Delay làm cho thời gian tắt đủ để mắt người nhận ra.
Mov A,#00000001B làm cho bit A.0 của thanh ghi A được set lên 1, các bit còn lại ở
giá trị 0.
Tiếp theo trong chương trình là nhãn Xuat: vị trí trở về, trên lưu đồ giải thuật là điểm mũi
tên trở về.
Mov P1,A xuất tín hiệu ra P1, lúc này led 1 sáng lên.
Tiếp theo là lệnh gọi chương trình con LCall Delay.
Câu lệnh RL A làm trạng thái các bit dịch sang trái 1 bit, trước đó chỉ có A.0 ở giá trị
1, sau câu lệnh A.1 mang giá trị 1, còn bit A.0 bây giờ mang giá trị 0 do bit A.7 có giá trị 0
chuyển sang.
Sjmp Xuat chương trình nhảy đến đoạn chương trình được đánh dấu bằng nhãn Xuat,
nên nhớ rằng chương lệnh gọi Sjmp chỉ nhảy được đến vị trí cách lệnh gọi không quá 128
byte, nếu vượt qua giới hạn này chương trình dịch sẽ báo lỗi, khi đó cần thay Sjmp bằng
Ljmp vì Ljmp có thể nhảy đến vị trí bất kì trên ROM.
Lúc này chương trình bắt đầu từ nhãn Xuat:
Sau nhãn Xuat: là câu lệnh Mov P1,A tín hiệu được xuất ra P1, lúc này
P1.1 lên giá trị 1, led thứ hai sáng, các led còn lại không sáng. Câu lệnh RL A làm trạng
thái các bit dịch sang trái 1 bit: A.2 lên 1, các bit khác mang giá trị 0.
Các quá trình trên được lặp lại liên tục (với câu lệnh Sjmp Xuat và nhãn Xuat: ). Kết
quả cuối cùng như trên hình minh họa phía trên.
Bài 2: "sáng lần lượt"
Phần cứng: 32 led nối với Port 0,1,2,3, được định vị trí như sau: led 1 nối
với P0.0, lần lượt cho đến led 32 (nối với P3.7). Biết led sáng khi tín hiệu xuất
ở giá trị 1.Viết chương trình để các led nối với Port 0,1,2,3 sáng lần lượt từng
led từ led 1 đến led 32. Các quá trình được lặp lại không giới hạn.
Minh hoạ:
75. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 75
Cách 1: Cách này cũng như cách 1 trong bài 5, làm cho các led sáng bằng
cách thiết đặt các giá trị thích hợp cho các Port để làm led sáng theo từng trạng
thái, cách này đơn giản nhưng cần viết dài và tốn dung lượng bộ nhớ Rom.
;*******/////--- 32 LED SANG LAN LUOT- CACH DON GIAN ---*******
;**////////////////___ led sang lan luot tu led 1 den led 32___________
;**///////////////___ sang o muc 1 va tat o muc 0__________________
;**//////////////____ lap di lap lai khong gioi han____________________
;**<<<<<<<<<<<<<<<<<<<---------------------------->>>>>>>>>>>>>>
;** ------- nap gia tr? cho tung trang thai ----------------////////////////
;****************************************************************
ORG 000H ; Khai Bao Dia Chi De Bat Dau Chuong Trinh Tren Rom
MOV P0,#0 ;===>>>> |||
MOV P1,#0 ;===>>>> ||| CAC LED DEU TAT
MOV P2,#0 ;===>>>> |||
MOV P3,#0 ;===>>>> |||
LCALL DELAY ;===>>>>GOI CHUONG TRINH CON DELAY
XUAT:
;**>>>> >>> LAM LED P0 SANG <<<<<<<<<<<<<<<<<<<<
MOV P0,#00000001B ;===>>>> LAM LED 1 SANG
LCALL DELAY ;===>>>>GOI CHUONG TRINH CON DELAY
MOV P0,#00000010B ;===>>>> LAM LED 2 SANG
LCALL DELAY
MOV P0,#00000100B ;===>>>> LAM LED 3 SANG
LCALL DELAY
MOV P0,#00001000B ;===>>>> LAM LED 4 SANG
LCALL DELAY
MOV P0,#00010000B ;===>>>> LAM LED 5 SANG
LCALL DELAY
MOV P0,#00100000B ;===>>>> LAM LED 6 SANG
LCALL DELAY
MOV P0,#01000000B ;===>>>> LAM LED 7 SANG
LCALL DELAY
MOV P0,#10000000B ;===>>>> LAM LED 8 SANG
LCALL DELAY
;**>>>> >>>>>>LAM LED P1 SANG <<<<<<<<<<<<<<<<<<<
MOV P0,#00000000B ;===>>>> LAM P0 TAT
MOV P1,#00000001B ;===>>>> LAM LED 1 SANG
LCALL DELAY
MOV P1,#00000010B ;===>>>> LAM LED 2 SANG
LCALL DELAY
MOV P1,#00000100B ;===>>>> LAM LED 3 SANG
LCALL DELAY
MOV P1,#00001000B ;===>>>> LAM LED 4 SANG
LCALL DELAY
MOV P1,#00010000B ;===>>>> LAM LED 5 SANG
LCALL DELAY
MOV P1,#00100000B ;===>>>> LAM LED 6 SANG
LCALL DELAY
MOV P1,#01000000B ;===>>>> LAM LED 7 SANG
LCALL DELAY
76. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 76
MOV P1,#10000000B ;===>>>> LAM LED 8 SANG
LCALL DELAY
;**>>>>> LAM LED P2 SANG <<<<<<<<<<<<<
MOV P1,#00000000B ;===>>>> LAM P1 TAT
MOV P2,#00000001B ;===>>>> LAM LED 1 SANG
LCALL DELAY
MOV P2,#00000010B ;===>>>> LAM LED 2 SANG
LCALL DELAY
MOV P2,#00000100B ;===>>>> LAM LED 3 SANG
LCALL DELAY
MOV P2,#00001000B ;===>>>> LAM LED 4 SANG
LCALL DELAY
MOV P2,#00010000B ;===>>>> LAM LED 5 SANG
LCALL DELAY
MOV P2,#00100000B ;===>>>> LAM LED 6 SANG
LCALL DELAY
MOV P2,#01000000B ;===>>>> LAM LED 7 SANG
LCALL DELAY
MOV P2,#10000000B ;===>>>> LAM LED 8 SANG
LCALL DELAY
;**>> >>>LAM LED P1 SANG <<<<<<<<<<<<<<<<<<<
MOV P2,#00000000B ;===>>>> LAM P2 TAT
MOV P3,#00000001B ;===>>>> LAM LED 1 SANG
LCALL DELAY
MOV P3,#00000010B ;===>>>> LAM LED 2 SANG
LCALL DELAY
MOV P3,#00000100B ;===>>>> LAM LED 3 SANG
LCALL DELAY
MOV P3,#00001000B ;===>>>> LAM LED 4 SANG
LCALL DELAY
MOV P3,#00010000B ;===>>>> LAM LED 5 SANG
LCALL DELAY
MOV P3,#00100000B ;===>>>> LAM LED 6 SANG
LCALL DELAY
MOV P3,#01000000B ;===>>>> LAM LED 7 SANG
LCALL DELAY
MOV P3,#10000000B ;===>>>> LAM LED 8 SANG
LCALL DELAY
MOV P3,#00000000B ;===>>>> LAM LED P3 TAT
LJMP XUAT ; ===>>>> NHAY VE THUC HIEN TU DAU
;**>>>>>>>>>>>>>>>>>> DELAY <<<<<<<<<<<<<<<<<<
DELAY:
MOV R7,#0FFH ;===>>>> GAN R7=#0FFH, 1 CHU KI MAY
KT2:
MOV R6,#0FFH ;===>>>> GAN R6=#0FFH, 1 CHU KI MAY
KT1:
DJNZ R6,KT1 ;===>>>> GIAM R6 XUONG 1, R6 KHAC 0-> GIAM TIEP
DJNZ R7,KT2 ;===>>>> GIAM R7 XUONG 1, R6 KHAC 0-> VE KT2
RET ;===>>>> KET THUC CHUONG TRINH CON
;_____________________ _______
END ;===>>>> KET THUC CHUONG TRINH
77. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 77
;**********************************************************
Câu lệnh cuối quay trở về đầu phải dùng Ljmp Xuat chứ không sử dụng Sjmp vì
khoảng cách từ vị trí chương trình bắt đầu đến câu lệnh gọi trở về lớn 128
Cách 2: Kết hợp các lệnh xoay và di chuyển dữ liệu để chương trình viết ngắn
gọn hơn.
Phân tích: Tại mỗi thời điểm chỉ có 1 led sáng, do đó có thể sử dụng lệnh xoay trái
trạng thái các bit của các Port, với một bit nào đó được đặt lên 1, xoay bit này lần lượt qua
P0,P1,P2,P3 sẽ đạt kết quả. Vấn đề đặt ra là làm sao để xoay 32 bit của P0,P1,P2,P3 trong
khi đó chỉ có thanh ghi A thực hiện được lệnh xoay. Không thể thực hiện xoay 32 bit của 4
Port bằng một lệnh duy nhất mà phải trải qua nhiều bước.
Để xoay trạng thái các bit trong một ô nhớ bất kì, đầu tiên chuyển giá trị của ô nhớ đó lên
thanh ghi A, rồi dùng lệnh xoay thanh ghi A, sau đó chuyển kết quả về lại ô nhớ cần
xoay,kết quả ô nhớ đã được xoay. Bây giờ có thể qui ước cụm từ "xoay ô nhớ" thay cho
các bước vừa nêu.
Để xoay 32 bit (trong bài này là P0,P1,P2,P3), trước hết xoay trái ô nhớ đầu tiên (P0)
cùng với cờ C (giá trị đầu tiên của cờ C được được đặt trước tùy từng trường hợp cụ thể
hoặc do chương trình thực hiện), sau khi xoay ô nhớ đầu tiên với cờ C, các trạng thái của
các bit trong ô nhớ đó chuyển qua một bit, giá trị của cờ C chuyển vào bit 0, bit 7 của ô
nhớ đó chuyển vào cờ nhớ C. Xoay ô nhớ thứ hai với cờ nhớ C, giá trị của C trước đó
chuyển vào bit 0 của ô nhớ thứ hai (mà giá trị này trước đó là của bit 7 ô nhớ thứ nhất), giá
trị của bit 7 trong ô nhớ thứ hai chuyển vào cờ nhớ C. Tiếp tục xoay ô nhớ thứ 3 và thứ 4
với cờ nhớ C. Kết quả cuối cùng trạng thái của 32 bit được dịch sang trái 1 bit, bit 0 của ô
nhớ đầu tiên là giá trị của C trước đó và giá trị của cờ nhớ C hiện tại là của bit 7 của ô nhớ
thứ 4 chuyển sang.
Giải thuật:
78. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 78
Chương trình:
79. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 79
;**************/////--- 32 LED SANG LAN LUOT --- ***************
;**////////////////___ LED SANG LAN LUOT TU LED 1 DEN LED 32________
;**///////////////___ SANG O MUC 1 VA TAT O MUC 0_______________
;**//////////////____ LAP DI LAP LAI KHONG GIOI HAN_______________
;**<<<<<<<<<<<<<<<<<<<------------------------------->>>>>>>>>>>>>>
;** ------ SU DUNG LENH XOAY PHAI VOI CO C-----XOAY 32 BIT VOI C------////////
ORG 000H ; KHAI BAO DIA CHI DE BAT DAU CHUONG TRINH TREN ROM
MOV P0,#0 ;===>>>> ||| TAT TAT CA CA LED
MOV P1,#0 ;===>>>> |||
MOV P2,#0 ;===>>>> |||
MOV P3,#0 ;===>>>> |||
SETB C ;===>>>> LAM CO C LEN 1
XOAY32BIT:
MOV A,P0 ;||||||||||
RLC A ;||||||||||===>>>> XOAY TRAI P0 VOI CO NHO C
MOV P0,A ;||||||||||
MOV A,P1 ;@@@@
RLC A ;@@@@ ===>>>> XOAY TRAI P1 VOI CO NHO C
MOV P1,A ;@@@@
MOV A,P2 ;#####
RLC A ;##### ===>>>> XOAY TRAI P2 VOI CO NHO C
MOV P2,A ;#####
MOV A,P3 ;!!!!!!!!!!!
RLC A ;!!!!!!!!!!!===>>>> XOAY TRAI P3 VOI CO NHO C
MOV P3,A ;!!!!!!!!!!!
LCALL DELAY ;===>>>>GOI CHUONG TRINH CON DELAY
SJMP XOAY32BIT ;===>>>> NHAY VE THUC HIEN TU DAU
;**>>>>>>> >>>>>> DELAY <<<<<<<<<<<<<<<<<<<<
DELAY:
MOV R7,#0FFH
LOOP:
MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,LOOP
RET ;=====> KET THU CHUONG TRINH CON DELAY
;_________________________________________________________________________________
END ;===>>>> KET THUC CHUONG TRINH
;***********************************************************************************
80. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 80
Bài 3: " Sáng dồn 8 led"
Phần cứng: 8 led nối với Port 0 được định vị trí như sau: led 1 nối với
P0.0, lần lượt cho đến led 8 (nối với P0.7). Biết led sáng khi tín hiệu xuất ở
mức 1.Viết chương trình để các led nối với Port 0 sáng dồn từ led 1 đến led 8
sau đó tắt hết led và lặp lại. Các quá trình được lặp lại không giới hạn.
Minh hoạ:
•
Cách 1: Cách này đơn giản là làm cho các led sáng bằng cách thiết đặt các
giá trị thích hợp cho các Port để làm led sáng theo từng trạng thái, cách này đơn
giản nhưng cần viết dài và tốn dung lượng bộ nhớ Rom. Nếu cần thiết các bạn tự
giải
Cách 2: Ở cách này giải thuật phức tạp hơn:
Chia quá trình sáng thành hai quá trình đơn: quá trình có 1 led sáng xoay vòng và quá
trình các led sáng cố định có lưu giữ trạng thái led cuối chu trình, kết hợp hai chu trình trên
sẽ ra kết quả cần thực hiện.
Dùng thanh ghi R3 để làm cho bit mang giá trị 1 xoay vòng như ở bài 5.
Dùng ô nhớ 30H dùng lưu giá trạng thái cuối của quá trình.(ban đầu 30H= #00000000B)
Thực hiện OR: R3 với 30H rồi xuất ra P0 sau mỗi lần R3 xoay 1 bit.
Trong quá trình đầu: một bit mang giá trị 1 trên R3 xoay từ vị trí R3.0 đến R3.7, vì 30H
lúc này đang mang giá trị là #00000000B, nên khi OR R3 với 30H rồi xuất ra P0 sẽ thấy 1
led sáng di chuyển từ led 1 đến led 8. Khi vị trí sáng đến led thứ 8 vi điều khiển lưu lại giá
trị của P0 vào 30H.
Trong quá trình hai: bit mang giá trị 1 trên R3 vẫn xoay, lúc này 30H có bit 30H.7 đang
ở giá trị 1 tức là 30H đang mang giá trị #10000000B,nên khi OR R3 với 30H rồi xuất ra
P0 sẽ thấy led 8 sáng cố định, trong lúc đó có 1 led sáng di chuyển từ led 1 đi vào. Đến led
7 vi điều khiển lưu lại giá trị P0 vào 30H (giá trị mới lưu là #11000000B).
Các quá trình tiếp tục như trên. Như vậy cần phải đếm số quá trình đã thực hiện, khi quá
trình thực hiện đến lần thứ 8, lúc này các led đều sáng hết, quá trình phải được lặp lại từ
đầu. Dùng thanh ghi R0 để lưu giữ giá trị này
Trong quá trình thực hiện, số bit tham gia vào xoay giá trị 1 sẽ giảm theo các quá trình,
vì vậy cần kiểm soát số lần xoay trái trong mỗi quá trình. Dùng thanh ghi R1 lưu giữ giá trị
này.
81. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 81
Giải thuật
82. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 82
Chương trình:
;**************/////--- SANG DON 8 LED --- *********************
;**////////////////___ SANG DAN TU LED 1 DEN LED 8___________
;**///////////////___ SANG O MUC 1 VA TAT O MUC 0__________________
;**//////////////____ LAP DI LAP LAI KHONG GIOI HAN_____________
;**<<<<<<<<<<<<<<<<<<<-------------------------->>>>>>>>>>>>>>
ORG 000H ; Khai Bao Dia Chi De Bat Dau Chuong Trinh Tren Rom
TUDAU:
MOV P0,#00H
MOV R0,#8 ;+++>>>SO QUA TRINH THUC HIEN
MOV 30H,#00H
SD2:
MOV 01H,00H ;+++>>> VI KHONG CO LENH MOV R1,R0
MOV R3,# 00H
SETB C
SD1:
LCALL DELAY
MOV A,R3 ;@@@@
RLC A ;@@@@===>>>XOAY TRAI R3
MOV R3,A ;@@@@
ORL A,30H ;+++>>> THUC HIEN PHEP OR GIUA A VA 30H, KET QUA O A
MOV P0,A ;===>>>XUAT KET QUA RA P0
DJNZ R1,SD1
MOV 30H,P0 ;===>>> LUU GIU TRANG THAI CUOI
DJNZ R0,SD2
LJMP TUDAU
;**>>>>>>>> >>>>>>>>>>> DELAY <<<<<<<<<<<<<<<<<<<<<<
DELAY:
MOV R7,#0FFH ;===>>>> GAN R7=#0FFH, 1 CHU KI MAY
KT2: MOV R6,#0FFH ;===>>>> GAN R6=#0FFH, 1 CHU KI MAY
KT1: DJNZ R6,KT1 ;== > Giam R6 Xuong 1, R6 Khac 0-> Giam Tiep
DJNZ R7,KT2 ;===>> GIAM R7 XUONG 1, R6 KHAC 0-> VE KT2
RET ;===>>>> KET THUC CHUONG TRINH CON
;_____________________________________________________
END ;===>>>> KET THUC CHUONG TRINH
;*********************************************************************
83. CHÖÔNG TRÌNH VI ĐIỀU KHIỂN ĐH: CÔNG NGHỆ SÀI GON
VƯƠNG VĂN HÙNG CLASS: ĐĐT307. 3
Trang 83
Bài 3: CHƯƠNG TRÌNH ĐIỀU KHIỂN LED SÁNG DẦN TỪ TRÁI QUA PHẢI
LƯU ĐỒ GIẢI THUẬT :
CHƯƠNG TRÌNH :
;Chuong trình:;**********/////--- SANG DAN 8 LED --- ****************
;**/////////////___ Sang dan tu trai qua phai___________
;**//////////___ sang o muc 0 va tat o muc 1_______________