Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 1
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 2
Nội dung thiết kế:
Chương I : Giới Thiệu Chung.
Chương II : Các linh kiện chính được sử dụng trong mạch.
Chương III:Các khối mạch cần sử dụng và sơ đồ mạch hoàn chỉnh.
Chương IV: Chương trình phần mềm.
Chương V : Tổng kết. Lời nói đầu
Ngày nay nhân loại đang trải qua những sự phát triển vượt về mọi mặt.Trong đó điện
tử, tự động hoá đóng một vai trò không nhỏ. Điện tử góp phần vào quá trình tự động hoá
mọi thứ giúp con người hiện đại hoá cuộc sống.
Vận dụng những kiến thức đã được học trong quá trình học tập ở trường nhóm em thực
hiện đồ án I này. Đồ án này được áp dụng chủ yếu dựa vào vi điều khiển. Mà thực tế là
IC ATMEGA16, nhằm mục đích giúp em hiểu một cách tường tận hơn về những gì về vi
điều khiển, cách đọc, viết va nhận biết về các chân IC mà em đã được học từ thầy cô
trong trường, tìm hiểu và nghiên cứu qua sách cũng như cách thức vận dụng nó trong
Chương 1: Giới Thiệu Chung
1. Sơ lược
2. Sơ đồ khối
4
4
4
Chương 2: Các linh kiện chính được sử dụng trong mạch
1. Vi điều khiển ATMEGA16:
a. Giới thiệu chung.
b. Sơ đồ khối.
c. Sơ đồ chân.
d. Ý nghĩa của các chân
2. IC tạo nguồn ổn áp chuẩn 7805.
3. IC tạo thời gian thực DS1307.
4. LED 7thanh.
5
5
5
9
10
11
11
12
20
Chương 3:Các khối mạch cần sử dụng và sơ đồ mạch hoàn
chỉnh
1,Khối tạo nguồn
2,Khối Reset
[email protected] Trang 4 Chương I : Giới Thiệu Chung
1) Sơ Lược:
Trong công nghệ điện tử vi xử lý, vi điều khiển là một thành phần quan trọng không
thể thiếu nó mang nhiều tính ưu việt: có thể thay thế một mạch điện phức tạp bằng một vi
mạch nhỏ gọn với chi phí thấp hơn, nhưng ứng dụng lại đa dạng và linh hoạt hơn, tiết
kiệm năng lượng hơn, tốc độ xử lý nhanh hơn,…
Để học tập tốt và hiểu sâu về môn học vi xử lý ngoài những kiến thức trên sách vở cần
có những ứng dụng vào thực tế. Trên cơ sở đó chúng em tìm hiểu và thiết kế sản phẩm là
mạch ĐỒNG HỒ THỜI GIAN THỰC dùng vi điều khiển AVR của ATMEL. Có khả
năng điều chỉnh và thay đổi được thời gian. So với những mạch đồng hồ dùng họ vi điều
khiển 8051 và PIC thì AVR có ưu điểm hơn là ngôn ngữ lập trình được viết bằng C thì
chương trình sẽ ngắn gọn hơn, so với 8051 thì tốc độ xử lý tín hiệu nhanh hơn.
2) Sơ đồ khối:
Chương II: Các linh kiện chính được sử dụng
trong mạch.
1. Vi điều khiển Atmega 16.
a) Giới thiệu chung
ATmega16 là vi điều khiển 8 bit dựa trên kiến trúc RISC. Với khả năng thực hiện
mỗi lệnh trong vòng một chu kỳ xung clock, ATmega16 có thể đạt được tốc độ 1MIPS
thiết bị ngoại vi và quản lý ngắt.
Cấu trúc tổng quát
AVR sử dụng cấu trúc Harvard, tách riêng bộ nhớ và các bus cho chương trình và
dữ liệu. Các lệnh được thực hiện chỉ trong một chu kỳ xung clock. Bộ nhớ chương
trình được lưu trong bộ nhớ Flash.
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 6
ALU
ALU làm việc trực tiếp với các thanh ghi chức năng chung. Các phép toán được
thực hiện trong một chu kỳ xung clock. Hoạt động của ALU được chia làm 3 loại:
đại số, logic và theo bit.
Thanh ghi trạng thái
Đây là thanh ghi trạng thái có 8 bit lưu trữ trạng thái của ALU sau các phép tính số
học và logic.
C: Carry Flag ;cờ nhớ (Nếu phép toán có nhớ cờ sẽ được thiết lập).
Z: Zero Flag ;Cờ zero (Nếu kết quả phép toán bằng 0).
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 8
Quản lý ngắt
Ngắt là một cơ chế cho phép thiết bị ngoại vi báo cho CPU biết về tình
trạng sẵn sxàng cho đổi dữ liệu của mình.Ví dụ:Khi bộ truyền nhận UART
nhận được một byte nó sẽ báo cho CPU biết thông qua cờ RXC,hợc khi nó đã
truyền được một byte thì cờ TX được thiết lập…Khi có tín hiệu báo ngắt
CPU sẽ tạm dừng công việc đạng thực hiện lại và lưu vị trí đang thực hiên
chương trình (con trỏ PC) vào ngăn xếp sau đó trỏ tới vector phuc vụ ngắt và
thức hiện chương trình phục vụ ngắt đó chơ tới khi gặp lệnh RETI (return
from interrup) thì CPU lại lấy PC từ ngăn xếp ra và tiếp tục thực hiện chương
trình mà trước khi có ngăt nó đang thực hiện. Trong trường hợp mà có nhiều
ngắt yêu cầu cùng một lúc thì CPU sẽ lưu các cờ báo ngắt đó lại và thực hiện lần
lượt các ngắt theo mức ưu tiên .Trong khi đang thực hiện ngắt mà xuất hiện
ngắt mới thì sẽ xảy ra hai trường hợp. Trường hớp ngắt này có mức ưu tiên cao
hơn thì nó sẽ được phục vụ. Còn nó mà có mức ưu tiên thấp hơn thì nó sẽ bị bỏ
qua.Bộ nhớ ngăn xếp là vùng bất kì trong SRAM từ địa chỉ 0x60 trở lên. Để
truy nhập vào SRAM thông thường thì ta dùng con trỏ X,Y,Z và để truy nhập
vào SRAM theo kiểu ngăn xếp thì ta dùng con trỏ SP. Con trỏ này là một thanh
ghi 16 bit và được truy nhập như hai thanh ghi 8 bit chung có địa chỉ
:SPL :0x3D/0x5D(IO/SRAM) và SPH:0x3E/0x5E.Khi chương trình phục vu
ngắt hoặc chương trình con thì con trỏ PC được lưu vào ngăn xếp trong khi con trỏ
ngăn xếp giảm hai vị trí.Và con trỏ ngăn xếp sẽ giảm 1 khi thực hiện lệnh push.
Ngược lại khi thực hiện lệnh POP thì con trỏ ngăn xếp sẽ tăng 1 và khi thực
hiện lệnh RET hoặc RETI thì con trỏ ngăn xếp sẽ tăng 2. Như vậy con trỏ
ngăn xếp cần được chương trình đặt trước giá trị khởi tạo ngăn xếp trước khi một
chương trình con được gọi hoặc các ngắt được cho phép phục vụ. Và giá trị
Port A (PA): Port A gồm 8 chân (từ chân 33 đến 40) có chức năng: đầu vào
cho chuyển đổi ADC
Port B (PB): Port PB gồm 8 chân (từ chân 1 đến chân 8), ngoài có chức năng
làm các đường xuất/nhập thì còn có nhiều chức năng phụ khác.
Port C (PC): Port C gồm 8 chân (từ chân 22 đến chân 29) : Nếu giao tiếp
JTAG được kích hoạt điện trở trên các PC5(TDI), PC3 (TMS) ,PC2 (TCK) sẽ
được kích hoạt ngay cả khi khởi động lại (reset) Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 11
Port D (PD): Port D gồm 8 chân (từ chân 14 đến 21):chưc năng xuất nhập
Chân RESET(RST): Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết
lập trạng thái ban đầu cho vi điều khiển. Hệ thống sẽ được thiết lập lại các giá
trị ban đầu nếu ngõ này ở mức 1 tối thiểu 2 chu kì máy.
Chân XTAL1 và XTAL2 : Hai chân này có vị trí chân là 12 và 13 được sử
dụng để nhận nguồn xung clock từ bên ngoài để hoạt động, thường được ghép
nối với thạch anh và các tụ để tạo nguồn xung clock ổn định.
Chân AVCC : Nguồn cấp cho cổng A và bộ chuyển đổi ADC , chân này nên
được nối với nguồn cấp VCC bên ngoài , ngay cả khi bộ chuyển đổi ADC
không được sử dụng. Nếu bộ chuyển đổi ADC không được sử dụng , chân
AVCC nên được nối với nguồn qua bộ lọc.
Mạch trên lấy nguồn một chiều từ một máy biến áp với điện áp từ 7V đến 9V để đưa
vào ngõ IN. Khi kết nối mạch điện, do nhiều nguyên nhân, người dùng dễ nhầm lẫn cực
tính của nguồn cung cấp khi đấu nối vào mạch, trong trường hợp này rất dễ ảnh hưởng
đến các linh kiện trên board mạch. Vì lí do đó một diode cầu được lắp thêm vào mạch,
diode cầu đảm bảo cực tính của nguồn cấp cho mạch theo một chiều duy nhất, và nguời
dùng cũng không cần quan tâm đến cực tính của nguồn khi nối vào ngõ IN nữa.
3. IC tạo thời gian DS1307:
a) Giới thiệu chung về DS1307:
IC thời gian thực là họ vi điều khiển của hãng dalat. DS1307 có một số đặc trưng cơ
bản sau:
- DS1307 là 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
- SRAM :56bytes
- Địa chỉ và dữ liệu được truyền nối tiệp qua 2 đường bus 2 chiều
- DS1307 có môt mạch cảm biến điện áp dùng để dò các điện áp lỗi và tự động đóng
ngắt với nguồn pin cung cấp 3V:
+ DS1307 có 7 byte dữ liệu nằm từ địa chỉ 0x00 tới 0x06, 1 byte điểu khiển, và
56 byte lưu trữ ( dành cho người sủ dụng ).
+ Khi xử lý dữ liệu từ DS1307, họ đã tự chuyển cho ta về dạng số BCD, ví dụ
như ta đọc được dữ liệu từ địa chỉ 0x04 (tưong ứng với Day- ngày trong tháng) và tại
0x05 (tháng) là 0x15, 0x11.
+ Lưu ý đến vai trò của chân SQW/OUT. Đây là chân cho xung ra của DS1307
có 4 chế độ 1Hz, 4.096HZ, 8.192Hz, 32.768Hz các chế độ này đuợc quy định bởi các
bít của thanh ghi Control Register (địa chỉ 0x07 ).
+ Địa chỉ của DS1307là 0xD0.
- Cơ chế hoạt động : DS1307 hoạt động với vai trò slave trên đường bus nối
[email protected] Trang 14
Sơ đồ khối của DS1307: *Mô tả hoạt động của các chân:
• Vcc,GND: nguồn một chiều được cung cấp tới các chân này. Vcc là đầu vào 5V.
Khi 5V được cung cấp thì thiết bị có thể truy cập hoàn chỉnh và dữ liệu có thể đọc
và viết. Khi pin 3 V được nối tới thiết bị này và Vcc nhỏ hơn 1,25Vbat thì quá trình
đọc và viết không được thực thi,tuy nhiên chức năng timekeeping không bị ảnh
hưởng bởi điện áp vào thấp. Khi Vcc nhỏ hơn Vbat thì RAM và timekeeper sẽ được
ngắt tới nguồn cung cấp trong (thường là nguồn 1 chiều 3V)
• Vbat: Đầu vào pin cho bất kỳ một chuẩn pin 3V . Điện áp pin phải được giữ trong
khoảng từ 2,5 đến 3V để đảm bảo cho sự hoạt động của thiết bị.
• SCL(serial clock input): SCL được sử dụng để đồng bộ sự chuyển dữ liệu trên
đường dây nối tiếp.
• SDA(serial data input/out): là chân vào ra cho 2 đườ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ó một điện trở kéo trong khi hoạt động.
• SQW/OUT(square wave/output driver)- khi được kích hoạt thì bit SQWE được
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 15
thiết lập 1 chân SQW/OUT phát đi 1 trong 4 tần số (1Hz,4kHz,8kHz,32kHz). Chân
này cũng được thiết kế theo kiểu cực máng hở vì vậy nó cũng cần có một điện trở kéo
được truyền tới một thanh ghi thứ 2,thông tin thời gian sẽ được đọc từ thanh ghi thứ cấp
này,trong khi đó đồng hồ vẫn tiếp tục chạy. Trong DS1307 có một thanh ghi điều khiển
để điều khiển hoạt động của chân SQW/OUT :
• 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 logic ở chân SQW/OUT sẽ là 1 nếu OUT=1 và
OUT = 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.
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 17
DS1307 hỗ trợ bus 2 dây 2 chiều và giao thức truyền dữ liệu. thiết bị gửi dữ liệu lên
bus được gọi là bộ phát và thiết bị nhận gọi là bộ thu. thiết bị điều khiển quá trình này gọi
là master. thiết bị nhận sự điều khiển của master gọi là slave. Các bus nhận sự điều khiển
của master,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ỉ thị START và STOP.
d) Sự truyền nhận dữ liệu trên chuỗi bus 2 dây :
Tuỳ thuộc vào bit R/ w mà 2 loại truyền dữ liệu sẽ được thực thi:
• Truyền dữ liệu từ master truyền và slave nhận: Master sẽ truyền byte đầu tiên là địa
chỉ của slave. Tiếp sau đó là các byte dữ liệu . slave sẽ gửi lại bit thông báo đã nhận được
(bit acknowledge) sau mỗi byte dữ liệu nhận được. dữ liệu sẽ truyền từ bit có giá trị nhất
(MSB).
• Chế độ slave phát ( chế độ DS1307 đọc): byte đầu tiên slave nhận được tương tự như
chế độ slave ghi. Tuy nhiên trong chế độ này thì bit chiều lại chỉ chiều truyền ngược lại.
Chuỗi dữ liệu được phát đi trên SDA bởi DS 1307 trong khi chuỗi xung clock vào chân
SCL. Các điều kiện START và STOP được nhận dạng khi bắt đầu hoặc kết thúc truyền
một chuỗi. byte địa chỉ nhận được đầu tiên khi master phát đi điều kiện START. Byte địa
chỉ chứa 7 bit địa chỉ của slave và 1 bit chiều cho phép đọc là 1. Sau khi nhận và giải mã
byte địa chỉ thì thiết bị sẽ nhận 1 bit acknowledge trên đường SDA. Sau đó DS1307 bắt
đầu gửi dữ liệu tới địa chỉ con trỏ thanh ghi thông qua con trỏ thanh ghi.Nếu con trỏ
thanh ghi không được viết vào trước khi chế độ đọc được thiết lập thì địa chỉ đầu tiên
được đọc sẽ là địa chỉ cuối cùng chứa trong con trỏ thanh ghi .DS1307 sẽ nhận được một
tín hiệu Not Acknowledge khi kết thúc quá trình đọc. Đọc dữ liệu-chế độ slave phát.
• Thời gian thực hiện việc đọc,ghi dữ liệu của DS1307: sơ đồ đồng bộ:
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 19
4. LED 7thanh:
Led 7 thanh bao gồm nhiều loại led tích hợp bên trong các led được nối chung nhau 1
chân .Trong thực tế có 2 loại led 7 thanh là loại anot chung và loại katot chung. Trong
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực .
Khối RESET có tác dụng đưa vi điều khiển về trạng thái ban đầu. Khi nút Reset được ấn
điện áp +5V từ nguồn được nối vào chân Reset của vi điều khiển được chạy thẳng xuống
đất lúc này điện áp tại chân vi điều khiển thay đổi đột ngột về 0, VĐK nhận biết được sự
thay đổi này và khởi động lại trạng thái ban đầu cho hệ thống. 3. Khối điều khiển: Gồm 3 nút ấn, hoạt động tương tự nút Reset. Khi ấn nút thì chân 2,3 được nối với chân
1,4 đưa điện áp xuống đất lúc này điện áp tại 2 chân 2,3 bằng 0 làm cho vi điều khiển
nhận biết được sự thay đổi này và thực hiện lệnh cần điều khiển.Nút thứ nhất có tác dụng
thiết đặt chế độ cho vi điều khiển làm việc bình thường hay chuyển sang chế độ cài đặt
thời gian. Nút thứ hai làm tăng thời gian cần điều chỉnh, nút 3 làm giảm thời gian.
4. Khối tạo xung dao động:
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 22 Đây là bộ dao động thạch anh có tác dụng tạo xung nhịp với tần số 12MHz cho
VĐK hoạt động. Hai đầu này được nối vào 2chân XTAL1 và XTAL2 của VĐK.
5. Khối hiển thị:
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 23
Chương VI Sơ Đồ Mạch Hoàn Chỉnh
Sơ đồ mạch nguyên lý:
Đồ án 1: Đề tài: Thiết kế đồng hồ thời gian thực . [email protected] Trang 25
Sơ đồ mạch in: