Đồ á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)

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.

doc15 trang | Chia sẻ: ngtr9097 | Lượt xem: 2072 | Lượt tải: 1download
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.