BÀI TẬP LỚN MÔN HỌC KĨ THUẬT VI XỬ LÝ(Nhóm Sinh viên_ Nhóm 2)ĐỀ BÀI“Thiết kế hệ thống đèn giao thông cho một ngã tư”BÀI TẬP LỚN MÔN HỌC KĨ THUẬT VI XỬ LÝ(Nhóm Sinh viên_ Nhóm 2)ĐỀ BÀI“Thiết kế hệ thống đèn giao thông cho một ngã tư”
Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử BÀI TẬP LỚN MÔN HỌC KĨ THUẬT VI XỬ LÝ (Nhóm Sinh viên_ Nhóm 2) ĐỀ BÀI “Thiết kế hệ thống đèn giao thông cho ngã tư” Cấu trúc phần cứng + Vi xử lí: Họ 8051 (nên sử dụng Atmel 89C52) + Thạch anh 12MHz (hoặc 11.059MHz) + tụ điện 33pF, tụ 100nF(tụ 104K) + diode 1N4148 + chọn Led đơn nhỏ, R Ri ghép nối 470Ω đến 1KΩ + 10 phím bấm, R 470Ω, R 10KΩ + Nguồn: BA 12V, diode 1N4007, ổn áp 7805, Jack nối, LED, trở…như KIT1 ▪ Hệ thống đèn tín hiệu bao gồm cột đèn, thiết kế cho cụm cho hướng, cụm bao gồm: - đèn xanh hướng cột đèn nối với chân P1.0 P1.3 - đèn vàng hướng cột đèn nối với chân P1.1 P1.4 - đèn đỏ hướng cột đèn nối với chân P1.2 P1.5 - cột đèn phụ đấu nối tiếp với hướng để người đường dễ quan sát ▪ Hệ thống phím bấm cho người thiết kế cho hướng để dễ dàng tác động theo hướng: - phím bấm cột đèn nối với chân P3.2 P3.3 - đèn đỏ dành cho người nối với chân P1.7 P3.1 - đèn xanh dành cho người nối với chân P1.6 P3.0 Hoạt động Đơn giản hố thời gian để chạy mơ phỏng, ta chọn sau: - Hướng 1: ta cho đèn đỏ sáng 10s, xanh sáng 10s vàng sáng 2s - Hướng 2: tương ứng hoạt động theo hướng Tức thời gian đèn đỏ hướng tổng thời gian đèn xanh vàng hướng ngược lại Cụ thể theo sơ đồ sau: Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Hướng Hướng Bộ môn Kỹ Thuật điện tử ĐỎ 10s XANH 8s XANH 10s V 2s V 2s ĐỎ 12s - Hướng cho người bộ: bình thường đèn đỏ ln ln sáng, có tác động bấm phím đèn đỏ sáng 3s để hết phương tiện đường, đồng thời đèn sáng đèn vàng hướng Sau bật đèn xanh người 10s, đồng thời sáng đèn xanh hướng chiều người sáng đèn đỏ hướng cịn lại - Chu trình lặp lại Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử I TÌM HIỂU SƠ LƯỢC VỀ 89C52 Bảng tóm tắt vùng nhớ 89C52 Bảng nhớ Data chip sau: Địa Byte Địa Byte Địa bit Nhóm Lớp: Cơ điện tử K45 Địa bit ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử Sơ đồ chức chân 89C52 30p 40 19 XTAL1 Vcc 12MHz 30p 18 29 RD\ WR\ T1 T0 INT1 INT0 TXD RXD XTAL2 PSEN\ 30 ALE 31 EA\ Po.7 Po.6 Po.5 Po.4 Po.3 Po.2 Po.1 Po.0 P2.7 P2.6 P2.5 P2.4 RET P2.3 P2.2 P2.1 P2.0 17 16 15 14 13 12 11 10 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 Vss 32 33 34 35 36 37 38 39 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 28 27 26 25 24 23 22 21 A15 A14 A13 A12 A11 A10 A9 A8 20 a Port 0: port có chức chân từ 32 đến 39 thiết kế cỡ nhỏ ( khơng dùng nhớ mở rộng ) có hai chức đường IO Đối với thiết kế cỡ lớn ( với nhớ mở rộng ) kết hợp kênh bus b Port1: Port1 cổng IO chân 1-8 Các chân ký hiệu P1.0 ….P1.8 dùng cho thiết bị ngồi cần Port1 khơng có chức khác, dùng giao tiếp với thiết bị ngồi Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử c Port2: Port2 port công dụng kép chân 21-28 dùng cổng xuất nhập byte cao bus địa thiết bị dùng nhớ mở rộng d Port3: Là port công dụng kép chân 10-17 Các chân port có nhiều chức năng, cơng dụng chuyển đổi có liên hệ với đặc tính đặc biệt 8952 bảng sau: Bit P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 Teân RXD TXD INTO INT1 TO T1 WR RD Chức chuyển đổi Dữ liệu nhận từ Port nối tiếp Dữ liệu phát cho Port nối tiếp Ngắt bên ngồi Ngắt bên ngồi Ngõ vào timer/counter Ngõ vào timer/counter Xung ghi nhớ liệu Xung đọc nhớ liệu ngoaøi Bảng chức chân Port3 e PSEN (Program store Enable) : 8952 có bốn tín hiệu điều khiển PSEN tín hiệu chân 29 Nó tín hiệu điều khiển phép nhớ chương trình mở rộng thường nối đến chân OE (Output Enable ) EPROM phép đọc bytes mã lệnh PSEN mức thấp thời gian lấy lệnh Các mã nhị phân chương trình đọc từ EPROM qua bus chốt vào ghi lệnh 8952 để giải mã lệnh Khi thi hành chương trình ROM nội (8952 ) PSEN mức thụ động (mức cao) f ALE (Address Latch Enable ): Tín hiệu ALE chân 30 tương hợp với thiết bị làm việc với vi xử lý 8585, 8088, 8086, 8951 dùng ALE cách tương tự cho làm việc giải kênh bus địa liệu port dùng chế độ chuyển đổi nó: vừa bus liệu vừa bus thấp địa chỉ, ALE tín hiếu để chốt địa vào ghi bên đầu chu kỳ nhớ Sau đó, đường Port dùng để xuất nhập liệu sau chu kỳ nhớ Các xung tín hiệu ALE có tốc độ 1/6 lần tố số dao động chip dùng nguồn xung nhịp cho hệ thống Nếu xung 8952 12MHZ ALE có 2MHz Chỉ ngoại trừ thi hành lệch MOVX, xung ALE bị Chân làm ngõ vào cho xung lập trình cho EPROM 8952 Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử g EA (Extemal Acces): Tín hiệu vào EA chân 31 thường đươc mặc lên mức cao (+5V) mức thấp (GND) Nếu mức cao, 8952 thi hành chương trình từ ROM nội khoảng địa thấp (4K) Nếu mức thấp, chương trình thi hành từ nhớ mở rộng Khi dùng 8031, EA ln nối mức thấp khơng có nhớ chương trình chip Nếu EA nối mức thấp nhớ chương trình 8952 bị cấm chương trình thi hành từ EPROM mở rộng Người ta dùng chân EA làm chân cấp điện áp 21V lập trình cho EPROM 8952 h SRT( Reset): Ngõ vào RST chân ngõ reset 8952 Khi tín hiệu đưa lên mức cao (trong chu kỳ máy ), ghi 8952 tải giá trị thích hợp để khởi động hệ thống i Các ngõ vào dao động chip: Như thấy hình trên, 8952 có dao động chip Nó thường nối với thạch anh hai chân 18 19 Các tụ cần thiết vẽ Tần số thạch anh thông thường 12Mhz j Các chân nguồn: 8952 vận hành với nguồn đơn +5V Vcc nối vào chân 40 Vss(GND) nối vào chân 20 k Các bank ghi: 32 byte thấp nhớ nội dành cho bank ghi Bộ lệnh 8952 hỗ trợ ghi (R0 – R7) theo mặc định (sau Reset hệ thống) ghi địa 00H-07H Lệnh sau đọc nội dung địa 05H vào ghi tích lũy MOV A,R5 Đây lệnh byte dùng địa ghi Tất nhiên, thao tác tương tự thi hành lệnh byte dùng địa trực tiếp nằm byte thứ hai: MOV A,05H Các lệnh dùng ghi R0 đến R7 ngắn nhanh lệnh tương ứng dùng địa trực tiếp Các giá trị liệu dùng thường xuyên nên dùng ghi Bank ghi tích cực chuyển đổi cách thay đổi bit chọn bank ghi từ trạng thái chương trình (PSW) Giả sử bank ghi tích cực, lệnh sau ghi nội dung ghi tích lũy vào địa 18H: Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử MOV R0,A Ý tưởng dùng “các bank ghi” cho phép “chuyển hướng” chương trình nhanh hiệu (từng phần riêng rẽ phần mềm có ghi riêng không phụ thuộc vào phần khác) Lệnh reset : 8952 reset cách giữ chân RST mức cao chu kỳ máy trả mức thấp RST kích cấp điện dùng mạch R-C +5V +5V 100 10UF 8,2K Mạch reset hệ thống Trạng thái tất ghi 8952 sau reset hệ thống tóm tắt bảng sau: Thanh ghi Đếm chương trình Tích lũy B PSW SP DPTR Port 0-3 IP IE Các ghi định thời SCON SBUF PCON(HMOS) PCON(CMOS) Noäi dung 0000H 00H 00H 00H 07H 0000H FFH XXX00000B 0XX00000B 00H 00H 00H 0XXXXXXB 0XXX0000B Quan trọng ghi ghi đếm chương trình, đặt lại 0000H Khi RST trở lại mức thấp, việc thi hành chương trình ln bắt đầu địa nhớ chương trình: địa 0000H Nội dung RAM chip khơng bị thay đổi lệnh reset Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử Hoạt động Timer Truy xuất timer AT89C52 dùng ghi chức cho bảng sau: SFR MỤC ĐÍCH ĐỊA CHỈ Địa hóa bit TCON TMOD TL0 TL1 TH0 TH1 Điều khiển timer Chế độ timer Byte thấp timer Byte thấp timer Byte cao timer Byte cao timer 88H 89H 8AH 8BH 8CH 8DH Có Khơng Khơng Khơng Khơng Khơng Thanh ghi chức đặc biệt dùng timer ▪ Thanh ghi chế độ timer (TMOD) Thanh ghi TMOD chứa hai nhóm bit dùng để đặt chế độ làm việc cho timer timer Bit Tên GATE Timer C/T M1 M0 1 GATE C/T M1 M0 0 0 Mô tả Bit (Mở) cổng, lên timer chạy INT1 mức cao Bit chọn chế độ counter/timer 1=bộ đếm kiện 0=bộ định khoảng thời gian Bit chế độ (mode) Bit chế độ 00: chế độ : timer 13 bit 01: chế độ : timer 16 bit 10: chế độ : tự động nạp lại 8255A bit 11: chế độ : tách timer Bit (mở) cổng Bit chọn counter/timer Bit chế độ Bit chế độ ▪ Thanh ghi điều khiển timer (TCON) Thanh ghi TCON chứa bit trạng thái bit điều khiển cho timer timer Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn mơn Kỹ thuật VXL Bit Kí hiệu TCON.7 TF1 Bộ môn Kỹ Thuật điện tử Địa 8FH TCON.6 TR1 8EH TCON.5 TCON.4 TCON.3 TCON.2 TF0 TR0 IE1 IT1 8DH 8CH 8BH 8AH TCON.1 TCON.0 IE0 IT0 89H 88H Mô tả Cờ báo tràn timer Đặt phần cứng tràn, xóa phần mềm phần cứng xử lý đến chương trình ngắt Bit điều khiển timer chạy Đặt/ xóa phần mềm Cờ báo tràn timer Bit điều khiển timer chạy Cờ cạnh ngắt bên Cờ kiểu ngắt bên Phần cứng phát cạnh xuống INT1, xóa phần mềm phần cứng CPU đến chương trình phục vụ ngắt Đặt xóa phần mềm Cờ cạnh ngắt bên ngồi Cờ kiểu ngắt bên ngồi Tóm tắt ghi TCON ▪ Khởi động truy xuất ghi timer Thông thường ghi khởi động lần đầu chương trình để đặt chế độ làm việc cho Sau thân chương trình timer cho chạy, dừng, bit cờ kiểm tra xóa, ghi đọc cập nhật… TMOD ghi thứ đước khởi động nnó đặt chế độ hoạt động Ví dụ lệnh sau khởi động timer timer 16 bit (chế độ1) có xung nhịp từ dao động chíp cho việc định khoảng thời gian ▪ Các khoảng ngắn khoảng dài 89C52 hoạt động với tần số 12Mhz Như xung nhịp timer có tần số 1MHz Khoảng thời gian ngắn có bị giới hạn không tần số xung nhịp timer mà phầm mềm Do ảnh hưởng thời gian khoảng thực lệnh, ngắn chu kì máy hay 1s Sau bảng tóm tắt: Khoảng thời gian 10 256 65535 Khoảng thời gian Kỹ thuật - Bằng phần mềm - Timer bit tự động nạp lại - Timer 16 bit - Timer 16 bit cộng với vịng lặp phần mềm Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử II HOẠT ĐỘNG ĐÈN GIAO THÔNG Lưu đồ hoạt động đèn Giao thông: Bắt đầu Bật đèn xanh hướng 2, đỏ hướng Lưu sáng hiển thị Bật đèn vàng hướng 2, đỏ hướng Lưu sáng hiển thị Bật đèn đỏ hướng 2, xanh hướng Lưu sáng hiển thị Bật đèn đỏ hướng 2, vàng hướng Lưu sáng hiển thị Kết thúc Trên hoạt động hướng hệ thống Khi có tác động phím bấm tất hướng dừng lại thời gian 3s Sau đèn xanh người sáng 10s đồng thời cho sáng đèn xanh hướng song song, hướng lại đèn đỏ Sau 10s đèn đỏ người lại sáng bình thường Lúc đèn vàng hướng bật lên để chuẩn bị trả trạng thái lúc trước có tác động bấm phím cho Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thơng Vận Tải 10 Bài tập lớn môn Kỹ thuật VXL Bộ mơn Kỹ Thuật điện tử III MƠ PHỎNG VÀ VIẾT CHƯƠNG TRÌNH CHO HỆ THỐNG Phần cứng - Mô phần mềm Proteus - Sau cài đặt xong bật giao diện Proteus lên Lần lượt lấy linh kiện cần thiết cho trình mô hệ thống đèn Giao thông, bao gồm: + Vi xử lý AT89C52 + LED_GREEN, RED, YELLOW + LED thanh: 7SEG-MPX4-CC + DIODE 1N4007 + phím bấm Ở mang tính chất mơ nên ta chưa cho thêm Transistor điện trở, nguồn vào mà lấy trực tiếp nguồn VXL đấu với đèn, đầu lại nối đất Sau nối chân linh kiện vào chân VXL (hình vẽ) ta sử dụng tính Wide label để giấu đường nối với tên gọi tương ứng Sau ta viết chương trình chạy nạp vào cho VXL 89C52 Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải 11 Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử Lập trình - Viết chương trình ngơn ngữ Assembly phần mềm Keil - Tạo Folder tạo Project viết, chạy dịch chương trình Chương trình có nội dung sau: dem leddv ledch ledtr tdo1 txa1 tva ti1 cden quet1 tddb txdb leddvb ledchb ledtrb equ 30h equ 31h equ 32h equ 33h equ 34h equ 35h equ 36h equ 37h equ 38h equ 39h equ 40h equ 41h equ 42h equ 43h equ 44h mov mov mov mov mov mov mov clr clr tl1,#low(15535) dptr,#bangma tdo1,#10 txa1,#8 tva,#2 tddb,#3 txdb,#10 p3.0 p3.1 mov cden,#0 setb ET0 setb EX0 setb EX1 setb p0.4 setb p0.5 setb p0.6 setb tr0 setb tr1 ; -loop: mov r0,#0 mov a,tdo1 lcall tinhtg org 00h ljmp main org 03h clr tr0 ljmp ngat0 org 0bh ljmp t0i org 013h clr tr0 ljmp ngat1 org 45h main: mov sp,#5fh mov tmod,#11h setb EA mov dem,#0 mov th0,#high(15535) mov tl0,#low(15535) mov th1,#high(15535) ; hien thi den cua huong va den xanh2 vang1 xanh: lcall quetled mov p1,#0ch mov a,tdo1 inc a subb a,tva mov ti1,a mov a,r0 cjne a,ti1,xanh Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải 12 Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử vang2: ; - nap cac so hanh don vi, chuc, tram tinhtg: mov b,#100 div AB mov ledtr,a mov a,b mov b,#10 div AB mov ledch,a mov leddv,b ret ; quetled: mov a,leddv movc a,@a+dptr mov P2,a clr P0.3 lcall tre1 setb P0.3 lcall quetled mov p1,#14h mov a,r0 cjne a,tdo1,vang2 ; mov r0,#0 mov a,txa1 add a,tva lcall tinhtg ; hien thi den xanh cua huong 2, cua huong do: lcall quetled mov p1,#21h mov a,txa1 mov ti1,a mov a,r0 cjne a,txa1,do vang1: mov a,ledch movc a,@a+dptr mov P2,a clr P0.2 lcall tre1 setb P0.2 lcall quetled mov p1,#22h mov a,txa1 add a,tva mov ti1,a mov a,r0 cjne a,ti1,vang1 mov a,ledtr movc a,@a+dptr mov P2,a clr P0.1 lcall tre1 setb P0.1 ljmp loop ; -trevn: mov r3,#100 ret loop1n: mov loop2n: djnz djnz ret r4,#200 ; tre1: mov r4,loop2n r3,loop1n loop0: djnz R1,#50 R1,loop0 ret Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải 13 Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử t0i:; -mov th0,#high(15535) mov tl0,#low(15535) inc dem mov a,dem cjne a,#20,thoat mov dem,#0 lcall capnhat thoat: reti; capnhat: dec leddv inc r0 mov a,leddv cjne a,#255,thoat1 mov leddv,#9 mov mov mov mov mov mov mov mov dec ledch mov a,ledch cjne a,#255,thoat1 mov ledch,#9 reti ; trev: mov r3,tddb loop1: mov r4,#30 loop2: mov r5,#100 loop3: lcall quetled djnz r5,loop3 djnz r4,loop2 lcall capnhat djnz r3,loop1 ret dec ledtr mov a,ledtr cjne a,#255,thoat1 mov ledtr,#9 thoat1: ret; ngat0: mov mov mov mov mov mov mov mov mov lcall mov lcall trev mov a,txdb lcall tinhtg mov p1,#61h lcall tredb mov a,tddb lcall tinhtg mov p1,#0a4h lcall trev a,leddvb leddv,a a,ledchb ledch,a a,ledtrb ledtr,a a,r2 r0,a setb tr0 a,leddv leddvb,a a,ledch ledchb,a a,ledtr ledtrb,a a,r0 r2,a a,tddb tinhtg p1,#0a2h ; tredb: mov r3,txdb loop4: mov r4,#29 loop5: mov r5,#100 Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải 14 Bài tập lớn môn Kỹ thuật VXL Bộ môn Kỹ Thuật điện tử loop6: lcall quetled djnz r5,loop6 djnz r4,loop5 lcall capnhat djnz r3,loop4 ret ; -ngat1: mov a,leddv mov leddvb,a mov a,ledch mov ledchb,a mov a,ledtr mov ledtrb,a mov a,r0 mov r2,a mov a,tddb lcall tinhtg mov p1,#14h setb p3.1 clr p3.0 lcall trev mov a,txdb lcall tinhtg mov p1,#0ch setb p3.0 clr p3.1 lcall tredb mov a,tddb lcall tinhtg mov p1,#24h setb p3.1 clr p3.0 lcall trev mov a,leddvb mov leddv,a mov a,ledchb mov ledch,a mov a,ledtrb mov ledtr,a mov a,r2 mov r0,a setb clr tr0 p3.1 reti ; bangma: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh, 6fh End Nhóm Lớp: Cơ điện tử K45 ĐH Giao Thông Vận Tải 15