BÀI TẬP LỚN Hệ thống điều khiển đèn giao thông tại 1 ngã tư.

Thiết kế trên đây là một bài thiết kế nhỏ của chúng em mới giải quyết được hệ thống giao thông tại ngã tư theo hai hướng. Mặc dù chưa được nhiều chức năng như mong muốn nhưng vấn đề cơ bản của hệ thống đã được đưa ra thì từ đó ta có thể phát triển thêm các ý tướng mới khác . Trong quá trình làm có thể con có nhiều sai sót hoặc có thể phạm những lỗi nhỏ thì thầy có thể bỏ qua. Nhóm chúng em cảm ơn thầy đã hướng dẫn và giúp đỡ chúng em thực hiện tốt đồ án thiết kế này

doc34 trang | Chia sẻ: oanh_nt | Lượt xem: 1887 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu BÀI TẬP LỚN Hệ thống điều khiển đèn giao thông tại 1 ngã tư., để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài tập lớn vi xử lý Đề tài: Hệ thống điều khiển đèn giao thông tại 1 ngã tư. Mục lục I.Tài liệu tham khảo.............................................................................................2 II. Đặt vấn đề........................................................................................................2 III. Phương án giải quyết......................................................................................2 IV. Mô tả hệ thống...............................................................................................3 1. Khối chế độ……………………………………………………………5 2. Khối điều khiển trung tâm…………………………………………….5 3. Khối giải mã………………………………………………………. .22 4. Khối hiển thị…………………………………………………………. 25 V. Code………………………………………………………………………. 28 VI. Sơ đồ mạch điều khiển.................................................................. ............. 30 VII. Sơ đồ mạch in……………....................................................................... 31 VIII. Nguyên lý hoạt động……........................................................................ 31 IX. Mở rộng thêm các chức năng của chương trình.................................... ......32 X. Kết luận……………………………………………………………… …. ..34 I.Tài liệu tham khảo 1. Họ vi điều khiển 8051_ tác giả: Tống Văn On- Hoàng Đức Hải 2. Cấu trúc và lập trình họ vi điều khiển 8051_ tác giả: Nguyễn Tăng Cường 3. Lập trình hợp ngữ( Assembly) và máy tính IBM-PC_ Biên dịch: Quách Tuấn Ngọc- Đỗ Tiến Dũng- Nguyễn Quang Khải II. Đặt vấn đề Hệ thống giao thông là vấn đề rất quan trọng trong một đô thị văn minh. Nhưng hiện nay tại Hà Nội và một số thành phố lớn nói chung vẫn thường xuyên xảy ra tai nạn và ách tắc giao thông đặc biệt là vào các giờ cao điểm. Hệ thống đèn báo hiệu tại các ngã tư hoạt động chưa đạt được hiệu quả tối ưu, chưa tiện lợi cho người đi đường. Do vậy việc thiết kế hệ thống đèn báo hiệu hợp lý, hiệu quả là rất cần thiết. III. Phương án giải quyết Xuất phát từ việc cần thiết phải có một hệ thống điều khiển đèn giao thông khoa học và đạt hiệu quả. Nhóm thiết kế chúng em đã chọn đề tài thiết kế hệ thống điều khiển đèn giao thông có hiển thị đồng hồ đếm ngược báo hiệu thời gian hiển thị các đèn. Việc có đồng hồ đếm thông báo hoạt động của các đèn làm cho người tham gia giao thông chủ động trong việc chấp hành luật giao thông, đẩy lùi tan nạn và ách tắc giao thông. Lưu đồ giảithuật BEGIN Công tắc chuyển mạch So sánh chọn chế độ S D DK=1 Chế độ tự động Chế độ đèn vàng nhấp nháy Khối hiển thị END DK: Bít điều khiển chế độ IV. Mô tả hệ thống 1. Các khối của hệ thống Gồm 4 khối hoạt động liên quan chặt chẽ với nhau - Khối chế độ: là khối đặt các chế độ để điều khiển đèn - Khối điều khiển trung tâm: là khối quan trọng nhất của cả hệ thống, điều khiển đèn bằng các lệnh đã được lập trình sẵn. - Khối giải mã: giải mã tín hiệu nhận được từ khối điều khiển trung tâm rồi đưa tín hiệu ra khối hiển thị - Khối hiển thị: là khối hiển thị thời gian hoạt động từng đèn Khối điều khiển trung tõm Khối Hiển thị Khối chế độ Khối giải mó Sơ đồ khối của hệ thống 2. Khối Chế độ hoạt động Hệ thống điều khiển đèn giao thông hoạt động ở 2 chế độ khác nhau, đó là: Tự động và chế độ ban đêm. Khối chế độ làm nhiệm vụ chuyển chế độ khi có yêu cầu của người điều khiển. Thực chất bên trong khối chế độ là một hệ thống chuyển mạch dùng các công tắc bấm - Chế độ tự động( chế độ 2): Tất cả các khối đều hoạt động. Sử dụng chế độ này tại các thời điểm có lưu lượng xe tham gia giao thông bình thường. Các đèn hoạt động theo chế độ đã được định từ trước trong bộ diều khiển. Chế độ ban đêm( chế độ đèn vàng nhấp nháy- chế độ1): Các khối điều khiển trung tâm, khối giải mã và đồng hồ bị ngắt bằng cách cắt nguồn. Chế độ này dùng vào các thời điểm vắng vẻ, cụ thể là vào ban đêm. Lưu lượng xe tham gia hoạt động giao thông nhỏ, nên việc sử dụng các đèn điều khiển là không cần thiết. Hoạt động của các cột đèn ở chế độ này là đèn vàng nháy liên tục theo xung đồng hồ. Các xe được đi liên tục không cần dừng lại. 3. Khối điều khiển trung tâm Đối với hệ thống điều khiển đèn giao thông, khối điều khiển là khối quan trọng nhất, nó là trung tâm nhận tín hiệu và phát các tín hiệu điều khiển đèn của hệ thống. Hệ thông giao thông mà ta thiết kế có sử dụng bộ đồng hồ đếm ngược, để khi hiển thị đèn đỏ thì đồng hồ đếm ngược từ 29 về 0, đèn xanh thì đồng hồ đếm ngược từ 26 về 0, đèn vàng 3s. Ta thấy đồng hồ đếm ngược có những giá trị ban đầu khác nhau ứng với mỗi tín hiệu hiển thị của đèn. Vì vậy, khối vi điều khiển không những dùng để điều khiển các đèn mà còn dùng để thiết lập giá trị ban đầu của bộ đông hồ đếm ngược. Sơ đồ chân của AT89C52 Khối điều khiển trung tâm là bộ não của toàn bộ hệ thống điều khiển đèn giao thông. Cấu tạo của khối chỉ bao gồm một IC vi điều khiển AT89C51 như hình bên. Xử lý bên trong thông qua phần mềm lập trình sẵn đã được nạp trong ROM của VĐK, đưa tín hiệu điều khiển các đèn đường P1, tín hiệu ra đồng hồ là các chân P0,P2.Chân P3.0 nối với khối chế độ. Các port 0,1,2 ở đây đều được dùng để xuất dữ liệu, port 3.0 dùng nhận tín hiệu được đưa vào từ khối chế độ. , chân 18,19 nối với bộ tạo dao động thạch anh 12MHz, Vi điều khiển họ 80x51 Đây là họ vi xử lý loại one chip 8 bit thông dụng, nó rất phù hợp cho các ứng dụng trong đo lường và điều khiển mức độ vừa phải. Trong thiết kế em dùng loại chip AT89C51, nhưng nó thuộc họ 80x51 nên em xin trình bày các đặc điểm tổng quát của họ vi xử lý này. Các đặc điểm chung của MC8051: MC - 51 là họ Micro Controller được chế tạo ban đầu bởi công ty Intel. mC8051có các đặc điểm sau: CPU 8-bít thích hợp với các ứng dụng đo lường, điều khiển. Có khả năng xử lý từng bít. Cho phép địa chỉ hoá 64Kbyte bộ nhớ chương trình. Cho phép truy nhập 64Kbyte bộ nhớ chương trình. 4Kbyte bộ nhớ chương trình trên Chip (ROM, EPROM, EEPROM). 128 byte bộ nhớ dữ liệu trên chíp (với 8952 là 256 byte). 32 đường vào ra có địa chỉ riêng biệt. 2 bộ Timer/Counter (với 8952 thì có 3 bộ Timer/Counter) Cổng truyền thông tin nối tiếp hoạt động ở chế độ Full- Duplex. Cấu trúc ngắt gồm 6 nguồn ngắt và 5 Véc tơ ngắt với 2 mức ưu tiên. Có thể phát xung clock trên Chip. Sơ đồ chân linh kiện: Sơ đồ. Bố trí chân của mC 8051 Đây là loại vi xử lý có 40 chân và bố trí như sau: Chân 32 á 39 là cổng P0 Chân 1 á 8 là cổng P1 Chân 21 á 28 là cổng P2 Chân 10 á 17 là cổng P3 Chân 9 là RESET Chân 29 là PSEN Chân 30 là ALE Chân 31 là để chọn chế độ làm việc với ROM ngoài hay ROM trong Nguồn cấp vào chân 20 và 40 Cấu trúc bên trong của mC 8051 Hình 3. Cấu trúc bên trong của mC 8051 Tổ chức bộ nhớ trong mC 8051 mC 8051 có hai khoảng địa chỉ độc lập cho bộ nhớ chương trình và bộ nhớ số liệu. Sự độc lập của bộ nhớ chương trình và bộ nhớ số liệu cho phép bộ nhớ dữ liệu được xử lý bởi địa chỉ 8 bit. Tuy nhiên địa chỉ 16 bit cũng có thể được sử dụng thông qua thanh ghi DPTR. Bộ nhớ chương trình (ROM, EPROM ) là bộ nhớ chỉ có đọc. Bộ nhớ này có thể lên tới 64Kbyte. Trong 8051 4Kbyte thấp nhất của bộ nhớ chương trình là trên chíp. Bộ nhớ ngoài có thể đọc được nhờ tín hiệu chốt của chân PSEN. Bộ nhớ số liệu độc lập với bộ nhớ chương trình. 128 Byte thấp nhất của bộ nhớ dữ liệu ở trên chíp và nó có thể truy nhập đến 64Kbyte ngoài CPU sẽ phát ra các tín hiệu và cần thiết trong suốt quá trình xử lý bộ nhớ số liệu. Bộ nhớ chương trình Sau khi Reset CPU bắt đầu thực hiện từ địa chỉ 0000H. Bảng vector ngắt bắt đầu từ địa chỉ 0003H đến 002BH. Mỗi một ngắt được xác định tại một vị trí cố định trong bộ nhớ chương trình. Khi một ngắt xảy ra CPU sẽ nhảy tới vị trí mà nó yêu cầu phục vụ. Mỗi một vector ngắt có độ dài 8 Byte. Nếu chương trình ngắt đủ ngắn thì ta chứa ngay trong 8 Byte này, nếu chương trình ngắt dài thì nó chỉ chứa một lệnh nhảy tới chương trình phục vụ. 4Kbyte (hoặc 8Kbyte, 16Kbyte ) phần thấp nhất của bộ nhớ chương trình có thể ở ROM trong hoặc ở ROM ngoài. Điều này được thực hiện bởi nối chân lên mức logic 1 hay 0 ( = 1 thì ROM trong = 0 thì ROM ngoài). Khi truy cập bộ nhớ ngoài MCS - 8051 sử dụng P0 và P2 làm 16 đường vào ra, trong đó P0 làm chức năng Bus địa chỉ và Bus dữ liệu. P0 là Byte địa chỉ phần thấp của bộ nhớ chương trình còn P2 là byte địa chỉ phần cao. Địa chỉ của bộ nhớ chương trình luôn có độ rộng là 16 bít. Bộ nhớ dữ liệu Bộ nhớ số liệu có thể truy nhập tới 64Kbyte bộ nhớ dữ liệu ngoài. Địa chỉ của bộ nhớ ngoài có thể là 1 Byte hoặc 2 Byte. Bộ nhớ số liệu trong được chia làm 3 khối, 128 Byte thấp, 128 Byte cao và khối thanh ghi chức năng đặc biệt. Bộ nhớ trong luôn sử dụng địa chỉ 1 Byte. Sơ đồ bộ nhớ dữ liệu trong: Chỉ xử lý bởi địa chỉ gián tiếp Xử lý bởi địa chỉ trực tiếp hoặc gián tiếp Xử lý bởi địa chỉ trực tiếp FFH 80H FFH 80H 7FH 00H Thanh ghi chức năng đặc biệt Phần trên128 Phần dưới 128 Các bít trạng thái và các bít điều khiển cổng, các thanh ghi thời gian, thanh chứa con trỏ ngăn xếp Hình 4. Sơ đồ bộ nhớ dữ liệu trong * Phần Lower 128 Bytes được chia thành 3 vùng: + Vùng 1: Địa chỉ từ 00H đến 1FH là phần thấp nhất được chia thành 4 khối của 8 thanh ghi. Các lệnh của chương trình sẽ gọi các thanh ghi này từ R0 đến R7. 2 bít trong thanh ghi trạng thái (RS0, RS1 ) sẽ lựa chọn 4 khối này. + Vùng 2: Địa chỉ từ 20H đến 2FH bao gồm 16Byte là vùng ô nhớ địa chỉ theo Bit. Tập lệnh của MC - 51 bao gồm sự lựa chọn độ rộng của câu lệnh theo từng Bit và 128 Bits trong vùng này có thể được xử lý bởi các câu lệnh trực tiếp hoặc gián tiếp. Địa chỉ các Bits này là từ 00H đến 7FH. + Vùng 3: Địa chỉ từ 30H đến 7FH làm chức năng thông thường của bộ nhớ RAM. Tất cả các Bytes trong 128 Bytes Lower đều có thể được xử lý bởi địa chỉ trực tiếp hoặc gián tiếp. * Phần Upper 128 Bytes chỉ có thể được xử lý bởi địa chỉ gián tiếp và phần này không có trong 8051. * Vùng các thanh ghi chức năng đặc biệt (SFR). SFRs bao gồm bộ chốt các cổng, Timer, điều khiển ngoại vi. Các thanh ghi này chỉ có thể được xử lí bởi địa chỉ trực tiếp. 16 địa chỉ trong vùng thanh ghi chức năng đặc biệt là địa chỉ theo Bytes và Bits. Địa chỉ theo Bits trong vùng này là từ 80H đến FFH. Thanh ghi trạng thái chương trình (Program Status Word: PSW ) Thanh ghi trạng thái chứa các Bits ảnh hưởng đến trạng thái của CPU. Cấu trúc của thanh ghi trạng thái: CY AC F0 RS1 RS0 0V P Thanh ghi trạng thái nằm trong vùng các thanh ghi chức năng đặc biệt. Nó chứa bit Carry, bit Carry phụ (dùng cho hoạt động BCD), 2 bit lựa chọn nhóm thanh ghi, cờ tràn, cờ dấu và 2 cờ trạng thái mà người dùng có định nghĩa. Các chế độ địa chỉ Các chế độ địa chỉ trong tập lệnh của MCS -51 như sau: - Chế độ địa chỉ trực tiếp: Chế độ địa chỉ trực tiếp sử dụng địa chỉ 8 bit. Chỉ có RAM trong và các thanh ghi chức năng đặc biệt có thể sử dụng địa chỉ trực tiếp. - Chế độ địa chỉ gián tiếp: Trong chế độ địa chỉ gián tiếp các câu lệnh thanh ghi nơi chứa địa chỉ của toán hạng. Cả RAM trong và RAM ngoài đều là địa chỉ gián tiếp. Thanh ghi địa chỉ đối với địa chỉ 8 bit có thể là R0 hoặc R1 của nhóm thanh ghi được lựa chọn hoặc của con trỏ ngăn xếp. Thanh ghi địa chỉ 16 bits dùng cho địa chỉ 16 bits chỉ có thể là thanh ghi con trỏ dữ liệu 16 bits, DPTR. - Câu lệnh thanh ghi đặc biệt: Một vài câu lệnh luôn luôn hoạt động trên thanh chứa (Acc), hoặc con trỏ dữ liệu (DPTR ). Vì vậy nó không cần byte địa chỉ nào để chỏ tới nó. Bản thân mã lệnh của nó sẽ làm điều đó. - Chế độ địa chỉ hằng số trực tiếp: Giá trị của hằng số theo mã lệnh trong ô nhớ chương trình. - Chế độ địa chỉ chỉ số: Chỉ có bộ nhớ chương trình có thể được xử lý với địa chỉ chỉ số và nó chỉ có thể được đọc. Chế độ này có xu hướng dùng để đọc bảng trong bộ nhớ chương trình. Một thanh ghi cơ sở 16 bit (DPTR hoặc PC ) trỏ tới địa chỉ cơ sở của bảng và thanh chứa Acc được thiết lập với số lượng danh mục của bảng. Địa chỉ của danh mục trong bộ nhớ chương trình hình thành bởi thêm dữ liệu thanh chứa vào con trỏ cơ sở. Một loại khác của chế độ địa chỉ chỉ số là sử dụng trong câu lệnh "Jump". Địa chỉ đích được xác định bởi tổng của con trỏ cơ sở và dữ liệu thanh chứa. Cổng I/O song song mC 8051 có 4 cổng vào ra song song P0. P1, P2 và P3. Trong hầu hết các ứng dụng với bộ nhớ ngoài thì cổng P0 được sử dụng như là Bus dữ liệu và địa chỉ phần thấp còn P2 tương ứng với byte cao của địa chỉ. Tất cả các chân của P3 và 2 chân của P1 (P1.0, P1.1) là đa chức năng, các chức năng của chúng được thể hiện ở bảng sau: Port in Chức năng khác P1.0 T2 (Đầu vào bên ngoài của Timer/Counter 2) P1.1 T2EX (Trigger lạp lại của Timer/Counter 2) P3.0 RXD (Cổng đầu vào nối tiếp) P3.1 TXD (Cổng đầu ra nối tiếp) P3.2 (Ngắt ngoài) P3.3 (Ngắt ngoài) P3.4 T0 (Đầu vào bên ngoài của bộ Timer/Counter 0 ) P3.5 T1 (Đầu vào bên ngoài của bộ Timer/Counter 1 ) P3.6 (Xung chốt để viết bộ nhớ dữ liệu ngoài ) P3.7 (Xung chốt để đọc bộ nhớ dữ liệu ngoài ) Tất cả bộ chốt các cổng đều được đặt ở mức logic "1" khi Reset. Timer/ Counter MC 8051 có hai thanh ghi Timer/Counter 16 bit: Timer 0 và Timer 1. Các thanh ghi này đều có thể hoạt động ở chế độ Timer hoặc Couter. Trong chế độ Timer nội dung của thanh ghi sẽ tăng sau mỗi chu kỳ máy và tần số của đồng hồ bằng 1/12 tần số máy phát thạch anh. Trong chế độ Counter nội dung của thanh ghi sẽ tăng khi có sự chuyển từ 1đ 0 tại chân tín hiệu T0 hoặc T1. Trong chế độ này đầu vào sẽ được lấy mẫu tại S5P2 của chu kỳ máy vì vậy tần số đếm lớn nhất bằng 1/24 tần số máy phát thạch anh. Chức năng Timer hoặc Counter được chọn bởi bit điều khiển trong thanh ghi chức năng đặc biệt TMOD. Timer 0 và Timer 1 có chế độ hoạt động được lựa chọn bởi cặp bit (M0, M1 ). TCON:Thanh ghi điều khiển Timer/Counter. Địa chỉ hoá theo bit TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 - TF1: Cờ báo Timer 1 tràn. - TR1: Bit điều khiển làm việc của Timer 1.. - TF0: Cờ báo Timer 0 tràn. - TR0: Bit điều khiển làm việc của Timer 0. - IE1: Cờ cho phép chân có thể hoạt động. - IT1: Bit điều khiển ngắt ở chân . - IE0: Cờ cho phép chân có thể hoạt động. - IT0: Bit điều khiển loại ngắt ở chân . Thanh ghi điều khiển chế độTimer/Counter:TMOD GATE C/ M1 M0 GATE C/ M1 M0 TIMER 1 TIMER 1 - GATE: Khi TRx được thiết lập và GATE = 1, thì TIMER/COUNTERx sẽ chỉ chạy trong khi chân INTx ở mức cao. Khi GATE = 0 thì TIMER/COUNTERx sẽ chỉ chạy trong khi TRx = 1. - : Bit lựa chọn Timer hoặc Counter. - M1: Bit lựa chọn chế độ. - M2: Bit lựa chọn chế độ. M1 M0 Chế độ hoạt động (Operating Mode) 0 0 0 Timer 13 bit 0 1 1 Timer/Counter 16 bit 1 0 2 Timer/Counter tự đông lạp 8 bit 1 1 3 (Timer 0) TL0 là bộ Timer/Counter 8 bit được điều khiển bởi các bit điều khiển Timer 0, TH0 là bộ Timer 8 bit và được điều khiển bởi những bit điều khiểu Timer 1. 1 1 3 (Timer 1) Timer/Counter 1 dừng. - Mode 0: Cả 2 Timer trong Mode 0 là một bộ đếm 8 bit với đầu vào đã được chia cho 32. Đây là bộ timer 13 bit. ở chế độ này thanh ghi Timer được định dạng như là thanh ghi 13 bit. Tín hiệu Gate có thể là 1 bit trong thanh ghi TMOD hay là tín hiệu tại chân ngoài. - Mode 1: Mode 1 giống Mode 0 ngoại trừ là thanh ghi Timer hoạt động với địa chỉ 16 bit. - Mode 2: Định dạng thanh ghi Timer như là một bộ đếm 8 bit (TL1 ) với chức năng tự động lạp lại giá trị. Khi TL1 đếm tràn nó sẽ đặt cờ TF1 và lạp lại nội dung TH1 đã được đặt trước bằng phần mềm. - Mode 3: Timer 1 là một bộ đếm, nó sẽ hoạt động khi TR1 được đặt bằng 1. Timer 0 thiết lập TL0 và TH0 như 2 bộ đếm độc lập. Giao diện cổng nối tiếp Cổng nối tiếp hoạt động ở chế độ Full duplex, có nghĩa là nó có thể truyền và nhận tại cùng một thời điểm. Thanh ghi truyền và nhận của cổng thông tin nối tiếp, cả hai truy nhập tại thanh ghi chức năng đặc biệt SBUF. Khi ta viết tới SBUF thì là thanh ghi truyền và khi đọc SBUF ta sẽ truy nhập tới thanh ghi nhận độc lập. Cổng thông tin nối tiếp có thể hoạt động ở 4 chế độ: - Mode 0: Số liệu nối tiếp vào và ra thông qua chân RXD, TXD. Truyền và nhận 8 bit. 8 bit dữ liệu (đầu tiên là trọng số nhỏ nhất LSB ). Tốc độ truyền cố định bằng 1/12 tần số máy phát. - Mode 1: 10 bit được truyền thông qua chân TXD. Nhận thông qua chân RXD: 1 bit Start (0 ), 8 bit dữ liệu (LSB ) đầu tiên), 1 bit Stop (1 ). Khi nhận bit Stop sẽ được đặt vào RB8 trong thanh ghi SCON. Tốc độ truyền có thể thay đổi. - Mode 2: 11 bit được truyền thông qua chân chân TXD hoặc được nhận thông qua chân RXD. 1 bit Start (0 ), 8 bit dữ liệu (bit đầu tiên là LSB ), 1 bit dữ liệu thứ 9 có thể được đặt, 1 bit Stop (1 ). Khi phát bit thứ 9 sẽ được đặt tại TB8 thanh SCON. Khi nhận bit thứ 9 sẽ được đặt vào RB8 trong thanh ghi SCON. Tốc độ độ truyền có thể đặt bằng 1/32 hoặc bằng 1/64 tần số máy phát. - Mode 3: 11 bit được truyền thông qua chân TXD hoặc nhận thông qua RXD. 1 bit Start (0 ), 8 bit dữ liệu, bit dữ liệu thứ 9 có thể được đặt, 1 bit Stop (1 ). Mode 3 tương tự Mode 2 nhưng tốc độ truyền có thể thay đổi. Trong tất cả 4 Mode trên, chế độ truyền được khởi đầu bằng câu lệnh, trong đó thanh ghi SBUF được sử dụng giống như thanh ghi đích, chế độ nhận được khởi đầu trong Mode 0 bởi điều kiện RI = 0 và REN = 1. Nhận được khởi đầu trong các chế độ khác bởi đặt bit Start nếu REN = 1. SCON: Thanh ghi điều khiển cổng nối tiếp. Địa chỉ hoá theo bit. SM0 SM1 SM2 REN TB8 RB8 TI RI - SM0: Xác định chế độ cổng nối tiếp. - SM1: Xác định chế độ cổng nối tiếp. - SM2: Trong chế độ 2 hoặc 3, nếu SM2 được lập bằng 1 thì sau đó RI sẽ không được hoạt động nếu bit dữ liệu thứ 9 được nhận bằng 0. Trong chế độ 1, nếu SM2 = 1 thì RI sẽ không được hoạt động nếu bit Stop không được nhận bằng 1. Trong Mode 0, SM2 = 0. - REN: Được thiết lập hoặc xoá bằng phần mềm để cho phép chế độ nhận hoạt động hoặc không hoạt động. - TB8: Bit dữ liệu thứ 9 sẽ được truyền trong Mode 2, 3. Được thiết lập hoặc xoá bằng phần mềm. - RB8: Trong Mode 2 và 3 là bit dữ liệu thứ 9. Trong Mode 1, nếu SM2 = 0 RB8 là bit Stop, trong Mode 0 thì RB8 không được sử dụng. - TI: Cờ cho phép ngắt truyền, được thiết lập bằng phần cứng tại cuối bit thứ 8 trong Mode 0, hoặc tại thời điểm bắt đầu của bit Stop trong các chế độ khác. Phải được xoá bằng phần mềm. - RI: Cờ cho phép ngắt nhận. Được thiết lập bằng phần cứng tại thời điểm cuối của bit thứ 8 trong Mode 0, hoặc tại thời điểm bắt đầu bit Stop trong các chế độ khác. Phải được xoá bằng phần mềm. SM0 SM1 Mode Descreption Baurate 0 0 0 Thanh ghi dịch Fosc/12 0 1 1 8 bit UART Thay đổi 1 0 2 9 bit UART Fosc/64 hoặc Fosc/32 1 1 3 9 bit UART Thay đổi Thiết lập cổng nối tiếp: MODE SCON Sự thay đổi của SM2 0 10H Môi trường xử lý đơn chức năng (SM2 = 0) 1 50H 2 90H 3 D0H 0 NA Môi trường xử lý đa chức năng (SM2 = 1) 1 70H 2 B0H 3 F0H Phát tốc độ: *. Cổng nối tiếp trong Mode 0: Chế độ 0 có tốc độ cố định bằng 1/12 máy phát tần số. Trong chế độ này chỉ cần định nghĩa thanh ghi SCON: Baud rate = *. Cổng nối tiếp trong Mode 1: Tốc độ trong chế độ này thay đổi. Nó được phát bởi Timer 1. Baud Rate = - Nếu SMOD = 0 thì K = 1. - Nếu SMOD = 1 thì K = 2. Với TH1 = Chú ý: TH1 phải có giá trị nguyên. *. Cổng nối tiếp trong Mode 2: Tốc độ trong chế độ này cố định là1/32 hoặc 1/64 tốc độ của tần số phát phụ thuộc vào bit SMOD trong thanh PCON. - SMOD = 1, Baud Rate = 1/32*Fosc. - SMOD = 0, Buad Rate = 1/64*Fosc. Để thiết lập bit SMOD thực hiện câu lệnh: ORL PCON, #80H. Địa chỉ của thanh ghi PCON là 87H. *. Cổng nối tiếp trong Mode 3: Tốc độ trong chế độ 3 thay đổi và thiết lập giống trong chế độ 1. Ngắt 8051 cung cấp 5 nguồn ngắt 2 ngắt ngoài, 2 ngắt của bộ Timer và 1 ngắt của cổng nối tiếp. Hệ thống điều khiển ngắt Ngắt ngoài và Có thể hoạt động theo mức hay theo sườn phụ thuộc vào bit IT0 và IT1 trong thanh ghi TCON. Ngắt của bộ Timer 0 và Timer 1 được phát bởi TF0 và TF1, chúng được thiết lập trong thanh ghi Timer/Counter (ngoại trừ Timer 0 trong chế độ 3 ). Khi ngắt Timer hoạt động, thì cờ phát ra nó được xoá bởi phần cứng ở trên chip khi thứ tự phục vụ được trỏ tới. Ngắt của cổng nối tiếp được tạo ra bởi phép lôgic OR giữa chân RI và TI. Nó sẽ được xoá bởi phần cứng khi thứ tự phục vụ được trỏ tới. Trong thực tế thứ tự phục vụ sẽ không phải xác định đó là RI hoặc TI phát ra lệnh ngắt và bit này sẽ phải xoá bằng phần mềm. Trình tự thực hiện bất kỳ một lệnh ngắt nào cũng đều được thực hiện theo 3 bước sau: - Thiết lập bit EA = 1 trong thanh ghi IE. - Thiết lập bit tương ứng trong thanh ghi IE bằng 1. - Bắt đầu thực hiện tại địa chỉ của vector tương ứng theo bảng sau: Nguồn ngắt Địa chỉ của vector ngắt IE0 0003H TF0 000BH IE1 0013H TF1 001BH RI va TI 0023H TF2 và EXF2 002BH Mỗi một nguồn ngắt có thể hoạt động hoặc không hoạt động một cách riêng biệt bởi sự thiết lập hoặc xoá bit trong thanh ghi chức năng đặc biệt IE: EA ---- ET2 ES ET1 EX1 ET0 EX0 - EA: Nếu EA = 0 ngắt sẽ không được thực hiện. Nếu EA = 1 thì mỗi nguồn ngắt có thể hoạt động hoặc không hoạt động tùy thuộc vào việc thiết lập hoặc xoá bit cho phép của nó. - ET2: dành cho người sử dụng. - ES: Cho phép ngắt của cổng nối tiếp hoạt động hoặc không hoạt động. - ET1: Cho phép ngắt tràn của bộ Timer 1 tích cực hoặc không tích cực. - EX1: Cho phép chân tích cực hoặc không tích cực. - ET0: Cho phép ngắt tràn của bộ Timer 0 tích cực hoặc không tích cực. EX0: Cho phép chân tích cực hoặc không tích cực. Cấu trúc mức ưu tiên: Mỗi nguồn ngắt cũng có thể được lập trình một cách độc lập một trong hai mức ưu tiên tuỳ thuộc vào việc thiết lập hoặc xoá bit trong thanh ghi chức năng đặc biệt IP: ----- ----- PT2 PS PT1 PX1 PT0 PX0 - -----: Dành cho người sử dụng. - PT2: Định nghĩa mức ưu tiên ngắt cho bộ Timer 2. - PS: Định nghĩa mức ưu tiên ngắt cho cổng nối tiếp. - PT1: Định nghĩa mức ưu tiên ngắt cho bộ Timer 1. - PX1: Định nghĩa mức ưu tiên ngắt cho chân . - PT0: Định nghĩa mức ưu tiên ngắt cho bộ Timer 1. - PX0: Định nghĩa mức ưu tiên ngắt cho chân . Nếu có hai yêu cầu của hai mức ưu tiên khác nhau được nhận cùng một thời điểm, thì yêu cầu nào có mức ưu tiên cao hơn sẽ được thực hiện. Nếu yêu cầu có cùng mức ưu tiên thì nó sẽ được thực hiện theo trình tự sau: Thứ tự Nguồn Mức ưu tiên 1. IE0 Cao nhất 2. TF0 3. IE1 4. TF1 5. RI+TI 6. TF2+EXF2 Thấp nhất Trên đây là một số chức năng đặc biệt của vi xử lý họ 8051 cần quan tâm và nắm được trong quá trình thiết kế. Giới thiệu qua về AT89C52: AT89c52 là một hệ vi tính 16 bit đơn chip CMOS co hiệu xuất cao công xuất nguồn tiêu thụ thấp và có 4k bộ nhớ ROM flash xoá được/ lập trình được. Chip này được sản xuất dựa vào công nghệ bộ nhớ không mất nội dung có độ tích hợp cao của Atmel. AT89c52 có các đặc trưng chuẩn sau: 8k flash, 256byte RAM, 32 đường xuất nhập, 3 bộ định thời/ đếm 16 bit, một cấu trúcngắt 2 mức ưu tiên và 5 nguyên nhân ngắt, 1 port nối tiếp song công, mạch dao động và mạch tạo xung clock trên chip. Ngoài ra AT89c52 được thiết kế với logic tĩnh cho hoạt động có tần số giảm xuống và hỗ trợ 2 chế độ tiết kiệm năng lượng được lựa chọn bằng phần mềm. Chế độ nghỉ dừng CPU trong khi vẫn cho phép RAM, các bộ định thời / đếm hoạt động, port nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ nguồn giảm duy trì nội dung của RAM nhưng không cho mạch dao đông cung cấp xung clock nhằm vô hiệu hoá các hoạt động khác của chip cho đến khi có reset cứng tiếp theo. 4. Khối giải mã Xuất phát từ ý tưởng khi hệ thống điều khiển đèn giao thông hoạt động, trên các cột đèn ngoài các đèn đường còn có các đồng hồ đếm ngược thời gian hoạt động của đèn. Vì các đèn hoạt động với những khoảng thời gian khác nhau (Đỏ 30s, Xanh 26s, vàng 4s), đèn của các trục hoạt động không giống nhau, do vậy ta phải lập trình để sao cho đồng hồ có thể đếm ngược . Trong mỗi chu kỳ hoạt động của hệ thống điều khiển, các bộ đếm lại có những giá trị ban đầu khác nhau tương ứng với thời gian đếm của các đèn. Để giải quyết vấn đề này ta phải dùng tính năng của Vi điều khiển để nạp giá trị ban đầu cho bộ đếm của mỗi trục. Thực hiện khối giả mã: Khối giải mã là bộ chuyển đổi từ BCD( dùng IC giải mã 74LS47) à LED 7 thanh Bộ giải mã: Để hiển thị đèn đếm để thông báo thời gian hoạt động của đèn. Vì đầu ra là mã BCD nên để hiển thị dưới dạng số thập phân ta phải giải mã BCD thành số thập phân. Để thực hiện ta dùng IC74LS47 và đèn LED 7 thanh. Sơ đồ chân của IC 74LS47 như hình bên. A0, A1, A2, A3 là các đầu vào BCD. Trong đó các chân 1,2,6,7 là các đầu vào mã BCD, các chân 9,10,11,12,13,14,15 là các chân ra LED 7 thanh( mức tích cực thấp) Sơ đồ cấu tạo trong của 74LS47 Bảng chân lý của 7447: 5. Khối hiển thị Đây là khối thể hiện kết quả của hệ thống điều khiển. Các chế độ của hệ thống được hiển thị tại khối hiển thị. Khối hiển thị gồm 2 phần: Đèn đường Đồng hồ a. Đèn đường: Có 2 loại - Đèn cho các phương tiện tham gia giao thông: Đỏ, Xanh, Vàng - Đèn cho người đi bộ: Đỏ, Xanh Các cột đèn hiển thị theo: Xanh à Vàng à Đỏ à Xanh …. Đèn đỏ hiển thị trong 30 giây và đếm hiển thị từ 29 à 0. Đèn xanh hiển thị trong 27 giây và đếm hiển thị từ 26 à 0. Đèn vàng hiển thị trong 03 giây Đèn cho người đi bộ: Hoạt động dựa trên hoạt động của các cột đèn. Chỉ có hai trạng thái là Đỏ và Xanh, khi đường giao thông ở chế độ đỏ thì đèn cho người đi bộ bật xanh, còn khi đèn đường là xanh và vàng thì đèn cho người đi bộ bật đỏ. Thời gian hiển thị đèn đỏ cho người đi bộ bằng thời gian hiển thị đèn vàng và đèn xanh của các phương tiện giao thông. b. Đồng hồ: Đồng hồ đếm theo đèn của các phương tiện giao thông. Với đèn đỏ 30s (29à0), đèn xanh 27s (26à0), đèn vàng 3s Bảng hiển thị: Định thời Thời gian hiển thị trục 1 Đèn trục 1 X V Đ Đèn trục 2 X V Đ Thời gian hiển thị trục 2 00 27 1 0 0 0 0 1 29 27 3 0 1 0 0 0 1 Tiếp tục đếm 30 29 0 0 1 1 0 0 26 57 Tiếp tục đếm 0 0 1 0 1 0 3 Trong đề tài này để biểu diễn đèn đường và đồng hồ, sử dụng LED đơn và LED 7 thanh với sơ đồ chân như sau: Để thực hiện việc điều khiển trên của Vi điều khiển, ta phải thực hiện lập trình cho Vi điều khiển. Từ các công việc của vi điều khiển ta xây dựng lưu đồ thuật toán sau đây: DH2=3 Vàng 1 & đỏ 2 sáng Đếm được 3s DH1=29, DH2=26 Đỏ 1 & xanh 2 sáng Đếm được 26s Đỏ 1 & vàng 2 sáng Đếm được 3s Chế độ2 DH1=26, DH2=29 Xanh 1 & đỏ 2 sáng Đếm được 26s DH1=3 ĐK=0 Chế độ1 Vàng 1 và vàng 2 sáng đếm 1s Vàng 1 & vàng2 tắt Đếm 1s Lưu đồ thuật toán lập trình Đ S S Đ S Xanh 1 & đỏ 2 sáng DH1=25, DH2=29 Chế độ2 Đếm được 5s Vàng 1 & đỏ 2 sáng Bam=0 Xanh 1 & đỏ 2 sáng chế độ1 ĐK=0 Đ Đ SĐ ĐS S S S S S Đ Đ Đ Đ Đ SĐ ĐS S S S Đ Đ Đ Đ V. Phần code(ASSEMBLY CODE): Mã nạp cho vi điều khiển: ORG 0000H ; Dia chi goc ; DINH NGHIA KI HIEU CHAN ; DO1: P1.0 ; VANG1: P1.1 ; XANH1: P1.2 ; XANH DI BO 1: P1.3 ; DO DI BO 1: P1.2 ; DO2: P1.4 ; VANG2: P1.5 ; XANH2: P1.6 ; XANH DI BO 2: P1.7 ; DO DI BO 2: P1.6 ; CHAN DK CHEDO: P3.0 ; ************************************************************* ; Chuong trinh chinh ; ************************************************************* DK BIT P3.0 ; Dinh nghia BIT chan P3.0 LOOP: ; BAT DAU VONG LAP MOV C, DK ; NAP DK VAO C JNC CHEDO2 ; DK= 0, THUC HIEN CHEDO2 sJMP CHEDO1 ; DK= 1, THUC HIEN CHEDO1 CHEDO1: ; BAT DAU THUC HIEN CHEDO1 MOV P0,#00H MOV P2,#00H CLR P1.0 ; TAT DEN D01 CLR P1.2 ; TAT DEN XANH 1 CLR P1.3 ; TAT DEN DI BO1 CLR P1.4 ; TAT DEN DO2 CLR P1.6 ; TAT DEN XANH2 CLR P1.7 ; TAT DEN XANH DI BO2 SETB P1.1 ; DEN VANG1 BAT SETB P1.5 ; DEN VANG COT 2 BAT aCALL TRE500MS; TRE 0.5s CLR P1.1 ; DEN VANG1 TAT CLR P1.5 ; DEN VANG2 TAT aCALL TRE500MS;TRE 0.5s sjmp loop RET ; KET THUC CHUONG TRINH CON CHEDO1 CHEDO2: ; BAT DAU CHUONG TRINH CON CHEDO2( ; CHE DO DIEU KHIEN TU DONG ;:CHU KI 1 DONG HO TRUC 1 LA 26, ; DONG HO TRUC LA 29, KHI TRUC 1 DEM VE 0 THI DUNG LAI, ; TRUC 2 DEM HET VE 0.KHI CA 2 TRUC DEU DEM VE 0 THI BAT ; DAU CHU KI TIEP THEO MOV P1, #01001001B; RA DEN GIAO THONG MOV R2,#29 ; NAP GIA TRI 29 VAO R2 MOV R3,#26 ; NAP GIA TRI 26 VAO R3 MOV R4,#26 ; NAP GIA TRI 26 VAO R4 HERE1: aCALL RAPORT2 ; RA LED DEM CUA COT 1 aCALL RAPORT0 ; RA LED DEM CUA COT2 aCALL TRE500MS; TRE 500MS aCALL TRE500MS; TRE 500MS DJNZ R4,HERE1; MOV P1,#00101001B; MOV R2,#3; NAP GIA TRI 3 VAO R2 MOV R4,#3; NAP GIA TRI 3 VAO R4 MOV P0,#00H; HERE2: ACALL RAPORT2 ; RA LED DEM CUA COT1 ACALL TRE500MS; TRE 500MS ACALL TRE500MS; TRE 500MS DJNZ R4, HERE2 MOV P1,#10010100B MOV R2,#26; NAP 26 VAO R2 MOV R3,#29; NAP 29 VAO R3 MOV R4,#26; NAP 26 VAO R4 HERE3: ACALL RAPORT2 ; RA LED DEM CUA COT 1 ACALL RAPORT0 ; RA LED DEM CUA COT 2 ACALL TRE500MS; TRE 500MS ACALL TRE500MS; TRE 500MS DJNZ R4,HERE3 MOV P1,#10010010B MOV R3,#3; NAP 3 VAO R3 MOV R4,#3; NAP 3 VAO R4 MOV P2,#00H HERE4: ACALL RAPORT0 ; RA PORT0 ACALL TRE500MS; TRE 500MS ACALL TRE500MS; TRE 500MS DJNZ R4,HERE4 sjmp loop RET TRE500MS: ; BAT DAU CHUONG TRINH CON TRE 500MS PUSH 00H PUSH 01H MOV R1,#250 D1: MOV R0,#250 DJNZ R0,$ MOV R0,#250 DJNZ R0,$ DJNZ R1,D1 MOV R1,#250 D2: MOV R0,#250 DJNZ R0,$ MOV R0,#250 DJNZ R0,$ DJNZ R1,D2 POP 01H POP 00H RET ; KET THUC CHUONG TRINH CON TRE 500MS RAPORT2: ; DUA TIN HIEU RA PORT2 MOV B,#10 MOV A,R2 DIV AB SWAP A ADD A,B MOV P2,A DEC R2 RET ; KET THUC CHUONG TRINH CON RAPORT2 RAPORT0: ; DUA TIN HIEU RA PORT0 MOV B,#10 MOV A,R3 DIV AB SWAP A ADD A,B MOV P0,A DEC R3 RET ; KET THUC CHUONG TRINH CON RAPORT0 END ; KET THUC CHUONG TRINH ; ********************************************************** ; THE END ; ********************************************************** VI. Phương án kiểm tra -Sơ đồ chạy mô phỏng mạch sử dụng phần mềm Proteus 6.7 Sp3: sơ đồ mạch chạy mô phỏng VII. Sơ đồ mạch in Sơ đồ mạch in VIII. Nguyên lý hoạt động của mạch Khi khởi động cho hệ thống, các khối được bật nguồn và để hệ thống làm việc ở chế độ tự động( DK=1). Vi điều khiển chỉ thị trục 1 đèn xanh sáng,đèn đỏ cho người đi bộ sáng đồng thời đồng hồ trục 1 hiển thị đếm từ 26 và trục 2 đèn đỏ sáng, đèn xanh cho người đi bộ sáng, đồng hồ trục 2 hiển thị đếm từ 29. Sau 26s đồng hồ trục 1 đếm đến 0, đồng hồ trục 2 đếm đến 3 thì VĐK chỉ thị trục 1 đèn vàng sáng đồng hồ dừng đếm, đèn cho người đi bộ vẫn đỏ, trục 2 đèn cho người đi bộ chuyển sang đỏ. Khi cả 2 đồng hồ đếm về 0 thì trục 1 đèn đỏ bắt đầu sáng,đèn cho người đi bộ chuyển sang mầu xanh, đồng hồ lại bắt đầu đếm ngược từ 29, trục 2 đèn xanh bật, đèn cho người đi bộ đỏ, đồng thời đồng hồ hiển thị 26 và bắt đầu đếm ngược. Quá trình lặp đi lặp lại như thế Định thời Trục 1 Trục 2 Đồng hồ Đèn cho phương tiện Đèn cho người đi bộ Đồng hồ Đèn cho phương tiện Đèn cho người đi bộ 00 26 Xanh Đỏ 29 Đỏ Xanh 27 3 Vàng Đỏ Đang đếm Đỏ Đỏ 30 29 Đỏ Xanh 26 Xanh Đỏ 57 Đang đếm Đỏ Đỏ 3 Vàng Đỏ Bảng trạng thái cho hệ thống tự động Khi chuyển sang chế độ 1 các đồng hồ được ngắt nguồn vi điều khiển chỉ thị cho các đèn vàng của 2 trục sáng và tắt liên tục Giản đồ xung điều khiển hệ thống đèn IX. Mở rộng thêm các chức năng của chương trình Theo thiết kế ở trên là thức hiện điều khiển giao thông tại ngã tư theo hai hướng ngược chiều nhau. khi thiết kế phức tạp nên ta có thể mở rộng thêm là việc điều khiển tạo ngã tư theo bốn hướng hoặc 8 hướng, đồng thời có thể liên kết giữa các ngã tư với nhau bằng cách tính khoảng cách giữa các ngã tư và vận tốc trung bình của xe mà ta có thể tạo được thời gian trễ để khi đi từ ngã tư này đến ngã tư kia ta không phải dừng xe lại. Như thế có thể tránh được sự ách tắc giao thông và sự lộn xộn không nên có tại các ngã tư đồng thời có thể giảm thiểu được tai nạn giao thông đang ngày càng gia tăng VII. Kết luận Thiết kế trên đây là một bài thiết kế nhỏ của chúng em mới giải quyết được hệ thống giao thông tại ngã tư theo hai hướng. Mặc dù chưa được nhiều chức năng như mong muốn nhưng vấn đề cơ bản của hệ thống đã được đưa ra thì từ đó ta có thể phát triển thêm các ý tướng mới khác . Trong quá trình làm có thể con có nhiều sai sót hoặc có thể phạm những lỗi nhỏ thì thầy có thể bỏ qua. Nhóm chúng em cảm ơn thầy đã hướng dẫn và giúp đỡ chúng em thực hiện tốt đồ án thiết kế này

Các file đính kèm theo tài liệu này:

  • docDAN038.doc