Lập trình Pic Hiện nay với sự phát triển không ngừng về mọi mặt, trong đó điện tử, tự động hóa đóng một vài trò không nhỏ. Điện tử góp phần vào quá trình tự động hóa mọi thứ giúp con người hiện đại hóa cuộc sống và các hệ thống tự động hóa điều khiển đã dần thay thế cho sức người trong các công việc trong gia đình cũng như cơ quan, trường học,xí nghiệp...và một hệ thống tự động đơn giản trong số đó là hệ thống “Chuông Báo Tiết Học” trong các trường học.
BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM MỤC LỤC VÕ QUANG LỘC – LÊ HOÀI THANH Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM A PHẦN MỞ ĐẦU Lý chọn đề tài − Hiện với phát triển khơng ngừng mặt, điện tử, tự động hóa đóng vài trò khơng nhỏ Điện tử góp phần vào q trình tự động hóa thứ giúp người đại hóa sống hệ thống tự động hóa điều khiển dần thay cho sức người công việc gia đình quan, trường học,xí nghiệp hệ thống tự động đơn giản số hệ thống “Chuông Báo Tiết Học” trường học − Vấn đề chuông báo tiết học vấn đề cần thiết trường học nào, giúp thầy cô canh thời gian để nhấn chuông vào học, chơi Chính chúng em thiết kế mạch chng báo tiết học tự động cho trường học Các phương pháp nghiên cứu − Nghiên cứu tài liệu − Thí nghiệm mô Proteus Professional Cấu trúc Chương 1: Cơ sở lý thyết 1.1 Tổng quan PIC 16F887 1.2 Giới thiệu sơ lược giao tiếp I2C 1.3 Tổng quan IC thời gian thực RTC DS 1307 1.4 Thuật toán giao tiếp I2C với Vi điều khiển PIC 16F887 Chương 2: Thiết kế mạch chuông báo tiết học 2.1 Thiết kế phần cứng 2.2 Thiết kế phần mềm VÕ QUANG LỘC – LÊ HOÀI THANH Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM B PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 TỔNG QUAN VỀ PIC 16F887 − PIC16F887 vi điều khiển 8-bit có kiến trúc Harvard Microchip có thơng số kỹ thuật sau: • Clock hoạt động tối đa 20MHz • Chu kỳ máy bốn lần chu kỳ xung clock • Chip có nhiều dạng vỏ khác nhau, loại chip sử dụng đề tài loại 40 VÕ QUANG LỘC – LÊ HỒI THANH Trang BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM chân PDIP • Điện áp hoạt động rộng từ 2V đến 5.5V • Bộ nhớ liệu nhớ chương trình tách biệt nhau, bus địa bus liệu riêng biệt Bộ nhớ chương trình Flash 8K nhớ cho phép ghi 100,000 lần Mỗi nhớ có 14 bit Bộ nhớ liệu RAM có 512 Byte gồm ghi chức đặc biệt ghi đa mục đích Ngồi PIC16F887 tích hợp 256 Byte EEPROM cho phép ghi đến 1,000,000 lần • 35 chân I/O port điều khiển PortA, PortB, PortC, PortD, PortE • Bộ chuyển đổi ADC 10-bit với 14 kênh • timer Bộ timer0 8-bit, timer1 16-bit timer2 8-bit • Module Capture, Compare PWM • Module Enhanced USART hỗ trợ RS-485, RS-232 VÕ QUANG LỘC – LÊ HOÀI THANH Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ Block Diagram VÕ QUANG LỘC – LÊ HOÀI THANH GVHD: HỒ VĂN LÂM Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM 1.1.1 Mô tả ngõ (I/O Port) Hầu hết chân vi điều khiển PIC 16F887 có nhiều chức hình bên dưới, ví dụ chân số PIC 16F887 định RA3/AN3/Vref+/C1IN+ VÕ QUANG LỘC – LÊ HOÀI THANH Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ VÕ QUANG LỘC – LÊ HOÀI THANH GVHD: HỒ VĂN LÂM Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ VÕ QUANG LỘC – LÊ HOÀI THANH GVHD: HỒ VĂN LÂM Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ VÕ QUANG LỘC – LÊ HOÀI THANH GVHD: HỒ VĂN LÂM Trang 10 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM 1.1.2 Bộ nhớ PIC 16F887 có loại nhớ: ROM, RAM, EEPROM Tất chúng có đặc điểm, tổ chức chức đặc thù Rom: PIC 16F887 có Kb flash rom EEProm: giống nhớ chương trình, liệu chứa EEProm lưu vĩnh cửu chí nguồn điện khơng giống Rom, liệu Eeprom thay đổi theo hoạt động vi điều khiển Ram: nhớ thứ phần nhớ vi điều khiển, gồm phần: ghi dùng chung ghi có chức đặc biệt (SFR), tất ghi chia thành bank ghi VÕ QUANG LỘC – LÊ HỒI THANH Trang 11 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM RAM MEMORY BANKS VÕ QUANG LỘC – LÊ HỒI THANH Trang 12 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM 1.2 GIỚI THIỆU SƠ LƯỢC GIAO TIẾP I2C − Giao thức ưu tiên truyền thông nối tiếp phát triển Philips Semiconductor gọi bus I2C Vì nguồn gốc thiết kế để điều khiển liên thơng IC (Inter-Intergrated Circuit) nên đặt tên I2C Tất chip có tích hợp tương thích với I2C có thêm giao diện tích hợp Chip để truyền thông trực tiếp với thiết bị tương thích I2C khác Việc truyền liệu nối hai hướng bit thực thi theo chế độ sau: • Chuẩn (Standard)—100 Kbits/sec • Nhanh (Fast)—400 Kbits/sec • Tốc độ cao (High speed)—3.4 Mbits/sec − Đường bus thực truyền thông nối tiếp I2C gồm hai đường đường truyền liệu nối tiếp SDA đường truyền nhịp xung đồng hồ nối tiếp SCL Vì chế hoạt động đồng nên cần có nhịp xung tín hiệu đồng Các thiết bị hỗ trợ I2C có địa định nghĩa trước, số bit địa thấp cấu hình Đơn vị thiết bị khởi tạo q trình truyền thơng đơn vị Chủ đơn vị tạo xung nhịp đồng bộ, điều khiển cho phép kết thúc trình truyền Nếu đơn vị Chủ muốn truyền thông với đơn vị khác gửi kèm thơng tin địa đơn vị mà muốn truyền liệu truyền Đơn vị Tớ gán đánh địa thơng qua đơn vị Chủ thiết lập truyền thông trao đổi liệu Bus liệu thiết kế phép thực nhiều đơn vị Chủ Tớ Bus VÕ QUANG LỘC – LÊ HỒI THANH Trang 13 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM − Quá trình truyền thơng I2C bắt đầu tín hiệu start tạo đơn vị Chủ Sau đơn vị Chủ truyền liệu bit chứa địa đơn vị Tớ mà muốn truyền thơng, theo thứ tự bit có trọng số lớn MSB truyền trước Bit thứ tám chứa thông tin để xác định đơn vị Tớ thực vai trò nhận (0) hay gửi (1) liệu Tiếp theo bit ACK xác nhận đơn vị nhận nhận byte trước hay khơng Đơn vị truyền (gửi) truyền byte liệu bắt đầu MSB Tại điểm cuối byte truyền, đơn vị nhận tạo bit xác nhận ACK Khuôn mẫu bit (gồm bit liệu bit xác nhận) lặp lại cần truyền tiếp byte Khi đơn vị Chủ trao đổi xong liệu cần quan sát bit xác nhận ACK cuối sau tạo tín hiệu dừng STOP để kết thúc trình truyền thơng − I2C giao diện truyền thơng đặc biệt thích hợp cho ứng dụng truyền thông đơn vị bo mạch với khoảng cách ngắn tốc độ thấp Ví dụ truyền thông CPU với khối chức bo mạch EEPROM, cảm biến, đồng hồ tạo thời gian thực Hầu hết thiết bị hỗ trợ I2C hoạt động tốc độ 400Kbps, số cho phép hoạt động tốc độ cao vài Mbps I2C đơn giản để thực thi kết nối nhiều đơn vị hỗ trợ chế xác định địa 1.3 TỔNG QUAN VỀ IC THỜI GIAN THỰC RTC DS 1307 1.3.1 Giới thiệu chung DS1307 VÕ QUANG LỘC – LÊ HOÀI THANH Trang 14 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM − IC thời gian thực họ vi điều khiển hãng DALLAS DS1307 có số đặc trưng sau: − DS1307 IC thời gian thực với nguồn cung cấp nhỏ dùng để cập nhật thời gian ngày tháng − SRAM :56bytes − Địa liệu truyền nối tiệp qua đường bus chiều − DS1307 có mơt mạch cảm biến điện áp dùng để dò điện áp lỗi tự động đóng ngắt với nguồn pin cung cấp 3V − DS1307 có byte liệu nằm từ địa 0x00 tới 0x06, byte điểu khiển, 56 byte lưu trữ ( dành cho người sủ dụng ) − Khi xử lý liệu từ DS1307, họ tự chuyển cho ta dạng số BCD, ví dụ ta đọc liệu từ địa 0x04 (tưong ứng với Day- ngày tháng) 0x05 (tháng) 0x15, 0x11 − Lưu ý đến vai trò chân SQW/OUT Đây chân cho xung DS1307 có chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz chế độ đuợc quy định bít ghi Control Register (địa 0x07 ) − Địa DS1307là 0xD0 − Cơ chế hoạt động : DS1307 hoạt động với vai trò slave đường bus nối tiếp.Việc truy cập thi hành với thị start mã thiết bị định cung cấp địa ghi Tiếp theo ghi truy cập liên tục đến thị stop thực thi 1.3.2 Cơ chế hoạt động chức DS1307 VÕ QUANG LỘC – LÊ HỒI THANH Trang 15 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM Vcc: nối với nguồn X1,X2: nối với thạch anh 32,768 kHz Vbat: đầu vào pin 3V GND: đất SDA: chuỗi data SCL: dãy xung clock SQW/OUT: xung vuông/đầu driver − DS1307 IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thời gian ngày tháng với 56 bytes SRAM Địa liệu truyền nối tiếp qua đường bus chiều Nó cung cấp thông tin giờ,phút,giây ,thứ,ngày ,tháng, năm.Ngày cuối tháng tự động điều chỉnh với tháng nhỏ 31 ngày,bao gồm việc tự động nhảy năm Đồng hồ hoạt động dạng 24h 12h với thị AM/PM DS1307 có mạch cảm biến điện áp dùng để dò điện áp lỗi tự động đóng ngắt với nguồn pin cung cấp − DS 1307 hoạt động với vai trò slave đường bus nối tiếp Việc truy cập thi hành với thị START mã thiết bị định cung cấp địa ghi Tiếp theo ghi truy cập liên tục đến thị STOP thực thi − Sơ đồ khối DS1307 VÕ QUANG LỘC – LÊ HỒI THANH Trang 16 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM − Mô tả hoạt động chân: • Vcc,GND: nguồn chiều cung cấp tới chân Vcc đầu vào 5V Khi 5V cung cấp thiết bị truy cập hồn chỉnh liệu đọc viết Khi pin 3V nối tới thiết bị Vcc nhỏ 1,25Vbat trình đọc viết khơng thực thi,tuy nhiên chức timekeeping không bị ảnh hưởng điện áp vào thấp Khi Vcc nhỏ Vbat RAM timekeeper ngắt tới nguồn cung cấp (thường nguồn chiều 3V) • Vbat: Đầu vào pin cho chuẩn pin 3V Điện áp pin phải giữ khoảng từ 2,5 đến 3V để đảm bảo cho hoạt động thiết bị • SCL (serial clock input): SCL sử dụng để đồng chuyển liệu đường dây nối tiếp • SDA (serial data input/out): chân vào cho đường dây nối tiếp Chân SDA thiết kế theo kiểu cực máng hở , đòi hỏi phải có điện trở kéo hoạt động • SQW/OUT (square wave/output driver): kích hoạt bit SQWE thiết lập chân SQW/OUT phát tần số (1Hz,4kHz,8kHz,32kHz) Chân thiết kế theo kiểu cực máng VÕ QUANG LỘC – LÊ HOÀI THANH Trang 17 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM hở cần có điện trở kéo Chân nàysẽ hoạt động Vcc Vbat cấp • X1,X2: nối với thạch anh tần số 32,768kHz Là mạch tạo dao động ngồi, để hoạt động ổn định phải nối thêm tụ 33pF • Cũng có DS1307 với tạo dao động tần số 32,768kHz, với cấu hình chân X1 nối vào tín hiệu dao động chân X2 để hở 1.3.3 Sơ đồ địa RAM RTC − Thông tin thời gian ngày tháng lấy cách đọc byte ghi thích hợp thời gian ngày tháng thiết lập thông qua byte ghi cách viết vào giá trị thích hợp nội dung ghi dạng mã BCD (binary coded decreaseimal) Bit ghi seconds bit clock halt (CH), bit thiết lập dao động disable, xố dao động enable − Chú ý: enable dao động suốt trình cấu hình thiết lập (CH=0) Thanh ghi thời gian thực mô tả sau: VÕ QUANG LỘC – LÊ HỒI THANH Trang 18 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM − DS1307 chạy chế độ 24h 12h Bit thứ ghi hours bit chọn chế độ 24h 12h bit mức cao chế độ 12h chọn chế độ 12h bit bit AM/PM với mức cao là PM chế độ 24h bit bit 20h (từ 20h đến 23h) − Trong trình truy cập liệu, thị START thực thi dòng thời gian truyền tới ghi thứ 2, thông tin thời gian đọc từ ghi thứ cấp này, đồng hồ tiếp tục chạy Trong DS1307 có ghi điều khiển để điều khiển hoạt động chân SQW/OUT: − OUT (output control): bit điều khiển mức chân SQW/OUT đầu xung vuông disable Nếu SQWE = 0, mức logic chân SQW/OUT OUT=1 OUT = OUT = − SQWE (square wave enable): bit thiết lập enable đầu tạo dao động Tần số đầu sóng vng phụ thuộc vào giá trị RS1 RS0 − DS1307 hỗ trợ bus dây chiều giao thức truyền liệu thiết bị gửi liệu lên bus gọi phát thiết bị nhận gọi thu thiết bị điều khiển q trình VÕ QUANG LỘC – LÊ HỒI THANH Trang 19 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM gọi master thiết bị nhận điều khiển master gọi slave Các bus nhận điều khiển master, thiết bị phát chuỗi xung clock (SCL), master điều khiển truy cập bus tạo thị START STOP 1.3.4 Sự truyền nhận liệu chuỗi bus dây Tuỳ thuộc vào bit R/ w mà loại truyền liệu thực thi: − Truyền liệu từ master truyền slave nhận: Master truyền byte địa slave Tiếp sau byte liệu slave gửi lại bit thông báo nhận (bit acknowledge) sau byte liệu nhận liệu truyền từ bit có giá trị (MSB) − Truyền liệu từ slave master nhận: byte (địa slave) truyền tới slave master Sau slave gửi lại master bit acknowledge slave gửi byte liệu tới master Master gửi cho slave bit acknowledge sau byte nhận trừ byte cuối cùng, sau nhận byte cuối bit acknowledge khơng gửi − Master phát tất chuỗi xung clock thị START STOP truyền kết thúc với thị STOP thị quay vòng START Khi thị START quay vòng truyền chuỗi liệu thực thi bus chưa giải phóng Dữ liệu truyền ln bắt đầu bit MSB 1.3.5 DS1307 hoạt động chế độ sau − Chế độ slave nhận ( chế độ DS1307 ghi): chuỗi liệu chuỗi xung clock nhận thông qua SDA SCL Sau byte nhận bit acknowledge truyền điều kiện START STOP nhận dạng bắt đầu kết thúc truyền chuỗi nhận dạng địa thực phần cứng sau chấp nhận địa slave bit chiều Byte địa byte nhận sau điều kiện STARTđược phát từ master Byte địa có chứa bit địa DS1307, 1101000, bit chiều (R/ w) cho phép ghi sau nhận giải mã byte địa thiết bị phát tín hiệu acknowledge lên đường SDA Sau DS1307 nhận dạng địa bit ghi master gửi địa ghi tới DS1307 , tạo trỏ ghi DS1307 master truyền byte liệu cho DS1307 sau bit acknowledge nhận sau master truyền điều kiện STOP việc ghi hoàn thành VÕ QUANG LỘC – LÊ HỒI THANH Trang 20 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM − Chế độ slave phát ( chế độ DS1307 đọc): byte slave nhận tương tự chế độ slave ghi Tuy nhiên chế độ bit chiều lại chiều truyền ngược lại Chuỗi liệu phát SDA DS 1307 chuỗi xung clock vào chân SCL Các điều kiện START STOP nhận dạng bắt đầu kết thúc truyền chuỗi byte địa nhận master phát điều kiện START Byte địa chứa bit địa slave bit chiều cho phép đọc Sau nhận giải mã byte địa thiết bị nhận bit acknowledge đường SDA Sau DS1307 bắt đầu gửi liệu tới địa trỏ ghi thông qua trỏ ghi Nếu trỏ ghi không viết vào trước chế độ đọc thiết lập địa đọc địa cuối chứa trỏ ghi DS1307 nhận tín hiệu Not Acknowledge kết thúc trình đọc Đọc liệu-chế độ slave phát Thời gian thực việc đọc,ghi liệu DS1307: sơ đồ đồng bộ: VÕ QUANG LỘC – LÊ HỒI THANH Trang 21 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM 1.4 THUẬT TOÁN GIAO TIẾP I2C VỚI VI ĐIỀU KHIỂN PIC 16F887 1.4.1 Điều kiện START STOP − START STOP điều kiện bắt buộc phải có thiết bị chủ muốn thiết lập giao tiếp với thiết bị mạng I2C START điều kiện khởi đầu, báo hiệu bắt đầu giao tiếp, STOP báo hiệu kết thúc giao tiếp Hình 11 mơ tả điều kiệnSTART điều kiện STOP giao tiếp I2C DS1307 với Vi Điều Khiển Hình: Điều kiện START STOP VÕ QUANG LỘC – LÊ HOÀI THANH Trang 22 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM − Ban đầu chưa thực trình giao tiếp, hai đường SDA SCL mức cao (SDA = SCL = HIGH) Lúc bus I2C coi “rỗi” (“bus free”), sẵn sàng cho giao tiếp Hai điều kiện START STOP thiếu việc giao tiếp thiết bị I2C, tất nhiên giao tiếp không ngoại lệ − Điều kiện START: chuyển đổi trạng thái từ cao xuống thấp đường SDA đường SCL mức cao (cao = 1; thấp = 0) báo hiệu điều kiện START − Điều kiện STOP: Một chuyển đổi trạng thái từ mức thấp lên cao đường SDA đường SCL mức cao − Cả hai điều kiện START STOP tạo thiết bị chủ Sau tín hiệu START, bus I2C coi trạng thái làm việc (busy) Bus I2C rỗi, sẵn sàng cho giao tiếp sau tín hiệu STOP từ phía thiết bị chủ − Sau có điều kiện START, qua trình giao tiếp, có tín hiệu START lặp lại thay tín hiệu STOP bus I2C tiếp tục trạng thái bận Tín hiệu START lặp lại START có chức giống khởi tạo giao tiếp 1.4.2 Chế độ hoạt động Hình: Chế độ hoạt động I2C DS1307 hoạt động chế độ sau: − Ở chế độ slave nhận (chế độ DS1307 ghi ): chuỗi liệu chuỗi xung clock nhận thông qua SDA SCL Sau byte nhận bit ACKnowledge VÕ QUANG LỘC – LÊ HOÀI THANH Trang 23 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM truyền Các điều kiện START STOP nhận dạng bắt đầu kết thúc truyền chuỗi, nhận dạng địa thực phần cứng sau chấp nhận địa slave bit chiều − Chế độ slave phát ( chế độ DS1307 đọc ): byte slave nhận tương tự chế độ slave ghi Tuy nhiên chế độ bit chiều lại chiều chuyền ngược lại Chuỗi liệu phat SDA DS1307 chuỗi xung clock vào chân SCL VÕ QUANG LỘC – LÊ HOÀI THANH Trang 24 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM CHƯƠNG 2: THIẾT KẾ MẠCH CHUÔNG BÁO TIẾT HỌC 2.1 THIẾT KẾ PHẦN CỨNG 2.2 THIẾT KẾ PHẦN MỀM 2.2.1 Lưu đồ VÕ QUANG LỘC – LÊ HOÀI THANH Trang 25 ... – LÊ HOÀI THANH Trang 24 BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM CHƯƠNG 2: THIẾT KẾ MẠCH CHUÔNG BÁO TIẾT HỌC 2.1 THIẾT KẾ PHẦN CỨNG 2.2 THIẾT KẾ PHẦN MỀM 2.2.1 Lưu đồ VÕ QUANG LỘC – LÊ HOÀI... THANH Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ VÕ QUANG LỘC – LÊ HOÀI THANH GVHD: HỒ VĂN LÂM Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN TỬ VÕ QUANG LỘC – LÊ HOÀI THANH GVHD: HỒ VĂN LÂM Trang BÁO CÁO MÔN HỌC CƠ ĐIỆN... Thời gian thực việc đọc,ghi liệu DS1307: sơ đồ đồng bộ: VÕ QUANG LỘC – LÊ HỒI THANH Trang 21 BÁO CÁO MƠN HỌC CƠ ĐIỆN TỬ GVHD: HỒ VĂN LÂM 1.4 THUẬT TOÁN GIAO TIẾP I2C VỚI VI ĐIỀU KHIỂN PIC 16F887