Tải bản đầy đủ (.doc) (27 trang)

ĐỒNG hồ THỜI GIAN THỰC DÙNG PIC

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.37 MB, 27 trang )

ĐỒ ÁN I

ĐỒNG HỒ THỜI GIAN THỰC DÙNG
PIC


MỤ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
2.1



SƠ ĐỒ KHỐI 2

2.2

SƠ ĐỒ NGUYÊN LÍ KHỐI NGUỒN

2.3

SƠ ĐỒ NGUYÊN LÝ MẠCH 3

2.4

KHỐI HIỂN THỊ 3

2.5

KHỔI CHỈNH GIỜ

2.6

KHỐI VI XỬ LÍ 4

2.7

BỘ ĐẾM 5

2.8

RESET 5


2.9

NGUYÊN LÝ HOẠT ĐỘNG

2

4

2.10

SƠ ĐỒ MẠCH IN 6

2.11

THI CÔNG MẠCH IN 6

5

CHƯƠNG 3. GIỚI THIỆU LINH KIỆN CÓ TRONG ĐỀ TÀI 8
3.1

VI XỬ LÝ PIC 16F877A

8

3.1.1

Thông số kỹ thuật vi điều khiển PIC 16F877A


3.1.2

Sợ đồ chân, cấu trúc và chức năng vi điều khiển PIC

3.1.3

Sơ đồ khối của PIC 16F877A 12

3.2

IC DS1307 12

8
10


3.2.1

Sợ đồ chân, cấu trúc và chức năng IC DS1307

3.2.2

Tổ chức bộ nhớ của IC DS 1307 14

3.3

MÀNG HÌNH LCD 16X2

3.4


IC ỔN ÁP LM7805 18

CHƯƠNG 4. TỔNG KẾT 20
4.1

KẾT LUẬN 20

4.2

HƯỚNG PHÁT TRIỂN

20

TÀI LIỆU THAM KHẢO

21

18

13


DANH 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-5: IC DS1307 THỰC TẾ [1] 13
HÌNH 2-6: SỰ TRUYỀN NHẬN DỮ LIỆU TRÊN CHUỔI 2 DÂY[7] 16
HÌNH 2-7: LCD16X2

18

HÌNH 2-8: LM7805 THỰC TẾ 19
HÌNH 2-9: SƠ ĐỒ CHÂN CỦA LM7805 [1] 19
HÌNH 2-1: SƠ ĐỒ KHỐI. 2
HÌNH 2-2: KHỐI NGUỒN 2
HÌNH 2-3: KHỐI HIỂN THỊ 3
HÌNH 2-4: KHỐI CHỈNH GIỜ

4

HÌNH 2-5: KHỐI XỬ LÝ TRUNG TÂM 4
HÌNH 2-6: KHỐI ĐẾM 5
HÌNH 2-7: KHỐI RESET 5
HÌNH 2-8: MÔ PHỎNG MẠCH 3
HÌNH 2-9: PCB CỦA MẠCH 6
HÌNH 2-10: MẠCH ĐÃ THI CÔNG (MẶT TRƯỚC)
Hình 2-10: Mạch đã thi công (mặt sau) 7

6



DANH MỤC CÁC BẢNG BIỂU
BẢNG 3-2: TỔ CHỨC BỘ NHỚ DS1307 [7] 14
BẢ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]
BẢNG 3-6: DATA WRITE [7] 17
Bảng 3-7: Data Read[7] 17

15


DANH MỤC CÁC TỪ VIẾT TẮT
IC
LCD
PIC
PWM

International Circuit
Liquid Crystal Display
Peripheral Interface Controller
Pulse Width Modulation


ĐỒ ÁN I
Trang 1/21

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 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õi
ngườ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ững
việc cần làm, nâng cao được chất lượng sống. Trong những ngành công
nghệ đồng hồ số được sử dụng rộng rải trong các thiết bị số như: điện
thoạ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ều
phương pháp, nay tôi xin trình bày một phương pháp làm bộ đếm thời
gian 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ển
PIC16f877A 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ên
Proteus, 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.

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ Á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 cung
cấ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ợp
với người dùng

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ ÁN I
Trang 3/21

2.2 Sơ đồ nguyên lí khối nguồn

Hình 2-2: Khối nguồn

2.3 Sơ đồ nguyên lý mạch thời gian

Hình 2-3: Mô phỏng mạch

-

Khi cấp nguồn 220V AC qua biến áp hạ xuống 12v AC cấp vào cầu

diode, IC ổn áp LM 7808, và cá tụ lọc ta được dòng điện 5V DC cấp cho
mạch

2.4 Khối hiển thị

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ ÁN I
Trang 4/21

Hình 2-4: Khối hiển thị

2.5 Khổi chỉnh giờ

Hình 2-5: Khối chỉnh giờ

2.6 Khối vi xử lí

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ ÁN I
Trang 5/21

Hình 2-6: Khối xử lý trung tâm

2.7 Bộ đếm

Hình 2-7: Khối đếm


ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ ÁN I
Trang 6/21

2.8 Reset

Hình 2-8: Khối Reset

2.9 Nguyên lý hoạt động
-

Khi mạch được cấp nguồn vi xử lý sẽ truyền bit dữ liệu ghi trên các thanh
ghi của DS1307, sau đó quá trình đếm của DS1307 thực hiện và trả về giá trị
đọc cho vi điều khiển, sau đó vi điều khiển giao tiếp với LCD để hiển thị
thông tin nhận được.

-

Khi muốn thay đổi giờ ta cần bấm nút MODE để đổi sang chế độ chỉnh theo
thư tự giờ, phút, giây, ngày, tháng, năm. Khi đến chế độ cần chỉnh sửa ta bấm
nút tăng (+) để tăng giá trị đến khi được giá trị phù hợp thì chuyển sang chế
độ đếm bằng cách nhấn nút MODE lần 2

-

Trong mạch có hỗ trợ chân reset để khi gặp lỗi về đường truyền thì ta có thể
bấm nút reset để mạch có thể khởi động lại


ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ ÁN I
Trang 7/21

2.10

Sơ đồ mạch in

Hình 2-9: PCB của mạch

2.11

Thi công mạch in

Hình 2-10: Mạch đã thi công (mặt trước)

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ Á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



ĐỒ ÁN I
Trang 9/21

CHƯƠ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ởi
cô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ụng
thự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

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ Á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


ĐỒ ÁN I
Trang 11/21

Hì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, xung
clock 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ặc
xung 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.

-


Chân MCRL|VPP (1):
 MCLR: Hoạt động Reset ở mức thấp
 VPP: ngõ vào áp lập trình

-

RB0 | INT (33) cho đến RB6 | PGC (39):
 RB0: xuất | nhập số

-

RC3: xuất | nhập số
 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):

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ Á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]

3.2 IC DS1307
Là IC thời gian thực gọi là RTC (Real Time Clock). IC này thường xuất hiện
trong các mạch về đồng hồ thời gian thực.
Vì tính chính xác vời thời gian mà con người đang sử dụng. IC này có 7 thanh
ghi 8-bit chứa dữ liệu thời gian: giây, phút, giờ, ngày, tháng, năm. Ngoài ra DS1307
còn có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống có thể dùng như
RAM. DS 1307 được đọc và ghi thông qua giao tiếp I2C nên cấu tạo bên ngoài khá
đơn giản.

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ ÁN I
Trang 13/21

Hì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.768
KHz để 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

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ Á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ập
trì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


ĐỒ ÁN I
Trang 15/21

Bả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/PM
vớ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
=1, và =0 nếu OUT=0

SQWE (Square wave enable): bit này được thiết lập 1 sẽ Enable đầu ra của bộ tạo
dao động. Tần số của đầu ra sóng vuông phụ thuộc vào giá trị của RS1 và RS0.

Bảng 3-5: Squarewave output frequency[7]

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ Á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ỉ định
START 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 để canh

chỉ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


ĐỒ ÁN I
Trang 17/21

Bả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ác
byte 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


ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


ĐỒ Á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
đó.

3.3 Màng hình LCD 16x2

Hình 3-7: LCD16x2

3.4 IC Ổn áp LM7805
-

7805 là IC ổn áp 5V cho ra điện áp 5V DC

-

78xx thuộc dòng IC dùng để ổn định điện áp đầu ra một chiều (DC) với ngõ
vào thấp nhất là 3V

-

Dòng cực đại có thể duy trì 1A.

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC



ĐỒ ÁN I
Trang 19/21

Hình 3-8: LM7805 thực tế

Hình 3-9: Sơ đồ chân của LM7805 [1]

ĐỒNG HỒ THỜI GIAN THỰC DÙNG PIC


×