mạch đồng hồ hiển thị số thời gian thực AT89S52 & DS 1307 tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài t...
Trang 2LOGO Nội dung bài thuyết trình:
Tìm hiểu vi điều khiển họ AT89XX
5 Sơ đồ hoàn chỉnh & Sơ đồ mạch in
6 Chương trình phần mềm & code
Trang 3LOGO I.GiỚI THIỆU GIAO TiẾP I2C
Giao thức ưu tiên truyền thông nối tiếp được
phát triển bởi Philips Semiconductor và được
gọi là bus I2C.
Tất cả các chip có tích hợp và tương thích với I2C đều có thêm một giao diện tích hợp trên
Chip để truyền thông trực tiếp với các thiết bị
tương thích I2C khác.
Trang 4 Việc truyền dữ liệu nối tiếp theo hai hướng 8 bit
được thực thi theo 3 chế độ sau:
Chuẩn (Standard)—100 Kbits/sec
Nhanh (Fast)—400 Kbits/sec
Tốc độ cao (High speed)—3.4 Mbits/sec
Quá trình truyền thông I2C được bắt đầu bằng tín hiệu start tạo ra bởi đơn vị chủ.
I2C là một giao diện truyền thông đặc biệt thích hợp cho các ứng dụng truyền thông giữa các đơn vị trên cùng một bo mạch với khoảng cách ngắn và tốc độ thấp.
Trang 5DS 1307
Trang 6LOGO SƠ LƯỢC CHIP DS 1307
1 DS1307 là chip đồng hồ thời gian thực, khái niệm thời gian thực ở đây được dùng với ý nghĩa thời gian tuyệt
đối mà con người đang sử dụng.
2 Tính bằng giây, phút, giờ… DS1307 là một sản phẩm của Dallas Semiconductor (một
công ty thuộc Maxim Integrated Products).
3 Chip này có 7 thanh ghi 8-bit chứa thời gian là: giây,
phút, giờ, thứ (trong tuần), 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.
Trang 7LOGO
X1 & X2 Kết nối với thạch anh 32.768KHz
SCL và SDA
là 2 đường giao xung nhịp
và dữ liệu
GND:
chân mass chung pin 3v & VCC
VBAT:
kết nối cực + của nguồn pin 3v
S đ ch ơ ồ ân DS1307
SQW/OUT:
một ngõ phụ tạo xung vuông
Vcc:
ngu n ồ cho giao
di n I2C ệ
DS1307 xuất hiện ở 2 gói SOIC và DIP có 8 chân:
Trang 8LOGO SƠ ĐỒ NGUYÊN LÝ:
Trang 9LOGO Quan sát tổ chức theo từng bit của các thanh ghi này như trong hình:
Trang 10LOGO Sơ lược cấu tạo DS1307:
- Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch
nguồn, mạch dao động, mạch điều khiển logic, mạch giao diện I2C, con trỏ địa chỉ và các thanh ghi (hay RAM)
- Sử dụng DS1307 chủ yếu là ghi và đọc các thanh ghi của chip này
Vì thế có 2 vấn đề cơ bản đó là cấu trúc các thanh ghi và cách truy xuất các thanh ghi này thông qua giao diện I2C
- Như đã trình bày, bộ nhớ DS1307 có tất cả 64 thanh ghi 8-bit được
đánh địa chỉ từ 0 đến 63 (từ 00H đến 3FH theo hệ HexaDecimal).
- Bảy thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao gồm:
Giây (SECONDS), Phút (MINUETS), Giờ (HOURS), Thứ (DAY),
Ngày (DATE), Tháng (MONTH) và Năm (YEAR).
Trang 11ery.com
Trang 12LOGO II.HỌ IC AT89XX
IC AT 89XX &
MẠCH NẠP
Trang 13Atmel là hãng đã cho ra đời các chip 89C51, 52, 55 và sau
đó cải tiến thêm, hãng cho ra đời 89S51, 89S52, 89S8252… Cấu hình 89S52: + 8KB bộ nhớ chương trình +
Dao động bên ngoài với thạch anh <24MHz.
VĐK 89S52 chạy với thạch anh 12MHz +256 Byte Ram nội + 4 Port xuất nhập + 3 Timer/ Counter 16 bit Timer 0,1,2 Timer 2 có các chức năng Capture/Compare + 8 nguồn ngắt + Nạp chương trình song song hoặc nạp nối tiếp qua đường SPI
Trang 14LOGO SƠ ĐỒ KHỐI VÀ SƠ ĐỒ CHÂN
Trang 15Về cơ bản thì các chip nêu trên giống nhau, chỉ có một số tính năng được cải tiến thêm Các phiên bản về sau càng có nhiều khối tính năng đặc biệt hơn Chúng ta xem bảng so sánh một số loại phổ biến như dưới đây:
Trang 16Chân +Vcc:Chân
số 40 Cấp nguồn +5v cho VĐK
Chân GND:Chân số
20 nối GND(hay nối Mass)
Chân 31 nối +VCC cho phép truy xuất bộ nhớ ngoài
Port 0 (p0.0 – p0.7)
Chân 32 - 39
Port 2: (p2.0 – p2.7)
Chân: 21 - 28
Port 3(p3.0 –
p0.7)
Chân 10 - 17
Trang 17ery.com
Trang 18LOGO Cách mắc đèn với bit 0 & 1
Trang 19ery.com
Trang 20LOGO Cách mắc đèn với bit 0 & 1
Trang 21LOGO Hình ảnh mạch nạp 89xx hoàn chỉnh
Trang 22LOGO Bo mạch in & mạch :
Trang 23LOGO IV.SƠ ĐỒ NGUYÊN LÝ & SƠ ĐỒ KHỐI
Sơ đồ khối tổng quát mạch đồng hồ
Sơ đồ nguyên lý
Sơ đồ mạch in Mạch hoàn chỉnh
Sơ đồ nguyên lý &
sơ đồ khối của mạch đồng hồ
Trang 24LOGO
Trang 25Dựa vào sơ đồ khối của giao tiếp trên, điều cơ bản là
chúng ta phải viết một phần mềm khởi tạo
DS1307, thực ra là chương trình giao tiếp I2C, đọc giá trị
trong Ram của con DS1307 lưu tạm thời vào trong Ram
của 89S52
Sau đó, viết thêm một phần mềm để đọc nội dung trong
Ram này đưa ra hiển thị bằng phương pháp quét Để đơn
giản, việc đọc dữ liệu từ DS1307 lưu vào trong Ram của
89S52 và hiển thị giờ_phút_giây, được chia ra làm 2
chương trình con nhỏ, nếu có phím nhấn thì sẽ nhảy đến
chương trình con xử lý phím nhấn riêng
Trang 26LOGO Sơ đồ nguyên lý
Trang 27ery.com
Trang 28LOGO Sơ đồ mạch in
Trang 29ery.com
Trang 30LOGOthì chương trình MAIN của chúng ta sẽ gồm 3 mục chính được mô tả cụ Diagramthể trong lưu đồ của chương trình MAIN ỏ hình.
Trang 31ĐỌC DỮ LIỆU TỪ DS1307
LƯU VÀO TRONG RAM CỦA
89S52 Xem lưu đồ chương
trình như hình dưới Ở đây,
Trang 32LOGO
Trang 33LOGO VI.CÀI ĐẶT PHẦN MỀM VÀ CODE
Lưu đồ cài thời gian
Lưu đồ thuật toán
canh chỉnh 3 cột mốc
giờ, phút, giây
Lưu đồ thuật toán tăng
giờ,phút,giây
Lưu đồ thuật toán giảm
giờ,phút,giây CODE cài đặt
Trang 34LOGO CÀI ĐẶT THỜI GIAN
Trong lưu đồ giải thuật
trên hình trên cho chúng
việc cài đặt thời gian
Lưu đồ giải thuật của
CTC xử lý
cài đặt phím được thể
hiện ở hình
Trang 35LOGO CÀI ĐẶT TĂNG GiẢM GiỜ, PHÚT, GIÂY
Lưu đồ CTC cài đặt giờ
CTC cài đặt phút cũng có
nguyên tắc tương tự như
cài đặt giờ nên không
được nói ra ở đây Nhìn
vào lưu đồ chúng ta thấy,
ThanhGhi=02H, là địa
chỉ của thanh ghi Giở
trong con DS1307, như
vậy, mục đích của việc
định nghĩa ô nhớ
ThanhGhi là để xác định
địa chỉ thay đổi giá trị
trong ô nhớ RAM của con
DS1307
Trang 36CTC cài đặt giờ sẽ lặp vô
tận và CTC hiển thi giờ
sẽ chỉ cho hiển thị 2 Led 7
đoạn, chỉ hiển thị giờ
trong khi cài đặt, tất cả
các đèn Led còn lại đều
tắt hết Trong khi CTC
cài đặt đang chạy vô tận,
nếu có phím INC hoặc
DEC được nhấn thì nó sẽ
nhảy đến CTC tăng hoặc
giảm tùy vào phím được
nhấn CTC tăng giờ được
chỉ ra ở hinh 22 bên dưới
đây, nguyên tắc của CTC
giảm giờ cũng như vậy .
Trang 37nút nhấn tăng giờ,phút,giây
Nút nhấn giảm,phút,giây
Trang 38LOGO CODE CHƯƠNG TRÌNH
TẬP LỆNH CƠ BẢN CODE.ASM MÃ DỊCH.HEX
Bao gồm 1 số lệnh
cơ bản Của vi điều khiển
họ AT 89XX Được viết dưới dạng ngôn ngữ lập trình giúp cho IC hiểu và thực thi lệnh
Do người lập trình viết , chương trình được viết dưới dạng Ngôn ngữ lập trình ASM (assembly) Lưu ý: có nhiều ngôn ngữ : c+, c2+,pascal
Là đoạn mã được dịch từ chươngTrình do người lập trình viết
Và file này được nạp cho chip VĐK để thực thi lệnh
Trang 391 SỐ TẬP LỆNH CƠ BẢN
MOV: Dùng để di chuyển bit nguồn đến bit đích
CLR: Dùng để xóa bit được chỉ ra trong lệnh về 0
SETB: Dùng để thiết lập bit được chỉ ra lệnh bằng 1
RET: Dùng để kết thúc chương trình con
LJMP: Lệnh nhảy dài 3 byte
INC: Tăng thêm “ tăng nội dung của byte có địa chỉ được chỉ
ra trong lệnh thêm 1.các cờ không bị ảnh hưởng
CJNE: So sánh và nhảy nếu không bằng nhau
DJNZ: Giảm và nhảy nếu A = 0
CALL, DELAY: Lệnh gọi chương trình con
RLC: Lệnh xoay trái qua cờ
RRC: Lênh xoay phải qua cờ
Trang 40LOGO CODE CHƯƠNG TRÌNH
MÃ DỊCH.HEX
:10033A000A0BC0F9A4B0999282F8809001150001C5 :10034A001600011A00C185C180C182C181C183C161 :01035A00841E
:0603C900E4FF0FBF14FC6D :0103CF00220B
:0503D000D2900203C9F8 :0503D500C2900203C903 :0E03B300D291D290C2911203C9C290D291226F :0803C100C2911203D0D2912277
:0202C300AE0784 :1002C5007D01EE339206A2069291EE25E0FE120321 :1002D500D01203D50DBD09EAD2911203D0A2919295 :0602E500061203D5A2067B
:0102EB0022F0 :00000001FF
Trang 4180 5
Ic ổ
n á p A T 8
9S 52
V
i đ
iề u k hiể n Le d
7 đ
oạ n
A no
t c hu ng
Trang 42LOGO CÁC LINK KiỆN TRONG MẠCH
Tụ
h ó a
Lọ
c n g
uồ n
N ú
t n h ấn
Đ
iề u k hiể n
P in
c m os
N gu ồn
n u ôi
Đ iệ
n t rở
C ản
d ò ng
Trang 43www.themegallery.com
NHÓM SINH VIÊN
THỰC HiỆN: NGUYỄN HÙNG ANH
NGUYỄN VĂN LƯỢNG
NGUYỄN THÀNH TRUNG
YHLUM NIÊ