Chương trình vi điều khiể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.

pdf189 trang | Chia sẻ: luyenbuizn | Lượt xem: 1576 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Chương trình vi điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG TRÌNH VI ĐIỀU KHIỂN 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 ;************************************************************************** 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 2 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 A D 3 A D 2 A D 1 A D 0 Q A Q B Q C Q D Q E Q F Q G A D 5 A D 4 Q A Q B Q C Q D Q E Q F Q G Q A Q B Q C Q D Q E Q F Q G A D 6 A D 7 Q A Q B Q C Q D Q E Q F Q G A D 6 A D 7 A D 5 A D 4 Q A Q B Q C Q D Q E Q F Q G XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD039 P0.1/AD138 P0.2/AD237 P0.3/AD336 P0.4/AD435 P0.5/AD534 P0.6/AD633 P0.7/AD732 P2.7/A1528 P2.0/A821 P2.1/A922 P2.2/A1023 P2.3/A1124 P2.4/A1225 P2.5/A1326 P2.6/A1427 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/RXD10 P3.1/TXD11 P3.2/INT012 P3.3/INT113 P3.4/T014 P3.7/RD17 P3.6/WR16 P3.5/T115 U1 80C51 R0 10k C103 10u X1 12MHz C101 30p C102 30p VCC TUYEN DUONG A A 7 B 1 C 2 D 6 LT 3 BI 4 LE /S TB 5 Q A 13 Q B 12 Q C 11 Q D 10 Q E 9 Q F 15 Q G 14 U2 4511 V C C VCC 2 3 4 5 6 7 8 9 1 DRT1 10K V C C 2 3 4 5 6 7 8 91 DRT2 10K Q6 2N2369 Q1 2N2369 Q2 2N2369 Q3 2N2369 Q4 2N2369 Q5 2N2369 TUYEN DUONG BEN B1 TUYEN DUONG BEN A2TUYEN DUONG BEN A1 TUYEN DUONG BEN B2 TUYEN DUONG B VCC R1 100 R2 4k7 R4 4k7 R3 4k7 R5 4k7 R6 4k7 R7 4k7 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 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 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 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 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 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 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) 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 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 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 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 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 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 ;================================================ 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 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 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 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 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 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 T

Các file đính kèm theo tài liệu này:

  • pdfchuong_trinh_vdk_tong_hop1_2406.pdf
Tài liệu liên quan