đồ án môn học dùng vi điều khiển pic 16f877a kết hợp với ds1307 để điều khiển hệ thống đèn giao thông

74 1.6K 17
đồ án môn học dùng vi điều khiển pic 16f877a kết hợp với ds1307 để điều khiển hệ thống đèn giao thông

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BẢN THUYẾT MINH ĐỀ TÀI: DÙNG VI ĐIỀU KHIỂN PIC 16F877A KẾT HỢP VỚI DS1307 ĐỂ ĐIỀU KHIỂN HỆ THỐNG ĐÈN GIAO THƠNG. GVHD: GS.TS Nguyễn Đức Thành GVPB: Thầy Nguyễn Trọng Tài SVTH: Nguyễn Hữu Tân I. Giới thiệu sơ lược về PIC 16F877A - Tần số hoạt động lớn nhất: 20MHz - 8k byte ROM nội (Flash Rom). - 368 byte RAM nội. - 256 byte EEROM trong vùng ROM nội đươc dùng để chứa dữ liệu. - Về giao tiếp, có 5 port A, port B, port C, port D, port E vàøo ra với tín hiệu điều khiển độc lập. - Có 2 bộ đònh thời Timer 0 vàø timer 2 – 8 bit. - Có 1 bộ đònh thời timer 1 -16 bit có thể hoạt động trong chế độ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung clock từ bên ngoài. - Có 2 bộ Capture/Compare/PWM. - Có 1 bộ ADC 10 bit với 8 ngõ vàøo. - Có 2 bộ so sánh tương tự (Comparator). - Có một bộ Watch Dog Timer. - Có một bộ Serial ở bên trong chip. - Có moat cổng song song 8 bit với các tín hiệu điều khiển. - Có 15 nguồn ngắt. - Nạp chương trình thông qua cổng nối tiếp (ICSP – In Circuit Serial Programming). - Được chế tạo dựa trên công nghệ CMOS. - Về cấu trúc lệnh, có tất cả 35 lệnh có độ dài 14 bit. Đại học Bách Khoa TP.HCM |Nguyễn Hữu Tân-40402247 1 II. Giới thiệu về DS1307 - Tần số dao động thạch anh sử dụng 32.768kHz, không cần có điện trở, cũng như các tụ gắn thêm. - IC real-time DS1307 là một IC hoạt động với chế độ thời gian thực, công suất thấp, sử dụng mã BCD đầy đủ - Có 56 byte ram nội. Đòa chỉ, cũng như dữ liệu được ghi và đọc theo chuẩn giao tiếp I2C, đa hướng (chi tiết về chuẩn giao tiếp I2C này đã được em trình bày ở trong đồ án). - IC real-time DS1307 cung cấp thông tin về giây, phút, giờ, ngày, tháng, năm, thông tin về năm. IC này cũng tự điều chỉnh cho những tháng có ít hơn 31 ngày và bao gồm luôn cả năm nhuận. Đồng hồ trong IC hoạt động với hai chế độ: 24 giờ, hay 12 giờ (bao gồm cả chỉ thò cho biết đang là AM hay PM). - IC real-time DS1307 cũng được tích hợp sẵn một mạch nhận biết sự cố điện áp và sẽ tự động chuyển sang dùng nguồn PIN nuôi dự phòng khi có sự cố mất điện áp xảy ra để ngăn ngừa tình trạng mất dữ liệu. III. Giới thiệu sơ đồ khối của mạch thực hiện IV. Giới thiệu các mode hoạt động và cài đặt a. Mode I: Chế độ vận hành tự động cho đèn giao thông với giờ đã cài đặt sẵn b. Mode II: Chế độ vận hành bằng tay cho đèn. Có hai mode con: Đại học Bách Khoa TP.HCM |Nguyễn Hữu Tân-40402247 2 Khối ngõ ra, gồm 12 đèn thể hiện cho 1 ngã 4 Khối giao tiếp Máy tính Khối DS1307 Khối LCD Khối VXL Khối nguồn Bàn phím - Mode con 1: chỉ sử dụng hai đèn xanh và đỏ. Đèn vàng không được sử dụng. Dùng khi người điều khiển giao thông muốn chủ động điều khiển thời gian theo ý muốn của mình. - Mode con 2: chỉsử dụng đèn vàng, đèn vàng chớp với chu kì 1s. Dùng khi chiến só cảnh sát giao thông muốn người và phương tiện tham gia lưu thông tuân theo hiệu lệnh của mình thay vì tín hiệu đèn giao thông. c. Mode III: Chế độ xem giờ đã cài đặt, cài đặt thời gian đèn xanh, đỏ, vàng, xác định xem có sử dụng giờ của 1307 hay khơng?. Mode này có các mode con sau - Mode con 1: sử dụng để xem giờ đã cài đặt cho đèn giao thông. Giờ cài đặt được lưu trong EEPROM nên không bò mất khi có sự cố mất điện. - Mode con 2: sử dụng để đònh giờ mới cho đèn. Sau khi đònh giờ xong, giờ mới cài đặt này sẽ được lưu vào trong ROM và chương trình sẽ trở lại khâu chọn mode hoạt động. d. Mode IV: Chế độ xem giờ hiện tại của hệ thống cũng như thiết đặt giờ chuyển sang chế độ đèn vàng. Mode này có ba mode con : - Mode con 1: sử dụng để xem giờ hiện tại của hệ thống đọc được từ IC1307. Giờ cài đặt được lưu trong IC real-time DS1307 có PIN nuôi dự phòng nên không bò mất khi có sự cố mất điện. - Mode con 2: sử dụng để xem, đònh giờ mới cho hệ thống làm cho hệ thống chuyển sang chế độ đèn vàng. Sau khi đònh giơ, xem giờø xong, chương trình sẽ trở lại khâu chọn mode hoạt động. - Mode con 3: sử dụng để cài đặt giờ cho hệ thống (giờ lưu trong IC DS1307) . M C L CỤ Ụ I) CHƯƠNG 1: VI ĐIỀU KHIỂN PIC 16F877A a. Giới thiệu chung về VĐK PIC b. Giới thiệu về vi điều khiển PIC 16F877A c. Giới thiệu các chân của vi điều khiển PIC 16F877A d. Giới thiệu về tổ chức bộ nhớ của PIC 16F877A Đại học Bách Khoa TP.HCM |Nguyễn Hữu Tân-40402247 3 i. Tổ chức bộ nhớ ii. Các thanh ghi của PIC 16F877A e. Giới thiệu về bộ đònh thời trong PIC 16F877A f. Giới thiệu về ngắt trong PIC 16F877A g. Sử dụng giao tiếp theo chuẩn giao tiếp I2C trong PIC 16F877A . h. Module CCP? i. Các bộ Comparator? j. Bộ biến đổi dữ liệu ADC 10 bit? II) CHƯƠNG II: GIỚI THIỆU VỀ PHẦN MỀM CCS C HỖ TRỞ LẬP TRÌNG CHO CÁC DÒNG PIC III) CHƯƠNG III: GIỚI THIỆU MẠCH THỰC HIỆN ĐỒ ÁN MÔN HỌC. IV) Phụ lục: Tập lệnh của PIC 16F877A Đại học Bách Khoa TP.HCM |Nguyễn Hữu Tân-40402247 4 CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A CHƯƠNG I VI ĐIỀU KHIỂN PIC 16F877A A. Giới thiệu về vi điều khiển PIC PIC (Programmable intelligent Controller) do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ: PIC 1650. Hãng Microchip tiếp tục phát tri63n sản phẩm này. Cho đến nay, các sản phẩm vi điều khiển PIC của Microchip đã có gần 100 loại sản phẩm từ 10Fxxx đến 12Cxxx, 12Fxxx, 16Cxxx, 17Cxx, 16Fxx, 16Fxxx, 16FxxA, 16FxxxA, 16LFxxxA, 18Fxxx, 18LFxxx, 18Fxxxx, 18LFxxxx…. Cách phân loại PIC: + Theo chữ cái: -Các họ có chữ C như PIC xxCxxx thuộc nhóm OTP (One Time Programmable) chỉ có thể lập trình vàø nạp cho nó moat lần duy nhất. -Cá họ có chữ F hoặc LF (thuộc nhóm Flash) cho phép ghi vàø xóa nhiều lần bằng các mạch điện tử thông thường. +Theo hai chữ số đầu tiên: -PIC 12Cxx: dòng PIC cơ bản (base-line), có độ dài lệnh là 12 bit. -PIC 10F, 12F vàø 16F: dòng PIC phổ thông (mid-range), độ dài lệnh 14 bit. -PIC 18: dòng PIC cao cấp (high-end), có độ dài lệnh là 16 bit. B. Giới thiệu về Vi điều khiển 16F877A Đây là dòng PIC phổ biến nhất. Có những đặc điểm tổng quát như sau: o Tần số hoạt động lớn nhất: 20MHz (16F877A, 16F84A), đối với các họ PIC mà không có kí tự A đứng cuối thì tần số hoạt động lớn nhất là 10MHz. o 8k byte ROM nội (Flash Rom). o 368 byte RAM nội. o 256 byte EFROM trong vùng ROM nội đươc dùng để chứa dữ liệu. o Về giao tiếp, có 5 port A, port B, port C, port D, port E vàøo ra với tín hiệu điều khiển độc lập. o Có 2 bộ đònh thời Timer 0 vàø timer 2 – 8 bit. o Có 1 bộ đònh thời timer 1 -16 bit có thể hoạt động trong chế độ tiết kiệm năng lượng (SLEEP MODE) với nguồn xung clock từ bên ngoài. CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A o Có 2 bộ Capture/Compare/PWM. o Có 1 bộ ADC 10 bit với 8 ngõ vàøo. o Có 2 bộ so sánh tương tự (Comparator). o Có một bộ Watch Dog Timer. o Có một bộ Serial ở bên trong chip. o Có moat cổng song song 8 bit với các tín hiệu điều khiển. o Có 15 nguồn ngắt. o Nạp chương trình thông qua cổng nối tiếp (ICSP – In Circuit Serial Programming). o Được chế tạo dựa trên công nghệ CMOS. o Về cấu trúc lệnh, có tất cả 35 lệnh có độ dài 14 bit. C. Giới thiệu về các chân của vi điều khiển 16F877A Sơ đồ chân cuả PIC 16F877A 1. Nhóm chân cấp nguồn CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A • Chân 11, 32: nối vàøo Vcc (+5V) • Chân 12, 31: nối mass 2. Chân Reset (chân số 1) • Vi điều khiển PIC sẽ được reset khi chân số 1 chuyển từ mức logic 1 xuống mức logic 0 3. Nhóm chân tạo xung Clock Xung clock sẽ được đưa vàøo chân số 13 vàø 14, thạch anh giữ vài trò đònh tần cho mạch dao động bên trong chip. PIC 16F877A có thể hoạt động trong 4 chế độ dao động khác nhau Mode Đặc điểm Tần số Tụ C1 Tụ C2 LP Low Power Crystal 32kHz 200kHz 68-100pF 15-33pF 68-100pF 15-33pF XT Crystal/Resonator 100kHz 2MHz 4MHz 100- 150pF 15-33pF 15-33pF 15-33pF 15-33pF HS High speed crystal/ Resonator 4MHz 20Mhz 15-33pF 15-33pF 15-33pF 15-33pF RC Resitor/ Capacitor Không quan trong độ chính xác CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A 4. Nhóm chân port Các chân port của 16F877A đều cho phép truyền vàø nhận dữ liệu theo hai hướng. Nghóa là ta được phép đọc hoặc xuất dữ liệu ở các port này. Hướng truyền được xác đònh bằng cách đưa giá trò thích hợp vàøo thanh ghi TRISX (trong đó X là tên port). Mỗi bit trong thanh ghi TRISX sẽ điều khiển 1 hướng xuất nhập cho 1 chân của port. Nếu 1 bit trong thanh ghi TRISX xuống 0 thì PIC sẽ hiểu rằng chân điều khiển bởi bit đó là chân xuất dữ liệu (output). Ngược lại, nếu 1 bit trong TRISX lên mức 1 thì PIX sẽ hiểu rằng chân điều khiển bởi bit đó là chân nhập dữ liệu (input) Ví dụ: nếu TRISB = b’11110000’ thì chân RB0->RB3: output, RB4->RB7:input • Port A vàø thanh ghi TRISA (85H) Port A gồm các chân từ RA0 đến RA5. Nội dung của thanh ghi TRISA sẽ qui đònh chân nào của port A là input hay output. Riêng chân RA4 còn có chức năng là chân cung cấp xung clock ngoài cho timer 0. Đây là chân có cực thu để hở, nên khi test port A, ta cần gắn điện trở kéo lên để đảm bảo kết quả hiển thò cho chân này. Các chân khác của port A còn có chức năng là chân ngõ vàøo analog của bộ ADC vàø chân ngõ vàøo điện thế so sánh của bộ comparator. Các thanh ghi liên quan đến Port A CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A Tóm tắt chức năng các chân Port A: Tên chân Bit Loại (ST:Schmitt Trigger) Chức năng RA0/AN0 0 TTL Chân I/O hay chân ngõ vào analog RA1/AN1 1 TTL Chân I/O hay chân ngõ vào analog RA2/AN2/Vref-/CVr ef 2 TTL Chân I/O hay chân ngõ vào analog hay Vref- hay CVref RA3/AN3/Vref+ 3 TTL Chân I/O hay chân ngõ vào analog hay Vref+ hay CVref RA4/TOCKI/C1OUT 4 TTL Chân I/O hay chân ngõ vào cho xung clock ngoài cho timer 0 hay ngõ ra bộ so sánh.Ngõ ra cực máng hở. RA5//AN4/C2OUT 5 TTL Chân I/O hay ngõ vào chọn slave trong chế đô giao tiếp nối tiếp đồng bộ, ngõ vào analog hay ngõ ra bộ so sánh điện áp. • PortB vàø TRISB Port B gồm tám chân RB0-> RB7. Việc thay đổi giá trò thanh ghi TRISB sẽ quyết đònh chân nào của port B là Input, chân nào là output. Ba chân của port B được tích hợp chức năng In-circuit Debugger vàø Low Programming là RB3/PGM, RB6/PGC vàø RB7/PGD. Mỗi chân của port B có một điện trở kéo lên nguồn. Bốn chân RB4-> RB7 có chức năng ngắt khi trạng thái thay đổi (chức năng này không hoạt động khi chân port được quy đònh là output) . CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A Các thanh ghi liên quan đến Port B Bảng tóm tắt chức năng các chân Port B Tên chân Bit Loại (ST:Schmitt Trigger) Chức năng RB0/INT 0 TTL/ST Chân I/O hay ngõ ra ngắt ngoài. Có thể lập trình bằng phần mềm để sử dụng điện trở kéo lên yếu ở bên trong. [...]... CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A RTCC_DIV_256 WDT_18MS WDT_36MS WDT_72MS WDT_144MS WDT_288MS WDT_576MS Chọn tỉ lệ bộ prescaler là 1:256 WDT sẽ chờ 18 ms trước khi reset hệ thống WDT sẽ chờ 36 ms trước khi reset hệ thống WDT sẽ chờ 72 ms trước khi reset hệ thống WDT sẽ chờ 144 ms trước khi reset hệ thống WDT sẽ chờ 288 ms trước khi reset hệ thống WDT sẽ chờ 576 ms trước khi reset hệ thống WDT sẽ chờ 1152... ghi W hay dùng nó làm thanh ghi trung gian để gán nội dung cho một thanh ghi khác Khi ta gán một giá trò mới cho thanh ghi W thì giá trò cũ sẽ bò ghi đè lên Thanh ghi này có thể truy cập từ tất cả các bank E Giới thiệu về các bộ đònh thời trong PIC 16F877A Bộ WDT (Watch Dog Timer) Bên trong pic 16f877a có một mạch dao động RC, mạch này cung cấp xung nhòp cho PIC độc lập với xung nhòp của PIC Khi WDT... trong PIC 16F877A  Thanh ghi STATUS (03H, 83H) IRP RP1 RP0 Z Bit 7 bit 0 Chức năng các bit như sau: o C: dùng trong các lệnh liên quan đến các phép toán C sẽ lên 1 o nếu có số nhớ sinh ra trong phép toán DC: dùng cho các lệnh liên quan đến các phép toán DC sẽ lên 1 nếu có số nhớ sinh ra bởi phép cộng hoặc trừ từ 4 bit thấp o Z: bit này sẽ lên 1 nếu kết quả phép toán bằng 0 Nếu kết quả phép toán khác... hiện tại của thanh ghi TMR2 (nội dung timer 2) F Giới thiệu về ngắt trong PIC 16F877A a Giới thiệu chung về ngắt Đối với vi điều khiển PIC 16F877A có nhiều nguồn ngắt Cứ mỗi một module ngoại vi thì có một nguồn ngắt, tuy nhiên, có một số module có nhiều nguồn ngắt Sau đây, em xin trình bày một số nguồn ngắt tiêu biểu trong PIC 16F877A:  Ngắt ngoài trên các chân RB0  Ngắt tràn timer 0  Ngắt tràn timer... bộ so sánh 2/ ngõ ra bộ PWM2 Chân I/O hay ngõ vào bộ Capture 1/ Ngõ ra bộ so sánh 1/ Ngõ ra bộ PWM1 Chân I/O hay chân cung cấp xung clock nối tiếp đồng bộ trong chuẩn giao tiếp SPI hay I2C Chân I/O hay đường SPI Data hay đường SDA (đối với I2C) Chân I/O hay ngõ ra port giao tiếp nối tiếp đồng bộ Chân I/O hay chân phát bất đồng bộ trong chuẩn giao tiếp nối tiếp Chân I/O hay chân nhận trong chuẩn giao. .. ngoại vi Để cho phép các ngắt ngoại vi hoạt động thì trước tiên, ta phải cho phép ngắt ngoại vi, tức là bật bit PIE lên Sau đó, muốn cho phép ngắt ngoại vi cụ thể nào thì chúng ta bật bit có chứa kí hiệu IE ứng với ngắt đó lên  Lớp ngắt thứ hai (lớp ngắt phổ thông) Khi muốn dùng ngắt phổ thông nào thì chúng ta chỉ cần bật bit IE của nguồn ngắt đó Do đó, bit PEIE cũng được coi là một nguồn ngắt phổ thông. .. xung clock nội Chế độ đếm đồng bộ sẽ không hoạt đông trong Sleep Mode  Chế độ đếm không đồng bộ: (được đặt bằng các set bit T1SYNC lên 1) Bộ đònh thời sẽ tiếp tục đếm trong quá trình ngủ của PIC 16F877A vàø có thể xảy ra một ngắt khi bộ đònh thời tràn vàø làm cho PIC 16F877A thoát khỏi chế độ ngủ Ở chế độ này, để đọc giá trò timer, ta không cần dừng timer1, nhưng để đảm bảo vi c ghi là chính xác, ta... chế độ đếm không đồng bộ mới làm cho PIC 16F877A thoát khỏi trạng thái ngủ Bộ đònh thời timer 2 o Giới thiệu Bộ đònh thời timer 2 là một bộ đònh thời 8 bit bao gồm một bộ prescaler vàø một bộ postscaler vàø một thanh ghi chu kì PR2 Có thể kết hợp timer 2 với hai bộ đònh tỉ lệ trên cho phép PIC 16F877A hoạt động như một bộ đếm 16 bit Module timer 2 cung cấp thời gian hoạt động cho chế độ điều rộng xung... (General Purpose Register) Một số thanh ghi SFR trong bank này cũng được ánh xạ sang các bank khác nhằm làm tăng tốc độ truy cập vàøgiảm độ dài code Vi c CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A lựa chọn bank thanh ghi phụ thuộc vàøo bit RP0 vàø RP1 trong thanh ghi STATUS Bản đồ vùng RAM nội của pic 16f877a CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A • Vùng nhớ EEPROM vàø vùng nhớ chương trình FLASH: Vùng nhớ dữ liệu... bit)(bit công suấ thấp): được dùng để báo trạng thái ngủ của PIC 16F877A Ở trạng thái ngủ, bit nàysẽ bò xóa về 0 Ở điều kiện bình thường, bit này bằng 1 DC CHƯƠNG 1 -LÍ THUYẾT VỀ PIC 16F877A o (time-out bit): bit này sẽ bằng 1 sau khi bật nguồn, sau lệnh CLRWDT, hoặc sau lệnh SLEEP Bit này sẽ bằng 0 khi WDT đi vàøo hoạt động vàø thời gian chờ RESET được tính o RP1:RP0: Dùng để chọn các bank thanh ghi . BẢN THUYẾT MINH ĐỀ TÀI: DÙNG VI ĐIỀU KHIỂN PIC 16F877A KẾT HỢP VỚI DS1307 ĐỂ ĐIỀU KHIỂN HỆ THỐNG ĐÈN GIAO THƠNG. GVHD: GS.TS Nguyễn Đức Thành GVPB: Thầy Nguyễn. 3: sử dụng để cài đặt giờ cho hệ thống (giờ lưu trong IC DS1307) . M C L CỤ Ụ I) CHƯƠNG 1: VI ĐIỀU KHIỂN PIC 16F877A a. Giới thiệu chung về VĐK PIC b. Giới thiệu về vi điều khiển PIC 16F877A c 16F877A CHƯƠNG I VI ĐIỀU KHIỂN PIC 16F877A A. Giới thiệu về vi điều khiển PIC PIC (Programmable intelligent Controller) do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ: PIC 1650.

Ngày đăng: 06/10/2014, 11:43

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan