Luận văn, khóa luận tốt nghiệp, báo cáo là sản phẩm kiến thức, là công trình khoa học đầu tay của sinh viên, đúc kết những kiến thức của cả quá trình nghiên cứu và học tập một chuyên đề, chuyên ngành cụ thể. Tổng hợp các đồ án, khóa luận, tiểu luận, chuyên đề và luận văn tốt nghiệp đại học về các chuyên ngành: Kinh tế, Tài Chính Ngân Hàng, Công nghệ thông tin, Khoa học kỹ thuật, Khoa học xã hội, Y dược, Nông Lâm Ngữ... dành cho sinh viên tham khảo. Kho đề tài hay và mới lạ giúp sinh viên chuyên ngành định hướng và lựa chọn cho mình một đề tài phù hợp, thực hiện viết báo cáo luận văn và bảo vệ thành công đồ án của mình
Trang 1TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ Bộ môn: KỸ THUẬT MÁY TÍNH ĐỎ ÁN MÔN HỌC MÔN HỌC HỆ THÓNG NHÚNG
Trang 2Trường ĐH KTCN Thai Nguyén £2 Đô án môn học: Hệ Thống Nhúng TRUONG DHKTCN CONG HOA XA HOI CHU NGHIA VIET NAM
KHOA ĐIỆN TỬ Độc lập - Tự do - Hạnh phúc
ĐỎ ÁN MƠN HỌC
Mơnhọc: Hệ thống nhúng Bộ Môn: Ky thuật Máy tính
Sinh viên: 1 Trịnh Xuân Chiến 2 Nguyễn Văn Đoàn 3 Nguyễn Khắc Hạnh
Lớp: K43KDT Ngành: Số đề:
Ngày giao đề: 16/03/2011 Ngày hoàn thành:
1.Tên đề tài: Thiết kế và xây dựng hệ thống điều khiến đèn giao thông 2 Nội dung thuyết minh tính toán
-_ Khảo sát và phân tích bài toán: Tìm hiểu và khảo sát thực tế về các linh kiện,
các loại IC, và hoạt động của hệ thống đèn giao thông
-_ Lựa chọn giải pháp: Chọn giải pháp công nghệ, giải pháp thiết kế, các yêu cầu và giới hạn cho hệ thống
-_ Thiết kế nguyên lý: Sơ đồ tông quát, sơ đồ đặc tả, lựa chọn và tổng quan về
linh kiện
-_ Thiết kế kỹ thuật:
- _ Xây dựng hệ thống: Sơ đồ mạch, chương trình demo, module chương trình
3 Các bản vẽ, chương trình và đồ thị
- Cac sơ đồ thiết kế, Mạch hệ thống - _ Chương trình điều khiển
- _ Đĩa CD chứa các sơ đồ thiết kế gốc, báo cáo, mã nguồn, chương trình demo
Nhãn đĩa ghi rõ: Họ tên + lớp + tên đề tài (tóm tắt) + GV hướng dẫn + Ngày tháng
Thông qua phần Thông qua phần Thông qua phần Lo» ok
cạn ad cu 14 ˆ nk Dong y cho bao vé
Xac dinh yéu cau Thiét ké Xây dựng hệ thong
TỎ TRƯỞNG BỘ MÔN GIÁO VIÊN HƯỚNG DẪN
ThS Nguyễn Tuấn Linh ThS Nguyễn Tiến Duy
Trang 3Nhận xét của giáo viên hướng dẫn
Thái Nguyên, Này Tháng Năm 20
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
Nhận xét của giáo viên châm
Thái Nguyên, Ngày Tháng Năm 20 Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
Trang 4Trường ĐH KTCN Thai Nguyén £2 Đô án môn học: Hệ Thống Nhúng
LỜI CÁM ƠN
Lời đầu tiên chúng em xin chân thành cảm ơn thầy Nguyễn Tiến Duy cùng thây cô bộ môn khoa Điện Tử Trường Đại Học Kỹ Thuật Công Nghiệp Thái Nguyên
_ Trong qua trình thực hiện đồ án nhóm chúng em gặp không it khó khăn và thiêu sót Nhưng được sự hướng dân và chí dạy nhiệt tình của quý thây cô đã giúp chúng em khắc phục được những thiêu sót đó và có thê hoàn thành được đê tài đúng thời hạn, giúp chúng em học tôt hơn
Do kiến thức của nhóm chúng em còn hạn chế nên trong đồ án còn nhiều sai
Trang 5MỤC LỤC
LỜI NÓI ĐẦU L 2TH TH HH2 re
CHUONG 1: PHAN TICH HỆ THÔNG
1.1 GIỚI THIEU HE THONG MACH DIEU KHIEN DEN GIAO THONG 7 1.1.1.Y tưởng thiệt kê hệ thông điêu khiên đèn giao thông 7
1.1.2 Yêu cầu của mạch điều khiến đèn giao thông
1.2 GIGI THIEU HE THONG DIEU KHIEN DEN GIAO THONG
1.3 CÁC GIẢI PHÁP VÀ XÁC ĐỊNH BÀI TOÁN 18 1.3.1.Các gidi phape.c cececccccccccsccseescssessssssssssessessssessesscssessesssssessessvssesseeseees 8
1.3.2 Xác định bài toán và giới hạn của để tài, ác tong eyey 8
CHUONG 2 : THIET KE HE THONG cà
2.1 SƠ ĐỎ KHÓI CỦA HỆ THÓNG 2- 2 2St+EE 2 EEE1E11571 2121 2.2 SƠ ĐỎ KHÓI (CALL GRAPH)
2.3 SƠ ĐỎ ĐẶC TẢ CỦA HỆ THÓNG
2.4 CÁC MODULE TRONG HỆ THÓNG . -2: 2: 5c cctzxcrxcrrx 11
2.4.1 Module diéu khién trung tam .c.cccsccecseessesssesssesseessessteseesssessseesessseess 11
2.4.2.Module khối hién thi
2.4.3 Module khối nguồn
2.4.4 Module đầu vào:
2.5 LỰA CHỌN LINH KIỆN
2.5.1.Các linh kiện trong khối điều khiển trung tâm ¿5255+ 14
2.5.1.1 Vi điều khiến PIC 16F877A "
2.5.1.2.Bộ tạo dao động thạch anh - 5+ + + + +*sv+srsesreeserrrrrrs
2.5.2 Khối giải mã - 2+ St St t2 1 32112112112112112112111111211 11111111 se
2.5.3 Các linh kiện trong bộ hiền thị "
2.6 SƠ ĐỎ NGUYÊN LÝ CỦA MẠCH . 2-2 se +s+£keEEtzEerkerrrrs 27 2.7 NGUYEN LY HOAT DONG CUA MẠCH - ¿©2222 28 2.8 SƠ ĐỎ THUẬT TOÁN ĐIÊU KHIÉN 28
2.8.1 Giản đồ thời gian các chế độ hoạt động của hệ thống 28 2.8.2 So đồ thuật tốn tồn hệ thống - 2+ 20
2.8.3 Sơ đồ thuật toán các chế độ 1.30
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH HỆ THÓNG 32 3.1.MA NGUON DE DIEU KHIEN HE THONG DEN GIAO THONG 32 3.2 KET QUA MO PHONG Lo eecccesssssessessssseesvssssssesssssessessessessessessessesseeseees
3.2.1.Mạch điều khiển giao thông chay ở chế độ giờ thấp diém(BT)
3.2.2.Mạch điều khiển giao thông chay ở chế độ giờ cao điểm (CD) " 3.2.3.Mạch điều khiển giao thông chay ở chế độ giờ ban đêm (FREE) 42 ĐÁNH GIA VA KET LUAN
HƯỚNG PHÁT TRIEN CUA DE TAI TÀI LIỆU THAM KHẢO
Trang 6
Trường ĐH KTCN Thai Nguyén £2 Đô án môn học: Hệ Thống Nhúng
LỜI NÓI ĐẦU
Ngày nay, khái niệm kỹ thuật số đã trở thành quen thuộc với nhiều người, bởi vì sự phát triển của ngành kỹ thuật số này đã có ảnh hưởng rất lớn đến ngành kinh tế toàn câu Có người đã nêu lên ý tưởng gọi nền kinh tế của thời đại chúng ta là “ nền kinh tế kỹ thuật số “, “số hóa” đã gần như vượt khỏi ranh giới của một thuật ngữ kỹ thuật Nhờ có ưu điểm của xử lý số như độ tin cậy trong truyền dẫn, tính đa
thích nghi và kinh tế của nhiều phần mềm khác nhau, tính tiện lợi trong điều khiển
và khai thác mạng
Số hóa đang là xu hướng phát triển tất yếu của nhiều lĩnh vực kỹ thuật và kinh tế khác nhau Không chỉ trong lĩnh vực thông tin liên lạc và tin học Ngày nay, kỹ thật số đã và đang thâm nhập mạnh mẽ vào Kỹ thuật điện tử, Điều khiến tự động, phát thanh truyền hình, y tế, nông nghiệp và ngay cả trong các dụng cụ sinh hoạt gia đình
Ngay từ những ngày đầu khai sinh, kỹ thuật số nói riêng và ngành điện tử nói chung đã tạo ra nhiều bước đột phá mới mẽ cho các ngàng kinh tế khác và còn đảm bảo được yêu cầu của người dùng cả về chất lượng và dịch vụ Đồng thời kiến thức
về kỹ thuật số là không thẻ thiếu đối với mỗi sinh viên, nhất là sinh viên điện tử
Và như mọi người nhận thấy rằng, ngày nay trật tự giao thông nước ta đang rồi ren Vì vậy việc sử dụng đèn giao thông tại những giao lộ là rất cần thiết và dé hiểu rõ hơn về nguyên lý hoạt động và muôn phát triển thêm về mô hình này, chúng em đã chọn đề tài cho đồ án môn học 1 là nghiên cứu về Đèn Giao Thông
Nội dung chính của bài báo cáo được chia thành các phần chính sau:
> Lời nói đầu
» Chương I: Phân tích về yêu cầu của đồ án và các giải pháp đưa ra đê thực hiện
> Chương 2 : Thiết kế hệ thống
> Chương 3 : Xây dựng hệ thống
> Kết luận và các hướng phát triển hoàn thiện đề tài
Trong quá trình thực hiện đề tài có thể không tránh được các thiếu sót và mức độ hoàn thành đê tài, mong quý thây cô xem xét và có thê đưa ra nhận xét đề chúng
em có thê khăc phục được những thiêu sót đó và có thê hoàn thiện cũng như mở
rộng đê tài sau này
Trang 7CHƯƠNG 1: PHÂN TÍCH HỆ THONG
1.1 GIOI THIEU HE THONG MACH DIEU KHIEN DEN GIAO THONG 1.1.1.Ý tưởng thiết kế hệ thống điều khiến đèn giao thông
Hệ thống đèn giao thông của chúng em thiết kế hoạt động có các chế độ trong ngày: (Giờ cao điêm, bình thường và thâp điêm, hiên thị thời gian của các chê độ lên LED 7 đoạn)
- _ Cao điểm: Đèn xanh 47s, đèn đỏ 50s, đèn vàng 3s
- Bình thường: Đèn xanh 20s, đèn đỏ 23s, đèn vàng 3s
-_ Thấp điểm: Đèn vàng sáng
- Có 4LED 7 đoạn đơn: 2 LED hiển thị đếm ngược cho I làn đường
- Hệ thống LED đơn hiển thị cho các đèn xanh, đèn vàng, đèn đỏ
- Hệ thống nút nhấn, gồm 3 nút: nút chuyển chế độ cao điểm, bình thường, thấp
diém
1.1.2 Yêu cầu cúa mạch điều khiến đèn giao thông
- Mach phải đơn giản, dễ thiết kế, dễ lắp đặt, dễ dàng sửa chữa
- Mạch phải chạy ổn định, chính xác, dé vận hành
- Chi phí đề thiết kế phải rẻ
1.2 GIOI THIEU HE THONG DIEU KHIEN DEN GIAO THONG Một số sản phẩm thực tế
Hình 1: Hình ảnh hệ thống đèn giao thông trong thực tế
Trang 8Truong DH KTCN Thai Nguyén
1.3 CÁC GIẢI PHÁP VÀ XÁC ĐỊNH BÀI TOÁN
1.3.1.Các giải pháp
1.3.2 Xác định bài toán và giới hạn của đề tài
£ Đô án môn học: Hệ Thống Nhúng
Có rất nhiều phương pháp đề thiết kế một mạch điều khiển hệ thống đèn giao thông Tuy nhiên, tùy theo yêu cầu của từng bài toán, tùy theo ý tưởng thiết kế của mỗi người mà ta có những giải pháp riêng Ở đây nhóm chúng em đã thiết kế hệ thống điều khiển đèn giao thông sử dụng vi điều khiển với những ưu điểm sau:
Mạch có thể thay đổi các chế độ hoạt động hoạt động linh hoạt Số linh kiện sử dụng trong mạch ít, cách thức bồ trí linh kiện dễ dang Mach don gian, dễ thực thi Lập trình đơn giản a Xác định bài tốn Mơ hình đèn giao thông gồm có: Đâu vào Xử lý Đâu ra
e Đầu nhập dữ liệu vào là bàn phím, gồm các phím chức năng và phím
nhập thời gian,đê điêu chỉnh các chê độ hoạt động của đèn giao
thông
e Khối vi xử lí gồm có: mach vi xử lí với vi điều khién picl6F877A lam nhiệm vụ xử lí chính, bộ nguồn cung cấp điện áp 5VDC
e Đầu dữ liệu ra ( hiển thị) gồm:
- Led đơn: hiển thị tín hiệu đèn giao thông - Led 7 đoạn: hiên thị thời gian sáng của đèn
b Giới hạn của đề tài
Mạch thực hiện chưa chạy tự động các chế độ hoạt động theo giờ đã định, muốn chuyển chế hoạt động của hệ thống đèn giao thông yêu câu người điều khiển phải ấn nút điều chỉnh trên khối bàn phím để điều khiển các ché độ hoạt động theo giờ
Trang 9CHUONG 2 : THIET KE HE THONG 2.1 SO DO KHOI CUA HE THONG
Bao gồm các khối sau: Khối đầu vào, khối điều khiển, khối giải mã, khối hiển thị, khôi nguôn:
KHÓI KHÓI KHOI KHOI
DAU ,| DIEU GIAI MA HIEN VÀO KHIỂN THỊ ˆ KHOI NGUON
Hình 2 Sơ đồ khối hệ thống đèn giao thông
e_ Khối hiển thị: Hiển thị chính xác thời gian trên led 7 đoạn và tín hiệu đèn giao
thông trên led đơn
e_ Khối đầu vào: Gồm bàn phím đề điều chỉnh các chế độ hoạt động theo giờ của hệ thống đèn tín hiệu giao thông
e_ Khối điều khiển trung tâm: Điều khiển mọi sự hoạt động của hệ thống, thực
hiện chương trình, xử lý các điều khiển vào/ra và truyền thông với các thiết bị bên ngồi
e« Khối giải mã: sử dụng IC74LS247 để thực hiện việc giải mã BCD sang thập
phân và hiền thị các trạng thái thập phân đó trên LED 7 thanh
e_ Khối nguồn: Cung cấp điện áp cho toàn bộ hệ thống và đảm bảo sự ôn định điện áp
Trang 10Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng 2.2 SƠ ĐỎ KHÓI (CALL GRAPH) Controller Software Led Display Controller 7 Segment Controller Keypad Routines Led Display Keypad Segment
Hình 3 Sơ đồ khối hệ thống đèn giao thong (call graph) 2.3 SO DO DAC TA CUA HE THONG Đèn xanh 1 sang Đèn vảng 1 sáng Đèn do 2 sang Đèn do 2 sang Các đèn vàng 1, đỏ Các đèn xanh 1, đỏ 1, xanh 2, vàng 2 1, xanh 2, vàng 2 đều tất đều tất Đèn đỏ 1 sáng Đèn đỏ 1 sáng Đèn vảng 2 sáng Đèn xanh 2 sáng Các đèn vàng 1, Các đèn vảng 1, xanh 1, xanh 2, đỏ 2 xanh 1, đo 2, vảng 2 đều tắt đều tắt
Hình 4 Sơ đồ đặc tả của hệ thống đèn giao thông
Trang 112.4 CAC MODULE TRONG HE THONG 2.4.1.Module diéu khién trung tam
Sir dung vi diéu khién PICI6F877A a So dé PICI6F877A Sơ đồ chân của vi điều khiển PIC 16F§77A: 40 pins 5 cổng vào ra số RA,RB,RC,RD,RE TNRAm/M —+ht® |j sheằđm BA)/AN) â>[|? đ[]ô> R8ủ/P00 RAI/ANI ©+[L|3 &H~— R5 RA/ND/VRF- +—» 14 øH~— Ped RA3/AN3/VREF+ e—+[ ]s #H~— ai RAA/TOCKT +» C5 B+ Ree RAB/NM/SS «—+[]T #H~— fI REO/RO/ANS +> (C]8 #H~—> R/INT ELAR —> Clo s_ he RE2/0S/AU «+[|0 s 4 H~—1s Yu —+lt 8 [1~—> Rr/P#? Y§§ —*[[U 2 BL RO6/PSPE OSC1/CLKIN —+ Cn [~—> RO5/PSPS osce/CLKOUT «—C]n 7H~— Ru/P#4 ROD/TIOSO/TICKT «+ Cs Z[~— W?/R/DT RCI/TIOSI/CoP2 + Cs 2[H~— Ros/TH/CK RO2/COP] «—» C17 aH~— W5/S00 R03/501/S0L ô>[|g [H~ơ R4/S01/50A ROO/PSPO > C]19 ?H~ N/P#3 R0l/PSPI +>[]m iH~— RO2/PSP2 TOP YIEW
Hình 5: Sơ đồ chân vi diéu khién PICI6F877A
b Đặc điểm của PIC 16F877A
Công nghệ CMOS có đặc tính: công suất thấp, công nghệ bộ nhớ Flash/EEPROM có tốc độ cao.Điện áp hoạt động từ 2V đến 5,5V và tiêu tốn năng nượng thấp phù hợp với nhiệt độ làm việc trong công nghiệp và trong thương mại
-Tốc độ hoạt động :
+ _DC - 20MHz ngõ vào xung clock +_DC - 200ns chu kỳ lệnh
-Dung lượng của bộ nhớ chương trình Flash là 8K x 14words -Dung lượng của bộ nhớ dữ liệu RAM là 368x8Bytes -Dung lượng của bộ nhớ dữ liệu EEPROM là 256x8 Bytes
+ Bộ nhớ dit ligu EEPROM cho phép xóa và ghi 1.000.000 lần
+ Bộ nhớ EEPROM có thể lưu giữ dữ liệu hơn 40 năm và có thể tự
lập trình lại được dưới sự điều khiển của phần mềm
Trang 12Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng 2.4.2.Module khối hiến thị
Khối hiền thị có chức năng đưa ra thông tin hiển thị tương ứng với trạng thái
hiện thời của hệ thống Khối này gồm 2 phần: đèn hiền thị tín hiệu đèn giao thông
và đồng hồ
Đèn hiền thị tín hiệu đèn giao thông bao gồm: Đèn dành cho các phương tiện tham gia giao thông: xanh, đỏ, vàng
Đồng hồ dùng các LED 7 thanh đề tạo thành các bộ hiền thị từ 00 đến 99 Ở
đây ta dùng loại Anode chung (phù hợp với IC 74LS247), cấu trúc của nó như sau:
Hình 6: Sơ đồ LED thanh
Để tích kiệm chân cho vi điều khiến ta nối cdc chan a, b, c, d, e, f, ø, trên hai led với nhau Các vi xử lý xử lý các dữ liệu là sô nhị phân 0 và I nên cân có sự giải mã từ sô nhị phân sang sô thập phân, vì vậy ta nôi các chân của led 7 thanh vào
chân của bộ giải mã 74LS247
2.4.3 Module khối nguồn
Khối nguồn là khối cần thiết cho sự ôn định của điện áp,đảm bảo điện áp đúng
Trang 13Đầu tiên, điện áp AC5V được đưa vào mạch chỉnh lưu cầu diode đề cho điện áp một chiều Tuy nhiên, điện áp này sẽ được lọc bớt độ nhấp nhô (ripple) nhờ tụ 1000uE, qua đó, có thể nâng cao mức volt trung bình cấp cho tầng tiếp theo Hai tụ
104 trong mạch có nhiệm vụ dập hiện tượng dao động tự kích có trong IC7805C,
cũng như lọc ở tần số cao Nhánh mạch có điện trở 330 Ohm nói tiếp với Led-5V là
nhằm báo hiệu tình trạng ngõ ra có điện áp 5V hay chưa 2.4.4 Module đầu vào:
Trang 14Trường ĐH KTCN Thai Nguyén £2 Đô án môn học: Hệ Thống Nhúng
2.5 LỰA CHỌN LINH KIỆN
2.5.1.Các linh kiện trong khối điều khiến trung tâm 2.5.1.1 Vi điều khiến PIC 16F877A
a Sơ đồ chân vi điều khiến PICI6F877A WiWum/Mằrliđ \|j - shôằm#0 RAD/AND <—» C]2 p+ âủ/r RAI/MI e*[|3 B+ ABS RAD/AND/YREF- +» C]4 1= R4 RA3/N/VRE+ â>[] #~ đ/Pỳl PAM/TOCKT ôằ C5 søH~— RB RAS/ANA/SS «—+[|! #4~— fI RED/RO/ANS [3 #~— R8l/IM FeV ©+th 2 He—Wu RED/CS/AN? +» C0 ” a— ¥ss Yo —+ Cn a 0 — RO?/PSP? Ys—e = S++ poner 0801/LKIN —>[]9 3[~> M/P%5 Osce/CLKOUT +— Cx 7H RM/P#4 ROO/TIOSO/TICKT «+ Cs ã[]~—> Rữ?/RDT Wl/TI0SI/WP2 «+>[|ø zH~— R3/T0 W2/0PI + Chin 4 [+ PO5/S00 ACS /SCK/SCL «—» Og H~—> Rồ4/901/SDA R00/PSP) +[Í9 n2~ R/r#a R0l/PPI +[Ím 7+ R/r#? TOP VIEW
Hình 9: Sơ đồ chân vi điều khiển PICI6F877A b Một vài thông số về vi điều khiến PIC16F877A
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài
14 bit
Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối
đa cho phép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trinh 8Kx14
bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng
256x8 byte Sô PORT I/O là 5 với 33 pin L/O
> Các đặc tính ngoại vi bao gồm các khối chức năng sau:
- _ Timer0: bộ đếm 8 bit với bộ chia tan sé 8 bit
- Timerl: b6 dém 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm
dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep
-_ Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler -_ Hai bộ Capture/so sánh/điều chế độ rông xung
-_ Các chuẩn giao tiếp nói tiếp SSP (Synchronous Serial Port), SPI va I2C
- _ Chuẩn giao tiếp nói tiếp USART với 9 bit dia chi
- Céng giao tiếp song song PSP (Parallel Slave Port) với các chân điều
khiên RD, WR,CS ở bên ngoài
> Cac dac tinh Analog:
Trang 15- 8 kênh chuyên đổi ADC 10 bit
- _ Hai bộ so sánh
> Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần -_ Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần
- _ Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm
- Kha nang tu nap chương trình với sự điều khiển của phần mềm
- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming) thông qua 2 chân
- Watchdog Timer véi bộ dao động trong - _ Chức năng bảo mật mã chương trình
- Chế độ Sleep
- C6 thé hoat động với nhiều dạng Oscillator khác nhau
Trang 16Truong DH KTCN Thdi Nguyén 2 Dé dnmén hoc: Hé Thong Nining e Sơ đồ khối vi điều khiến PIC16F877A 13 DataBus Ê PORTA RAQIAND RAVANT RAQIAN2/Vagr CV REF RA1/AN3VaEr« RAATOCKUCIOUT RA5/AN4/S$/C20UT oo ớẻtYx.- R87/PG0 RCOTIOSOITICKI RC1/T10SICCP2 RC2ICCP1 RC3/SCK/SCL RC4/SDUSDA RCSSOO ROBTXICK RC7IRXOT Be OSCICLKI OSCIICLKO RODPSPO R01/P$P1 R02/P$P2 R03PSP3 RD4P$SP4 RDSIPSPS ROGPSPO R0?/P$P7 tof] RECADIANS tof] RELATRIANG PK] 8E2SAN7 - — —: Timer0 Tener! Tmer2 10-b+ A/0 io ata EEPROM CCP12 = USART Comparator Ritb
Hình 10 Sơ đồ khối vi điều khiển PIC16F877A
Trang 17d Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình
(Programmemory) và bộ nhớ đữ liệu (Data Memory) e_ Bộ nhớ chương trình
Bộ nhớ chương trình của vi điều khiển CALL, RETURN 13
PICI6F8§77A là bộ nhớ flash, dung lượng bộ RETFIE, RETLW 5 | nhớ 8K word (I word = 14 bit) và được phân Stack Level 1
thành nhiều trang (từ page0 đến page 3) —
Như vậy bộ nhớ chương trình có khả năng :
chứa được 8*1024 = 8192 lệnh (vì một lệnh —_
sau khi mã hóa sẽ có dung lượng I word (14 Tae ng
bit) : ||
Dé ma hoa được địa chỉ của 8K word =e soon
bộ nhớ chương trình, bộ đêm chương trình có 0005n
dung lượng 13 bit (PC<12:0>) | = ers
Khi vi điều khiển được reset, bộ đếm se uất =
chương trình sẽ chỉ đến địa chỉ 0000h (Reset ae Ba vector) Khi có ngắt xảy ra, bộ đêm chương Page2
trình sẽ chỉ đến địa chỉ 0004h (Interrupt =: scr
vector) IFFFh
Hình 11 Bộ nhớ chương trình PIC
e_ Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều
bank Đối vớiPIC16F877A bộ nhớ đữ liệu được chia ra làm 4 bank Mỗi bank có dung lượng 128 byte, baogồm các thanh ghi có chức năng đặc biệt SFG (Special Function Register) năm ở các vùngđịa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nắm ở vùngđịa chỉ còn lại trong bank Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cà các bank của bộ nhớ đữ liệu giúp thuận tiện trong quátrình truy xuất và làm giảm bớt lệnh của chương trình Sơ đồ cụ thể
của bộ nhớ dữ liệu
PIC16F877A nhu sau:
Trang 18Truong DH KTCN Thdi Nguyén 2 Dé dnmén hoc: Hé Thong Nining
File File File File
Address Address Address Address
Indirect addr) oon Indirect ade!) gon | Indirect addr} 100n |!ndirectaddr?Ì tạoh
01h OPTION_REG | 81h TMRO 101h OPTION_REG| 181h 02h 82h PCL 102h PCL 182h 03h 83h STATUS | 103h STATUS | 183h 04h 84h FSR 104h FSR 184h 05h 85h 105h 185h 06h 86h PORTS | 108h TRISB 186h 07h 87h 107h 187h 08h 88h 108h 188h 09h 89h 109h 189h 0Ah 8h PCLATH _ | 10Ah PCLATH | 18Ah 08h 8Bh INTCON | 108h INTCON | 18Bh 0Ch 8Ch EEDATA | 10Ch EECON1 | tậCh 0Dh 8Dh EEADR l0Dh | EECON2 18Dh 0Eh 8En EEDATH | 10En | Reserved@ | tach 0Fh §Fh EEAORH | 10Fh | Reseyedf? | 18Fh 10h 90h 110h 190h 11h 91h 111h 191h 12h 92h 112h 192h 13h 93h 1iần 193h 14h 94h 114h 194h 15h 95h 115 195h 16h 96h 116h 196h 17h 97h General | 117n General | 197n
18h 19h 99h an | Ronee | 19 | Ragse | 96h 16 Bytes | 1190 16 Bytes | 199h
1Ah 9Ah 11Ah 19Ah 18h 98h 11Bh 19Bh {Ch 9ch 11Ch 19Ch 1Dh 9Dh 11Dh 19Dh 1Eh 9Eh 1iEh 19Eh 1Fh 9Fh 11Fh 19Fn 20h ADh 120h 1A0h General General General Purpose Purpose
Register Power Register
20 Bytes 80 Bytes 20 Bytes
EFh 16Fh 1EFh
accesses | F0h accesses | 170 accesses | 1FOh
T0h-TFh 70h-7Fh 70h - 7Fh
TFh FFh 17Fh 1FFh
0 Bank 1 Bank 2 Bank 3
TD Unimpiemented data memory locations, read as ‘o"
* Not a physical register,
Note 1: These registers are not implemented on the PIC16F876A
2: These registers are reserved; maintain these registers clear
Hinh 12.So dé b6 nhé dir ligu PIC16F877A
Trang 19e Công xuất nhập
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng dé tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thê hiện một cách rõ ràng
Một công xuất nhập của vi điều khiển bao gồm nhiều chân ,qŒ/O pin), tùy theo cách bồ trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và sô lượng
chân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợp
sẵn bên trong các đặc tinh giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác đề thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài Chức năng của từng chân xuất nhập trong mỗi cơng hồn tồn có thé được xác lập và điều khiến được thông qua các thanh ghi SER liên quan đến chân xuất nhập đó
Vi điều khiển PICI6F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,
PORTC, PORTD và PORTE e PORTA
PORTA (RPA) bao gom 6 I/O pin Day là các chân “hai chiéu” (bidirectional pin), nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi
TRISA và ngược lại, muốn xác lập chức năng của một chân trong PORTA là
output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA
Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điều khiển
tương ứng TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD vàđối với PORTE là TRISE) Bên
cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào
xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
Các thanh ghi SFR liên quan đến PORTA bao gồm: PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA
TRISA (dia chỉ 85h) : điều khiển xuất nhập
CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ so sánh
CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp ADCONI (dia chỉ 9Fh): thanh ghi điều khiển bộ ADC
se PORTB
PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là
TRISB Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình
nạp chương trình cho vi điêu khiên với các chê độ nạp khác nhau PORTB còn liên
quan đên ngắt ngoại vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên được điêu khiên bởi chương trình
Các thanh ghi SFR liên quan đến PORTB bao gồm:
PORTB (dia chi 06h,106h) : chứa giá trị các pin trong PORTB
TRISB (dia chi 86h,186h) : điều khiển xuất nhập
Trang 20Trường ĐH KTCN Thai Nguyén £2 Đô án môn học: Hệ Thống Nhúng OPTION_REG (địa chỉ §1h,I81h) : điều khiến ngắt ngoại vi và bộ
Timer0
se PORTC
PORTC (RPC) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là
TRISC Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ
Timerl, b6 PWM va các chuân giao tiệp nôi tiêp I2C, SPI, SSP, USART
Các thanh ghi điều khiển liên quan đến PORTC:
PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC
TRISC (địa chỉ 87h) : điều khiển xuất nhập
e PORTD
PORTD (RPD) gồm 8 chân L/O, thanh ghi điều khiển xuất nhập tương ứng là
TRISD PORTD còn là công xuât dữ liệu của chuân giao tiệp PSP (Parallel Slave Port)
Các thanh ghi liên quan đến PORTD bao gồm:
Thanh ghi PORTD: chứa giá trị các pin trong PORTD
Thanh ghi TRISD : điều khiển xuất nhập
Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP
° PORTE SỐ
PORTE (RPE) gôm 3 chân I/O Thanh ghi điêu khiên xuât nhập tương ứng là TRISE Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn là các chân điêu khiên của chuân giao tiep PSP ‹
Các thanh ghi liên quan đên PORTE bao gôm:
PORTE _ : chtra gia tri cac chan trong PORTE
TRISE : điều khiển xuất nhập và chuân giao tiếp PSP ADCONI : thanh ghi điêu khiên khôi ADC
f TIMER 0
Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A
Timer0 là bộ đêm 8 bit được kết nôi với bộ chia tân sô (prescaler) 8 bit Câu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock
Ngat Timer0 sẽ xuất hiện khi Timer0 bị tràn Bit TMR0IE (INTCON<5>) là bịt điều khiển của Timer0 TMROIE=1 cho phép ngất Timer0 tác động, TMROIF= 0
không cho phép ngắt Timer0 tác động Sơ đô khôi của Timer0 như sau:
Trang 21Set Fieg bit TMROU on Svertow weatencog Timmer WOT Enatie bit Mux — PSA Note: TOCS, TOSE, PSA, PS2:PSO are (OPTION_REG<S:0>)
Hình 13 Sơ đồ khối của Timer0
Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC (OPTION_REG<S>), khi đó giá trị thanh ghi TMRO sẽ tăng theo từng chu kì xung đồng hồ (tần số vào Timer0 bằng 1⁄4 tần số oscillator) Khi giá trị thanh ghi TMR0 từ
FFh trở về 00h, ngắt Timer0 sẽ xuất hiện Thanh ghi TMRO cho phép ghi và xóa được giúp ta ấn định thời điểm ngắt Timer0 xuất hiện một cách linh động
Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC (OPTION_REG<2>) Khi đó xung tác động lên bộ đếm được lấy từ chân RA4/TOCKI Bit TOSE
(OPTION_REG<4>) cho phép lựa chọn cạnh tác động vào bột đếm Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và cạnh tác động sẽ là cạnh xuống nếu TOSE=I
Khi thanh ghi TMRO0 bị tràn, bit TMR0IF (INTCON<2>) sẽ được set Đây
chính là cờ ngắt của Timer0 Cờ ngắt này phải được xóa bằng chương trình trước
khi bộ đếm bắt đầu thực hiện lại quá trình đếm Ngắt Timer0 không thê “đánh thức” vi điều khiến từ chế 6 sleep
Bộ chia tần số (prescaler) được chia sẻ giữa Timer0 và WDT (Watchdog Timer) Điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ
không có được hỗ trợ của prescaler và ngược lại Prescaler được điều khiến bởi
thanh ghi OPTION_REG Bit PSA (OPTION_REG<3>) xác định đối tượng tác động của prescaler Các bit PS2:PS0 (OPTION_REG<2:0>) xác định tỉ số chia tần
số của prescaler Xem lại thanh ghi OPTION_REG đề xác định lại một cách chỉ tiết
về các bit điều khiên trên
Các lệnh tác động lên giá trị thanh ghi TMRO sẽ xóa chế độ hoạt động của
prescaler Khi đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMRO sẽ xóa prescaler nhưng không làm thay đổi đối tượng tác động của prescaler Khi đối
tượng tác động là WDT, lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽ
ngưng tác vụ hỗ trợ cho WDT
Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:
TMRO (dia chi 01h, 101h) : chứa giá trị đếm của Timer0
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và
Trang 22Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng PEIE)
OPTION_ REG (địa chi 81h, 181h): điều khiển prescaler g TIMERI
Timerl là bộ định thời 16 bit, giá trị của Timerl sẽ được lưu trong hai thanh ghi (TMRIH:TMRIL) Co ngat cua Timer! 1a bit TMRIIF (PIR1<0>) Bit diéu khién
cua Timerl sé la TMRIIE (PIE<0>)
Tương tự như Timer0, Timerl cũng có hai chế độ hoạt động: chế độ định thời
(timer) với xung kích là xung clock của oscillator (tân sô của timer băng 1⁄4 tân sô của oscillator) và chê độ đêm (counter) với xung kích là xung phan ánh các sự kiện cân đêm lây từ bên ngồi thơng qua chân RC0/TIOSO/TICKI (cạnh tác động là
cạnh lên) Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chê độ hoạt
động là timer hay counter) được điêu khiên bởi bít TMRICS (TICON<I>) Sau đây là sơ đô khôi của Timerl: Set Flag be TWRIIF on Ta TMR! TMRION lan OnO*# A.110§C j rm RCOTIOSOITICK {P>—— ; | = Presa oo a 1,24, tent + intemal — 0 Rctrrtoscc?z® [DĐ + et = : T1CKP$1:TICKP$0 TMRICS Note 1: Wren the TIOSCEN bit is cleared, the inverter is tumed off This elemnates power drain
Hình 14 Sơ đồ khối của Timerl
Ngoài ra Timerl còn có chức năng reset input bên trong được điều khiển bởi
một trong hai khối CCP (Capture/Compare/PWM)
Khi bit TIOSCEN (TICON<3>) được set, Timerl sẽ lấy xung clock tit hai chan
RC1/T1OSIL/CCP2 và RC0/TIOSO/TICKI làm xung đếm Timerl sẽ bắt đầu đếm sau cạnh xuống đầu tiên của xung ngõ vào Khi đó PORTC sẽ bỏ qua sự tác động
cua hai bit TRISC<1:0> va PORTC<2:1> được gan gia tri 0 Khi clear bit TIOSCEN, Timerl sẽ lấy xung đếm từ oscillator hoặc từ chân C0/T1OSO/TICKI
Timerl có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ
(Asynchronous).Chế độ đếm được quyết định bởi bit điều khiến TISYNC
(TICON<2>)
Khi TISYNC =l xung đếm lay từ bên ngồi sẽ khơng được đồng bộ hóa với xung clock bên trong, Timer! sé tiếp tục quá trình đếm khi vi điều khiển đang ở chế độ sleep va ngất do Timerl tạo ra khi bị tràn có khả năng “đánh thức” vi điều khiển Ở chế độ đếm bất đồng bộ, Timerl không thể được sử dụng để làm nguồn xung clock cho khéi CCP (Capture/Compare/Pulse width modulation)
Trang 23Khi TISYNC =0 xung đếm vào Timerl sẽ được đồng bộ hóa với xung clock
bên trong Ở chế độ này Timerl sẽ không hoạt động khi vi điều khiển đang ở chế độ sleep
Các thanh ghi liên quan đến Timer1 bao gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động
(GIE và PEIE)
PIRI (dia chỉ 0Ch): chứa cờ ngắt Timerl (TMRIIF) PIEI( địa chỉ 8Ch): cho phép ngat Timerl (TMRIIE)
TMRIL (dia chi 0Eh): chứa giá trị 8 bit thap của bộ đếm Timerl TMRIH (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timcrl TICON (địa chỉ 10h): xác lập các thông số cho Timerl
h TIMER2
Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler và
postscaler Thanh ghi chứa giá trị đếm của Timer2 là TMR2 Bit cho phép ngắt Timer2 tác động là TMR2ON (T2CON<2>) Cờ ngắt của Timer2 là bit TMR2IF
(PIRI<I>) Xung ngõ vào (tần số bằng 1⁄4 tần số oscillator) được đưa qua bộ chia
tần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều
khiên bởi các bit T2CKPSI:T2CKPS0 (T2CON<1:0>)) Sets Flag bit TMR2IF | Cup) Reset —^—| TMR2 Reg 11,14, 1 1+6[—Fosc/4 Prescaler Postscaler 2 ++ BE T2OUTPS3 T2OUTPSO
Note 1: TMR2 register output can be software selected by the
SSP module as a baud clock
Hình 15 Sơ đồ khối của Timer2
Timer2 còn được hỗ trợ bởi thanh ghi PR2 Giá trị đếm trong thanh ghi TMR2 sẽ tăng từ 00h đên giá trị chứa trong thanh ghi PR2, sau đó được reset vê 00h Khi
reset thanh ghi PR2 được nhận giá trị mặc định FFh
Ngõ ra của Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 đên 1:16 Postscaler được điêu khiên bởi 4 bit T2OUTPS3:T2OUTPSO0 Ngõ ra
của postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt
Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP
Các thanh ghi liên quan đến Timer2 bao gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE
Trang 24Trường ĐH KTCN Thai Nguyén £2 Đô án môn học: Hệ Thống Nhúng
và PEIE)
PIRI (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF)
PIEI (địa chi 8Ch): chita bit điều khién Timer2 (TMR2IE)
TMR2 (dia chi 11h): chira gia tri đếm của Timer2 T2CON (địa chỉ 12h): xác lập các thông số cho Timer2 PR2 (địa chỉ 92h): thanh ghi hỗ trợ cho Timer2
2.5.1.2.Bộ tạo dao động thạch anh C1 ° OSC1 22pF _]_—_ Cc XI C2 —- cRvysTAL † “ o8c2 _]_ 22pF
Hình 16 Bộ tạo dao động thạch anh
Bộ dao động đóng vai trò nhạc trưởng làm nhiệm vụ đồng bộ hóa hoạt động của
tất cả các mạch bên trong vi điều khiển Nó thường được tạo bởi thạch anh hoặc
gốm đề ổn định tần số Các lệnh không được thực thi theo tốc độ của bộ đao động
mà thường chậm hơn, bởi vì mỗi câu lệnh được thực hiện qua nhiều bước Mỗi loại
vi điều khiển cần có số chu kì khác nhau để thực hiện lệnh Đầu vào của bộ dao động thạch anh được nối với chân 13 của vi điều khiển, đầu ra được nối với chân
14
Khối giải mã nhận tín hiệu điều khiển từ khối điều khiển, sau đó
giải mã để đưa đến hiển thị trên các đồng hồ đếm ngược Với chức
năng trên thì khối này chính là khối giải mã cho đèn LED 7 thanh
Vì các đồng hồ được hiền thị bằng các đèn LED 7 thanh nên ta sẽ sử
dụng bộ giải mã là các IC 74LS247 Sơ đồ chân ra và sơ đồ khối
chức năng như sau:
Trang 25SN74LS247 (TOP VIEW) OUTPUTS BC LAMP RB RB oD A GND “— TEST OUT IN INPUTS PUT PUT INPUTS (13) output a INPUT A NPUT 8 2) output t M) oytput ¢ INPU + 0 9 output BÀ NENG NKIN( D) ‘ + INPUT OR ory RIPPLE-BLANKING ðTPUT Đ®) ou†pu f RIPPLE-BLANKING INPUT
Hình 17.Sơ đồ chân ra và sơ đồ khối chức năng của IC 74LS247
Các đầu ra (từ a đến f) nối đến các chân tương ứng của LED 7 thanh Ta thây các dau ra déu có mức tích cực là mức thâp Do đó,
loại LED 7 thanh cân sử dụng là loại Anode chung LED 7 thanh sẽ
ghép nôi với IC này theo bảng chân lý sau: DECIMAL OR INPUTS 8iRaoŸ OUTPUTS NOTE FUN€TION | tr |Rm[D c€ 8 A abc de ft g 0 H H L L L L H CN ON ON ON ON ON OFF 1 H X L L L H H OFF ON ON OFF OFF OFF OFF 2 H xX L L h L H ON ON OFF ON ON OFF ON 3 H X L L H H H ON ON ON ON OFF OFF ON 4 H X L H L L H OFF ON ON OFF OFF ON ON 5 H xX L, H Le H H ON OFF ON ON OFF ON ON 6 H|xX|[L H FOL 4 ON OFF ON ON ON ON ON T H x E H h H H ON ON ON OFF OFF OFF OFF 1 8 H xX H L L L H ON ON ON ON ON ON ON 9 H|xXx|H L LH 4 ON ON ON ON OFF ON ON
10 H xX H L h ki H OFF OFF OFF ON ON OFF ON
1 H|x|nH Lo oF 4 4 |OFF OFF ON ON OFF OFF ON 12 H|X|H H LOL 4 |OFF ON OFF OFF OFF ON ON
13 H X H H L H H ON OFF OFF ON OFF ON ÔN
14 H|X]H H FOL H |OFF OFF OFF ON ON ON ON
16 H xX H H h H H OFF OFF OFF OFF OFF OFF OFF Bí x xX x x xX X L OFF OFF OFF OFF OFF OFF OFF 2
RBI HÌL[L LLL L | OFF OFF OFF OFF OFF OFF OFF| 3
LT Ẻ x x am xX x H ON ON ON ON ON ON ON 4
Hình 18 Bảng chân lý của IC 74LS247
Trang 26Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng 2.5.3 Các linh kiện trong bộ hiển thị
Đồng hồ dùng cdc LED 7 thanh để tạo thành các bộ hiển thị từ
00 đên 99 Ở đây ta dùng loại Anode chung (phù hợp với IC 74LS247), câu trúc của nó như sau: Hình 19 Cấu trúc bên trong của LED 7 thanh Anode chung VCC 4 | 1 i fa 16 a 14 ——yR +3 b #lB tr 2 12c | | agit d ng 19 |d œ be bind fl TẾ ale —— ` CRB g CAT4_—19 Ê_|eNp L_ f CAT3—y————* 13 |g CAI2—$——————‡ 74LS247 CATT + f ° ° SEVSEG-b ==
Hình 20 Ghép nói 74LS247 đến LED 7 thanh
Trang 272.6 SO DO NGUYEN LY CUA MACH
Hình 21 Sơ đồ nguyên lý của hệ thống điều khiền đèn giao thông
Trang 28Trường ĐH KTCN Thai Nguyén £2 Đô án môn học: Hệ Thống Nhúng 2.7 NGUYEN LY HOAT ĐỘNG CUA MACH
Mạch đèn giao thông hoạt động dựa trên nội dung đã lập trình cho picl6F877A, khi có tác động từ các nút điều khiển mạch hoạt động theo đúng thời gian yêu câu PIC16F877A đưa dữ liệu đến các LED xanh, đỏ, vàng đề điều khiển các LED này đóng, mở Ngoài ra, nó còn xuất dữ liệu đến các BJT dé tang dong cho cac LED 7 đoạn, các BỊT sẽ điều khiển việc đóng mở các LED 7 đoạn LED 7 đoạn còn nhận
đữ liệu từ vi điều khiển trung tâm đề thực hiện việc đếm lùi thời gian
Như vậy mỗi khi mạch bắt đầu thực hiện đếm lùi, nếu trục lộ bên này đèn xanh hoặc vàng sáng thì trục lộ bên kia đèn đỏ sáng và ngược lại Bộ phận điều khiển PICI6F877A là các nút nhấn ở khối bàn phím Tùy theo thời gian yêu cầu mà ta điều khiển các trục giao thông sáng PICI6F877A sẽ xuất ra các công I/O những xung ở mức cao hoặc mức thấp đề điều khiển các BIT từ đó điều khiển các đèn hiển
thị Khi PICI6F877A nhận tín hiệu điều khiển từ các phím nhấn, nó sẽ quét và tìm
ra chương trình được mã hóa phù hợp với tín hiệu điều khiển dé hoạt động 2.8 SO DO THUAT TOAN DIEU KHIEN
2.8.1 Gián đồ thời gian các chế độ hoạt động cúa hệ thống Hệ thống điều khiên đèn giao thông hoạt động ở các chế độ:
Cao điểm: Đèn xanh 47s, đèn đỏ 50s, đèn vàng 3s Bình thường: Đèn xanh 20s, đèn đỏ 23s, đèn vàng 3s - Thap điểm: Đèn vàng sáng ¡"mm ———Ỳ đx1 dv1 | ““ "ru đđ1 Đ2 dd2 Jo LO ie ee lle [| dv2 0 20 23 47 50 t
Hinh 22 Giản đồ thời gian các chế độ hoạt động
Trang 292.8.2 Sơ đồ thuật tốn tồn hệ thống
Hình 23 Sơ đồ thuật tốn tồn hệ thống
Trang 30Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng 2.8.3 Sơ đồ thuật toán các chế độ
a Sơ đồ giải thuật ớ chế độ thấp điểm tg_di=23s ; tg x2=20s tg_@=23s; tg x1=20s Bật đàn đỏ 1 đèn xanh 2 Bật đèn đó 2 đèn xanh 1
Chạy chương trình quét led Chạy chương trình quét led 7 đoạn + đêm lùi thời gian 7 đoạn + đêm lùi thời gian
tg_v2 =3s tg_v2 =3s
Bật đèn đỏ 1, vàng 2 Bật đèn đỏ 2, vàng 1
Chạy chương trình quét led Chạy chương trình quét led 7 đoạn ~ đềm lùi thời gian 7 đoạn + đềm lùi thời gian
Hình 24 Sơ đồ giải thuật ở chế độ thấp điểm
Trang 31b Sơ đồ giải thuật ớ chế độ cao điểm tg_di=s0s ; tg_x2=47s tg_@=50s ; tg x1= 47s
Batdé đỏ 1 đèn xanh 2 Bật đàn đỏ 2 đèn xanh 1
Chạy chương trìh quét led Chạy chương trmh quét led 7 đoạn ~ đêm lùi thời gian 7 đoạn + đêm lùi thời gian
tg_v2 = 3s tg_ v2 = 3s Bat đèn đỏ 1, vàng 2 Bật đèn đó 2, vàng 1
Chạy chương trìh quét led Chạy chương trình quét led 7 đoạn + đêm lùi thời gian 7 đoạn + đêm lùi thời gian
Hình 25 Sơ đồ giải thuật ở chế độ cao điểm c Sơ đồ giải thuật ớ chế độ ránh (FREE) CĐ: RẢNH (FREE) | “——¬ Delay 1s Bật đèn vảng 1 và 2 L _]
Hình 26 Sơ đồ giải thuật ở chế độ rảnh
Trang 32Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH HE THONG 3.1.MA NGUON DE DIEU KHIEN HE THONG DEN GIAO THONG
#include <16F877A.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, LVP
fuse delay (clock=12000000)
//cac khai bao ,dinh nghia chan vi dieu khien //
J [BRR I RIOR IOI IO KIO KK IO Kk
Trang 33#bit C6 = 0x07.6 #bit C5 = 0x07.5 #bit C4 = 0x07.4 #bit CO = 0x07.0 #bit Cl = 0x07.1 #bit C2 = 0x07.2 #bit C3 = 0x07.3 #bit D7 = 0x08.7 #bit D6 = 0x08.6 #bit D5 = 0x08.5P #bit D4 = 0x08.4 #bit D3 = 0x08.3 #bit D2 = 0x08.2 #bit D1 = 0x08.1 #bit DO = 0x08.0 //cac chuong trinh con dung trong chuong trinh// void programl (); void program2 (); void normal (); //chuong trinh chay binh thuong (gio thap diem) //
void caodiem(); //chuong trinh chay gio cao diem // void freetime(); //chuong trinh chay gio ranh (ban dem) // void tach_led(); //chuong trinh tach lay phan chuc, phan don vi tu cac so dem giay //
void quet_led(); //chuong trinh dua led ra cac 7 segments led // void a_xanh(); //chuong trinh sang den do,xanh cua lan duong 1 // void a_vang(); //chuong trinh sang den vang cua lan duong 1 // void b xanh(); //chuong trinh sang den do,xanh cua lan duong 2 // void b_vang(); //chuong trinh sang den vang cua lan duong 2 // //khai bao bien// int8 i,mode; int8 a,b; 1nt8 chuca,dvia,chucb,dvib;
int8 temp1, temp2, temp3, temp4;
//ngat ngoai vi// #int ext
Trang 34Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng void ext_isr() { mode++; if (mode==2) mode=0; //cac ham chuong trinh con// void tach_led() {
chuca=a/10; //tach lay so hang chuc dvia=a310; //tach lay so hang don vi chucb=b/10; dvib=b%10; } void quet_led() { while (true) { for (i=0;i<=68;i=i+1) { porta=chuca; //dua so hang chuc ra led 7 thanh
d0=1; //pat led o vi trị hang chuc delay_ms (3); //delay khoang 3ms
d0=0; //tat led o vi tri hang chuc
porta=dvia; //tuong tu nhu tren đ1=1; delay_ms (3); d1=0; porta=chucb; d2=1; delay _ms (3); d2=0; porta=dvib; d3=1; delay_ms (3); d3=0;
a=a-1; //thuc hien dem lui thoi gian
b=b-1; //thuc hien dem lui thoi gian
break;
}
Trang 35void a xanh()
{
a=temp1; //gan cho a bien tam templ
b=temp2; //gan cho b bien tam temp2 Cac bien tam nay
dung de luu gia tri thoi gian hien thi while (true)
{
c2=1; //mo den xanh cua lan duong 1 danh cho xe c3=1; //bat den do cua lan duong 2 danh cho xe 1£ (a==0) { c2=0; //khi thoi gian dem lui het thi tat cac den bao d6=0; break; } else
tach_led(); //goi chuong trinh con tach thoi chuyen so
BCD thanh so HEX cho led 7 doan
Trang 37} void normal () { while(1) { temp1=20; 20s temp2=23; temp3=23; temp 4=20; a_xanh(); duong 1 a_vang(); duong 1 b_xanh(); duong 2 b_vang(); duong 2 } } void caodiem() { while (1) { temp1=47; temp2=50; temp3=50; temp4=47; a_xanh(); a_vang(); b_xanh(); b_vang(); } } void freetime() { while (1) { portc=0x00; cl=1; c4=1; delay_ms (500);
GVHD: ThS Nguyén Tién Duy
//thoi gian sang den xanh luc binh thuong la
//thoi gian sang den do luc binh thuong la 23s //goi chuong trinh con sang den xanh,do cua lan
//goi chuong trinh con sang den vang cua lan //goi chuong trinh con sang den xanh,do cua lan
//goi chuong trinh con sang den vang cua lan
//thoi gian sang den xanh luc cao diem la 47s //thoi gian sang den do luc cao diem la 50s
//bat den vang
//delay 0,5s
Trang 38Trường ĐH KTCN Thái Nguyên LQ Đô án môn học
Trang 39delay_ms (100); porta=0x00;portb=0xel; portd=0x0f;portc=0x00; b2=1;c7=1; caodiem(); } if (!B7) delay _ms(100); delay _ms(100); portc=0x00; portb=0xel; b3=1;d4=0;d7=0; freetime(); } //ham setup// void setup () { portb=0xE1; chan ngat cho portb// while (1) { switch (mode) { case 0: c7=1; c6=0; program2 (); break; case 1: c6=1; c7=0; programl (); break; } //khu vuc chuong trinh chinh// void main() {
GVHD: ThS Nguyén Tién Duy
//cau hinh cac
//che do auto
//che do manual
Trang 40Trường ĐH KTCN Thái Nguyên LQ Đô án môn học: Hệ Thống Nhúng
trisa=0x00;trisc=0x00;trisd=0x00;trisb=0xel;
bao cac thanh ghi//
portd=0x00; portc=0x00; porta=0; portb=0xel;
//cac khai bao ngat//