Chương trình vi điều khiển Tổng hợp các ứng dụng, chương trình vi điều khiển
Trang 1VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;**************************************************************************
Trang 2VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
AD0 AD2 AD4 AD6 AD7
AD5 AD3 AD1
ALE 30
EA 31PSEN 29RST 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 1P1.1 2P1.2 3P1.3 4P1.4 5P1.5 6P1.6 7P1.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/T115
4 6 8
Trang 3VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 4VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 5VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
SETB P1.0 ;Do A sang
SETB P1.5 ; Xanh B sang
;||Îneu p3.1 = 0 thi nhay XADB_HANDDY
;||Îneu p3.1 = 1 thi nhay DAXB_HANDDY
;||Îneu p3.1 = 0 thi nhay XADB_HANDDY
Trang 6VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 7VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;chuong trinh den giao thong 2 che do co hien thi thoi gian ra led 7 doan
;Nguoi viet :VUONG VAN HUNG
JNB P3.0,DAXB_HANDDY ;||Î neu p3.0 =1 thi chay Auto
CALL DELAY1S ;||Î con p3.0 =0 thi chay Handdy
Trang 8VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
JNB P3.0,XADB_HANDDY ;||Î neu p3.0 =1 thi chay Auto
CALL DELAY1S ;||Î con p3.0 =0 thi chay 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
Trang 9VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
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
Trang 10VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 11VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 12VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 13VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
JNB P3.0,DAXB_HANDDY ;||Î Neu p3.0 = 0 thi chay Handdy
DJNZ R6,LAPXB ;||Î con p3.0 = 1 thi chay AUTO
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
Trang 14VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
JNB P3.0,DAXB_HANDDY ;||Î neu p3.0 = 1 thi chay Auto
CALL DELAY1S_4 ;||Î con p3.0 = 0 thi chay 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
Trang 15VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
; ||=> neu p3.1 = 1 thi nhay DAXB_HANDDY ;||=> neu p3.1 = 0 thi nhay XADB_HANDDY
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
Trang 16VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 17VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 18VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
JNB P3.0,XADB_HANDDY ; neu p3.0 =1 thi chay Auto
CALL DELAY1S_4 ; con p3.0 =0 thi chay Handdy
JNB P3.0,XADB_HANDDY ;||Î neu p3.0 =0 thi chay Handdy
CALL DELAY1S_1 ; ||Îcon p3.0 =1 thi chay AuTo
Trang 19VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
JNB P3.0,DAXB_HANDDY ;||Î neu p3.0 = 1 thi chay Auto
CALL DELAY1S_4 ; ||Îcon p3.0 = 0 thi chay 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:
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
Trang 20VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 21VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 22VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
AD0 AD2
QA4 QC4 QE4 QG4
XTAL2 18XTAL1 19
ALE 30
EA 31PSEN 29RST 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 1P1.1 2P1.2 3P1.3 4P1.4 5P1.5 6P1.6 7P1.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/T115
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
Trang 23VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 24VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 25VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;DONG HO SO THE HIET PHUT VA GIAY
;Nguoi viet :VUONG VAN HUNG
Trang 26VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Thoi gian cua Do B va Vang A
Trang 27VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;CHUONG TRINH DEN GIAO THONG 2 CHE DO CO HIEN THI THOI GIAN RA LED 7 DOAN
;Nguoi viet :VUONG VAN HUNG
Trang 28VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
MOV P0,#00H ; Khong cho hien thoi gian
Trang 29VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
JB P3.0,DAXB_AUTO ; neu p3.0 o muc thap (0) thi chay Auto
Trang 30VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 31VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 32VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Khai bao bien / hang so / dau vao/ra
Trang 33VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
CHUC DATA 7AH
DONVI DATA 7BH
;===================================================
;Khai bao ngat ngoai
;===================================================
Trang 34VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 35VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 36VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
PHẦN 2: CHƯƠNG TRÌNH ĐỌC ENCODER CỦA ĐÔNG CƠ
;=============================================================
;Khai Bao Bien/Hang So/ Dau Vao Ra
Trang 37VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 38VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
MOV TMOD,#01010010B ; TIMER 1 DEM 16 BIT, TIMER 0 DINH THOI 8 BIT NAP LAI
MOV IE,#10000011B ; CHO PHEP NGAT NGOAI 0 VA TIMER 0
Trang 39VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 40VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 41VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
A8 A10 A12 A14
AD0 AD2 AD4 AD6
ALE 30
EA 31PSEN 29RST 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 1P1.1 2P1.2 3P1.3 4P1.4 5P1.5 6P1.6 7P1.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/T115
RES RES
8 9
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
Trang 42VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Khai bao bien / hang so / dau vao/ra
Trang 43VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 44VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 45VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
AD0 AD2 AD4 AD6
AD AD
A8 A10
AD7 AD5 AD3 AD1
XTAL2 18XTAL1 19
ALE 30
EA 31PSEN 29RST 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 1P1.1 2P1.2 3P1.3 4P1.4 5P1.5 6P1.6 7P1.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/T115
LT 3 BI 4 LE/STB 5
Trang 46VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 47VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Khai bao bien / hang so / dau vao/ra
Trang 48VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Khai bao bien / hang so / dau vao/ra
Trang 49VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 50VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 51VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Chuong trinh chinh
Trang 52VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 53VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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 :
Trang 54VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;==============================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
Trang 55VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 56VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;======================================
;Khai bao bien / hang so / dau vao/ra
DEM DATA 7EH
Trang 57VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
INIT:
Trang 58VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 59VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 60VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Khai bao bien / hang so / dau vao/ra
;8KHZ CO 125 CKM VOI MUC CAO 62CKM , MUC THAP 62CKM
;Khai bao bien / hang so / dau vao/ra
;1KHZ CO 1000 CKM VOI MUC CAO 500 CKM , MUC THAP 500 CKM
Trang 61VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 62VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 63VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 64VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;Chuong trinh chinh
Trang 65VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
Trang 66VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 67VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
RETI
NGATTIMER1:
Trang 68VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
RETI
NGATTIMER1:
RETI
;===================================================
END
;***************************************************************
Trang 69VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
PHẦN 5 : CHƯƠNG TRÌNH TẠO XUNG VUÔNG TẦN SỐ 10KHZ TRÊN CHÂN P1.0
RETI
;=============================================
NGATTIMER0:
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
;===================================================
Trang 70VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 71VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
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
Trang 72VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;*******************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 -////
MOV P1,#00000000B ;===>>>> lam 8 led noi P1 tat
LCALL DELAY ;===>>>>goi chuong trinh con Delay
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
Trang 73VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
;**//////////////// _ 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
XUAT:
MOV P1,A ;===>>>> xuat du lieu A ra P1 dieu khien led
LCALL DELAY ;===>>>>goi chuong trinh con Delay
Trang 74VƯƠNG VĂN HÙNG * CLASS: ĐĐT307 3
DJNZ R7 ,KT2 ;===>>>> giam R7 xuong 1, R6 khac 0-> ve Kt2,2ckm
RET ;===>>>> ket thuc chuong trinh con Delay
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
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ạ: