Vi xử lý là khả năng sẳn sàng đáp ứng trong hiện tại và tương lai. Đối với một số nhà thiết kế điều này là quan trọng hơn cả. Hiện nay các bộ vi điều khiển 8 bit đứng đầu là họ 8051 có số lượng lớn nhất nhà cung cấp đa dạng (nhiều nguồn). Trong trường hơp 8051 thì nhà sáng chế của nó là Intel, nhưng hiện nay cũng có rất nhiều hãng sản xuất bao gồm các hang :Intel, Atmel, Philip/signe-tics, AMD, Siemens, Matra và Dallas, Semicndictior.
8051 là bộ vi xư lý 8 bít có nghĩa là CPU chỉ có thể làm việc với 8 bít dử liệu tại một thời điểm. dữ liệu lớn hơn 8 bít được chia ra thành các dữ liệu 8 bít để cho xữ lý. 8051 có tất cả 4 cổng vào – ra I/O mỗi cổng rộng 8 bít. Các nhà sản xuất để cho xuất xưởng chỉ với 4K byte rom trên chip.
15 trang |
Chia sẻ: ngtr9097 | Lượt xem: 2072 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Đồ án Chương trình điều khiển đèn giao thông ( cao đẳng kinh tế công nghệ thành Phố Hồ Chí Minh), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG CAO ĐẴNG KINH TẾ CÔNG NGHỆ
TPHCM.
&
¯
ĐỒ ÁN MÔN HỌC
LỚP CLĐT01
NHÓM II
CHƯƠNG TRÌNH ĐIỀU KHIỂN ĐÈN GIAO THÔNG
GVHD:
SVTH: ĐINH VĂN TÙNG.
HUỲNH VĂN QUÂN.
MỞ ĐẦU
Vi xử lý là khả năng sẳn sàng đáp ứng trong hiện tại và tương lai. Đối với một số nhà thiết kế điều này là quan trọng hơn cả. Hiện nay các bộ vi điều khiển 8 bit đứng đầu là họ 8051 có số lượng lớn nhất nhà cung cấp đa dạng (nhiều nguồn). Trong trường hơp 8051 thì nhà sáng chế của nó là Intel, nhưng hiện nay cũng có rất nhiều hãng sản xuất bao gồm các hang :Intel, Atmel, Philip/signe-tics, AMD, Siemens, Matra và Dallas, Semicndictior.
8051 là bộ vi xư lý 8 bít có nghĩa là CPU chỉ có thể làm việc với 8 bít dử liệu tại một thời điểm. dữ liệu lớn hơn 8 bít được chia ra thành các dữ liệu 8 bít để cho xữ lý. 8051 có tất cả 4 cổng vào – ra I/O mỗi cổng rộng 8 bít. Các nhà sản xuất để cho xuất xưởng chỉ với 4K byte rom trên chip.
Đồ án môn học.
1/ SÔ ÑOÀ KHOÁI CUÛA AT89C51
OTHER REGISTER
128 byte RAM
128 byte RAM
8032\8052
ROM
0K:
8031\8032
4K:8951
8K:8052
INTERRUPT CONTROL
INT1\ INT0\
SERIAL PORT TEMER0
TEMER1
TEMER2 8032\8052
CPU
OSCILATOR
BUS CONTROL
I/O PORT
SERIAL PORT
EA\ RST
ALE\ PSEN\
P0 P1 P2 P3
Address\Data
TXD RXD
TEMER2 8032\8052
TEMER1
TEMER1
Đồ án môn học.
Bảng các đăc tính của 8051 đầu tiên.
Đặc tính
Số lượng
ROM trên chip
RAM
Bộ định thời
Các chân vào – ra
Cổng nối tiếp
Nguồn ngắt
4K byte
128K byte
2
32
1
6
2/ SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN 8051:
Là IC đóng vỏ dang dip có 40 chân, mỗi chân có một kí hiệu tên và có chức năng như sau:
Chân 40 nối với nguồn nuôi +5V.
Chân 20 nối với đất (MASS, GND).
Chân 29 (Psen)(Program Store Enable) là tín hiệu điều khiển xuất ra của 8051, nó cho phép chọn bộ nhớ ngoài và được nối chung với chân OE (Output Enable) của EPROM ngoài để cho phép đọc các byte của chương trình. Các xung tín hiệu Psen hạ thấp trong suốt thời gian thi hành lệnh. Những mã nhị phân của chương trình được đọc từ Eprom đi qua Bus dữ liệu và được chốt vào thanh ghi lệnh của 8051 bởi mã lẹnh.
Chân 30 (ALE: Address Latch Enable) là tín hiệu điều khiển xuất ra của 8051, nó cho phân kênh Bus địa chỉ và Bus dử liệu cuả Port 0.
Đồ án môn học.
Chân 31 (EA : Eternal Access) được đưa xuống thấp cho phép chọn bộ nhớ mã ngoài đối với 8051.
Đối với 8051 thì: EA = 5V: chọn ROM nội. EA = 0V : chọn ROM ngoại. 32 chân còn lại chia làm 4 cổng vào ra.
Vào ra tức là có thể dung chân đó để đọc mức logic (0;1 tương ứng với 0V;5V) vào hay xuất mức logic ra (0;1)
P0 từ chân 39 đến chân 32 tương ứng là các chân P0-0 đến P0-7
P1 từ chân 1 đến chân8 tương ứng là các chân P1-0 đến P1-7
P2 từ chân 21 đến chân 28 tương ứng là các chân P2-0 đến P2-7
P3 từ chân 10 đến chân 17 tương ứng là các chân P3-0 đến P3-7
P0
P1
P2
P3
Ports Bit
P0.0
P1.0
P2.0
P3.0
D0
P0.0
P1.1
P2.1
P3.1
D1
P0.2
P1.2
P2.2
P3.2
D2
P0.3
P1.3
P2.3
P3.3
D3
P0.4
P1.4
P2.4
P3.4
D4
P0.5
P1.5
P2.5
P3.5
D5
P0.6
P1.6
P2.6
P3.6
D6
P0.7
P1.7
P2.7
P3.7
D7
Đồ án môn học.
P3.0 – RxD : chân nhận dữ liệu nối tiếp khi giao tiếp RS232 (Cổng COM).
P3.1 - TxD :chân truyền dữ liệu nối tiếp khi giao tiếp RS232.
P3.2 – INT0 : Interrupt 0, ngắt ngoài 0.
P3.3 – INT1 : Interrupt 1, ngắt ngoài 1.
P3.4 – T0 : Timer 0, đầu vào timer 0.
P3.5 – T1 : Timer 1, đầu vào timer 1.
P3.6 – WR : Write, điều khiển ghi dữ liệu.
P3.7 – RD : Read, điều khiển đọc dữ liệu.
Chân 18, 19 nối với thạch anh tạo thành mạvh dao động cho VĐK.
Tần số thạch anh thường được dung là : 11,0592Mhz(giao tiếp với cổng COM máy tính) và 12Mhz.
Tần số tối đa là: 24Mhz. Tần số càng lớn VĐK xử lý càng nhanh.
Đồ án môn học.
Đồ án môn học.
3/SƠ ĐỒ NGUYÊN LÝ.
Đồ án môn học.
Sơ đồ mạch in.
II – PHẦN CHƯƠNG TRÌNH.
Vi xử lý ngày càng có nhiều ứng dụng rộng rãi trong các lĩnh vực đời sống kinh tế - xã hội. tuy nhiên đây là môn học đòi hỏi có tính tư duy cao va phức tạp, vì vậy người lập trình cần phải có những kiến thức tương đối vững vàng về lập trình vi xử lý. Để đạt được những thành công trong lập trình đối sinh viên chúng em cố gắng viết một chương trình ứng dụng vào trong đời sống và xã hội của chúng ta hôm nay.
Chương trình mà chúng em xin giới thiệu ra đây là chương trình điều khiển đèn giao thông,
Giao thông là một vấn đề cơ bản của cuộc sống, tuy nhiên với tình hình giao thông như hiện nay ở nước ta, thì đây là vấn đề trở nên bức xúc đối với người tham gia giao thông. Khi tham gia giao thông chúng ta đều phải chấp hành theo tín hiệu đèn giao thông. Vậy hệ thống này hoạt động như thế nào? Với mục đích vừa đặt ra và tìm hiểu hoạt động của một hệ thống đèn giao thông nên nhóm chúng em cố gắng viết một chương trình đơn gian sau đây.
Với kiến thức còn hạn chế, chắc chắn chương trình nhóm em viết có những hạn chế và sai xót, mong sự góp ý của các thầy cô. Chúng em xin chân thành cảm ơn.
Đồ án môn học.
; --------------------------------------------------------------
; Dung kit moi den giao thong tai nga tu giao lo
; p0 : ma quet led 7 segment
; p2 : ma quet led
; p1.0 : sw1 chon auto/man
; p1.1 : sw2 chon duong 1/2
; p3.0 : den bao l2 : xanh
; p3.1 : den bao l2 : vang
; p3.2 : den bao l2 : do
; p3.3 : den bao l1 : xanh
; p3.4 : den bao l1 : vang
; p3.5 : den bao l1 : do
; --------------------------------------------------------------
;--------------------------------------------------------------
; chuong trinh chinh
;----------------------------------------------------------------
org 0000h
sjmp khoi_dong
;------------------------------------------------------------------
; chuong trinh co khoi dong
;------------------------------------------------------------------
khoi_dong:
mov p0,#0ffh ; tat led
mov p2,#0ffh ; tat chong nhieu
mov p3,#0h ; tat den bao
lcall delay
;------------------------------------------------------------------
; chuong trinh chinh
;------------------------------------------------------------------
main:
lcall ct_man ;
lcall ct_auto
sjmp main
;------------------------------------------------------------------
; chuong trinh auto
;-----------------------------------------------------------------
ct_auto:
jb p1.0,kt_auto
mov r5,#05h
do_sw1:
jb p1.0,kt_auto
djnz r5,do_sw1 ; chong doi phim sw1
run_auto:
jb p1.0,kt_auto
lcall do2_xanh1
lcall delay_30s
lcall do2_vang1
lcall delay_3s
lcall do1_xanh2
lcall delay_30s
lcall do1_vang2
lcall delay_3s
jb p1.0,kt_auto
sjmp run_auto
kt_auto:
ret
;----------------------------------------------------------------
; chuong trinh giam-chuyen hex--->bcd
;---------------------------------------------------------------
ct_giam:
mov a,r3
cjne a,#0h,giam_donvi
sjmp giam_chuc
ret
giam_donvi:
dec a
mov r3,a
ret
giam_chuc:
mov a,r0
cjne a,#0h,giam
mov r3,#0h
ret
giam:
dec a
mov r0,a
mov r3,#09h
ret
;------------------------------------------------------------------
; chuong trinh hien thi
;------------------------------------------------------------------
hien_thi:
mov dptr,#0200h
mov a,r3
movc a,@a+dptr
mov p0,a
mov p2,#00000001b ; xuat hang don vi
lcall delay
mov a,r0
movc a,@a+dptr
mov p0,a
mov p2,#00000010b ; xuat hang chuc
lcall delay
ret
;-----------------------------------------------------------------
; chuong trinh con man
;-----------------------------------------------------------------
ct_man:
jnb p1.0,kt_man ; sw auto/man
mov r5,#05h
do_man:
mov p0,#0ffh ; tat ma hinh
mov p2,#0h ; tat ma led
jnb p1.0,kt_man
djnz r5,do_man
run_man:
lcall ct_line1
lcall ct_line2
jnb p1.0,kt_man ; cho phep auto
sjmp run_man
kt_man:
ret
;------------------------------------------------------------
; chuong trinh line1
;------------------------------------------------------------
ct_line1:
jnb p1.0,kt_line1 ; cho phep auto
jb p1.1,kt_line1 ; cho phep chon line2
mov r5,#05h
do_line1:
jb p1.1,kt_line1
djnz r5,do_line1
run_line1:
lcall ct_xanh1
lcall delay
jnb p1.0,kt_line1 ; cho phep auto
kt_line1:
ret
;------------------------------------------------------------
; chuong trinh line2
;------------------------------------------------------------
ct_line2:
jnb p1.0,kt_line2 ; cho phep auto
jnb p1.1,kt_line2 ; cho phep chon line1
mov r5,#05h
do_line2:
jnb p1.1,kt_line2
djnz r5,do_line2
run_line2:
lcall ct_xanh2
lcall delay
jnb p1.0,kt_line2 ; cho phep auto
kt_line2:
ret
;-------------------------------------------------------------
; chuong trinh con xanh-1
;------------------------------------------------------------
ct_xanh1:
mov p3,#00001100b ; xanh1,do2
lcall delay
ret
;------------------------------------------------------------
;chuong trinh con xanh-2
;------------------------------------------------------------
ct_xanh2:
mov p3,#00100001b
lcall delay
ret
;------------------------------------------------------------
; chuong trinh con do2-xanh1
;-----------------------------------------------------------
do2_xanh1:
mov p3,#00001100b
ret
;-----------------------------------------------------------
; chuong trinh con do2-vang1
;----------------------------------------------------------
do2_vang1:
mov p3,#00010100b
ret
;-----------------------------------------------------------
; chuong trinh con do1-xanh2
;----------------------------------------------------------
do1_xanh2:
mov p3,#00100001b
ret
;-----------------------------------------------------------
; chuong trinh con do1-vang2
;----------------------------------------------------------
do1_vang2:
mov p3,#00100010b
ret
;-------------------------------------------------------------------
; chuong trinh con 30 giay
;------------------------------------------------------------------
delay_30s:
mov r0,#03h ; nap hang chuc
mov r3,#0h ; hang don vi
mov r2,#30
do_30s:
lcall delay_1s
jb p1.0,kt_30s
djnz r2,do_30s
kt_30s:
ret
;-------------------------------------------------------------------
; chuong trinh con 3 giay
;------------------------------------------------------------------
delay_3s:
mov r0,#0h ; nap hang chuc
mov r3,#3h ; nap hang don vi
mov r2,#3
do_3s:
lcall delay_1s
jb p1.0,kt_3s
djnz r2,do_3s
kt_3s:
ret
;-------------------------------------------------------------------
; chuong trinh delay 1 giay
;-------------------------------------------------------------------
delay_1s:
mov r1,#20 ; lap lai 20 lan=1giay
mot_giay:
clr tf0 ; xoa co ngat
mov tl0,#0B0h ; nap gia tri 0 vao tl0 (50ms)
mov th0,#3Ch ; nap gia tri 0 vao th0
mov tmod,#01h ; khoi tao timer0,mod1,16 bit
setb tr0 ; cho phep timer0 bat dau dem
del1:
lcall hien_thi
jb p1.0,kt_1s ; cho phep chon man
jnb tf0,del1 ; co tf0 chua tran tiep tuc dem
djnz r1,mot_giay ; lap lai 14h=20 lan : 1 giay
lcall ct_giam
kt_1s:
ret
;-------------------------------------------------------------
; chuong trinh con delay
;------------------------------------------------------------
delay:
mov r6,#05h
de2:
mov r7,#0fh
de1:
djnz r7,de1
djnz r6,de2
ret
;--------------------------------------------------------------------
; ma 7 doan den anode commam
;--------------------------------------------------------------------
org 0200h
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
end
Đồ án môn học.