MỤC LỤC
NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN 2
MỤC LỤC 3
LỜI NÓI ĐẦU 5
Phần I: GIỚI THIỆU CHUNG 6
I. TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN TÍN HIỆU GIAO THÔNG. 6
1. Yêu cầu và mục đích của hệ thống điều khiển tín hiệu giao thông. 6
2. Một số hệ thống điều khiển tín hiệu giao thông. 6
2.1. Hệ thống điều khiển tín hiệu giao thông ưu tiên cho người đi bộ. 6
2.2. Hệ thống điều khiển tín hiệu giao thông cho ngã tư. 7
2.3. Hệ thống điều khiển giao thông cho ngã ba. 9
II. PHÂN TÍCH LỰA CHỌN PHƯƠNG ÁN ĐIỀU KHIỂN 10
1. Mạch dùng IC số 10
2. Điều khiển bằng vi điều khiển. 11
3. Với vi mạch dùng kỹ thuật vi xử lý. 11
4. Điều khiển bằng PLC. 12
III. CÁC TIÊU CHUẨN LỰA CHỌN BỘ VI ĐIỀU KHIỂN 12
IV. LED 7 ĐOẠN VÀ LED ĐƠN 14
1. Các khái niệm cơ bản 14
2. Kết nối với vi điều khiển 17
V. GIAO TIẾP VI ĐIỀU KHIỂN VỚI LED 7 ĐOẠN 20
VI. KHỐI GIẢI MÃ 21
VII. GIỚI THIỆU CHUNG CẤU TRÚC BỘ VI ĐIỀU KHIỂN 22
1. Tóm tắt về lịch sử của AT89C51 23
2. Sơ đồ chân tín hiệu của 80C51/AT89C51 25
3. Các thanh ghi chức năng đặc biệt 27
Phần II: THIẾT KẾ PHẦN CỨNG VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN 37
I. Sơ đồ nguyên lý theo từng khối 37
1. Khối hiển thị 37
2. Khối tín hiệu điều khiển 38
3. Khối điều khiển đèn 39
II. Sơ đồ mạch nguyên lý chung 40
III. Chương trình điều khiển 41
Phần III: PHẦN TỔNG KẾT 47
LỜI NÓI ĐẦU
Với thời đại phát triển như ngày nay thì vấn đề giao thông ngày càng được trú trọng. Các phương tiện tham gia giao thông cũng gia tăng không ngừng và hệ thống giao thông ngày càng phức tạp. Vì vậy để đảm bảo được sự an toàn khi tham gia giao thông thì việc sử dụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết. Qua thực tế chúng em nhận thấy vấn đề này là rất sát thực. Hơn nữa là chúng em đã được trang bị những kiến thức trong quá trình nghiên cứu và học tập tại trường chúng em đã chọn đề tài “ Thiết kế và chế tạo hệ thống điều khiển tín hiệu giao thông cho ngã tư lập trình bằng vi điều khiển”
Trong suốt quá trình thực hiện đề tài chúng em đã nhận được sự hướng dẫn tận tình của thầy “ Nguyễn Trung Thành” và các thầy cô trong khoa điện- điện tử. Chúng em xin chân thành cám ơn các thầy cô. Tuy nhiên trong quá trình thực hiện đồ án do kiến thức hiểu biết còn hạn hẹp cũng như chúng em chưa có nhiều điều kiện khảo sát thực tế nhiều, thời gian làm đồ án không dài do vậy đồ án của chúng em cũng không thể tránh được những thiếu sót. Chúng em rất mong thầy cô và các các bạn đóng góp và bổ sung ý kiến để đồ án của chúng em thêm hoàn thiện hơn.
48 trang |
Chia sẻ: banmai | Lượt xem: 2997 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Thiết kế và chế tạo hệ thống điều khiển tín hiệu giao thông cho ngã tư lập trình bằng vi điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN CHUYÊN NGÀNH 2
Đề tài: “ Thiết kế và chế tạo hệ thống điều khiển tín hiệu giao thông cho ngã tư lập trình bằng vi điều khiển”
Giảng viên hướng dẫn : Nguyễn Trung Thành
Sinh viên thực hiện : Trần Đông
Nguyễn Văn Hoàng
Nguyễn Huy Toàn
Lớp : Đ-ĐTK5.1
Hưng yên ngày .....tháng …..năm 2010
NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Hưng Yên, ngày ... tháng ... năm 2010
Giảng viên hướng dẫn
Nguyễn Trung Thành
MỤC LỤC
LỜI NÓI ĐẦU
Với thời đại phát triển như ngày nay thì vấn đề giao thông ngày càng được trú trọng. Các phương tiện tham gia giao thông cũng gia tăng không ngừng và hệ thống giao thông ngày càng phức tạp. Vì vậy để đảm bảo được sự an toàn khi tham gia giao thông thì việc sử dụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết. Qua thực tế chúng em nhận thấy vấn đề này là rất sát thực. Hơn nữa là chúng em đã được trang bị những kiến thức trong quá trình nghiên cứu và học tập tại trường chúng em đã chọn đề tài “ Thiết kế và chế tạo hệ thống điều khiển tín hiệu giao thông cho ngã tư lập trình bằng vi điều khiển”
Trong suốt quá trình thực hiện đề tài chúng em đã nhận được sự hướng dẫn tận tình của thầy “ Nguyễn Trung Thành” và các thầy cô trong khoa điện- điện tử. Chúng em xin chân thành cám ơn các thầy cô. Tuy nhiên trong quá trình thực hiện đồ án do kiến thức hiểu biết còn hạn hẹp cũng như chúng em chưa có nhiều điều kiện khảo sát thực tế nhiều, thời gian làm đồ án không dài do vậy đồ án của chúng em cũng không thể tránh được những thiếu sót. Chúng em rất mong thầy cô và các các bạn đóng góp và bổ sung ý kiến để đồ án của chúng em thêm hoàn thiện hơn.
Chúng em xin chân thành cám ơn!
Phần I: GIỚI THIỆU CHUNG
TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN TÍN HIỆU GIAO THÔNG.
Yêu cầu và mục đích của hệ thống điều khiển tín hiệu giao thông.
Trước tình hình phương tiện tham gia giao thông ngày càng gia tăng không ngừng và hệ thống giao thông ngày càng phức tạp. Chính lý do này đã dẫn đến tình trạng ùn tắc và tai nạn giao thông ngày càng gia tăng. Vì vậy để đảm bảo giao thông được an toàn và thông suốt thì việc sử dụng các hệ thống tín hiệu để điều khiển và phân luồng tại các nút giao thông là rất cần thiết. Với tầm quan trọng như vậy hệ thống điều khiển tín hiệu giao thông cần đảm bảo những yêu cầu sau:
Đảm bảo trong quá trình hoạt động một cách chính xác và liên tục.
Độ tin cậy cao.
Đảm bảo làm việc ổn định, lâu dài.
Một số hệ thống điều khiển tín hiệu giao thông.
Hệ thống điều khiển tín hiệu giao thông ưu tiên cho người đi bộ.
Hệ thống hoạt động như sau:
Ở trạng thái bình thường đèn báo trên tuyến đường ô tô luôn ở trạng thái xanh.
Khi người đi bộ muốn qua đường, người đi bộ phải nhấn vào nút nhấn nằm trên cột đèn dành cho người đi bộ.
Sau khi nhấn nút xin đường hệ thống đèn báo trên tuyến đường được mô tả bằng giản đồ thời gian sau.
Hệ thống điều khiển tín hiệu giao thông cho ngã tư.
Hệ thống có hoạt động như sau:
Ta giả sử rằng xét ở chế độ ban ngày tại thời điểm ban đầu đèn xanh tại vị trí A và C sáng cho phép các phương tiện và người đi bộ đi theo chiều từ A sang C và ngược lại đồng thời lúc này đèn đỏ tại các vị trí B và D sáng không cho các phương tiện lưu đi theo chiều từ B sang D và ngược lại. Sau một khoảng thời gian đèn xanh tại vị trí A và C và đèn đỏ tại B và D tắt đồng thời đèn vàng tại các vị trí sáng và đèn đỏ tại vị trí dành cho người đi bộ nhấp nháy sau một khoảng thời gian đèn vàng tắt đèn vàng tại vị trí A và C sáng đèn xanh tại vị trí B và D sáng lúc này xanh cho người đi bộ tại A và C sang, đỏ cho người đi bộ tại B và D sáng. Sau khi đỏ tại B và D sáng. Sau khi đỏ tại A và D và xanh tại B và D tắt đèn vàng lại sáng. Ở chế độ ban đêm chỉ có đèn vàng. Giản đồ thời gian được mô tả như sau.
Hệ thống điều khiển giao thông cho ngã ba.
Hệ thống hoạt động như sau:
Giả sử xét chế độ ban ngày tại thời điểm ban đầu đèn xanh tại vị trí A và B đang sáng cho phép các phương tiện đi thẳng từ A và B theo C. Đồng thời lúc này đèn đỏ tại các vị trí C sáng không cho phép xe lưu thông theo chiều từ C sang đường A và B. Sau khoảng thời đèn đỏ tại A và B sáng, không cho phép phương tiện đi thẳng từ A và B, đồng thời đèn xanh tại vị trí C sáng cho phép phương tiện đi vào C và đi từ C sang đường A và B. Trong quá trình chuyển từ đèn xanh sang đỏ và ngược lại thì đèn vàng sáng một khoảng thời gian. Ở chế độ ban đêm chỉ có đèn vàng nhấp nháy. Ta có thời gian mô tả hoạt động của hệ thống như sau.
PHÂN TÍCH LỰA CHỌN PHƯƠNG ÁN ĐIỀU KHIỂN
Với sự phát triển của khoa học kỹ thuật để điều khiển được hệ thống giao thông chúng ta có nhiều cách khác nhau như là: Dùng IC số, các bộ vi xử lý, vi điều khiển, các bộ điều khiển PLC.
Mạch dùng IC số
Với mạch dùng IC số có những ưu điểm sau:
Giá thành rẻ
Mạch đơn giản dễ thực hiện
Tổn hao công suất bé, mạch có thể dùng pin hoặc acquy
Tuy nhiên khi sử dụng kỹ thuật số rất khó khăn trong việc thay đổi chương trình. Muốn thay đổi một chương trình nào đó thì buộc ta phải thay đổi phần cứng. Do đó mỗi lần phải lắp lại mạch dẫn đến tốn kém về kinh tế mà nhiều khi yêu cầu đó không thực hiện được nhờ phương pháp này.
Với sự phát triển mạnh mẽ của ngành kỹ thuật số đặc biệt là cho ra đời các họ vi xử lý, vi điều khiển hay PLC đã giải quyết được những bế tắc và kinh tế hơn mà phương pháp dùng IC số kết nối lại không thực hiện được.
Điều khiển bằng vi điều khiển.
Ngoài ưu điểm của phương pháp trên, phương pháp này còn có những ưu điểm sau:
Do trong vi điều khiển có sử dụng các bộ timer, các hệ thống ngắt, câu lệnh đơn giản nên việc lập trình đơn giản hơn.
Trong mạch có thể sử dụng ngay bộ nhớ trong đối với chương trình có quy mô nhỏ rất tiện lợi mà vi xử lý không thực hiện được.
Nó có thể giao tiếp nối tiếp trực tiếp với máy tính mà vi xử lý cũng giao tiếp được nhưng là giao tiếp song song sang nối tiếp để giao tiếp với máy tính.
Với vi mạch dùng kỹ thuật vi xử lý.
Với phương pháp này có những ưu điểm sau:
Ta có thể thay đổi một cách linh hoạt bằng việc thay đổi phần mềm trong khi đó phần cứng không thay đổi mà mạch dùng IC số không thể thực hiện được mà nếu có thể thực hiện được thì cũng cứng nhắc mà người công nhân khó tiếp cận, đễ nhầm.
Số linh kiện sử dụng trong mạch cũng ít hơn.
Mạch đơn giản hơn mạch dùng IC số.
Song do phần cứng của vi xử lý chỉ sử dụng CPU đơn chíp mà không có các bộ nhớ RAM, ROM, các bộ timer, hệ thống ngắt. Do vậy việc viết chương trình gặp nhiều khó khăn. Do vậy hiện nay để khắc phục những nhược điểm trên hiện nay người ta sử dụng bộ vi điều khiển.
Điều khiển bằng PLC.
Với phương pháp sử dụng PLC có những ưu diểm sau:
Lập trình đơn giản, độ tin cậy cao.
Chức năng điều khiển thay đổi dễ dàng bằng thiết bị lập trình (máy tính, màn hình) mà không cần thay đổi phần cứng nếu không có yêu cầu thêm bớt các thiết bị nhập xuất.
Thời gian hoàn thành một chu trình điều khiển rất nhanh.
Tuy nhiên phương pháp này có nhiều ưu điểm hơn vi xử lý nhưng việc áp dụng trong hệ thống nhỏ là không thích hợp bởi giá thành rất cao.
Với những ưu điểm của từng phương pháp là khác nhau. Tuy nhiên thực hiện đề tài này nhóm chúng em chọn phương pháp điều khiển bằng vi điều khiển bởi đây là phương án tối ưu nhất phù hợp với đề tài.
Hiện nay bộ vi điều khiển AT89C51 đang được sử dụng rộng rãi vì vậy chúng em lựa chọn bộ điều khiển này để điều khiển hệ thống.
CÁC TIÊU CHUẨN LỰA CHỌN BỘ VI ĐIỀU KHIỂN
Có 4 bộ vi điều khiển 8 bit chính. Đó là 6811 của Motorola, 8051 của Intel Z8 của Xilog và Pic 16 ´ của Microchip Technology. Mỗi một kiểu loại trên đây đều có một tập lệnh và thanh ghi riêng duy nhất, nếu chúng đều không tương thích lẫn nhau. Cũng có những bộ vi điều khiển 16 bit và 32 bit được sản xuất bởi các hãng sản xuất chíp khác nhau. Với tất cả những bộ vi điều khiển khác nhau như thế này thì lấy gì làm tiêu chuẩn lựa chọn mà các nhà thiết kế phải cân nhắc?
1. Tiêu chuẩn đầu tiên và trước hết trong lựa chọn một bộ vi điều khiển là nó phải đáp ứng nhu cầu bài toán về một mặt công suất tính toán và giá thành hiệu quả. Trong khi phân tích các nhu cầu của một dự án dựa trên bộ vi điều khiển chúng ta trước hết phải biết là bộ vi điều khiển nào 8 bit, 16 bit hay 32 bit có thể đáp ứng tốt nhất nhu cầu tính toán của bài toán một cách hiệu quả nhất? Những tiêu chuẩn được đưa ra để cân nhắc là:
Tốc độ: Tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu.
Kiểu đóng vỏ: Đó là kíểu 40 chân DIP hay QFP hay là kiểu đóng vỏ khác (DIP – đóng vỏ theo 2 hàng chân. QFP là đóng vỏ vuông dẹt)? Đây là điều quan trọng đối với yêu cầu về không gian, kiểu lắp ráp và tạo mẫu thử cho sản phẩm cuối cùng.
Công suất tiêu thụ: Điều này đặc biệt khắt khe đối với những sản phẩm dùng pin, ắc quy.
Dung lượng bộ nhớ RAM và ROM trên chíp.
Số chân vào – ra và bộ định thời trên chíp
Khả năng dễ dàng nâng cấp cho hiệu suất cao hoặc giảm công suất tiêu thụ.
Giá thành cho một đơn vị: Điều này quan trọng quyết định giá thành cuối cùng của sản phẩm mà một bộ vi điều khiển được sử dụng.
2. Tiêu chuẩn thứ hai trong lựa chọn một bộ vi điều khiển là khả năng phát triển các sản phẩm xung quanh nó dễ dàng như thế nào? Các cân nhắc chủ yếu bao gồm khả năng có sẵn trình lượng ngữ, gỡ rối, trình biên dịch ngôn ngữ C hiệu quả về mã nguồn, trình mô phỏng hỗ trợ kỹ thuật và khả năng sử dụng trong nhà và ngoài môi trường. Trong nhiều trường hợp sự hỗ trợ nhà cung cấp thứ ba (nghĩa là nhà cung cấp khác không phải là hãng sản xuất chíp) cho chíp cũng tốt như, nếu không được tốt hơn, sự hỗ trợ từ nhà sản xuất chíp.
3. Tiêu chuẩn thứ ba trong lựa chọn một bộ vi điều khiển là khả năng sẵn sàng đáp ứng về số lượng trong hiện tại và tương lai. Đối với một số nhà thiết kế điều này thậm chí còn quan trong hơn cả hai tiêu chuẩn đầu tiên. Hiện nay, các bộ vi điều khiển 8 bit dấu đầu, họ 8051 là có số lượng lớn nhất các nhà cung cấp đa dạng. Nhà cung cấp có nghĩa là nhà sản xuất bên cạnh nhà sáng chế của bộ vi điều khiển. Trong trường hợp 8051 thì nhà sáng chế của nó là Intel, nhưng hiện nay có rất nhiều hãng sản xuất nó (cũng như trước kia đã sản xuất).
Các hãng này bao gồm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matra và Dallas, Semicndictior.
LED 7 ĐOẠN VÀ LED ĐƠN
Các khái niệm cơ bản
Trong các thiết bị, để báo trạng thái hoạt động của thiết bị đó cho người sử dụng với thông số chỉ là các dãy số đơn thuần, thường người ta sử dụng "led 7 đoạn". Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản phẩm được kiểm tra sau một công đoạn nào đó...
Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên phải của led 7 đoạn. 8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện. 8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra ngoài để kết nối với mạch điện.
Led 7 đoạn có 2 loại:
Anode (cực +) chung: đầu (+) chung này được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0.
Cathode (cực -) chung: đầu( -) chung được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.
Hiển thị LED 7 thanh là phần tử hiển thị thông dụng, để hiển thị các phần tử số từ 0 đến 9 trong một số hệ thập phân. Nó gồm 7 thanh xếp thành hình số 8, mỗi thanh là một diode ( LED ) phát quang hoặc hiển thị tinh thể lỏng. Điode thưòng được cấu tạo từ các chất Ga, As, P …nó cũng có tính chất chỉnh lưu như diode thường. Nhưng khi điện áp thuận đạt nên diode vượt quá mức ngưỡng Ung nào đó thì diode sáng. Điện áp ngưỡng thay đổi từ 1,5 đến 5 v tuỳ theo từng loại có màu sắc khác nhau.
LED màu đỏ có điện áp ngưỡng Ung = 1,6 đến 2 v
LED màu cam có điện áp ngưỡng Ung = 2,2 đến 3 v
LED màu xanh lá cây có điện áp ngưỡng Ung = 2,8 đến 3,2 v
LED màu vàng có điện áp ngưỡng Ung = 2,4 đến3, 2 v
LED màu xanh ra trời có điện áp ngưỡng Ung = 3 đến 5 v
Thiết kế bộ giải mã hiển thị cho LED 7 thanh với tín hiệu đầu vào là mã BCD
Dạng chỉ thị led 7 đoạn:
Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối với nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều hiển.
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V.
Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b. Tương tự với các chân và các led còn lại.
Kết nối với vi điều khiển
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như vậy led 7 đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt của từng led led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường được gọi là "mã hiển thị led 7 đoạn". Có hai kiểu mã hiển thị led 7 đoạn: mã dành cho led 7 đoạn có Anode(cực +) chung và mã dành cho led 7 đoạn có Cathode(cực -) chung. Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí b và c sáng, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b và c điện áp là 0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử dụng led 7 đoạn có Cathode chung thì điện áp(hay mức logic) hoàn toàn ngược lại, tức là phải đặt vào chân b và c điện áp là 5V(mức 1).
Bảng mã hiển thị led 7 đoạn( led 7 đoạn anot chung: led đơn sáng ở mức 0)
Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân
hgfedcba
0
11000000
C0
1
11111001
F9
2
10100100
A4
3
10110000
B0
4
10011001
99
5
10010010
92
6
11000010
82
7
11111000
F8
8
10000000
80
9
10010000
90
A
10001000
88
B
10000011
83
C
11000110
C6
D
10100001
A1
E
10000110
86
F
10111111
8E
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn canot chung(các led đơn sang ở mức 1)
Số hiển thị trên led 7 đoạn
Mã hiển thị led 7 đoạn dạng nhị phân
Mã hiển thị led 7 đoạn dạng thập lục phân
hgfedcba
0
00111111
3F
1
00000110
06
2
01011011
5B
3
01001111
4F
4
01100110
66
5
01101101
6D
6
01111101
7D
7
00000111
07
8
01111111
7F
9
01101111
6F
A
01110111
77
B
01111100
7C
C
00111001
39
D
01011110
5E
E
01111001
79
F
01110001
71
Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1 nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h.
Dữ liệu xuất có dạng nhị phân như sau : hgfedcba
Từ bảng chức năng lập bảng karnaught cho 7 hàm rat a có kết quả:
a = A + C
b = C + BC
c = BC
d = A + C + ABC
e = A + AB + C + AC + ABC
f = A + B + AB + ABC
g = + ABC + A
GIAO TIẾP VI ĐIỀU KHIỂN VỚI LED 7 ĐOẠN
Nếu kết nối mỗi một Port của Vi điều khiển với 1 led 7 đoạn thì tối đa kết nối được 4 led 7 đoạn. Mặt khác nếu kết nối như trên sẽ hạn chế khả năng thực hiện các công việc khác của Vi điều khiển. Cho nên cần phải kết nối, điều khiển nhiều led 7 đoạn với số lượng chân điều khiển từ Vi điều khiển càng ít càng tốt. Có hai giải pháp: một là sử dụng các IC chuyên dụng cho việc hiện thị led 7 đoạn, hai là kết nối nhiều led 7 đoạn vào cùng một đường xuất tín hiệu hiển thị. Nội phần này sẽ đề cập đến cách kết nối nhiều led 7 đoạn theo giải pháp thứ 2.
Để kết nối nhiều led 7 đoạn vào vi điều khiển thực hiện như sau: nối tất cả các chân nhận tín hiệu của tất cả các led 7 đoạn (chân abcdefgh) cần sử dụng vào cùng 1 Port, trong ví dụ, 8 led 7 đoạn có các chân nhận tín hiệu cùng được được nối với P0. Dùng các ngõ ra còn lại của Vi điều khiển điều khiển on/off cho led 7 đoạn, mỗi ngõ ra điều khiển ON/OFF cho 1 led 7 đoạn,(ON: led 7 đoạn được cấp nguồn để hiển thị, OFF: led 7 đoạn bị ngắt nguồn nên không hiển thị được).
Tại mỗi thời điểm, chỉ nên cho Vi điều khiển điều khiển cho 1 led 7 đoạn hoạt động, do đó tại mỗi thời điểm chỉ nên có 1 ngõ ra duy nhất nối với transitor ở mức 0. Tại mỗi thời điểm chỉ có một led 7 đoạn được ON nên sẽ không xảy ra tình trạng quá tải cho tải và quá tải cho vi điều khiển khi điều khiển nhiều led 7 đoạn.
KHỐI GIẢI MÃ
IC giải mã 7447
Mạch giải mã là mạch có n đầu vào và 2n đầu ra . Bộ giải mã cũng là các bộ biến đổi mã , chúng biến đổi từ các mã nhị phân BCD sang mã nhị phân hay mã 7 đoạn. Để xác định bộ giả mã chúng có thể áp dụng phương pháp thiết kế logic cơ bản. Hiện nay người ta không dùng phương pháp trên mà thường dùng các vi mạch giải mã có sẵn trên thị trường.
Giải mã BCD sang mã 7 đoạn:
Mã nhị phân BCD được chuyển sang thập phân và hiển thị các số thập phân bằng 7 đoạn tương ứng với mỗi tổ hợp xác định .Các thanh sáng hiển thị cho ta một chữ số ở hệ 10.
Các đoạn a , b , c , d , e , f , g có thể là :Đèn LED mắc anôt chung hoặc katôt chung được nối qua các điện trở giới hạn dòng tới đầu ra phù hợp của bộ giải mã.
Trong thực tế người ta đã chế tạo sẵncác vi mạch để giảI mã nhị phân ra mã 7 đọan như :
Các vi mạch 7448 , 74LS48 , 7449 , 74LS49 là các IC giảI mã 7 đoạn có lối ra tác động ở mức cao , ta có thể ding chung để giải mã từ mã BCD ra thập phân Quy luật hiển thị các chữ số thập phân của các vi mạch này về cơ bản là giống nhau như bảng chân lý sau, chỉ khác đôi chút là số 6 không dùng thanh a và số 9 không dùng thanh d .
Số thập phân
Mã BCD đầu vào
Đầu ra mã 7 thanh
D
C
B
A
a
b
c
d
e
f
g
0
1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
Các vi mạch giải mã 7 đoạn 7447A, 74L47, 74S47 là các vi mạch 16 chân, số 6 và số 9 chỉ có 5 thanh sáng giống như 7448, 7449. Vi mạch có lối ra tác động thấp ( mức 0 ) nên đèn chỉ thị 7 đoạn có anốt chung.
GIỚI THIỆU CHUNG CẤU TRÚC BỘ VI ĐIỀU KHIỂN
Trong môc nµy chóng ta xem xÐt mét sè thµnh viªn kh¸c nhau cña hä bé vi ®iÒu khiÓn 8051 vµ c¸c ®Æc ®iÓm bªn trong cña chóng. §ång thêi ta ®iÓm qua mét sè nhµ s¶n xuÊt kh¸c nhau vµ c¸c s¶n phÈm cña hä cã trªn thÞ trêng.
Tóm tắt về lịch sử của AT89C51
Vµo n¨m 1981. H·ng Intel giíi thiÖu mét sè bé vi ®iÒu khiÓn ®îc gäi lµ AT89C51. Bé vi ®iÒu khiÓn nµy cã 128 byte RAM, 4K byte ROM trªn chÝp, hai bé ®Þnh thêi, mét cæng nèi tiÕp vµ 4 cæng (®Òu réng 8 bit) vµo ra tÊt c¶ ®îc ®Æt trªn mét chÝp. Lóc Êy nã ®îc coi lµ mét “hÖ thèng trªn chÝp”. AT89C51 lµ mét bé xö lý 8 bit cã nghÜa lµ CPU chØ cã thÓ lµm viÖc víi 8 bit d÷ liÖu t¹i mét thêi ®iÓm. D÷ liÖu lín h¬n 8 bit ®îc chia ra thµnh c¸c d÷ liÖu 8 bit ®Ó cho xö lý. AT89C51 cã tÊt c¶ 4 cæng vµo - ra I/O mçi cæng réng 8 bit (xem h×nh 1.2). MÆc dï 8051 cã thÓ cã mét ROM trªn chÝp cùc ®¹i lµ 64 K byte, nhng c¸c nhµ s¶n xuÊt lóc ®ã ®· cho xuÊt xëng chØ víi 4K byte ROM trªn chÝp. §iÒu nµy sÏ ®îc bµn chi tiÕt h¬n sau nµy.
AT89C51 ®· trë nªn phæ biÕn sau khi Intel cho phÐp c¸c nhµ s¶n xuÊt kh¸c s¶n xuÊt vµ b¸n bÊt kú d¹ng biÕn thÕ nµo cña AT89C51 mµ hä thÝch víi ®iÒu kiÖn hä ph¶i ®Ó m· l¹i t¬ng thÝch víi AT89C51. §iÒu nµy dÉn ®Õn sù ra ®êi nhiÒu phiªn b¶n cña AT89C51 víi c¸c tèc ®é kh¸c nhau vµ dung lîng ROM trªn chÝp kh¸c nhau ®îc b¸n bëi h¬n nöa c¸c nhµ s¶n xuÊt. §iÒu nµy quan träng lµ mÆc dï cã nhiÒu biÕn thÓ kh¸c nhau cña AT89C51 vÒ tèc ®é vµ dung l¬ng nhí ROM trªn chÝp, nhng tÊt c¶ chóng ®Òu t¬ng thÝch víi AT89C51 ban ®Çu vÒ c¸c lÖnh. §iÒu nµy cã nghÜa lµ nÕu ta viÕt ch¬ng tr×nh cña m×nh cho mét phiªn b¶n nµo ®ã th× nã còng sÏ ch¹y víi mäi phiªn b¶n bÊt kú kh¸c mµ kh«ng ph©n biÖt nã tõ h·ng s¶n xuÊt nµo.
B¶ng 3.1: C¸c ®Æc tÝnh cña AT89C51 ®Çu tiªn.
§Æc tÝnh
Sè lîng
ROM trªn chÝp
RAM
Bé ®Þnh thêi
C¸c ch©n vµo - ra
Cæng nèi tiÕp
Nguån ng¾t
4K byte
128 byte
2
32
1
6
COUNTER INPUTS
OSC
INTERRUPT
CONTROL
4 I/O
PORTS
BUS
CONTROL
SERIAL
PORT
EXTERNAL
INTERRUPTS
CPU
ON - CHIP
RAM
ETC
TIMER 0
TIMER 1
ADDRESS/DATA
TXD
RXD
P0
P1
P2
P3
Bé vi ®iÒu khiÓn 8051: Bé vi ®iÒu khiÓn 8051 lµ thµnh viªn ®Çu tiªn cña hä AT89C51. H·ng Intel ký hiÖu nã nh lµ MCS51. B¶ng 3.2 tr×nh bµy c¸c ®Æc tÝnh cña AT89C51.
Sơ đồ chân tín hiệu của 80C51/AT89C51
40
1
Vcc
P1.0
P0.1 (AD1)
38
39
3
2
P0.0 (AD0)
P1.2
P1.1
P0.3 (AD3)
P0.2 (AD2)
37
36
4
5
P1.4
P1.3
P0.5 (AD5)
P0.4 (AD4)
34
35
7
6
P1.6
P1.5
P0.6 (AD6)
P0.6 (AD6)
AT89C51
(8031)
32
33
9
8
RST
P1.7
ALE/PROG
EA/CPP
(TXD) P3.1
(RXD) P3.0
31
30
10
11
(NT1) P3.3
(NT0) P3.2
P2.7 (A15)
PSEN
28
29
13
12
(T1) P3.5
(T0) P3.4
P2.6 (A14)
P2.5 (A13)
26
27
15
14
(RD) P3.7
(WR) P3.6
P2.4(A12)
P2.3 (A11)
25
24
16
17
XTAL1
XTAL2
P2.2 (A10)
P2.1 (A9)
22
23
19
18
GND
P2.0 (AB)
21
20
H×nh 3.3. IC 80C51/AT89C51
Chøc n¨ng cña c¸c ch©n tÝn hiÖu nh sau:
- P0.0 ®Õn P0.7 lµ c¸c ch©n cña cæng 0.
- P1.0 ®Õn P1.7 lµ c¸c ch©n cña cæng 1.
- P2.0 ®Õn P2.7 lµ c¸c ch©n cña cæng 2
- P3.0 ®Õn P3.7 lµ c¸c ch©n cña cæng 3
- RxD: NhËn tÝn hiÖu kiÓu nèi tiÕp.
- TxD: TruyÒn tÝn hiÖu kiÓu nèi tiÕp.
- /INT0: Ng¾t ngoµi 0.
- /INT1: Ng¾t ngoµi 1.
- T0: Ch©n vµo 0 cña bé Timer/Counter 0.
- T1: Ch©n vµo 1 cña bé Timer/Counter 1.
- /Wr: Ghi d÷ liÖu vµo bé nhí ngoµi.
- /Rd: §äc d÷ liÖu tõ bé nhí ngoµi.
- RST: Ch©n vµo Reset, tÝch cùc ë møc logic cao trong kho¶ng 2 chu kú m¸y.
- XTAL1: Ch©n vµo m¹ch khuyÕch ®aÞ dao ®éng
- XTAL2: Ch©n ra tõ m¹ch khuyÕch ®aÞ dao ®éng.
- /PSEN : Ch©n cho phÐp ®äc bé nhí ch¬ng tr×nh ngoµi (ROM ngoµi).
- ALE (/PROG): Ch©n tÝn hiÖu cho phÐp chèt ®Þa chØ ®Ó truy cËp bé nhí ngoµi, khi On-chip xuÊt ra byte thÊp cña ®Þa chØ. TÝn hiÖu chèt ®îc kÝch ho¹t ë møc cao, tÇn sè xung chèt = 1/6 tÇn sè dao ®éng cña bé V§K. Nã cã thÓ ®îc dïng cho c¸c bé Timer ngoµi hoÆc cho môc ®Ých t¹o xung Clock. §©y còng lµ ch©n nhËn xung vµo ®Ó n¹p ch¬ng tr×nh cho Flash (hoÆc EEPROM) bªn trong On-chip khi nã ë møc thÊp.
- /EA/Vpp: Cho phÐp On-chip truy cËp bé nhí ch¬ng tr×nh ngoµi khi /EA=0, nÕu /EA=1 th× On-chip sÏ lµm viÖc víi bé nhí ch¬ng tr×nh néi tró. Khi ch©n nµy ®îc cÊp nguån ®iÖn ¸p 12V (Vpp) th× On-chip ®¶m nhËn chøc n¨ng n¹p ch¬ng tr×nh cho Flash bªn trong nã.
- Vcc: Cung cÊp d¬ng nguån cho On-chip (+ 5V).
- GND: nèi m¸t.
Các thanh ghi chức năng đặc biệt
B¶ng1.4. §Þa chØ, ý nghÜa vµ gi¸ trÞ cña c¸c SFR sau khi Reset
Symbol
Name
Address
Reset Values
* ACC
Thanh ghi tÝch luü
0E0h
00000000b
* B
Thanh ghi B
0F0h
00000000b
* PSW
Tõ tr¹ng th¸i ch¬ng tr×nh
0D0h
00000000b
SP
Con trá ng¨n xÕp
81h
00000111b
DP0L
Byte cao cña con trá d÷ liÖu 0
82h
00000000b
DP0H
Byte thÊp cña con trá d÷ liÖu 0
83h
00000000b
* P0
Cæng 0
80h
11111111b
* P1
Cæng 1
90h
11111111b
Symbol
Name
Address
Reset Values
* P2
Cæng 2
0A0h
11111111b
* P3
Cæng 3
0B0h
11111111b
* IP
TG ®iÒu khiÓn ng¾t u tiªn
0B8h
xxx00000b
* IE
TG ®iÒu khiÓn cho phÐp ng¾t
0A8h
0xx00000b
TMOD
§iÒu khiÓn kiÓu Timer/Counter
89h
00000000b
* TCON
TG ®iÒu khiÓn Timer/Counter
88h
00000000b
TH0
Byte cao cña Timer/Counter 0
8Ch
00000000b
TL0
Byte thÊp cña Timer/Counter 0kô
8Ah
00000000b
TH1
Byte cao cña Timer/Counter 1
8Dh
00000000b
TL1
Byte thÊp cña Timer/Counter 1
8Bh
00000000b
* SCON
Serial Control
98h
00000000b
SBUF
Serial Data Buffer
99h
indeterminate
PCON
Power Control
87h
0xxx0000b
cã thÓ ®Þnh ®Þa chØ bit, x: kh«ng ®Þnh nghÜa
3.1. Thanh ghi ACC:
Lµ thanh ghi tÝch luü, dïng ®Ó lu tr÷ c¸c to¸n h¹ng vµ kÕt qu¶ cña phÐp tÝnh. Thanh ghi ACC dµi 8 bits. Trong c¸c tËp lÖnh cña On-chip, nã thêng ®îc quy íc ®¬n gi¶n lµ A.
3.2. Thanh ghi B:
Thanh ghi nµy ®îc dïng khi thùc hiÖn c¸c phÐp to¸n nh©n vµ chia. §èi víi c¸c lÖnh kh¸c, nã cã thÓ xem nh lµ thanh ghi ®Öm t¹m thêi. Thanh ghi B dµi 8 bits. Nã thêng ®îc dïng chung víi thanh ghi A trong c¸c phÐp to¸n nh©n hoÆc chia.
3.3. Thanh ghi SP:
Thanh ghi con trá ng¨n xÕp dµi 8 bit. SP chøa ®Þa chØ cña d÷ liÖu hiÖn ®ang ë ®Ønh cña ng¨n xÕp. Gi¸ trÞ cña nã ®îc tù ®éng t¨ng lªn khi thùc hiÖn lÖnh PUSH tríc khi d÷ liÖu ®îc lu tr÷ trong ng¨n xÕp. SP sÏ tù ®éng gi¶m xuèng khi thùc hiÖn lÖnh POP. Ng¨n xÕp cã thÓ ®Æt ë bÊt cø n¬i nµo trong RAM on-chip, nhng sau khi khëi ®éng l¹i hÖ thèng th× con trá ng¨n xÕp mÆc ®Þnh sÏ trá tíi ®Þa chØ khëi ®Çu lµ 07h, v× vËy ng¨n xÕp sÏ b¾t ®Çu tõ ®Þa chØ 08h. Ta còng cã thÓ ®Þnh con trá ng¨n xÕp t¹i ®Þa chØ mong muèn b»ng c¸c lÖnh di chuyÓn d÷ liÖu th«ng qua ®Þnh ®Þa chØ tøc thêi.
3.4. Thanh ghi DPTR:
Thanh ghi con trá d÷ liÖu (16 bit) bao gåm 1 thanh ghi byte cao (DPH-8bit) vµ 1 thanh ghi byte thÊp (DPL-8bit). DPTR cã thÓ ®îc dïng nh thanh ghi 16 bit hoÆc 2 thanh ghi 8 bit ®éc lËp. Thanh ghi nµy ®îc dïng ®Ó truy cËp RAM ngoµi.
3.5. Ports 0 to 3:
P0, P1, P2, P3 lµ c¸c chèt cña c¸c cæng 0, 1, 2, 3 t¬ng øng. Mçi chèt gåm 8 bit. Khi ghi møc logic 1 vµo mét bit cña chèt, th× ch©n ra t¬ng øng cña cæng ë møc logic cao. Cßn khi ghi møc logic 0 vµo mçi bit cña chèt th× ch©n ra t¬ng øng cña cæng ë møc logic thÊp. Khi c¸c cæng ®¶m nhiÖm chøc n¨ng nh c¸c ®Çu vµo th× tr¹ng th¸i bªn ngoµi cña c¸c ch©n cæng sÏ ®îc gi÷ ë bit chèt t¬ng øng. TÊt c¶ 4 cæng cña on-chip ®Òu lµ cæng I/O hai chiÒu, mçi cæng ®Òu cã 8 ch©n ra, bªn trong mçi chèt bit cã bé “Pullup-t¨ng cêng” do ®ã n©ng cao kh¶ n¨ng nèi ghÐp cña cæng víi t¶i (cã thÓ giao tiÕp víi 4 ®Õn 8 t¶i lo¹i TTL).
3.6. Thanh ghi SBUF:
§Öm d÷ liÖu nèi tiÕp gåm 2 thanh ghi riªng biÖt, mét thanh ghi ®Öm ph¸t vµ mét thanh ghi ®Öm thu. Khi d÷ liÖu ®îc chuyÓn tíi SBUF, nã sÏ ®i vµo bé ®Öm ph¸t, vµ ®îc gi÷ ë ®Êy ®Ó chÕ biÕn thµnh d¹ng truyÒn tin nèi tiÕp. Khi d÷ liÖu ®îc truyÒn ®i tõ SBUF, nã sÏ ®i ra tõ bé ®Öm thu.
3.7. C¸c Thanh ghi Timer
C¸c ®«i thanh ghi (TH0, TL0), (TH1, TL1) lµ c¸c thanh ghi ®Õm 16 bit t¬ng øng víi c¸c bé Timer/Counter 0 vµ 1.
3.8. C¸c thanh ghi ®iÒu khiÓn
C¸c thanh ghi chøc n¨ng ®Æc biÖt: IP, IE, TMOD, TCON, SCON, vµ PCON bao gåm c¸c bit tr¹ng th¸i vµ ®iÒu khiÓn ®èi víi hÖ thèng ng¾t, c¸c bé Timer/Counter vµ cæng nèi tiÕp. Chóng sÏ ®îc m« t¶ ë phÇn sau.
3.9. Thanh ghi PSW
Tõ tr¹ng th¸i ch¬ng tr×nh dïng ®Ó chøa th«ng tin vÒ tr¹ng th¸i ch¬ng tr×nh. PSW cã ®é dµi 8 bit, mçi bit ®¶m nhiÖm mét chøc n¨ng cô thÓ. Thanh ghi nµy cho phÐp truy cËp ë d¹ng møc bit.
CY
AC
FO
RS1
RS0
OV
-
P
CY: Cê nhí. Trong c¸c phÐp to¸n sè häc, nÕu cã nhí tõ phÐp céng bit 7 hoÆc cã sè mîn mang ®Õn bit 7 th× CY ®îc ®Æt b»ng 1.
AC: Cê nhí phô (§èi víi m· BCD). Khi céng c¸c gi¸ trÞ BCD, nÕu cã mét sè nhí ®îc t¹o ra tõ bit 3 chuyÓn sang bit 4 th× AC ®îc ®Æt b»ng 1. Khi gi¸ trÞ ®îc céng lµ BCD, lÖnh céng ph¶i ®îc thùc hiÖn tiÕp theo bëi lÖnh DA A (hiÖu chØnh thËp ph©n thanh chøa A) ®Ó ®a c¸c kÕt qu¶ lín h¬n 9 vÒ gi¸ trÞ ®óng.
F0: Cê 0 (Cã hiÖu lùc víi c¸c môc ®Ých chung cña ngêi sö dông)
RS1: Bit 1 ®iÒu khiÓn chän b¨ng thanh ghi.
RS0: Bit 0 ®iÒu khiÓn chän b¨ng thanh ghi.
Lu ý: RS0, RS1 ®îc ®Æt/xo¸ b»ng phÇn mÒm ®Ó x¸c ®Þnh b¨ng thanh ghi ®ang ho¹t ®éng (Chän b¨ng thanh ghi b»ng c¸ch ®Æt tr¹ng th¸i cho 2 bit nµy)
RS1
RS0
Bank 0
0
0
Bank 1
0
1
Bank 2
1
0
Bank 3
1
1
B¶ng 3.4. Chän b¨ng thanh ghi
OV: Cê trµn. Khi thùc hiÖn c¸c phÐp to¸n céng hoÆc trõ mµ xuÊt hiÖn mét trµn sè häc, th× OV ®îc ®Æt b»ng 1. Khi c¸c sè cã dÊu ®îc céng hoÆc ®îc trõ, phÇn mÒm cã thÓ kiÓm tra OV ®Ó x¸c ®Þnh xem kÕt qu¶ cã n»m trong tÇm hay kh«ng. Víi phÐp céng c¸c sè kh«ng dÊu, OV ®îc bá qua. KÕt qu¶ lín h¬n +128 hoÆc nhá h¬n -127 sÏ ®Æt OV=1.
Bit dµnh cho ngêi sö dông tù ®Þnh nghÜa(NÕu cÇn).
P: Cê ch½n lÎ. §îc tù ®éng ®Æt/ xo¸ b»ng phÇn cøng trong mçi chu tr×nh lÖnh ®Ó chØ thÞ sè ch½n hay lÎ cña bit 1 trong thanh ghi tÝch luü. Sè c¸c bit 1 trong A céng víi bit P lu«n lu«n lµ sè ch½n.
3.10. Thanh ghi PCON:
Thanh ghi ®iÒu khiÓn nguån.
SMOD
-
-
-
GF1
GF0
PD
IDL
SMOD: Bit t¹o tèc ®é Baud gÊp ®«i. NÕu Timer 1 ®îc sö dông ®Ó t¹o tèc ®é baud vµ SMOD=1, th× tèc ®é Baud ®îc t¨ng lªn gÊp ®«i khi cæng truyÒn tin nèi tiÕp ®îc dïng bëi c¸c kiÓu 1, 2 hoÆc 3.
Kh«ng sö dông, c¸c bit nµy cã thÓ ®îc dïng ë c¸c bé VXL trong t¬ng lai. Ngêi sö dông kh«ng ®îc phÐp tù ®Þnh nghÜa cho c¸c bit nµy.
GF0, GF1: Cê dïng cho c¸c môc ®Ých chung (®a môc ®Ých).
PD: bit nguån gi¶m. §Æt bit nµy ë møc tÝch cùc ®Ó vËn hµnh chÕ ®é nguån gi¶m trong AT89C51. ChØ cã thÓ ra khái chÕ ®é b»ng Reset.
IDL: bit chän chÕ ®é nghØ. §Æt bit nµy ë møc tÝch cùc ®Ó vËn hµnh kiÓu Idle (ChÕ ®é kh«ng lµm viÖc) trong AT89C51.
Lu ý: NÕu PD vµ IDL cïng ®îc kÝch ho¹t cïng 1 lóc ë møc tÝch cùc, th× PD ®îc u tiªn thùc hiÖn tríc. ChØ ra khái chÕ ®é b»ng 1 ng¾t hoÆc Reset l¹i hÖ thèng.
3.11. Thanh ghi IE:
Thanh ghi cho phÐp ng¾t
EA: NÕu EA=0, kh«ng cho phÐp bÊt cø ng¾t nµo ho¹t ®éng. NÕu EA=1, mçi nguån ng¾t riªng biÖt ®îc phÐp hoÆc kh«ng ®îc phÐp ho¹t ®éng b»ng c¸ch ®Æt hoÆc xo¸ bit Enable cña nã.
Kh«ng dïng, ngêi sö dông kh«ng nªn ®Þnh nghÜa cho Bit nµy, bëi v× nã cã thÓ ®îc dïng ë c¸c bé AT89 trong t¬ng lai.
ET2: Bit cho phÐp hoÆc kh«ng cho phÐp ng¾t bé Timer 2.
ES: Bit cho phÐp hoÆc kh«ng cho phÐp ng¾t cæng nèi tiÕp (SPI vµ UART).
ET1: Bit cho phÐp hoÆc kh«ng cho phÐp ng¾t trµn bé Timer 1
EX1: Bit cho phÐp hoÆc kh«ng cho phÐp ng¾t ngoµi 1.
ET0: Bit cho phÐp hoÆc kh«ng cho phÐp ng¾t trµn bé Timer 0
EX0: Bit cho phÐp hoÆc kh«ng cho phÐp ng¾t ngoµi 0.
3.12. Thanh ghi IP:
Thanh ghi u tiªn ng¾t.
Kh«ng dïng, ngêi sö dông kh«ng nªn ghi “1” vµo c¸c Bit nµy.
PT2: X¸c ®Þnh møc u tiªn cña ng¾t Timer 2.
PS: §Þnh nghÜa møc u tiªn cña ng¾t cæng nèi tiÕp.
PT1: §Þnh nghÜa møc u tiªn cña ng¾t Timer 1.
PX1: §Þnh nghÜa møc u tiªn cña ng¾t ngoµi 1.
PT0: §Þnh nghÜa møc u tiªn cña ng¾t Timer 0.
PX0: §Þnh nghÜa møc u tiªn cña ng¾t ngoµi 0.
3.13. Thanh ghi TCON :
Thanh ghi ®iÒu khiÓn bé Timer/Counter
TF1: Cê trµn Timer 1. §îc ®Æt bëi phÇn cøng khi bé Timer 1 trµn. §îc xo¸ bëi phÇn cøng khi bé vi xö lý híng tíi ch¬ng tr×nh con phôc vô ng¾t.
TR1: Bit ®iÒu khiÓn bé Timer 1 ho¹t ®éng. §îc ®Æt/xo¸ bëi phÇn mÒm ®Ó ®iÒu khiÓn bé Timer 1 ON/OFF
TF0: Cê trµn Timer 0. §îc ®Æt bëi phÇn cøng khi bé Timer 0 trµn. §îc xo¸ bëi phÇn cøng khi bé vi xö lý híng tíi ch¬ng tr×nh con phôc vô ng¾t.
TR0: Bit ®iÒu khiÓn bé Timer 0 ho¹t ®éng. §îc ®Æt/xo¸ bëi phÇn mÒm ®Ó ®iÒu khiÓn bé Timer 0 ON/OFF.
IE1: Cê ng¾t ngoµi 1. §îc ®Æt bëi phÇn cøng khi sên xung cña ng¾t ngoµi 1 ®îc ph¸t hiÖn. §îc xo¸ bëi phÇn cøng khi ng¾t ®îc xö lý.
IT1: Bit ®iÒu khiÓn ng¾t 1 ®Ó t¹o ra ng¾t ngoµi. §îc ®Æt/xo¸ bëi phÇn mÒm.
IE0: Cê ng¾t ngoµi 0. §îc ®Æt bëi phÇn cøng khi sên xung cña ng¾t ngoµi 0 ®îc ph¸t hiÖn. §îc xo¸ bëi phÇn cøng khi ng¾t ®îc xö lý.
IT0: Bit ®iÒu khiÓn ng¾t 0 ®Ó t¹o ra ng¾t ngoµi. §îc ®Æt/xo¸ bëi phÇn mÒm.
3.14. Thanh ghi TMOD
Thanh ghi ®iÒu khiÓn kiÓu Timer/Counter
GATE: Khi TRx ®îc thiÕt lËp vµ GATE=1, bé TIMER/COUTERx ho¹t ®éng chØ khi ch©n INTx ë møc cao. Khi GATE=0, TIMER/COUNTERx sÏ ho¹t ®éng chØ khi TRx=1.
C/(/T): Bit nµy cho phÐp chän chøc n¨ng lµ Timer hay Counter.
- Bit nµy ®îc xo¸ ®Ó thùc hiÖn chøc n¨ng Timer
- Bit nµy ®îc ®Æt ®Ó thùc hiÖn chøc n¨ng Counter
M0, M1: Bit chän Mode, ®Ó x¸c ®Þnh tr¹ng th¸i vµ kiÓu Timer/Counter:
- M1=0, M0=0: Chän kiÓu bé Timer 13 bit. Trong ®ã THx dµi 8 bit, cßn TLx dµi 5 bit.
- M1=0, M0=1: Chän kiÓu bé Timer 16 bit. THx vµ TLx dµi 16 bit ®îc ghÐp tÇng.
- M1=1, M0=0: 8 bit Auto reload. C¸c thanh ghi tù ®éng n¹p l¹i mçi khi bÞ trµn. Khi bé Timer bÞ trµn, THx dµi 8 bit ®îc gi÷ nguyªn gi¸ trÞ, cßn gi¸ trÞ n¹p l¹i ®îc ®a vµo TLx.
- M1=1, M0=1: KiÓu ph©n chia bé Timer. TL0 lµ 1 bé Timer/Counter 8 bit, ®îc ®iÒu khiÓn b»ng c¸c bit ®iÒu khiÓn bé Timer 0, Cßn TH0 chØ lµ bé Timer 8 bit, ®îc ®iÒu khiÓn b»ng c¸c bit ®iÒu khiÓn Timer 1.
- M1=1, M0=1: Timer/Counter 1 Stopped
3.15. Thanh ghi SCON:
SCON lµ thanh ghi tr¹ng th¸i vµ ®iÒu khiÓn cæng nèi tiÕp. Nã kh«ng nh÷ng chøa c¸c bit chän chÕ ®é, mµ cßn chøa bit d÷ liÖu thø 9 dµnh cho viÖc truyÒn vµ nhËn tin (TB8 vµ RB8) vµ chøa c¸c bit ng¾t cæng nèi tiÕp.
SM0, SM1: Lµ c¸c bit cho phÐp chän chÕ ®é cho cæng truyÒn nèi tiÕp.
SM0
SM1
Mode
§Æc ®iÓm
Tèc ®é Baud
0
0
0
Thanh ghi dÞch
Fosc /12
0
1
1
8 bit UART
Cã thÓ thay ®æi (®îc ®Æt bëi bé Timer)
1
0
2
9 bit UART
Fosc /64 hoÆc Fosc /32
1
1
3
9 bit UART
Cã thÓ thay ®æi (®îc ®Æt bëi bé Timer)
B¶ng 3.5. Chän Mode trong SCON
SM2: Cho phÐp truyÒn tin ®a xö lý, thÓ hiÖn ë Mode 2 vµ 3. ë chÕ ®é 2 hoÆc 3, nÕu ®Æt SM2 = 1 th× RI sÏ kh«ng ®îc kÝch ho¹t nÕu bit d÷ liÖu thø 9 (RB8) nhËn ®îc gi¸ trÞ b»ng 0. ë Mode 1, nÕu SM2=1 th× RI sÏ kh«ng ®îc kÝch ho¹t nÕu bit dõng cã hiÖu lùc ®· kh«ng ®îc nhËn. ë chÕ ®é 0, SM2 nªn b»ng 0.
REN: Cho phÐp nhËn nèi tiÕp. §îc ®Æt hoÆc xo¸ bëi phÇn mÒm ®Ó cho phÐp hoÆc kh«ng cho phÐp nhËn.
TB8: Lµ bit d÷ liÖu thø 9 mµ sÏ ®îc truyÒn ë Mode 2 vµ 3. §îc ®Æt hoÆc xo¸ bëi phÇn mÒm.
RB8: Lµ bit d÷ liÖu thø 9 ®· ®îc nhËn ë Mode 2 vµ 3. ë Mode 1, nÕu SM2=0 th× RB8 lµ bit dõng ®· ®îc nhËn. ë Mode 0, RB8 kh«ng ®îc sö dông.
TI: Cê ng¾t truyÒn. §îc ®Æt bëi phÇn cøng t¹i cuèi thêi ®iÓm cña bit thø 8 trong Mode 0, hoÆc ®Çu thêi ®iÓm cña bit dõng trong c¸c Mode kh¸c. ë bÊt kú qu¸ tr×nh truyÒn nèi tiÕp nµo, nã còng ph¶i ®îc xo¸ b»ng phÇn mÒm.
RI: Cê ng¾t nhËn. §îc ®Æt bëi phÇn cøng t¹i cuèi thêi ®iÓm cña bit thø 8 trong Mode 0, hoÆc ë gi÷a thêi ®iÓm cña bit dõng trong c¸c Mode kh¸c. Ở bÊt kú qu¸ tr×nh nhËn nèi tiÕp nµo (trõ trêng hîp ngo¹i lÖ, xem SM2), nã còng ph¶i ®îc xo¸ b»ng phÇn mÒm.
Phần II: THIẾT KẾ PHẦN CỨNG VÀ CHƯƠNG TRÌNH ĐIỀU KHIỂN
Sơ đồ nguyên lý theo từng khối
Khối hiển thị
Led 7 thanh
IC giải mã led 7 thanh
IC 89C51
Khối tín hiệu điều khiển
IC 89C51
Tín hiệu
Khối điều khiển đèn
Led đơn
IC 89C51
Sơ đồ mạch nguyên lý chung
Nguyên lý hoạt động:
Khi IC 89C51 được khởi động chương trình sẽ tự động điều khiển đếm lùi mặc định:
Đèn đỏ sáng trong 10s
Đèn xanh sáng trong 5s
Đèn vàng sáng trong 5s
IC89C51 tự động đưa dữ liệu ra cho IC giải mã để hiển thị LED đồng thời đợi tín hiệu điều khiển từ bên ngoài.
Để điều khiển thời gian đếm lùi ta chọn công tắc SW2 sang mức 1 sau đó ấn nút điều khiển thời gian để tăng thời gian đếm lùi lên, rồi chuyển SW2 về lại mức 0 để thực hiện điều khiển
Công tắc SW1 để điều khiển 2 chế độ ban ngày và ban đêm:
SW1=1: chế độ ban ngày
SW1=0: chế dộ ban đêm
Chương trình điều khiển
$include(reg51.inc)
org 0000h
mov r3,#59h
mov r4,#10
mov dph,#03h
kiemtra:
jb p0.1,nhapdulieu
jnb p0.0,buoidem
jmp duongso1
nhapdulieu:
mov dph,#03h
mov dpl,#59h
mov r4,#10
x1:
jnb p0.1,kiemtra
mov a,#0
movc a,@a+dptr
mov p1,a
mov a,#5
movc a,@a+dptr
mov p3,a
jb p0.2,x1
inc r4
dec dpl
mov r3,dpl
x2: jnb p0.2,x2
jmp x1
buoidem:
jb p0.0,kiemtra
jb p0.1,kiemtra
mov p1,#00h
mov p3,#00h
mov p2,#0bbh
acall delay
mov p2,#0ffh
acall delay
jmp buoidem
duongso1:
mov p2,#6dh
mov a,r4
mov r6,a
mov r5,#5
mov dpl,r3
w1:
jnb p0.0,kiemtra
jb p0.1,nhapdulieu
mov a,#0
movc a,@a+dptr
mov p1,a
cjne r6,#5,w2
setb p2.7
clr p2.6
mov p3,a
acall delay
inc dptr
djnz r5,w1
jmp duongso2
w2:
mov a,#5
movc a,@a+dptr
mov p3,a
acall delay
inc dptr
dec r6
jmp w1
duongso2:
mov p2,#0d6h
mov a,r4
mov r6,a
mov r5,#5
mov dpl,r3
w3:
jnb p0.0,kiemtra
jb p0.1,nhapdulieu
mov a,#0
movc a,@a+dptr
mov p3,a
cjne r6,#5,w4
setb p2.3
clr p2.2
mov p1,a
acall delay
inc dptr
djnz r5,w3
jmp duongso1
w4:
mov a,#5
movc a,@a+dptr
mov p1,a
acall delay
inc dptr
dec r6
jmp w3
delay:mov r7,#20
mov tmod,#01h
lap:
mov th0,#3ch
mov tl0,#0b0h
setb tr0
jnb tf0,$
clr tr0
clr tf0
djnz r7,lap
ret
org 300h
DB 99h,98h,97h,96h,95h,94h,93h,92h,91h,90h
DB 89h,88h,87h,86h,85h,84h,83h,82h,81h,80h
DB 79h,78h,77h,76h,75h,74h,73h,72h,71h,70h
DB 69h,68h,67h,66h,65h,64h,63h,62h,61h,60h
DB 59h,58h,57h,56h,55h,54h,53h,52h,51h,50h
DB 49h,48h,47h,46h,45h,44h,43h,42h,41h,40h
DB 39h,38h,37h,36h,35h,34h,33h,32h,31h,30h
DB 29h,28h,27h,26h,25h,24h,23h,22h,21h,20h
DB 19h,18h,17h,16h,15h,14h,13h,12h,11h,10h
DB 09h,08h,07h,06h,05h,04h,03h,02h,01h,00h
end
Phần III: PHẦN TỔNG KẾT
Trong thời gian thực hiện đề tài, với sự chỉ bảo giúp đỡ tận tình của thầy Đỗ Công Thắng, đến nay đề tài: “kế và chế tạo hệ thống điều khiển tín hiệu giao thông cho ngã tư lập trình bằng vi điều khiển” đã được hoàn thành. Chúng em đã cố gắng vận dụng những kiến thức đã được học để giải quyết những yêu cầu của đề tài
Tuy nhiên do thời gian và kiến thức còn hạn chế trong nhiều vấn đề nên trong quá trình thực hiện vẫn còn những thiếu xót hạn chế. Chúng em rất mong nhận được ý kiến và góp ý của các thầy cô trong khoa về ý tưởng thiết kế cũng như mô hình sản phẩm cảu chúng em để sản phẩm được hoàn thiện hơn.
Cuối cùng chúng em xin cảm ơn quý thầy cô đã tạo điều kiện tốt nhất để chúng em có thể hoàn thành đề tài trong thời gian sớm nhất.
Hưng Yên, ngày… tháng… năm 2010
Nhóm sinh viên thực hiện
Các file đính kèm theo tài liệu này:
- ly_thuyet_do_an_dgt__2229.doc