Tải bản đầy đủ (.doc) (42 trang)

Mạch đèn giao thông cho phép cài thời gian hoạt động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (293.56 KB, 42 trang )

Đồ án 1-DHDT2B
LỜI NÓI ĐẦU
Công nghệ điện tử đang có những bước phát triển chóng mặt trong những năm
gần đây. Trong đó công nghệ vi điện tử đã có bước phát triển vượt bậc. Những con
chip với kích thước nhỏ gọn đang là sự lựa chọn tối ưu nhất cho các ứng dụng ngày
nay. Hàng loạt các nghiên cứu của các nhà khoa học đều nhằm rút ngắn kích thước,
tăng tính tiện lợi và thông minh hơn cho các chip.
Các chip càng tối ưu thì khả năng ứng dụng vào thực tế càng cao. Thực tế đã cho
thấy, những sản phẩm của công nghệ vi điện tử đã vươn tới mọi lĩnh vực trong cuộc
sống, từ sản xuất đến sinh hoạt hằng ngày. Trong tương lai công nghệ vi điện tử sẽ
còn tiến xa hơn để thoả mãn nhu cầu ngày càng cao của con người. Vì vậy đối với
mỗi sinh viên ngành điện tử cần luôn đào sâu nghiên cứu để theo kịp sự phát triển
của công nghệ. Vi điều khiển là một sản phẩm quan trọng của công nghệ vi điện tử,
những chip vi điều khiển nhỏ gọn thực sự là một bộ óc nhân tạo.
Em đã được làm quen với vi điều khiển 8051 của hãng Intel, vì vậy qua việc thực
hiện đề tài “mô hình đèn giao thông” này là một cơ hội để em nắm vững kiến thức
hơn, đồng thời mong muốn có thể ứng dụng kiến thức đã học để tạo ra sản phẩm có
ích cho cuộc sống. Em nghĩ đề tài này xát thực tế và có nhiều hướng phát triển. Tuy
nhiên vì điều kiện thời gian có giới hạn và thực hiện một mình nên không thể biến
hết các ý tưởng thành hiện thực. Lần đầu tiên thực hiện đồ án nên không thể tránh
khỏi những sai sót, em rất mong nhận được sự đóng góp ý kiến của thầy cô và bạn
bè để khắc phục những điểm chưa hoàn thiện của đề tài.
Trong thời gian thực hiện đề tài em đã nhận được sự giúp đỡ tận tình cả về kiến
thức chuyên ngành lẫn tinh thần của cô giáo Phạm Trần Bích Thuận cũng như các
thầy cô trong khoa điện tử, em xin chân thành cảm ơn các thầy cô. Với mong muốn
tiếp tục hoàn thiện đề tài em rất mong nhận được sự giúp đỡ của các thầy cô.
Em xin chân thành cảm ơn!

GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
1
Đồ án 1-DHDT2B


NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

























Chữ ký của giáo viên

GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
2

Đồ án 1-DHDT2B
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN























Chữ ký của giáo viên

GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
3
Đồ án 1-DHDT2B

MỤC LỤC
PHẦN A: NỘI DUNG 5
I. MỤC ĐÍCH 5
II. NGUYÊN LÝ HOẠT ĐỘNG CỦA ĐÈN GIAO THÔNG 6
II.1 HOẠT ĐỘNG 6
II.2 LƯU ĐỒ GIẢI THUẬT CHUNG 6
III. CÁC KHỐI CỦA MÔ HÌNH ĐÈN GIAO THÔNG 8
III.1 KHỐI VI XỬ LÝ VÀ KHỐI NGUỒN 8
III.1.1 Sơ đồ nguyên lý 8
III.1.2 Nguyên lý hoạt động 9
III.1.2.1 Khối vi xử lí 9
III.1.2.2 Khối nguồn 9
III.2 KHỐI HIỂN THỊ 10
III.2.1 Lưu đồ giải thuật 10
III.2.2 Sơ đồ nguyên lý 11
III.2.3 Nguyên lý hoạt động 12
III.3 KHỐI BÀN PHÍM 13
III.3.1 Sơ đồ nguyên lý 13
III.3.2 Lưu đồ giải thuật 14
IV. CHƯƠNG TRÌNH LẬP TRÌNH CHO VI XỬ LÍ 17
PHẦN B: KẾT LUẬN 39
PHẤN C: HƯỚNG PHÁT TRIỂN ĐỀ TÀI 40
PHẦN D: TÀI LIỆU THAM KHẢO 41
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
4
Đồ án 1-DHDT2B
A. NỘI DUNG
I. MỤC ĐÍCH
Hiện nay an toàn giao thông là vấn đề đang được cả thế giới quan tâm. Đối với Việt
Nam là nước đang phát triển và đang trên đà gia tăng dân số thì an toàn giao thông thật

sự là một trong những mối lo ngại được đặt lên hàng đầu, cần cả xã hội tham gia để giảm
thiểu nó.
Tuy nhiên do điều kiện kinh tế, nhiều con đường chưa thể được mở rộng và nâng cấp,
lực lượng cảnh sát giao thông không thể đủ để đảm bảo để đứng chốt trên tất cả các ngã
đường. Vậy thì trật tự an toàn giao thông được xem là giải pháp tối ưu nhất để hạn chế tai
nạn giao thông. Ngoài việc nâng cao ý thức đi đường của người dân thì hệ thống tín hiệu
đèn giao thông trên các trục đường cũng hết sức quan trọng.
Theo em nghĩ xây dựng một hệ thống tín hiệu đèn giao thông đơn giản, có thể được ứng
dụng và nhân rộng và đặt biệt là hoạt động ổn định, thay thế được vai trò của người cảnh
sát giao thông là cần thiết và sát thực tế nhất. Không những thế hệ thống đèn thông giao
thông này phải thật sự linh hoạt để đáp ứng các tình huống khi mà lượng xe lưu thông
trên đường có sự thay đổi. Việc đáp ứng này có thể được thực hiện thông qua các chế độ
hoạt động của đèn giao thông, như: chế độ hoạt động tự động khi không ở giờ cao điểm,
chế độ điều khiển bằng tay của cảnh sát giao thông sử dụng khi kẹt đường, chế độ đèn
vàng trong khoảng thời gian từ 23h tối hôm này đến 5h sáng hôm sau. Ngoài ra hệ thống
đèn giao thông này còn có thể thay đổi được khoảng thời gian hiển thị của các tín hiệu
đèn. Từ những ý tưởng đó đi đến mục đích để em xây dựng mô hình hệ thống đèn giao
thông này. Với mong muốn mô hình này sẽ tiếp tục có những nâng cấp, sửa đổi để có thể
đi vào thực tế.
II. NGYUÊN LÝ HOẠT ĐỘNG CỦA ĐÈN GIAO THÔNG
Mô hình đèn giao thông gồm có:
 Đầu nhập dữ liệu vào là bàn phím, gồm các phím chức năng và phím nhập thời
gian,để cài đặt thời gian của các chế độ hiển thị.
 Khối vi xử lí gồm có: mạch vi xử lí với vi điều khiển 89V51 làm nhiệm vụ xử lí
chính, bộ nguồn cung cấp điện áp 5VDC, các nút nhấn:
_ Nút Reset: Đưa chương trình trở lại ban đầu.
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
5
Đầu vào
Xử lý

Đầu ra
Đồ án 1-DHDT2B
_ Nút Cut and Set: chuyển giữa các chế độ tự động và chế độ điều khiển bằng tay;
chuyển sang chế độ nhập dữ liệu từ bàn phím, là nút nhấn tạo ra tín hiệu ngắt ngoài.
_ Nút Manual mode: chuyển đổi hai trạng thái hiển thị trong chế độ điều khiển bằng
tay.
 Đầu dữ liệu ra ( hiển thị) gồm:
_Màn hình LCD: hiển thị thông tin được nhập vào từ bàn phím
_Led đơn: hiển thị tín hiệu đèn giao thông.
_Led 7 đoạn: hiển thị thời gian sáng của đèn.
II.1 HOẠT ĐỘNG
Đầu tiên chương trình Main thiết lập chế độ ngắt ngoài,khi có tín hiệu ngăt ngoài (nút
cut and set được nhấn), chương trình chuyển sang chế độ chọn quét phím hay chọn điều
khiển bằng tay.
Khi chương trình đang chạy, nút Cut and Set nhấn lần 1để ngắt hiển thị, nhấn lần 2
chương trình chuyển sang chế độ quét phím. Thông tin nhập vào từ bàn phím ma trận sẽ
được lưu lại đồng thời được hiển thị trên LCD. Sau khi nhập đầy đủ các thông số: thời
gian hiển thị của đèn xanh,đèn đỏ; thời gian hiện tại,người sử dụng nhấn phím Enter để
thoát khỏi chương trình quét bàn phím ma trận và chuyển tới chương trình hiển thị tín
hiệu đèn giao thông và hiển thị thời gian trên led 7 đoạn. Nếu không nhấn phím Enter thì
không thể chuyển sang hiển thị tín hiệu đèn.
Nếu nút Man mode được nhấn, chương trình chuyển sang chế độ điều khiển bằng tay
của cảnh sát giao thông. Tiếp tục sử dụng phím Man mode để chuyển đổi qua lại giữa
hai chế độ hiển thị: tuyến a đèn vàng sáng, tuyến b đèn xanh sáng và tuyến a đèn xanh
sáng, tuyến b đèn vàng sáng. Khi không cần thiết sử dụng chế độ điều khiển bằng tay
(khi đường đã thông xe trở lại) thì người dùng nhấn nút Cut and Set để ngắt chế độ điều
khiển bằng tay. Khi chế độ điều khiển bằng tay đã ngắt thì người dung phải cài đặt lại
thời gian hiện tại.
II.2 LƯU ĐỒ GIẢI THUẬT CHUNG
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn

6
Đồ án 1-DHDT2B

GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
7
Cut and
Set
Main2
Choose_mode:
Có nhấn
không
Chọn chế độ
Điều khiển bằng tay
Chọn nhập
thời gian
Manual
mode
Tín hiệu
đèn
Cut and
Set
Cut and
Set
Có nhấn
không
không
Cut and
Set
Có nhấn
Quét bàn

phím
Điều khiển
bằng tay
Phím
Enter
không
không
Có nhấn Có nhấn
Có nhấn
không
Main:
Lựa
chọn
Đồ án 1-DHDT2B
III. CÁC KHỐI CỦA MÔ HÌNH ĐÈN GIAO THÔNG
III.1 KHỐI VI XỬ LÝ VÀ KHỐI NGUỒN
III.1.1 Sơ đồ nguyên lý
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
8
Đồ án 1-DHDT2B
Sơ đồ mạch in
III.1.2 Nguyên lý hoạt động

III.1.2.1 Khối vi xử lí
Sử dụng vi điều khiển 89V51RB2, kết hợp với các điện trở hạn dòng và điện trở kéo lên
(ở P0) để xử lí thông tin và xuất dữ liệu ra các chân Port, nhằm điều khiển tín hiệu đèn,
bàn phím và man hình LCD, chức năng cụ thể của các Port, gồm có:
- Port 0 : nối với bàn phím, đồng thời nối với các chân từ chân AD0 đến AD6 để
xuất các tín hiệu data đưa vào các chân từ D0 đến D7 của các led 7 đoạn.
- Port 1 : để thu và phát thông tin đến các chân từ D0 đến D7 của màn hình LCD.

- Các chân từ P2.0 đến P2.5 dùng để điều khiển sáng tắt led đơn, đóng vai trò làm
tín hiệu đèn giao thông.
- Các chân từ P2.0 đến P2.2 tương ứng dùng để điều khiển các chân RS, RW, E,
đóng vai trò là các chân điều khiển của màn hình LCD.
- Chân P3.1 được nối với nút nhấn Man mode
- Chân P3.2 được nối với nút nhấn Cut and Set
- Các chân từ P3.4 đến P3.7 đóng vai trò xuất tín hiệu quét led 7 đoạn.
III.1.2.2 Khối nguồn
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
9
Đồ án 1-DHDT2B
Gồm có biến thế 3A,đưa ra mức điện áp 12VAC. Cầu chỉnh lưu biến điện áp 12VAC
thành 12VDC. Mức điện áp này đi qua IC ổn áp 7805, đầu ra của IC 7805 là mức điện áp
5VDC, mức điện áp này dùng để cung cấp cho khối vi xử lí và khối hiển thị. Ngoài ra
trong sơ đồ khối nguồn còn có các tụ có nhiệm vụ lọc nhiễu và giảm bớt độ nhấp nhô của
áp DC ở ngõ ra.
III.2 KHỐI HIỂN THỊ
III.2.1 Lưu đồ giải thuật
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
10
A: đỏ
B:xanh
Đổi BCD
Sang 7 đoạn
Delay
quét
(58H) với
#0fH
A: xanh
B:đỏ

Đổi BCD
Sang 7 đoạn
A: đỏ
B:xanh
Delay
quét
Đổi BCD
Sang 7 đoạn
A: đỏ
B:xanh
Delay quét
Đổi BCD
Sang 7 đoạn
A: đỏ
B:xanh
(58H) với
# 0fH
Giảm
(54H)
Delay quét
Đổi BCD
Sang 7 đoạn
A: đỏ
B:xanh
Giảm
(55H)
(55H) với 0
Giảm
(55H)
Bằng

Không
bằng
MOV R6,54H
MOV R7,55H
MOV R6,55H
MOV R7,54H
A: xanh
B:đỏ
Giảm
(55H)
Bằng
Không
bằng
Giảm R7
Giảm R6
R7 với 0 R6 với 0
Không
bằng
Không
bằng
BằngBằng
2 3 4 5
7
61
Main1:
Đồ án 1-DHDT2B
III.2.2 Sơ đồ nguyên lí
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
11
R7 với 0

A: đỏ
B:vàng
Trong 3s; mov R7,#3
Không
bằng
R6 với 0
A: vàng
B:đỏ
Trong 3s;mov R6,#3
Không
bằng
Bằng
Giảm R6
Giảm R7
Bằng
1
3
2
4
5
7
6
Đồ án 1-DHDT2B
Sơ đồ mạch in
III.2.3 Nguyên lí hoạt động
Chương trình hiển thị led đơn, hiển thị thời gian trên led 7 đoạn được đặt trong chương
trình ngắt Timer1. Chương trình hiển thị led chỉ được thực hiện sau khi đã chạy xong
chương trình phuc vụ ngắt ngoài ( chương trình cài đặt thời gian hiển thị cho các led).
Sau khi đã cài đặt thời gian, các gia trị được lưu trên hai ô nhớ 54H ( đèn đỏ) và 55H
( đèn xanh). Các giá trị này lần lược được chuyển qua thanh ghi R6 và R7.

Ta biết hệ thống giao thông ngã tư có hai tuyến. Chương trình khởi động chế độ hiển thị
thứ nhất: tuyến A đèn đỏ và tuyến B đèn xanh. Chương trình con chuyển BCD sang 7
đoạn và chương trình quét led được gọi để hiển thị thời gian trên led 7 đoạn, các giá trị
xử lí trong hai chương trình con này được lấy từ R6 và R7. Ô nhớ 58H là ô nhớ đánh dấu
ở chế độ đèn vàng, nếu ô nhớ 58H bằng giá trị 0fH ( là một giá trị tuỳ ý ta chọn) tức là
chương trình vừa thoát khỏi chế độ đèn vàng, chương trình sẽ quay trở lại thực hiện từ
đầu. Nếu không bằng chương trình tiếp tục giảm R6 và so sánh giá trị R6 với 0. Nếu R6
khác không, tức là thời gian đèn đỏ hiển thị chưa hết, thì chương trình chuyển sang giảm
R7 và so sánh giá trị R7 với 0, nếu khác 0, chương trình quay trở lại ban đầu để tiếp tục
cho hiển thị tren led 7 đoạn, nếu bằng 0, tức thời gian đèn xanh đã hết, đèn xanh sẽ
chuyển sang đèn vàng trong vòng 3s, đèn đỏ giữ nguyên. Trường hợp khi so sánh R6
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
12
Đồ án 1-DHDT2B
bằng 0 ( thời gian đèn đỏ đã hết), thì chương trình sẽ chuyển sang trạng thái hiển thị thứ
hai: tuyến A đèn xanh và tuyến B đèn đỏ. Chương trình hoạt động theo trình tự tương tự
như trên.
Trong suốt quá trinh hoạt động của đèn, Timer0 sẽ đếm liên tục để tăng byte giờ ( ô nhớ
51H), khi nào (51H) bằng 23, tức 11h tối, hệ thống chuyển sang chế độ đèn vàng. Khi
(51H) bằng 5, tức 5h sáng hôm sau, hệ thống thoát khỏi chế độ đèn vàng.
III.3 KHỐI BÀN PHÍM
III.3.1 Sơ đồ nguyên lý
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
13
Đồ án 1-DHDT2B
III.3.2 Lưu đồ giải thuật

Khi nhấn phím chức năng nào sẽ vào chương trình con tương ứng, các chương trình con
đều được xây dựng với sơ đồ giải thuật tương tự nhau. Dưới đây là giải thuật của chương
trình quét phím và nhập thời gian cho đèn đỏ, từ đó có thể suy ra giải thuật cho các

chương trình khác.
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
14
Red
light
Green
light
Hours
Minute
s
Enter
Hiển thị led
Red_light:
Green_light:
:
Hours:
Minutes:
:
Không
nhấn
nhấn
nhấn
nhấn
nhấn
Không
nhấn
Không
nhấn
Không
nhấn

Không nhấn
nhấn
Scankeypad
:
RETI
Đồ án 1-DHDT2B
hang
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
15
Phím: Red; Green;
Hours; Minutes;
Esc
CL
R
Hiển thị:”RED LIGHT:”
Trên LCD
Phím
số
Có nhấn
Không
Không
Nạp vào R4
Scankeypad
Hiển thị LCD
Số hàng chục
xoá
RET
Có nhấn
Có nhấn
Không

1
2
Red_light:
Đồ án 1-DHDT2B
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
16
Scankeypad
Phím: Red; Green;
Hours; Minutes;
Esc
CL
R
Phím
số
Có nhấn
Nạp vào R4
Hiển thị LCD số hàng đơn vị
Scankeypad
Phím: Red; Green;
Hours; Minutes
CL
R
Phím
số
Hiển thị:”FULL”
Trên LCD
Xoá chục và
Hiển thị LCD
Xoá đơnvị và
Hiển thị LCD

Không
Có nhấn
Không
Có nhấn
Không
Có nhấn
Không
Có nhấn
Không
Có nhấn
Không
1 2
4
3
Đồ án 1-DHDT2B
Tất cả các chương trình phím chức năng kết quả đều nạp vào thanh ghi R4. Cuối
chương trình giá trị của thanh ghi R4 sẽ được chuyển vào một ô nhớ cố định, riêng biệt
cho từng chương trình trước khi nhấn Enter để đưa các giá trị trong các ô nhớ đó hiển thị
ở led, hoặc tiếp tục xử lí ( chương trình cài đặt thời gian cho Timer0). Ta có 51H, 52H
lần lượt chứa thông tin về giờ và phút được cài đặt; 54H, 55H lần lượt chứa thời gian
hiển thị của đèn đỏ và đèn vàng.
Ngưòi dùng chỉ được nhập một số có hai chữ số, nhập hơn chương trình sẽ báo đầy.
Ở chương trình nhập thời gian cho byte giờ và byte phút, sau khi nhập xong dữ liệu
thay vì kiểm tra giá trị nhập là bằng o hay khác o, chương trình sẽ kiểm tra để chặn các
giá trị nạp vào lớn hơn hoặc bằng 24.
IV. CHƯƠNG TRÌNH LẬP TRÌNH
CHO VI XỬ LÍ
$MOD51
ORG 0000H
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn

17
ES
C
RET
Có nhấn
Không
Khác 00
3
4
Xét nội dung
được nạp
Bằng 00
Thông báo
Yêu cầu nhập lại
Nạp vào ô nhớ
54H
Đồ án 1-DHDT2B
SJMP MAIN
ORG 0003H
LJMP MAIN2
ORG 001BH
LJMP MAIN1
ORG 0030H
MAIN:
MOV 51H,#00H
MOV 52H,#00H
MOV 53H,#00H
SETB IT0
MOV IE,#81H
MOV IP,#01H

SJMP $
;===============================================
;THE FIRM BYTES ARE: 51H,52H,53H,54H,55H,56H,57H,58H
;================================================
MAIN1:
MOV R6,54H
MOV R7,55H
MOV P2,#0DEH
BEGIN1:
LCALL CHANGEBCD_7SEG
LCALL DELAY_SCAN
MOV A,58H
CJNE A,#0FH,GOON1
MOV 58H,#00H
SJMP MAIN1
GOON1:
MOV A,R6
ADD A,#99H
DA A
JZ TRANSFER
MOV R6,A
MOV A,R7
ADD A,#99H
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
18
Đồ án 1-DHDT2B
DA A
MOV R7,A
CJNE R7,#00H,BEGIN1
MOV R7,#3H

MOV P2,#0EEH
LJMP BEGIN1
TRANSFER:
MOV R6,55H
MOV R7,54H
MOV P2,#0F3H
BEGIN2:
LCALL CHANGEBCD_7SEG
LCALL DELAY_SCAN
MOV A,58H
CJNE A,#0FH,GOON2
MOV 58H,#00H
LJMP MAIN1
GOON2:
MOV A,R7
ADD A,#99H
DA A
JZ MAIN1
MOV R7,A
MOV A,R6
ADD A,#99H
DA A
MOV R6,A
CJNE R6,#00H,BEGIN2
MOV R6,#3H
MOV P2,#0F5H
LJMP BEGIN2
EXIT:
RETI
;=============================================================

;*********************CHOOSE MODE************************
MAIN2:
MAN_MODE BIT P3.1
CUT_SETTING BIT P3.2
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
19
Đồ án 1-DHDT2B
CHOOSE_MODE:
CLR EX0
JNB CUT_SETTING,CHOOSE_MODE
LCALL DELAY_1
CHOOSE_MODE1:
JB CUT_SETTING,CHOOSE_MODE2
LCALL SETTING_PRO
SJMP AUTO_MODE
CHOOSE_MODE2:
JB MAN_MODE,CHOOSE_MODE1
LCALL MANUAL_MODE
AUTO_MODE:
MOV P2,65H
CLR IE0
SETB EX0
SETB TF1
SETB ET1
RETI
;************************MANUAL MODE***************************
MANUAL_MODE:
PUSH ACC
PUSH 00H
PUSH 70H

PUSH 03H
MOV 65H,P2
CLR EX0
MODE1:
MOV R3,#200
MOV P2,#0FFH
MOV 70H,#0FH
MOV P2,#0DEH
SJMP SCAN_SW2
MODE2:
MOV R3,#200
MOV P2,#0FFH
MOV 70H,#00H
MOV P2,#0F3H
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
20
Đồ án 1-DHDT2B
SJMP SCAN_SW2
DELAY_MANU:
MOV R0,#40
MOV TMOD,#11H
LOOP3:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0
SCAN_SW:
JNB MAN_MODE,SCAN_SW
SURE_1:
JB MAN_MODE,SCAN_SW1
DJNZ R3,SURE_1

MOV A,70H
CJNE A,#0FH,MODE1
LJMP MODE2
SCAN_SW1:
JB CUT_SETTING,SCAN_SW2
DJNZ R3,SCAN_SW1
SJMP CHANGE_MODE
SCAN_SW2:
JNB TF0,SURE_1
CLR TR0
CLR TF0
DJNZ R0,LOOP3
INC 53H
MOV A,53H
CJNE A,#10,DELAY_MANU
MOV 53H,#00H
INC 52H
MOV A,52H
CJNE A,#3,DELAY_MANU
MOV 52H,#00H
INC 51H
MOV A,51H
CJNE A,#4,DELAY_MANU
MOV 51H,#00H
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
21
Đồ án 1-DHDT2B
SJMP DELAY_MANU
CHANGE_MODE:
POP 03H

POP 70H
POP 00H
POP ACC
RET
;*************************SCANKEYPAD**************************
SETTING_PRO:
EN BIT P2.2
RW BIT P2.1
RS BIT P2.0
DATABUS EQU P1
PUSH DPH
PUSH DPL
PUSH ACC
MOV 65H,P2
MOV P2,#00H
SETB P3.4
SETB P3.5
SETB P3.6
SETB P3.7
LCALL LCDSTART
MAIN_2:
MOV DATABUS,#80H
LCALL SENDCOMMAND
LCALL SCANKEYPAD
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
22
Đồ án 1-DHDT2B
CJNE A,#0AH,NEXT1
LCALL REDLIGHT_1
NEXT1:

CJNE A,#0BH,NEXT2
LCALL GREENLIGHT_1
NEXT2:
CJNE A,#0CH,NEXT3
LCALL HOURS_1
NEXT3:
CJNE A,#0DH,NEXT4
LCALL MINUTES_1
NEXT4:
CJNE A,#00H,NEXT5
SJMP NEXT6
NEXT5:
LJMP MAIN_2
NEXT6:
POP ACC
POP DPL
POP DPH
RET
;
============================DELAY_2.5MS========================
======
DELAY_1:
PUSH 00H
PUSH 01H
MOV R0,#10
DEL:
MOV R1,#250
DJNZ R1,$
DJNZ R0,DEL
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn

23
Đồ án 1-DHDT2B
POP 01H
POP 00H
RET
;=================TRANSLATE FROM BCD INTO 7SEG================
CHANGEBCD_7SEG:
PUSH DPL
PUSH DPH
PUSH ACC
MOV DPTR,#CODE7SEG
MOV A,R6
ANL A,#0FH
MOVC A,@A+DPTR
MOV 61H,A
MOV A,R6
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV 60H,A
MOV A,R7
ANL A,#0FH
MOVC A,@A+DPTR
MOV 63H,A
MOV A,R7
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV 62H,A
POP ACC

POP DPH
POP DPL
RET
;=====================DISPLAY 7SEG CODE=======================
DIS_7SEG:
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
24
Đồ án 1-DHDT2B
PUSH ACC
PUSH 00H
MOV R0,#60H
MOV A,#0EFH
LOOP:
MOV P0,@R0
MOV P3,A
LCALL DELAY_1
MOV P3,#0FFH
INC R0
RL A
CJNE A,#0FEH,LOOP
POP 00H
POP ACC
RET
;======================DELAY AND SCAN IN 1S==================
DELAY_SCAN:
PUSH 00H
PUSH ACC
MOV R0,#40
MOV TMOD,#01H
LOOP1:

MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0
SCAN:
LCALL DIS_7SEG
JNB TF0,SCAN
CLR TR0
CLR TF0
DJNZ R0,LOOP1
MOV A,51H
CJNE A,#0,DETECT1
LCALL WAITING_1
MOV 58H,#0FH
GVHD: Phạm Trần Bích Thuận SV: Võ Xuân Văn
25

×