Professional Documents
Culture Documents
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH
****************
ĐỒ ÁN MÔN HỌC I
GVHD: NGUYỄN QUỲNH ANH
SV THỰC HIỆN:
Đề tài:
- Thiết kế mạch đèn giao thông tại ngã tư có ưu tiên dùng IC AT89C51 hoạt động theo
thời gian đã định, điều khiển đèn giao thông tại ngã tư giao nhau giữa 1 đường ưu tiên
và 1 đường không ưu tiên có các chế độ hoạt động:
+Hiển thị led 7 đoạn đếm ngược thời gian ở 2 ngã đường và hiển thị giờ ,phút.
+Nút nhấn điều khiển thời gian hoạt động theo chế độ.
LỜI CẢM ƠN
SV thực hiện:
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
......................................................................................................................................................
Ngày nay, khái niệm kỹ thuật số đã trở thành quen thuộc với nhiều người, bởi vì
sự phát triển của ngành kỹ thuật số này đã có ảnh hưởng rất lớn đến ngành kinh tế toàn
cầu. Có người đã nêu lên ý tưởng gọi nền kinh tế của thời đại chúng ta là “ nền kinh tế kỹ
thuật số “, “số hóa” đã gần như vượt khỏi ranh giới của một thuật ngữ kỹ thuật . Nhờ có
ưu điểm của xử lý số như độ tin cậy trong truyền dẫn, tính đa thích nghi và kinh tế của
nhiều phần mềm khác nhau, tính tiện lợi trong điều khiển và khai thác mạng.
Số hóa đang là xu hướng phát triển tất yếu của nhiều lĩnh vực kỹ thuật và kinh tế
khác nhau. Không chỉ trong lĩnh vực thông tin liên lạc và tin học. Ngày nay, kỹ thật số đã
và đang thâm nhập mạnh mẽ vào Kỹ thuật điện tử, Điều khiển tự động, phát thanh truyền
hình, y tế, nông nghiệp…và ngay cả trong các dụng cụ sinh hoạt gia đình.
Ngay từ những ngày đầu khai sinh, kỹ thuật số nói riêng và ngành điện tử nói
chung đã tạo ra nhiều bước đột phá mới mẽ cho các ngàng kinh tế khác và còn đảm bảo
được yêu cầu của người dùng cả về chất lượng và dịch vụ. Đồng thời kiến thức về kỹ
thuật số là không thể thiếu đối với mỗi sinh viên, nhất là sinh viên điện tử.
Và như mọi người nhận thấy rằng, ngày nay trật tự giao thông nước ta đang rối
ren. Vì vậy việc sử dụng đèn giao thông tại những giao lộ là rất cần thiết và để hiểu rõ
hơn về nguyên lý hoạt động và muốn phát triển thêm về mô hình này, em đã chọn đề tài
cho đồ án môn học 1 là nghiên cứu về Đèn Giao Thông .
Nội dung chính của bài báo cáo được chia thành các phần chính sau:
Phần một: Phân tích về yêu cầu của đồ án và các giải pháp đưa
ra để thực hiện.
Phần hai: Giới thiệu các linh kiện và cách sử dụng của từng linh
kiện, đặc biệt vể IC lập trình 89C51.
Phần ba: Quá trình thực hiện mô phỏng và các giải thuật đưa ra
thực hiện.
Phần bốn: Mạch cứng thực hiện và các hình ảnh thực tế của mạch.
Phần năm: Kết luận và các hướng phát triển hoàn thiện đề tài.
Trong quá trình thực hiện đề tài có thể không tránh được các thiếu sót và mức độ
hoàn thành đề tài, mong quý thầy cô xem xét và có thể đưa ra nhận xét để chúng em có
thể khắc phục được những thiếu sót đó và có thể hoàn thiện cũng như mở rộng đề tài sau
này….
---------------------------------- -----------------------------------
1/ Các chế độ hoạt động trong ngày: (giờ cao điểm, giờ thấp điểm, hiển thị thời gian của
các chế độ lên led 7 đoạn.)
Giờ cao điểm: đèn xanh ở đường ưu tiên dài hơn đường không ưu tiên.
Có 8 led 7 đoạn:
4 led hiển thị thời gian hoạt động (2 led hiển thị giờ, 2 led hiển thị phút).
Hệ thống led đơn hiển thị cho các đèn xanh, đèn vàng, đèn đỏ tại các ngã tư thực.
Giao tiếp của vi xử lí nhận biết thời gian của IC để tự động chuyển theo chế độ
trong ngày.
Hiển thị: Các led 7 đoạn (anode chung), các led đơn xanh, vàng, đỏ.
Một ứng dụng cơ bản của mạch đèn giao thông ngày nay là giải quyết vấn đề nạn
kẹt xe, đang diễn ra hàng ngày trong các tỉnh thành có mật độ dân số lớn như thành phố
hồ chí minh… mà các nhà chức năng đang phải đâu đầu hiện nay.
2 bộ Timer/counter 16 Bit.
6 nguồn ngắt.
4 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt động nhân
hoặc chia.
Chức năng IO
(xuất / nhập):
dùng cho các thiết
kế nhỏ (không
dùng bộ nhớ
ngoài ). đối với
các thiết kế lớn
với bộ nhớ ngoài,
port 0 được dồn
kênh giữa bus dữ
liệu (D0: D7) và
byte thấp của bus
địa chỉ (A0:A7).
Khi dùng làm ngõ vào, Port 0 phải được set mức logic 1 trước đó.
Chức năng địa chỉ / dữ liệu đa hợp: khi dùng các thiết kế lớn, đòi
hỏi phải sử dụng bộ nhớ ngoài thì Port 0 vừa là bus dữ liệu (8 bit)
vừa là bus địa chỉ (8 bit thấp).
Ngoài ra khi lập trình cho AT89C51, Port 0 còn dùng để nhận mã
khi lập trình và xuất mà khi kiểm tra (quá trình kiểm tra đòi hỏi phải
có điện trở kéo lên).
Port1 (chân 1 – 8): chỉ có một chức năng là I/O, không dùng cho mục
đích khác (chỉ trong 8032/8052/8952 thì dùng thêm P1.0 và P1.1 cho bộ
định thời thứ 3). Tại Port 1 đã có điện trở kéo lên nên không cần thêm điện
trở ngoài.
Port 1 có khả năng kéo được 4 ngõ TTL và còn dùng làm 8 bit địa
chỉ thấp trong quá trình lập trình hay kiểm tra.
Chức năng địa chỉ: dùng làm 8 bit địa chỉ cao khi cần bộ nhớ ngoài
có địa chỉ 16 bit. Khi đó, Port 2 không được dùng cho mục đích I/O.
Khi dùng làm ngõ vào, Port 2 phải được set mức logic 1 trước đó.
Khi lập trình, Port 2 dùng làm 8 bit địa chỉ cao hay một số tín hiệu
điều khiển.
Chức năng khác: ta có bảng chức năng của từng chân sau:
ngoài.
Nguồn:
Chân 40: VCC = 5V ± 20%
PSEN (chân 29) cho phép đọc bộ nhớ chương trình mở rộng đối với
các ứng dụng sử dụng ROM ngoài, thường được nối đến chân OC
(Output Control) của ROM để đọc các byte mã lệnh. PSEN sẽ ở
mức logic 0 trong thời gian AT89C51 lấy lệnh. Trong quá trình này,
PSEN sẽ tích cực 2 lần trong 1 chu kỳ máy.
Mã lệnh của chương trình được đọc từ ROM thông qua bus dữ liệu
(Port0) và bus địa chỉ (Port0 + Port2).
Khi 8951 thi hành chương trình trong ROM nội, PSEN sẽ ở mức
logic 1.
ALE/PROG (chân 30) cho phép tách các đường địa chỉ và dữ liệu
tại Port 0 khi truy xuất bộ nhớ ngoài. ALE thường nối với chân
Clock của IC chốt (74373, 74573).
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên
chip và có thể được dùng làm tín hiệu clock cho các phần khác của
hệ thống.
Xung này có thể cấm bằng cách set bit 0 của SFR tại địa chỉ 8Eh lên
1. Khi đó, ALE chỉ có tác dụng khi dùng lệnh MOVX hay MOVC.
Ngoài ra, chân này còn được dùng làm ngõ vào xung lập trình cho
ROM nội ( PROG).
EA (chân 31) dùng để cho phép thực thi chương trình từ ROM
ngoài. Khi nối chân 31 với Vcc, AT89C51 sẽ thực thi chương trình
từ ROM nội (tối đa 8KB), ngược lại thì thực thi từ ROM ngoài (tối
đa 64KB).
Ngoài ra, chân EA được lấy làm chân cấp nguồn 12V khi lập trình
cho ROM.
RST (Reset):
RST (chân 9) cho phép reset
AT89C51 khi ngõ vào tín hiệu đưa
lên mức 1 trong ít nhất là 2 chu kỳ
máy.
XTAL1,XTAL2:
Ngõ vào và ngõ ra bộ dao động, khi sử dụng có thể chỉ cần kết nối
thêm thạch anh và các tụ như hình vẽ trong sơ đồ. Tần số thạch anh
thường sử dụng cho AT89C51 là 12Mhz.
Nếu tần số thạch anh là 12Mhz thì số chu kì máy bằng 1us.
1.4/ Các thanh ghi đặc biệt của 89C51 (SFR – Special Function Registers).
1.4.3/ Thanh ghi từ trạng thái chương trình (PSW - Program Status Word)
Thanh ghi từ trạng thái chương trình PSW nằm tại địa chỉ D0H và có các địa chỉ
bit từ D0H – D7H, bao gồm 7 bit (1 bit không sử dụng) có các chức năng như sau:
Bit 7 6 5 4 3 2 1 0
Chức
CY AC F0 RS1 RS0 OV - P
năng
CY (Carry): cờ nhớ, thường được dùng cho các lệnh toán học (C = 1 khi có nhớ
trong phép cộng hay mượn trong phép trừ).
AC (Auxiliary Carry): cờ nhớ phụ (thường dùng cho các phép toán BCD).
F0 (Flag 0): được sử dụng tuỳ theo yêu cầu của người sử dụng.
RS1, RS0: dùng để chọn bank thanh ghi sử dụng. Khi reset hệ thống, bank 0 sẽ
được sử dụng.
P (Parity): kiểm tra parity (chẵn). Cờ P = 1 khi tổng số bit 1 trong thanh ghi A là
số lẻ (nghĩa là tổng số bit 1 của thanh ghi A cộng thêm cờ P là số chẵn).
Đối với AT89C51, stack được chứa trong RAM nội (128 byte đối với 8031/8051
hay 256 byte đối với 8032/8052). Mặc định khi khởi động, giá trị của SP là 07h, nghĩa là
stack bắt đầu từ địa chỉ 08h (do hoạt động lưu giá trị vào stack yêu cầu phải tăng nội
dung thanh ghi SP trước khi lưu.
Nếu truy suất Port ta truy suất các thanh ghi Port tương ứng. Các thanh ghi này
được định địa chỉ từng Bit.
M1 M0 CHẾ ĐỘ (MODE)
0 0 0
0 1 1
1 0 2
1 1 3
+T/C :Bit chọn chức năng đếm hoặc định thời cho TIMER.
Chứa các bit điều khiển và trạng thái của Timer 0, 1 ở 4 bit cao, 4 bit thấp được
dùng cho chức năng ngắt (interrupt).
+ Các chế độ hoạt động khác nhau của port nối tiếp được lập trình thông qua
thanh ghi điều khiển port nối tiếp SCON (Serial Control) ở địa chỉ 98H. Đây là
thanh ghi được địa chỉ từng bit.
*SM0, SM1: chọn chế độ hoạt động của port nối tiếp.
*TB8: bit phát thứ 9 (ở chế độ 2 và 3), có thể đặt và xóa bằng phần mềm.
* RB8: bit thu thứ 9 (ở chế độ 2 và 3), có thể đặt và xóa bằng phần mềm.
+ 3 ngắt trrong: ngắt timer 0, ngắt timer 1, ngắt port nối tiếp.
+ Maëc nhieân sau khi reset, taát caû caùc ngaét ôû möùc öu tieân
thaáp.
+Neáu 2 ngaét vôùi möùc öu tieân khaùc nhau xuaát hieän ñoàng
thôøi, ngaét coù möùc öu tieân cao seõ ñöôïc phuïc vuï tröôùc. Ñoàng
thôøi, ngaét coù möùc öu tieân cao cuõng coù theå taïm döøng chöông
trình phuïc vuï ngaét cuûa ngaét coù möùc öu tieân thaáp.
+Neáu caùc ngaét coù cuøng möùc öu tieân xuaát hieän ñoàng
thôøi, vieäc xaùc ñònh ngaét naøo ñöôïc phuïc vuï tröôùc seõ theo thöù
töï: ngắt ngoaøi 0, ngắt timer 0, ngắt ngoaøi 1,ngắt timer 1,ngắt port
noái tieáp,ngắt timer 2 (ñoái vôùi 8032/8052).
+PD: thieát laäp cheá ñoä nguoàn giaûm khi ñöôïc ñaët, chæ
thoaùt khi reset.
+ IDL: thieát laäp cheá ñoä nguoàn nghæ khi ñöôïc ñaët, chæ
thoaùt neáu coù ngaét hoaëc reset.
+ Caùc chaân port ñöôïc duy trì ôû möùc logic cuûa chuùng.
+ Tín hieäu clock noäi khoùa khoâng cho ñeán CPU nhöng khoâng
khoùa ñoái vôùi caùc chöùc naêng ngaét, ñònh thôøi vaø port noái
tieáp.
+ Noäi dung cuûa taát caû caùc thanh ghi ñöôïc duy trì.
Trạng thái của tất cả các thanh ghi trong 89c51 sau khi Reset hệ thống được tóm
tắt như sau:
SP 07H
DPTR 000H
IP XXX0 0000 B
IE 0XX0 0000B
SCON 00H
SBUF 00H
Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được Reset tại
địa chỉ 0000H.Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa chỉ
0000H của bộ nhớ chương trình. Nội dung của RAM trên chip không bị thay đổi bởi tác
động của ngõ vào Reset.
+Nếu dòng Ib=0 thì Vbe bị phân cực ngược dẫn đến
transistor bị phân cực ngược tắt.
3/ Led 7 đoạn ( 7 segment): dòng cần thiết để led sáng : tối thiểu là 10mA.
* Sơ đồ cấu tạo chân của led:
CHƯƠNG 3: THIẾT KẾ
I/ Sơ đồ khối :
Khối xử lí trung
Khối nguồn Khối hiển thị
tâm AT89C51
Khối điều
khiển (nút
nhấn)
IC AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập.Trong đó có
24 chân có tác dụng kép (có nghĩa một chân có hai chức năng), mỗi đường có thể hoạt
động như đường xuất nhập hoặc như đường diều khiển hoặc là thành phần của các bus dữ
liệu và bus dịa chỉ.
Mặt khác khối này nó được lập trình để điều khiển các khối con của mạch.
2.2/ Khối hiển thị thời gian đếm ngược trên led 7 đoạn và hiển thị led đơn:
Khối hiển thị đếm ngược led 7 đoạn: hiển thị thời gian của các chế độ thời gian,
được hiển thị trên led 7 đoạn, các chân của led được nối thông qua một điện trở thanh để
nối với IC vi điều khiển. Việc giải mã nhị phân sang led 7 đoạn điều được thực hiện trên
vi điều khiển.
Led 7 đoạn được nối theo kiểu anode chung. Nghĩa là : chân E của transistor được
nối lên nguồn. Led hoạt động với dòng tối thiểu là 20mA.
Sử dụng port (P0): P0.0, P0.1, P0.2, P0.3, P0.4, P0.5, P0.6, P0.7.
Với các chân điều khiển hoạt động thông qua các transistor PNP A1015 điều khiển
hoạt động ở chế độ bão hòa cung cấp dòng cho led sáng.
Transistor PNP A1015 được nối với port (P2) của vi điều khiển có chức năng
khuyếch đại dòng cho led hoạt động bình thường. thông thường ta chọn hệ số khuyếch
đại β = (40÷100).
Vì vậy ta cần tính các giá trị điện trở như sau:
Dòng điện nhỏ nhất mà một led đơn có thể sáng là 10mA và dòng giới hạn là: 20mA.
Khi một led sáng thì nó sẽ mất một điện áp là 2V trên 1led.
Ta có:
5= Vd+Ic*R2
Ib=Ic/hfe=105 / 100=1mA
Ta lại có:
5= Veb +Ib*R1
Chọn R1=4.7k
Khối hiện thị báo đèn: báo hiệu các đèn xanh, vàng, đỏ ở ngã tư.
+ P3.0 : Nối với đèn đỏ ở đường bên 1.
Sử dụng các led đơn nối anode chung. Còn các chân cathode thì được nối vào điện
trở R. Và nó được điều khiển bởi các chân P3.0, P3.1, P3.2, P3.3, P3.4, P3.5 của port P3.
Dòng qua Led đơn: Id= 10mA- 20mA.
Chọn R = 330ohm
Vì led đơn có dòng hoạt động khoảng 10mA trở lên nên ta có thể chọn điện trở R
sao cho phù hợp.
Như ta đã biết giá trị mặt định của các chân port của vi điều khiển là ở mức 1, vì
vây sử dụng tính chất này chúng ta sẻ nối các chân port với các công tắc và nối công tắc
với đất.
Ngoài ra chúng ta cần phải chống rung cho nút ấn. Có hai cách để chống rung cho
nút ấn:
Ở đây chúng ta sử dụng phương pháp chống rung bằng phần mềm vì đơn giãn và
dể hiểu.
P1.0: Nút mode dùng để chuyển sang chế độ điều khiển bằng tay.
Nhấn lần 2: cài đặt giờ bắt đầu vào chế độ cao điểm.
Nhấn lần 3: cài đặt phút bắt đầu vào chế độ cao điểm.
Nhấn lần 4: cài đặt giờ kết thúc chế độ cao điểm.
Nhấn lần 5: cài đặt phút kết thúc chế độ cao điểm.
2.4/ Khối nguồn: Cung cấp nguồn nuôi cho vi điều khiển hoạt động theo yêu cầu
đề tài. ở đây ta tạo ra nguồn 5v cấp cho vi điều khiển.
IV/ SƠ ĐỒ LAYOUT:
Khi ta tác động đến nút mode thì chân P1.2 của vi xử lí được tích cực, và nó sẽ
chuyển sang chế độ dùng tay. Nghĩa là ta có thể tăng giảm giờ, phút hiện tại và thay đổi
được thời gian chạy chế độ giờ cao điểm tùy ý nhờ 2 nút TĂNG, GIẢM nối với chân
P1.0, P1.1. sau khi điều chỉnh xong ta nhấn nút mode thêm 1 lần nữa để mạch chạy theo
việc điều chỉnh này.
Ví dụ: theo mạch thiết kế thì khi cấp nguồn vào thị mạch sẽ chạy theo chế độ giờ thấp
điểm và led 7 đoạn hiển thị 05h30’. Khi ta nhấn nút mode lần 1 thì sẽ chuyển chế độ
dùng tay, nhấn mode lần 2 & 3 thì chuyển qua điều khiển giờ và phút bắt đầu vào cao
điểm, nhấn tiếp mode lần 4 & 5 thì chuyển qua điều chỉnh giờ và phút kết thúc cao điểm,
nhấn mode lần 6 & 7 thì điều chỉnh giờ và phút hiện tại. nhấn mode lần nữa thì trở lại
hoạt động theo chế độ cài đặt của ta. Việc điều chỉnh nhờ vào 2 nút nhấn TĂNG và
GIẢM.
Còn nút RESET được thiết kế nối vào chân RST của vi xử lí. Khi ta tác động vào nút
này thì toàn bộ các chân vi xử lí sẽ trở về trạng thái mà ta định sẵn.
BEGIN
MAIN
LOOP:
N
KTRA NÚT NHẤN
Y
CHẾ ĐỘ ĐK BẰNG TAY
END
CHẾ ĐỘ AUTO
(19H)=06H,07H11H,12H,16H,
MODE 2:CAO ĐIỂM
17H,18H?
Đèn vàng A: 5s
RET
Gọi ctc quét led 7 doạn + đếm lùi thời Bật đèn xanh B, đỏ A
gian+kiểm tra nút nhấn SCAN 8LED
Đèn vàng A: 5s Gọi ctc quét led 7 doạn + đếm lùi thời
gian+kiểm tra nút nhấn SCAN 7LED
Đèn vàng B: 5s
Gọi ctc quét led 7 doạn + đếm lùi thời
gian+kiểm tra nút nhấn SCAN 8LED
RET
6.4/ CTC QUÉT LED 7 ĐOẠN VÀ ĐẾM LÙI THỜI GIAN,KIỂM TRA NÚT
NHẤN SCAN 8 LED:
Gọi ctc quét led 7 doạn + đếm lùi thời
gian+kiểm tra nút nhấn SCAN 8LED
N
DỊCH MÃ QUÉT
RET
GỌI CTC TẠO TRỄ2.5MS
Y
ẤN NÚT TĂNG TĂNG GIỜ
RET
TĂNG GIỜ
INC (18H)
Y
(18H) = 24H (18H) = 00H
GIẢM GIỜ
DEC (18H)
Y
(18H) = 00H (18H) = 24H
KTRA_GIO4:
CJNE A,#16H,KTRA_GIO5
JMP MODE2
KTRA_GIO5:
CJNE A,#17H,KTRA_GIO6
JMP MODE2
KTRA_GIO6:
CJNE A,#18H,KTRA_GIO7
JMP MODE2
;*************************************************
;GIO THAP DIEM:MODE1
KTRA_GIO7:
JMP MODE1
MODE2:
MOV A,08H
JZ DO_A2
DO_B2:
MOV P2,#0CH ;BAT DEN XANH DUONG A, DO B
MOV 08H,#0
MOV R6,#4
MOV R7,#0
XANH_A2:
MOV R4,#3 ;THOI GIAN DEN XANH
MOV R5,#5
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
VANG_A2:
MOV P2,#0AH ;BAT DEN VANG DUONG A, DO B
MOV R4,#0 ; THOI GIAN DEN VANG 5S
MOV R5,#5
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
JMP LOOP
DO_A2:
MOV P2,#21H ;BAT DEN XANH DUONG B, DO A
MOV 08H,#1
MOV R4,#3
MOV R5,#0
;XANH_B2:
MOV R6,#2 ;THOI GIAN DEN XANH
MOV R7,#5
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
;VANG_B2:
MOV P2,#11H ;BAT DEN VANG DUONG B, DO A
MOV R6,#0 ; THOI GIAN DEN VANG 5S
MOV R7,#5
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
JMP LOOP
MODE1:
MOV A,08H
JZ DO_A1
DO_B1:
MOV P2,#0CH ;BAT DEN XANH DUONG A, DO B
MOV 08H,#0
MOV R6,#3
MOV R7,#0
XANH_A1:
GVHD: Cô Nguyễn Quỳnh Anh Trang 42
Đồ án môn học 1 Mạch đèn giao thông tại ngã tư có ưu tiên
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
VANG_A1:
MOV P2,#0AH ;BAT DEN VANG DUONG A, DO B
MOV R4,#0 ; THOI GIAN DEN VANG 5S
MOV R5,#5
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
JMP LOOP
DO_A1:
MOV 08H,#1
MOV P2,#21H ;BAT DEN XANH DUONG B, DO A
MOV R4,#3
MOV R5,#0
XANH_B1:
MOV R6,#2 ;THOI GIAN DEN XANH
MOV R7,#5
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
VANG_B1:
MOV P2,#11H ;BAT DEN VANG DUONG B, DO A
MOV R6,#0 ; THOI GIAN DEN VANG 5S
MOV R7,#5
LCALL HEX_BCD
LCALL BCD_7DOAN
LCALL SCAN_8LED
JMP LOOP
7.5/CTC quét led 7 đoạn và đếm lùi thời gian, kiểm tra nút nhấn scan 8 led:
SCAN_8LED:
MOV R1,#0FEH
MOV R0,#8
DISP:
MOV P0,#0FFH
MOV A,R1
MOV P1,A
RL A
MOV R1,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
CALL KTRA
INC R0
CJNE R0,#8,DISP
CJNE R5,#0,CHECK_R7
CJNE R4,#0,CHECK_R7
SJMP EXIT
CHECK_R7:
CJNE R7,#0,SCAN_8LED
CJNE R6,#0,SCAN_8LED
EXIT:
RET
;****************************************************
;CTC DELAY 2,5MS
;****************************************************
DELAY:
MOV TMOD,#01H
MOV TH0,#HIGH(-2500)
MOV TL0,#LOW(-2500)
SETB TR0
LAP2:
ACALL KTRA
JNB MODE,PRESS_MODE1_0
JNB TF0,LAP2
CLR TR0
CLR TF0
RET
;****************************************************
PRESS_MODE1_0:
JMP PRESS_MODE1
;****************************************************
;CTC DELAY 500MS DEN VANG
;****************************************************
DELAY500MS:
MOV TMOD,#01H
MOV R3,#10
LAP:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
LAP1:
JNB MODE,PRESS_MODE1_0
JNB TF0,LAP1
CLR TR0
CLR TF0
DJNZ R3,LAP
RET
;****************************************************
;CTC KTRA GIAY
;****************************************************
KTRA:
PUSH ACC
PUSH 00H
MOV 0DH,0CH
MOV A,0DH
CJNE A,0CH,KHAC
JMP EXIT1
KHAC:
CJNE R5,#0,GIAM1
MOV R5,#9
DEC R4
JMP GIAM2
GIAM1:
DEC R5
GIAM2:
CJNE R7,#0,GIAM3
MOV R7,#9
DEC R6
JMP EXIT1
GIAM3:
DEC R7
EXIT1:
POP 00H
POP ACC
RET
INC_GIO:
CALL DELAY1MS
JNB TANG,$
CALL DELAY1MS
MOV A,0AH
ADD A,#1
DA A
MOV 0AH,A
CJNE A,#24H,HOUR
MOV 0AH,#0
JMP HOUR
;***************************************************
DEC_GIO:
CALL DELAY1MS
JNB GIAM,$
CALL DELAY1MS
MOV A,0AH
ADD A,#99H
DA A
MOV 0AH,A
CJNE A,#99H,HOUR
MOV 0AH,#23H
HOUR:
MOV R0,#20
JMP MP1
;***************************************************
INC_PHUT:
CALL DELAY1MS
JNB TANG,$
CALL DELAY1MS
MOV A,0BH
ADD A,#1
DA A
MOV 0BH,A
CJNE A,#60H,MINUTE
MOV 0BH,#0
JMP MINUTE
;***************************************************
DEC_PHUT:
CALL DELAY1MS
JNB GIAM,$
CALL DELAY1MS
MOV A,0BH
ADD A,#99H
DA A
MOV 0BH,A
CJNE A,#99H,MINUTE
MOV 0BH,#59H
MINUTE:
MOV R0,#20
JMP MP3
;***************************************************
XONG:
LCALL DELAY1MS
JNB MODE,$
LCALL DELAY1MS
MOV 0CH,#55H
CALL GHI
JMP LOOP
;****************************************************
;CTC DUA DU LIEU
;****************************************************
DATABCD:
PUSH ACC
MOV A,0EH
ANL A,#0FH
MOV R5,A
MOV A,0EH
ANL A,#0F0H
SWAP A
MOV R4,A
POP ACC
RET
;****************************************************
QUET2LED:
PUSH ACC
PUSH 00H
PUSH 01H
MOV R1,#0FEH
MOV R0,#4
DISP1:
MOV A,R1
MOV P1,A
RL A
MOV R1,A
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY_MODE
INC R0
CJNE R0,#6,DISP1
POP 01H
POP 00H
POP ACC
RET
;****************************************************
;CTC DELAY 1MS
;****************************************************
DELAY1MS:
MOV TMOD,#01H
MOV TH0,#HIGH(-1000)
MOV TL0,#LOW(-1000)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
;***************************************************
DELAY_MODE:
MOV TMOD,#01H
MOV TH0,#HIGH(-2500)
MOV TL0,#LOW(-2500)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
7.7/ CTC đổi số HEX sang BCD và BCD sang LED 7 ĐOẠN:
HEX_BCD:
MOV A,GIAY
MOV B,#10
DIV AB
MOV 10H,B
MOV 11H,A
MOV A,PHUT
MOV B,#10
DIV AB
MOV 12H,B
MOV 13H,A
MOV A,GIO
MOV B,#10
DIV AB
MOV 14H,B
MOV 15H,A
RET
;*************************************************
;*************************************************
BCD_7DOAN:
MOV DPTR,#500H
MOV R0,#10H
MOV R1,#20H
MOVC A,@A+DPTR
MOV @R1,A
INC R0
INC R1
DJNZ R7,BC
MOV @R1,#0BFH
INC R1
CJNE R0,#16H,BC1
RET
;***************************************************
DL7DOAN:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
*ưu điểm:
+ Ta có thể áp dụng mạch này vào thực tế 1 cách dễ dàng và thay đổi được các chế
độ hoạt động của mạch để phù hợp với cuộc sống hơn.
+ Mạch được thiết kế theo hoạt động đúng chế độ hoạt động trong ngày.
+ Các chức năng điều khiển bằng tay hoạt động được.
*khuyết điểm:
+ Mạch thiết kế chưa tối ưu.
+ Mạch chuyển đổi chế độ tự động theo giờ nhiều khi chưa chính xác.
+ Mạch này chưa thay đổi được số giây ở đường ưu tiên khi ta điều khiển bằng tay
nên ta có thể xây dựng thêm vấn đề này để mạch hoàn thiện hơn.
+ Việc hoàn thành mạch có thể được xây dựng theo nhiều chương trình khác nhau,
và rút gọn hơn.
1/ Bài giảng vi xử lí - Trường đại học giao thông vận tải thành phố HCM.
2/ Giáo trình vi điều khiển - Tống Văn On – Trường đại học bách khoa thành phố
HCM.
3/ Giáo trình thực hành vi xử lí - Trường đại học công nghệ sài gòn
4/ http://dientuvietnam.net
5/ http://dientuvienthong.net
6/ http://www.ant7.com/forum/forum_post.asp?TID=4964&PN=0&TPN=2
PHỤ LỤC
Đề tài:...................................................................................................................................
I/ Sơ đồ khối...........................................................................................................23
4/ Khối nguồn................................................................................................28
IV/ Sơ đồ layout......................................................................................................29