ĐỒNG hồ THỜI GIAN THỰC DÙNG PIC .................................. ĐỒNG hồ THỜI GIAN THỰC DÙNG PIC .................................. ĐỒNG hồ THỜI GIAN THỰC DÙNG PIC .................................. ĐỒNG hồ THỜI GIAN THỰC DÙNG PIC .................................. ĐỒNG hồ THỜI GIAN THỰC DÙNG PIC .................................. ĐỒNG hồ THỜI GIAN THỰC DÙNG PIC ..................................
Trang 1ĐỒNG HỒ THỜI GIAN THỰC DÙNG
Trang 2MỤC LỤC
DANH MỤC CÁC HÌNH VẼ VI
DANH MỤC CÁC BẢNG BIỂU VII
DANH MỤC CÁC TỪ VIẾT TẮT VIII
CHƯƠNG 1 GIỚI THIỆU VỀ ĐỀ TÀI ĐỒNG HỒ THỜI GIAN THỰC DÙNG VI ĐIỀU KHIỂN PIC 16F877A 1
1.1 GIỚI THIỆU 1
1.1.1 Nhiệm vụ 1
1.1.2 Hướng nghiên cứu 1
CHƯƠNG 2 KẾT QUẢ THIẾT KẾ VÀ THI CÔNG MẠCH 2
3.1.1 Thông số kỹ thuật vi điều khiển PIC 16F877A 8
3.1.2 Sợ đồ chân, cấu trúc và chức năng vi điều khiển PIC 10
3.1.3 Sơ đồ khối của PIC 16F877A 12
3.2 IC DS1307 12
Trang 33.4 IC ỔN ÁP LM7805 18
CHƯƠNG 4 TỔNG KẾT 20
4.1 KẾT LUẬN 20
Trang 4DANH MỤC CÁC HÌNH VẼ
HÌNH 2-1: PIC 16F877A THỰC TẾ [1] 8
HÌNH 2-2: TỔNG HỢP CÁC THÔNG SỐ CỦA VI ĐIỀU KHIỂN PIC 16F877A [3]
9
HÌNH 2-3: SỐ CHÂN CỦA PIC [1] 10
HÌNH 2-4: SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC 16F877A[7] 12
HÌNH 2-10: MẠCH ĐÃ THI CÔNG (MẶT TRƯỚC) 6
Hình 2-10: Mạch đã thi công (mặt sau) 7
Trang 5BẢNG 3-3: TỔ CHỨC THANH GHI THỜI GIAN THỰC CỦA DS1307[7] 15 BẢNG 3-4: BIT ĐIỀU KHIỂN TRONG DS1307[7] 15
BẢNG 3-5: SQUAREWAVE OUTPUT FREQUENCY[7] 15
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
PIC Peripheral Interface Controller
Trang 7CHƯƠNG 1 GIỚI THIỆU VỀ ĐỀ TÀI ĐỒNG HỒ THỜI GIAN
THỰC DÙNG VI ĐIỀU KHIỂN PIC 16F877A
1.1 Giới thiệu
- Trong cuộc sống hiện đại ngày nay thời gian vô cùng quý báo với mõingười, việc quản lí tốt thời gian giúp chúng ta có thể kiểm soát được hànhđộng, công việc, sức khỏe… sắp xếp thời gian một cách logic giúp chung
ta chủ động tiết kiệm thời gian chết đi và dành thời gian đó làm nhữngviệc cần làm, nâng cao được chất lượng sống Trong những ngành côngnghệ đồng hồ số được sử dụng rộng rải trong các thiết bị số như: điệnthoại, tivi, laptop, đồng hồ số…
- Để tạo ra được một bộ đếm thời gian thực bằng digital có rất nhiềuphương pháp, nay tôi xin trình bày một phương pháp làm bộ đếm thờigian thực dụng họ vi điều khiển PIC16F877A
1.1.1 Nhiệm vụ
- Thiết kế mạch nguồn và mạch đồng hồ thời gian thực dùng vi điều khiểnPIC16f877A có thể cài đặt chỉnh giờ từ nút bấm Tìm hiểu sơ đồ nguyên
lý chức năng nhiệm vụ của PIC cũng như các linh kiện có trong mạch
- Giải thích được nguyên lý hoạt động của toàn mạch và mô phỏng trênProteus, thiết kế PCB và thi công phần cứng
1.1.2 Hướng nghiên cứu
- Tìm hiểu datasheet của PIC 16F877A, phần mềm viết code cho PIC CCS,giao tiếp giữa PIC và IC DS1307, đưa dữ liệu hiển thị lên LCD
- Mô phỏng mạch đồng hồ thời gian thực và chương trình giao tiếp cho vi
xử lý với ic DS1307 để đếm giờ hiển thị trên LCD
Trang 8ĐỒ ÁN I Trang 2/21
CHƯƠNG 2 KẾT QUẢ THIẾT KẾ VÀ THI CÔNG MẠCH
2.1 Sơ đồ khối
Hình 2-1: Sơ đồ khối.
- Khối nguồn cung cấp điện áp 5v cho mạch
- Khối vi xử lý sử dụng PIC 16F877A để xử lý dữ liệu từ bộ đếm DS1307
và hiển thị lên LCD
- Khối hiển thị sử dụng LCD 16x2 để hiển thị thông tin dữ liệu
- Khối đếm thời gian thực: dùng IC DS1307 để làm bộ đếm thời gian cungcấp dữ liệu cho PIC
- Khối cài đặt chỉnh giờ: giúp cài đặt chỉnh giờ chính xác hơn và phù hợpvới người dùng
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 92.2 Sơ đồ nguyên lí khối nguồn
2.4 Khối hiển thị
Trang 10ĐỒ ÁN I Trang 4/21
Trang 11Hình 2-6: Khối xử lý trung tâm
2.7 Bộ đếm
Hình 2-7: Khối đếm
Trang 12ĐỒ ÁN I Trang 6/21
- Khi muốn thay đổi giờ ta cần bấm nút MODE để đổi sang chế độ chỉnh theothư tự giờ, phút, giây, ngày, tháng, năm Khi đến chế độ cần chỉnh sửa ta bấmnút tăng (+) để tăng giá trị đến khi được giá trị phù hợp thì chuyển sang chế
Trang 14ĐỒ ÁN I Trang 8/21
Hình 2-10: Mạch đã thi công (mặt sau)
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 15CHƯƠNG 3 GIỚI THIỆU LINH KIỆN CÓ TRONG ĐỀ TÀI
3.1 Vi xử lý PIC 16F877A
Programable Intelligent Computer là từ viết tắt của PIC,được sản xuất bởicông ty Microchip Technology PIC 16F877A là dòng vi điều khiển kháphổ biến trong việc học tập nghiên cứu của sinh viên cũng như ứng dụngthực các mạch thực tế trong đời sống hiện nay
Hình 3-1: PIC 16F877A thực tế [1]
3.1.1 Thông số kỹ thuật vi điều khiển PIC 16F877A
PIC 12XXXX: độ dài câu lệnh 12bit
PIC 16XXXX: độ dài câu lệnh 14bit
PIC 18XXXX: độ dài câu lệnh 16bit
- “C”: Loại PIC có bộ nhớ EPROM
- “F”: Loại PIC có bộ nhớ Flash
Trang 16ĐỒ ÁN I Trang 10/21
Hình 3-2: Tổng hợp các thông số của vi điều khiển PIC 16F877A [3]
3.1.2 Sợ đồ chân, cấu trúc và chức năng vi điều khiển PIC
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 17Hình 3-3: Số chân của PIC [1]
Chức năng của các chân cần sử dụng:
- Chân OSC1|CLKI (13): ngõ vào của tần số dao động thạch anh, xungclock bên ngoài
OSC1: ngõ vào dao động thạch anh
CLKI: ngõ vào nguồn xung bên ngoài
- Chân OSC2|CLKO (14): ngõ vào của tần số dao động thạch anh hoặcxung clock
OSC2: Ngõ ra dao động thạch anh Kết nối đến thạch anh hoặc bộcộng hưởng
CLKO: ở chế độ RC, ngõ ra của OSC2, bằng tần số của OSC1 vàchỉ ra tốc độ của chu kỳ lệnh
SCK: ngõ vào xung clock nối tiếp đồng bộ/ngõ ra của chế độ SPI
SCL: ngõ vào xung clock nối tiếp đồng bộ/ ngõ ra của chế độ I2C
- Chân RC4/SDI/SDA (23):
RC4: xuất | nhập số
SDA: xuất | nhập dữ liệu vào giao tiếp I2C
- Chân RD1/PSP1 (20) và chân RD2/PSP2 (21):
Trang 18ĐỒ ÁN I Trang 12/21
RD1: xuất | nhập số
PSP1: dữ liệu port nhánh song song
3.1.3 Sơ đồ khối của PIC 16F877A
Hình 3-4: Sơ đồ khối vi điều khiển PIC 16F877A[7]
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 19Hình 3-5: IC DS1307 thực tế [1]
3.2.1 Sợ đồ chân, cấu trúc và chức năng IC DS1307
Hình 3-6: IC DS1307 sơ đồ chân [1]
Các chân của DS1307 bao gồm:
- X1 và X2 (1),(2): hai chân này hai cổng kết nối với thạch anh 32.768KHz để tạo ra tần số dao động cho IC
- VBAT (3): Cực (+) của nguôn Pin 3V sẽ nuôi IC này khi mất nguồn
Trang 20ĐỒ ÁN I Trang 14/21
- GND (4): Chân nối đất cho cả nguồn chính và Pin 3V
- VCC (8): 5V DC là nguồn cấp chính cho IC này
- SQW/OUT (7): Xung vuông được tạo ra từ chân này và nó có thể lậptrình
- SCL và SDA (6)(5): Dữ liệu và xung nhịp được của giao tiếp I2C là haiđường này
3.2.2 Tổ chức bộ nhớ của IC DS 1307
Bảng 3-2: Tổ chức bộ nhớ DS1307 [7]
Xem bản trên ta thấy bộ nhớ DS1307 có tới 64 thanh ghi 8-bit được đặt địa chỉ
từ 0x00 đến 0x3F theo hệ Hexa Nhưng mà chỉ có 8 thanh ghi đầu tiên dùng với chức năng đồng hồ thời gian thực, 56 thành ghi con lại bị bỏ trống và có chúng ta
có thể xem như một bộ nhớ tạm như RAM BCD (Binary-Coded Decimal) là kiểu đếm giá trị thời gian lưu trong các thanh ghi này
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 21Bảng 3-3: Tổ chức thanh ghi thời gian thực của DS1307[7]
24h và 12h là hai chế độ mà DS1307 có thể chạy Bit thứ sáu (Thanh ghi hours) là bit chọn chết độ, chế độ 12h khi bit ở mức cao Ở chế độ này thì bit 5 là bit AM/PMvới PM là mức cao
Bảng 3-4: Bit điều khiển trong DS1307[7]
OUT (Output control): bit này điều khiển mức ra của chân SQW/OUT khi đầu ra xung vuông là Disable Nếu SQWE=0 thì mức ở chân SQW/OUT sẽ là 1 nếu OUT
Trang 22ĐỒ ÁN I Trang 16/21
DS1307 hỗ trợ bus, 2 dây 2 chiều và giao thức truyền dữ liệu Thiết bị ghi dữ liệu lên bus gọi là phần phát và thiết bị nhận gọi là phần thu Master là thiết bị điều khiển quá trình Slave là thiết bị nhận sự điều khiển của Master Bus là thiết bị phát
ra chuổi xung clock (SCL), Master sẽ điều khiển sự truy cập bus, tạo ra các chỉ địnhSTART và STOP
Hình 3-6: sự truyền nhận dữ liệu trên chuổi 2 dây[7]
Tùy thuộc vào các bit R/W (Read và Write) mà hai loại truyền dữ liệu này sẽ được thực hiện:
- Truyền dữ liệu từ Master và Slave nhận Địa chỉ của Slave là byte đầu tiên mà Master truyền đi, tiếp sau đó là các byte dữ liệu và sau khi nhận được mõi byte dữ liệu Slave sẽ gửi lại bit thông báo đã nhận được
Vì DS1307 là một Slave I2C nên chỉ hoạt động ở hai chế độ giao tiếp là Data Write ( từ PIC đến DS1307) và Data Read (từ DS1307 đến PIC) Chế độ Data Writeđược dùng khi xác lập giá trị ban đầu cho các thanh ghi thời gian hoặc dùng để canhchỉnh thời gian Trong chế độ này, PIC là một Master truyền dữ liệu đến DS1307 (Slave nhận dữ liệu) Chế độ Data Read được thực hiện khi đọc thời gian từ IC đồng
hồ DS1307 vào PIC để hiển thị và so sánh… Ở chế độ này, Master nhận dữ liệu là PIC và Slave truyền dữ liệu là DS1307
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 23Bảng 3-6: Data Write [7]
Nhìn hình ta thấy bit R|W (0) do là chế độ Data Write và được gữi sau bit SLA (Slave Address), giá trị của SLA (Slave Address) trong giao tiếp I2C được cài đặt là 7 bit nhị phân 1101000, thập lục phân là 0x68.bit A(ACK) được trả về cho Master sau mõi quá trình thực hiện giao tiếp tiếp theo là địa chỉ thanh ghi SLA chưa địa chỉ thanh ghi cần truy cập với độ dài là 1 byte Sau đó là một dãy các byte dữ liệu được ghi bào bộ nhớ của DS1307 Byte dữ liệu thứ nhất khi đã ghi dc 1 byte thì nó sẽ tự động tăng lên nên sẽ ghi vào các thanh ghi tiếp theo và
số lượng byte dữ liệu cần ghi này được quyết định bỡi Master với điều kiện là không vượt quá dụng lương bộ nhớ
Bảng 3-7: Data Read[7]
Ở chế độ Data Read, bit R|W(1) vẫn được gởi sau 7Bit SLA và sau đó là cácbyte dữ liệu được truyền từ DS1307 đến PIC Sự khác biệt trong cách bố trí dữ liệu của chế độ này so với Data Write là không có byte địa chỉ thanh ghi dữ liệu được gởi đến.Nên tất cả các byte theo sau SLA và R|W đều là dữ liệu đọc từ bộ nhớ của DS1307 Vậy ta muốn đọc được dữ liệu thì bắt đầu từ thanh ghi được
Trang 24ĐỒ ÁN I Trang 18/21
chỉ định bởi bit địa chỉ,các giá trị này được lưu lại trong các lần thao tác trước đó
- Dòng cực đại có thể duy trì 1A
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 25Hình 3-8: LM7805 thực tế
Hình 3-9: Sơ đồ chân của LM7805 [1]
Trang 26ĐỒ ÁN I Trang 20/21
4.2 Hướng phát triển
Thiết lập thêm các chức năng:
- Hẹn giờ để đóng mở các thiết bị như motor, đèn, quạt…
- Có thể gắn thềm một số cảm biến (độ ẩm, nhiệt độ) để tăng thêmthông tin cho người dùng
- Lắp thêm nút bấm để có thể cài đặt dễ dàng hơn ( tăng, giảm,mode, chọn)
ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC
Trang 27TÀI LIỆU THAM KHẢO