
Báo cáo: "Đồng hồ thời gian thực dùng DS 1307"

Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
1 Đồng hồ RTC_DS1307_ HC3T
Mục Lục
LỜI NÓI ĐẦU 3
CHƯƠNG 1 . PHÂN TÍCH BÀI TOÁN 4
1.1.Khảo sát và phân tích bài toán 4
1.2. Lựa chọn giải pháp 7
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 8
2.1. Sơ đồ tổng quát 8
2.2. Sơ đồ CallGraph 9
2.3. Sơ đồ đặc tả 9
2.4. Sơ đồ thuật toán 10
2.5.Các module trong hệ thống 12
2.6.Lựa chọn linh kiện 14
CHƯƠNG 3. xây dựngLuận Văn - Đề Án - Tiểu Luận Xây Dựng HỆ THỐNG 35
3.1.Thiết kế phần cứng 35
3.2.Thiết kế phần mềm 37
3.3.Kết quả mô phỏng 47
3.4.Mạch thi công thực tế 47
KẾT LUẬN 48

Môn vi xử lý
Đề tài : đồng hồ thời gian thực dùng DS 1307
Giáo viên hướng dẫn: ThS Hàn Huy Dũng
Nhóm thực hiện: Sinh viên lớp điện tử 2-K48
Các thành viên:
+ Lê Thị Hằng.
+ Đỗ Minh Châu.
+ Nguyễn Anh Tuấn.
+ Đinh Xuân Thuỷ.
+ Vũ Anh Tuấn.
I, Chức năng của mạch điện:
- Hiển thị : giờ ,phút,giây, ngày , tháng,năm,thứ trong tuần
- giao tiếp với 4 phím : status-mode-increase-decrease. Phím status dùng để chuyển chế độ từ hiển thị giờ
,phút ,giây,thứ sang ngày ,tháng, năm. Phím mode dùng để điều chỉnh ngày, tháng, năm và giờ ,phút
,giây,thứ
II, Mô tả mạch:
-Mạch sử dụng IC thời gian thực DS 1307 giao tiếp I2C với Pic.
Pic16F877A
- Dùng 8 led 7 thanh loại 4 led/1 con.
- Dùng 8 Tranzito để điều khiển việc đóng ngắt các led.
- Vi điều khiển được dùng là PIC 16F877A
- Dùng thạch anh 20MHz để tạo dao động cho PIC.

Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
2 Đồng hồ RTC_DS1307_ HC3T
- Dùng một mạch tiny Bootloaderđể kết nối giữa pic và máy tính , nạp chương trình trực tiếp từ
máy tính vào PIC mà không cần thông qua mạch nạp cho PIC.
III/ Cơ bản về tiny bootloader:
Đây là bootloader cho các vi điều khiển Microchip PIC
* Nó là bootloader có kích thước nhỏ nhất, ít hơn 100 word bộ nhớ chương trình
* Nó là bootloader duy nhất hỗ trợ tất cả các dòng PIC: 16F, 18F, dsPIC (những dòng có hỗ
trợ chế độ self-programming - tự nạp lại).
Đặc điểm của firmware:
* Kích thước chỉ có khoảng 100word (cho tất cả các dòng 16F, 18F, dsPIC, thực ra là nó ít hơn 100
word);
* Có thể ghi vào flash, eeprom, và có thể ghi vào các bytes cài đăt (configuration bytes) của
dòng 18F
* Khi reset, đợi 1 giây để nhận chương trình nạp, nếu không nhận được thì chuyển qua chạy chương
trình
* File .asm của bootloader rất dễ để chỉnh sửa lại,cho phù hợp với từng chip, tốc độ truyền
nhận.
Đặc điểm của phần mềm trên máy tính
* Có thể tải chương trình vào flash (trong phiên bản này của bootloader, cho phép cài đặt các
byte cài đặt (configuration bytes) và có thể thay đổi dễ dàng theo từng loại PIC)
* Làm việc với tất cả các dòng PIC đã nêu trên; tự động nhận ra nội dung file HEX và dòng PIC
* Ghi nhớ cài đặt cuối (thuận tiện cho người dùng khi thao tác với một loại PIC)
* Trong trường hợp lỗi, nó sẽ truyền một tín hiệu ngược lại cho máy tính để tái đồng bộ giữa
máy tính và PIC;
* Chế độ giao tiếp có thể được thay đổi, có thể dùng bất kỳ cổng COM nào với tốc độ baud nào
Khái niệm chung về bootloader Một bootloader là một chương trình nằm trong vi điều khiển, và
giao tiếp với máy tính (thông qua giao tiếp nối tiếp). Bootloader nhận một chương trình (đã được
dịch ra thành file HEX) từ máy tính và ghi nó vào bộ nhớ flash của vi điều khiển thông qua một
phần mềm trên máy tính, sau đó chạy chương trình đó trên vi điều khiển. Bootloader chỉ có thể
được dùng với những vi điều khiển nào cho phép ghi vào bộ nhớ flash thông qua phần mềm trên
máy tính. Bản thân bootloader phải được ghi vào trong bộ nhớ flash bằng một mạch nạp khác. Để
bootloader hoạt động, sau khi nhấn reset, một lệnh "goto bootloader" phải nằm ở địa chỉ đầu tiên
của chương trình vi điều khiển. Có 2 loại bootloader, một số loại đôi khi cần người dùng đặt lại địa
chỉ các dòng lệnh đầu, một số khác thì tự bản thân nó đặt những dòng lệnh đầu của người dùng vào
một địa chỉ khác khi mà bootloader đã nằm sẵn ở đó, và quay trở lại chương trình của người dùng
khi kết thúc đoạn chương trình bootloader.
Trong trường hợp này, tiny bootloader tự động đem các vị trí đầu của chương trình người viết, và
đặt ở phía dưới cùng với chương trình bootloader (thực ra đoạn chương trình này chỉ tối đa có 4
dòng lệnh). địa chỉ 0x0004 đã là địa chỉ bắt đầu ngắt. Chính vì vậy, nếu lập trình từ vị trí 0x0000
thì cũng chỉ viết được tối đa 4 dòng lệnh, sau đó phải nhảy đến chương trình chính. Như vậy, tiny
bootloader sẽ thực hiện thao tác, cắt 4 dòng đầu tiên từ 0x0000 đến 0x0003 , thay bằng dòng lệnh
GOTO BOOTLOADER. Và nó tự động đặt 4 dòng lệnh nằm ngay phía trên chương trình
bootloader .Sau đó, chạy chương trình tinybootloader phía bên dưới. Rồi nó quay lên chạy 4 dòng
lệnh . Kết thúc 4 dòng này, nó lại trở về vị trí chương trình chạy bình thường ở bên trên. . phiên

Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
3 Đồng hồ RTC_DS1307_ HC3T
bản mới nhất của tiny bootloader cho phép reset trên máy tính, không cần phải bấm reset
nữa.
Đây là một loại tiny bootloader : max232
IV/ Cơ chế hoạt động và chức năng của DS1307:
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 ra driver
DS1307 là một IC thời gian thực với nguồn cung cấp nhỏ, dùng để cập nhật thời gian và
ngày tháng với 56 bytes SRAM. Địa chỉ và dữliệu được truyền nối tiếp qua 2 đường bus
2 chiều. Nó cung cấp thông tin về giờ,phút,giây ,thứ,ngày ,tháng, năm.Ngày cuối tháng

