CHƯƠNG TRÌNH ĐIỀU KHIỂN ĐÈN GIAO THÔNG XANH – VÀNG – ĐỎ TRÊN 8 LED.

Một phần của tài liệu Tài liệu Các bài thực hành về vi điều khiển pdf (Trang 68 - 74)

III. Câu hỏi và bài tập ứng dụng:

CHƯƠNG TRÌNH ĐIỀU KHIỂN ĐÈN GIAO THÔNG XANH – VÀNG – ĐỎ TRÊN 8 LED.

Begin Xanh 1, đỏ 2 sáng Delay 25 giay Vàng 1, đỏ 2 sáng Delay 5 giay Đỏ 1 , xanh 2 sáng Delay 25 giay Đỏ 1, vàng 2 sáng Delay 5 giay end

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh dieu khien den giao thong co hien thi thong so thoi gian tren 2 led 7 doan

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;du lieu dieu khien den cho bo thi nghiem dieu khien led don tich cuc muc 0

X1_d2 EQU 11110011B ;XANH 1, DO 2 SANG V1_d2 EQU 11101011B ;VANG 1, DO 2 SANG d1_X2 EQU 11011110B ;DO 1, XANH 2 SANG D1_V2 EQU 11011101B ;DO 1, VANG 2 SANG ;du lieu dieu khien den cho bo thi nghiem dieu khien led don tich cuc muc 1 ; X1_d2 EQU 10000100B ;XANH 1, DO 2 SANG ; V1_d2 EQU 01000100B ;VANG 1, DO 2 SANG ; d1_X2 EQU 00100001B ;DO 1, XANH 2 SANG ; D1_V2 EQU 00100010B ;DO 1, VANG 2 SANG tg_xanh equ 24 ;24 dem xuong 0 tuc da dem 25 tg_vang equ 4 ;4 dem xuong 0 tuc da dem 5 tg_do equ 29 ;29 dem xuong 0 tuc da dem 30 led7 equ p0 ;dieu khien cac doan a,b,c,d,e,f,g,dp

quet equ p2 ;dieu khien quet cac transistor T0 den T7 leddonto equ p1 ;dieu khien led don

;bat dau chuong trinh chinh

org 0000h mov tmod,#00000001b mov dptr,#ma7doan

mov 22h,#0ffh ;xoa cac vung nho hien thi khong mov 23h,#0ffh ;dung de tat led

mov 24h,#0ffh mov 25h,#0ffh ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;xanh1 va do2 sang 25 giay

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

b222: mov 16h,#tg_xanh ;bien dem thoi gian cho ht1 mov 17h,#tg_do ;bien dem thoi gian cho ht2 mov leddonto,#x1_d2 ;cho xanh1, do2 sang b221: lcall hextobcd lcall gma lcall delay dec 17h djnz 16h,b221 lcall hextobcd lcall gma lcall delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;vang1 va do2 sang 5 giay

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dec 17h

mov 16h,#tg_vang ;bien dem thoi gian cho ht2 mov leddonto,#v1_d2 ;cho vang 1, do2 sang

lcall delay dec 16h djnz 17h,b221a lcall hextobcd lcall gma lcall delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;do1 va xanh2 sang 25 giay

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

mov 16h,#tg_do ;bien dem thoi gian cho ht1 mov 17h,#tg_xanh ;bien dem thoi gian cho ht2 mov leddonto,#d1_x2 ;do1 va xanh2 sang b221b: lcall hextobcd lcall gma lcall delay dec 16h djnz 17h,b221b lcall hextobcd lcall gma lcall delay ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;do1 va vang2 sang 5 giay

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx dec 16h

mov 17h,#tg_vang

mov leddonto,#d1_V2 ;do1 va xanh2 sang b221c: lcall hextobcd lcall gma lcall delay dec 17h djnz 16h,b221c lcall hextobcd lcall gma lcall delay ljmp b222 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ; chuong trinh con chuyen so hex sang so bcd ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hextobcd: mov a,17h

mov b,#10

div ab ;b luu hang don vi swap a ;

orl a,b mov 37h,a mov a,16h mov b,#10

div ab ;b luu hang don vi swap a ;

orl a,b mov 36h,a

ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ; chuong trinh con giai ma

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx gma: mov a,37h

anl a,#0fh movc a,@a+dptr

mov 27h,a ;hang don vi mov a,37h

anl a,#0f0h swap a

movc a,@a+dptr (adsbygoogle = window.adsbygoogle || []).push({});

mov 26h,a ;hang chuc mov a,36h

anl a,#0fh movc a,@a+dptr

mov 21h,a ;hang don vi mov a,36h

anl a,#0f0h swap a

movc a,@a+dptr

mov 20h,a ;hang chuc ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh delay co goi chuong trinh hien thi

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay: mov 7fh,#10h del2: clr tr0 mov th0,#00 mov tl0,#00 setb tr0 clr tf0 del1: lcall hthi

jnb tf0,del1 djnz 7fh,del2

ret

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;chuong trinh con hien thi

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx hthi: mov r1,#01111111b ;ma quet

mov r0,#27h ;nap dia chi quan ly vung ma 7doan vao r0 mov r5,#8

ht1: mov led7,@r0 mov quet,r1 lcall delay1

mov quet,#0ffh ;chong lem dec r0

mov a,r1 rr a

mov r1,a

djnz r5,ht1 ;chi co 2 so nen so sanh voi 62H de ket thuc ret

;chuong trinh con delay1 ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx delay1: mov r7,#0fh djnz r7,$ ret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;vung ma 7 doan ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ma7doan: db 0c0h,0f9h,0a4h,0b0h,099h,092h,082h,0f8h,080h,090h end III. BÀI TẬP:

1. Hãy kết hợp với chương trình con quét phím để có thể thay đổi các thông số thời gian tuỳ ý nằm trong giớ hạn tối đa là 99.

2. Hãy mở rộng hệ thống trên để điều khiển 2 hệ thống đèn giao thông cho 2 ngã tư : ngã tư thứ I và ngã tư thứ II. Ngã tư thứ II trể hơn ngã tư thứ I đúng bằng 10 giây. Cả 2 đều có thời gian điều khiển giống như trên.

3. Hãy mở rộng thêm bài trên dùng 4 led chính giữa hiển thị giờ – phút và thời gian từ 22 giờ đến 06 giờ thì đèn vàng nhấp nháy 1 giây.

I. Mục đích yêu cầu:

Biết cách sử dụng counter để đếm xung ngoại. Ứng dụng dùng để đếm sản phẩm.

II. Trình tự thực hiện:

1. Yêu cầu: sử dụng một mạch thu phát hồng ngoại gồm có 1 led phát và 1 led thu để tạo ra xung khi có sản phẩm đi qua hoặc mạch tạo xung vuông có tần số thấp để nhìn thấy. 2. Giải thuật:

3. Kết nối mạch theo trình tự :

- Dùng bus dây kết nối port 0 đến pinhd điều khiển các đoạn a, b, c, d, e, f, g, dp. - Dùng bus dây kết nối port 2 đến pinhd điều khiển quét hàng từ T0 đến T7. - Nguồn phát tín hiệu xung đến ngõ vào counter T0 của port3.

4. Khởi động phần mềm, soạ thảo chương trình sau:

III. BÀI TẬP: (adsbygoogle = window.adsbygoogle || []).push({});

4. Hãy kết hợp với chương trình con quét phím để có thể thay đổi các thông số thời gian tuỳ ý nằm trong giớ hạn tối đa là 99.

5. Hãy mở rộng hệ thống trên để điều khiển 2 hệ thống đèn giao thông cho 2 ngã tư : ngã tư thứ I và ngã tư thứ II. Ngã tư thứ II trể hơn ngã tư thứ I đúng bằng 10 giây. Cả 2 đều có thời

NGÀY : SỐ TIẾT : LỚP : MSSV : THỰC HÀNH VI ĐIỀU KHIỂN BÀI SỐ : 3-6 CHƯƠNG TRÌNH ĐẾM SẢN PHẨM DÙNG COUNTER T0. Begin Khởi tạo timer T0

ở chế độ counter Xoá các thanh ghi lưu giá trị

đếm

Chuyển số hex của giá trị đếm được sang số BCD Giải mã – hiển thị

6. Hãy mở rộng thêm bài trên dùng 4 led chính giữa hiển thị giờ – phút và thời gian từ 22 giờ đến 06 giờ thì đèn vàng nhấp nháy 1 giây.

PHẦN 4:

Một phần của tài liệu Tài liệu Các bài thực hành về vi điều khiển pdf (Trang 68 - 74)