Tải bản đầy đủ (.pdf) (20 trang)

thiết kế mạch đồng hồ cho hệ thống chỉ sử dụng 1 port để giao tiếp

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 (737.82 KB, 20 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH

BÙI THANH HÙNG
09520119
PHẠM XUÂN SƠN
09520252
THIẾT KẾ MẠCH ĐỒNG HỒ CHO HỆ THỐNG
CHỈ SỬ DỤNG 1 PORT ĐỂ GIAO TIẾP
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Ngành: Kỹ Thuật Máy Tính
MSSV: 09520119
09520252
Lớp: KTMT04
NGƯỜI HƯỚNG DẪN
Trưởng phòng kỹ thuật lập trình – điều khiển
Đỗ Xuân Triều
Thành phố Hồ Chí Minh – Năm 2013
LỜI CẢM ƠN
Trước tiên em xin chân thành cảm ơn anh Đỗ Xuân Triều đã tận tình hướng dẫn,
góp ý và động viên chúng em trong suốt quá trình thực tập tại Công Ty. Xin chân thành
cảm ơn quý thầy cô Trường ĐH Công Nhệ Thông Tin đã truyền đạt những kiến thức vô
cùng quý báu trong 4 năm vừa qua. Em cũng xin gửi lời cám ơn đến quý Công Ty TNHH
Tầm Nhìn Thông Minh đã cho bọn em có cơ hội thực tập tại công ty để bọn em có thể áp
dụng những kiến thức đã được học ở trường vào thực tế. Những lời cảm ơn sau cùng xin
dành cho ba mẹ, các anh chị trong gia đình đã hết lòng quan tâm và tạo điều kiện cho em
hoàn thành báo cáo này.
Nhóm chúng em xin chân thành cảm ơn!
LỜI ĐÁNH GIÁ KẾT QUẢ THỰC TẬP












-





















-












Chữ ký,họ tên người đánh giá:
MỤC LỤC
Mục Lục
Mục Lục 4
A. Thiết kế mạch 7
1. Sơ đồ vật lý 7
a) Sơ đồ mạch 7
b) Nguyên lý hoạt động 9
2. Layout 17
B. Test mạch 18
I. Lịch làm việc tại nơi thực tập
Thời gian thực tập : từ cuối tháng 2 đến cuối tháng 5.
Kết hợp làm việc tại nhà và trên công ty. Mỗi tuần lên công ty 3 ngày để thảo luận và
làm việc.
II. Giới thiệu về công ty Smart Vision –Tầm nhìn thông minh.
Công ty Trách Nhiệm Hữu Hạn Tầm Nhìn Thông Minh – SmartVision Tech Ltd Co.
– là nhà cung cấp dịch vụ về thiết kế và thi công các công trình nước phục vụ cho giải trí

ở trình độ chuyên nghiệp với tính thẩm mỹ cao.
Công ty : SMARTVISION TECH CO. LTD
Địa chỉ : 139, Đường D2, P. 25, Q. Bình Thạnh, Tp. HCM
Điện thoại : (+84) 0908.327.306
Email :
Hiện nay, hệ thống giải trí nước do SmartVision cung cấp được chia thành 4 dòng
sản phẩm chính sau:
• Màn nước nghệ thuật.
• Phun nước nghệ thuật.
• Trình diễn nhạc nước.
• Đồng hồ nước.
Với “Màn nước nghệ thuật” là sản phẩm chiến lược, lần đầu tiên được thi công và lắp
ráp tại Việt Nam. Ngoài ra, công ty còn là đơn vị cung cấp thiết bị chuyên dụng cho hệ
thống phun nước bao gồm hệ thống vòi phun, hệ thống điều khiển, máy bơm, đèn led
chìm.
Công ty phát triển bền vững trên cơ sở thân thiện với môi trường, luôn đặt lợi ích của
khách hàng lên trên hết với mục tiêu trở thành 1 trong những công ty hàng đầu Việt Nam
về sản xuất, kinh doanh thiết bị và triển khai dịch vụ tự động hoá cho ngành công nghiệp
giải trí.
Sản xuất đèn trang trí sân vườn, đèn dưới nước
SmartVision chuyên sản xuất đèn Led chiếu sáng cho trang trí sân vườn – Đài phun nước.
Nhận đặt sản xuất đèn theo mẫu của khách hàng với chất liệu vỏ bằng Composite – Inox.
Trình diễn nhạc nước
Hệ thống nhạc nước là hệ thống biểu diễn nước kết hợp với ánh sáng, trình chiếu trên nền
âm nhạc với công nghệ tiên tiến – là hệ thống giải trí cao cấp bậc nhất hiện nay.
• Triển khai cho các sự kiện với mọi quy mô lớn nhỏ.
• Hệ thống vòi phun, âm thanh & ánh sáng chuyên nghiệp.
• Vận hành hoàn toàn tự động phù hợp với từng bài nhạc.
Bộ lắp đặt nhạc nước mini cho quán Café nhà hàng, trong nhà.
Cung cấp bộ điều khiển nhạc nước cho các hồ phun nước mini tại các quán cafe, nhà

hàng, khách sạn, các hồ phun nước trong nhà…
Đồng hồ nước
Hệ thống đồng hồ nước cho phép hiển thị đồng hồ số hoặc ký tự số theo thời gian thực,
được thiết kế nhằm mục đích hiển thị thông tin ở những nơi tập trung đông người như
quảng trường, công viên.
• Hệ thống hiển thị chính xác theo thời gian thực.
• Thông tin hiển thị được thay đổi hoàn toàn tự động.
• Thiết kế phối cảnh với tính thẩm mỹ cao.
III. Nội dung nhiệm vụ chính được giao
Để phục vụ cho quá trình thực tập cũng như học tập tốt và hiểu sâu về chuyên ngành
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 được nhận nhiệm vụ tìm hiểu và thiết kế sản phẩm là THIẾT KẾ MẠCH
ĐỒNG HỒ CHO HỆ THỐNG CHỈ SỬ DỤNG 1 PORT ĐỂ GIAO TIẾP 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.
Vì thế công việc chính bao gồm :
• Thiết kê mạch – sơ đồ vật lý
• Test mạch
IV. Nội dung các công việc và kết quả đạt được
A. Thiết kế mạch
1. Sơ đồ vật lý
a) Sơ đồ mạch
 Khối vi điều khiển
 Khối nguồn
 Khối ds1307
 Khối 74HC595 và LED
b) Nguyên lý hoạt động
• Nguyên lý hoạt động của từng linh kiện
• IC thời gian thực 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ểukhiể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
tiếp.Việc truy cập được thi hành với chỉ thị start và một mã thiết bị nhất định được cung
cấp bởi địa chỉ các thanh ghi. Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi
chỉ thị stop đươc thực thi.
b) 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 sẽ tự động được điều chỉnh với các tháng nhỏ hơn 31 ngày,bao gồm cả việc tự
động nhảy năm. Đồng hồ có thể hoạt động ở dạng 24h hoặc 12h với chỉ thị AM/PM.
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.
DS 1307 hoạt động với vai trò slave trên đường bus nối tiếp. Việc truy cập được
thi hành với chỉ thị START và một mã thiết bị nhất định được cung cấp bởi địa chỉ các
thanh ghi. Tiếp theo đó các thanh ghi sẽ được truy cập liên tục đến khi chỉ thị STOP được
thực
thi.
 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 đượcthiế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 trong. Chân
nàysẽ hoạt động khi cả Vcc và Vbat được cấp.
- X1,X2: được nối với một thạch anh tần số 32,768kHz. Là một mạch tạo dao động

ngoài, để hoạt động ổn định thì phải nối thêm 2 tụ 33pF . Cũng có DS1307 với bộ tạo dao
động trong tần số 32,768kHz, với cấu hình này thì chân X1 sẽ được nối vào tín hiệu dao
động trong còn chân X2 thì để hở.
Sơ đồ địa chỉ RAM và RTC
Thông tin về thời gian và ngày tháng được lấy ra bằng cách đọc các byte thanh ghi
thích hợp. thời gian và ngày tháng được thiết lập cũng thông qua các byte thanh ghi này
bằng cách viết vào đó những giá trị thích hợp. nội dung của các thanh ghi dưới dạng mã
BCD(binary coded decreaseimal). Bit 7 của thanh ghi seconds là bit clock halt(CH),khi
bit này được thiết lập 1 thì dao động disable, khi nó được xoá về 0 thì dao động được
enable.
Chú ý: enable dao động trong suốt quá trình cấu hình thiết lập (CH=0).Thanh ghi
thời gian thực được mô tả như sau:
DS1307 có thể chạy ở chế độ 24h cũng như 12h. Bit thứ 6 của thanh ghi hours là
bit chọn chế độ 24h hoặc 12h. khi bit này ở mức cao thì chế độ 12h được chọn. ở chế độ
12h thì bit 5 là bit AM/PM với mức cao là là PM. ở chế độ 24h thì bit 5 là bit chỉ 20h(từ
20h đến 23h).
• 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 chương trình này sử dụng loại anot chung , các led sẽ có chung nhau chân nguồn
(chân dương) chân còn lại a,b,c,d,e,f,g của led nào được nối đất thì led đó sẽ sáng.
• IC ghi dịch 74HC595
a. Chức năng :
Là ic ghi dịch 8bit kết hợp chốt dữ liệu , đầu vào nối tiếp đầu ra song song .
Chức năng: Thường dùng trong các mạch quét led 7 , led matrix …để tiết kiệm số
chân VDK tối đa (3 chân) . Có thể mở rộng số chân vi điều khiển bao nhiêu tùy thích mà
không ic nào có thể làm được bằng việc mắc nối tiếp đầu vào dữ liệu các ic với nhau .
b. Sơ đồ chân:
Sơ đồ hoạt động của chip :
• Nút nhấn

Sử dụng loại nút nhấn 2 chân.
• Thạch anh cho DS1307
Thạch anh loại 32.768kHz.
• Pin 3V cho DS1307
Pin Lithium Panasonic CR-2032.
• Nguyên lý hoạt động của toàn mạch
Dữ liệu thời gian sẽ được đưa từ khối DS1307 vào vi điều khiển rồi từ đó đưa ra
thanh ghi dịch 74HC595 rồi hiển thị lên led. Sử dụng các nút nhấn để thiết lập thời gian.
Giao tiếp giữa Vi điều khiển và DS1307 sử dụng chuẩn giao tiếp I2C.
• Giới thiệu về chuẩn giao tiếp I2C
TWI (Two-Wire Serial Intereafce) là một module truyền thông nối tiếp đồng bộ
trên các chip AVR dựa trên chuẩn truyền thông I2C. I2C là viết tắc của từ Inter-
Integrated Circuit là một chuẩn truyền thông do hãng điện tử Philips Semiconductor sáng
lập và xây dựng thành chuẩn năm 1990. Phiên bản mới nhất của I2C là V3.0 phát hành
năm 2007.
TWI (I2C) là một truyền thông nối tiếp đa chip chủ (multi-master serial computer
bus). Khái niệm “multi-master” được hiểu là trong trên cùng một bus có thể có nhiều
hơn một thiết bị làm Master, đồng thời một Slave có thể trở thành một Master nếu nó có
khả năng. Ví dụ trong một mạng TWI của nhiều AVR kết nối với nhau, bất kỳ một AVR
nào đều có thể trở thành Master ở một thời điểm nào đó. Tuy nhiên nếu một mạng dùng
một AVR điều khiển các chip nhớ (như EEPROM AT24C1024 chẳng hạn) thì khái niệm
“multi-master” không tồn tại vì các chip nhớ được thiết kế sẵn là Slave, không có khả
năng trở thành master. TWI (I2C) được thực hiện trên 2 đường SDA (Serial DATA) và
SCL (Serial Clock) trong đó SDA là đường truyền/nhận dữ liệu và SCL là đường xung
nhịp. Căn cứ theo chuẩn I2C, các đường SDA và SCL trên các thiết bị có cấu hình “cực
góp mở” (open-drain hoặc open-collector), nghĩa là cần có các “điện trở kéo lên” (pull-up
resistor) cho các đường này. Ở trạng thái nghỉ (Idle), 2 chân SDA và SCL ở mức cao.
Hình 1 mô tả một mô hình mạng TWI (I2C) cơ bản.
Hình 1. Mạng TWI (I2C) với nhiều thiết bị và 2 điện trở kéo lên cho SDA, SCL.
Tiếp theo chúng ta tìm hiểu một số khái niệm và đặc điểm của TWI. Các khái niệm

và đặc điểm tôi đề cập dưới đây được dùng cho cả TWI và I2C, nếu có sự khác biệt tôi sẽ
giải thích thêm.
Master: là chip khởi động quá trình truyền nhận, phát đi địa chỉ của thiết bị cần giao
tiếp và tạo xung giữ nhịp trên đường SCL.
Slave: là chip có một địa chỉ cố định, được gọi bởi Master và phục vụ yêu cầu từ
Master.
SDA- Serial Data: là đường dữ liệu nối tiếp, tất cả các thông tin về địa chỉ hay dữ
liệu đều được truyền trên đường này theo thứ tự từng bit một. Chú ý là trong chuẩn I2C,
bit có trọng số lớn nhất (MSB) được truyền trước nhất, đặc điểm này ngược lại với chuẩn
UART.
SCL –Serial Clock: là đường giữ nhịp nối tiếp. TWI (I2C) là chuần truyền thông nối
tiếp đồng bộ, cần có 1 đường tạo xung giữ nhịp cho quá trình truyền/nhận, cứ mỗi xung
trên đường giữ nhịp SCL, một bit dữ liệu trên đường SDA sẽ được lấy mẫu (sample). Dữ
liệu nối tiếp trên đường SDA được lấy mẫu khi đường SCL ở mức cao trong một chu kỳ
giữ nhịp, vì thế đường SDA không được đổi trạng thái khi SCL ở mức cao (trừ START
và STOP condition). Chân SDA có thể được đổi trạng thái khi SCL ở mức thấp.
START Condition-Điều kiện bắt đầu: từ trạng thái nghỉ, khi cả SDA và SCL ở mức
cao nếu Master muốn thực hiện một “cuộc gọi”, Master sẽ kéo chân SDA xuống thấp
trong khi SCL vẫn cao. Trạng thái này gọi là START Condition (chúng ta gọi tắt là S).
STOP Condition-Điều kiện kết thúc: sau khi thực hiện truyền/nhận dữ liệu, nếu
Master muốn kết thúc quá trình nó sẽ tạo ra một STOP condition. STOP condition được
Master thực hiện bằng cách kéo chân SDA lên cao khi đường SCL đang ở mức cao.
STOP condition chỉ được tạo ra sau khi địa chỉ hoặc dữ liệu đã được truyền/nhận.
REPEAT START – Bắt đầu lặp lại: khoảng giữa START và STOP condition là
khoảng bận của đường truyền, các Master khác không tác động được vào đường truyền
trong khoảng này. Trường hợp sau khi kết thúc truyền/nhận mà Master không gởi STOP
condition lại gởi thêm 1 START condition gọi là REPEAT START. Khả năng này
thường được dùng khi Master muốn lấy dữ liệu liên tiếp từ các Slaves. Hình bên dưới mô
tả các Master tạo ra START, STOP và REPEAT START.
Address Packet Format – Định dạng gói địa chỉ: trên mạng TWI (I2C), tất cả các

thiết bị (chip) đều có thể là Master hay Slave. Mỗi thiết bị có một địa chỉ cố định gọi là
Device address. Khi một Master muốn giao tiếp với một Slave nào đó, nó trước hết tạo ra
một START condition và tiếp theo là gởi địa chỉ Device address của Slave cần giao tiếp
trên đường truyền, vì thế xuất hiện khái niệm “gói địa chỉ” (Address Packet). Gói địa chỉ
trong TWI (I2C) có định dạng 9 bits trong đó 7 bit đầu (gọi là SLA, được gởi liền sau
START condition) chứa địa chỉ Slave, một bit READ/WRITE và một bit ACK-
Ackknowledge (xác nhận). Do bit địa chỉ có độ dài 7 bits nên về mặt lý thuyết, trên 1
mạng TWI (I2C) có thể tồn tại tối đa 2^7=128 thiết bị có địa chỉ riêng biệt. Tuy nhiên, có
một số địa chỉ không được sử dụng như các địa chỉ có định dạng 1111xxx (tức các địa chỉ
lớn hơn hoặc bằng 120 không được dùng). Riêng địa chỉ 0 được dùng cho “cuộc gọi
chung” (General call). Bit READ/WRITE (R/W) được truyền tiếp sau 7 bit địa chỉ là bit
báo cho Slave biết Master muốn “đọc” hay “ghi” vào Slave. Nếu bit này bằng 0 (gọi là
W) thì quá trình “Ghi” dữ liệu từ Master đến Slave được yêu cầu, nếu bit này bằng 1 (gọi
là R) thì Master muốn “đọc” dữ liệu từ Slave về. Tám bits trên (SLA+R/W) được Master
phát ra sau khi phát START condition, nếu một Slave trên mạng nhận ra rằng địa chỉ mà
Master yêu cầu trùng khớp với Device address của chính mình, nó sẽ “đáp trả” lại Master
bằng cách phát ra 1 tín hiệu “xác nhận” ACK bằng cách kéo chân SDA xuống thấp trong
xung thứ 9. Ngược lại, nếu không có Slave đáp ứng lại, chân SDA vẫn ở mức cao trong
xung giữ nhịp thứ 9 thì gọi là tín hiệu “không xác nhận” – NOT ACK, lúc này Master cần
có những ứng xử phù hợp tùy theo mỗi trường hợp cụ thể, ví dụ Master có thể gởi STOP
condition và sau đó phát lại địa chỉ Slave khác…Như vậy, trong 9 bit của gói địa chỉ thì
chỉ có 8 bit được gởi bởi Master, bit còn lại là do Slave. Ví dụ Master muốn yêu cầu
“đọc” dữ liệu từ Slave có địa chỉ 43, nó cần phát đi một byte như sau trên đường truyền:
(43<<1)+1, trong đó (43<<1) là dịch số 43 về bên trái 1 vị trí vì 7 bit địa chỉ nằm ở các vị
trí cao trong gói địa chỉ, sau đó cộng giá trị này với “1” tức là quá trình “đọc” được yêu
cầu.
General call – Cuộc gọi chung: khi Master phát đi gói địa chỉ có dạng 0 (thực chất là
0+W) tức nó muốn thực hiện một cuộc gọi chung đến tất cả các Slave. Tất nhiên, cho
phép hay không cho phép cuộc gọi chung là do Slave quyết định. Nếu các Slave được cài
đặt cho phép cuộc gọi chung, chúng sẽ đáp lại Master bằng ACK. Cuộc gọi chung thường

xảy ra khi Master muốn gởi dữ liệu chung đến các Slaves. Chú ý là cuộc gọi chung có
dạng 0+R là vô nghĩa vì không thể có chuyện Master nhận dữ liệu từ tất cả các Slave
cùng thời điểm.
Data Packet Format – Định dạng gói dữ liệu: sau khi địa chỉ đã được phát đi, Slave
đã đáp lại Master bằng ACK thì quá trình truyền/nhận dữ liệu sẽ diễn ra giữa cặp
Master/Slave này. Tùy vào bit R/W trong gói địa chỉ, dữ liệu có thể được truyền theo
hướng từ Master đến Slave hay từ Slave đến Master. Dù di chuyển theo hướng nào, gói
dữ liệu luôn bao gồm 9 bits trong đó 8 bits đầu là dữ liệu và 1 bit cuối là bit ACK. Tám
bits dữ liệu do thiết bị phát gởi và bit ACK do thiết bị nhận tạo ra. Ví dụ khi Master thực
hiện quá trình gởi dữ liệu đến Slave, nó sẽ phát ra 8 bits dữ liệu, Slave nhận và phát lại
ACK (kéo SDA xuống 0 ở xung thứ 9), sau đó Master sẽ quyết định gợi tiếp byte dữ liệu
khác hay không. Nếu Slave phát tín hiệu NOT ACK (không tác động SDA ở xung thứ 9)
sau khi nhận dữ liệu thì Master sẽ kết thúc quá trình gởi bằng cách phát đi STOP
condition. Hình bên dưới mô tả định dạng gói dữ liệu trong TWI (I2C).
Phối hợp gói địa chỉ và dữ liệu: một quá trình truyền/nhận TWI (I2C) thường được
bắt đầu từ Master, Master phát đi một START condition sau đó gởi gói địa chỉ SLA+R/W
trên đường truyền. Tiếp theo nếu có một Slave đáp ứng lại, dữ liệu có thể truyền/nhận
liên tiếp trên đường truyền (1 hoặc nhiều byte liên tiếp). Khung truyền thông thường
được mô tả như hình bên dưới.
Multi-Master Bus –Đường truyền đa chip chủ: như đã trình bày ở trên, TWI (I2C) là
chuẩn truyền thông đa chip chủ, nghĩa là tại một thời điểm có thể có nhiều hơn 1 chip làm
Master nếu các chip này phát ra START condition cùng lúc. Nếu các Master có cùng yêu
cầu và thao tác đối với Slave thì chúng có thể “cùng tồn tại” và quá trình truyền/nhận có
thể thành công. Tuy nhiên, trong đa số trường hợp sẽ có một số Master bị “thất lạc”
(lost). Một Master bị lost khi nó truyền/nhận 1 mức cao trên SDA trong khi các Master
khác truyền/nhận 1 mức thấp.
2. Layout
B. Test mạch
1. Sử dụng board mạch vi điều khiển đã có sẵn để điều khiển mạch này
Sử dụng board có sẳn ở công ty, và board này sử dụng chip atmega16.

2. Lập trình cho vi điều khiển để test mạch
a) Sử dụng phần mềm CodevisionAVR
- Hỗ trợ sẵn thư viện giao tiếp DS1307.
b) Chương trình test
- Hàm Nhận tín hiệu nút nhấn
void quet()
{
if(kt==0)
{
if(s%2==1)
{
hienthi(ma[m%10]);
hienthi(ma[m/10]);
}
else
{
hienthi(ma1[m%10]);
hienthi(ma1[m/10]);
}
hienthi(ma[h%10]);
hienthi(ma[h/10]);
Latch();
}
if(kt==1)
{
if(up==1)
{
h++;
if(h>23)h=0;
}

delay_ms(20);
rtc_set_time(h,m,s);
hienthi(0xff);
hienthi(0xff);
hienthi(ma[h%10]);
hienthi(ma[h/10]);
Latch();
}
if(kt==2)
{
if(up==1)
{
m++;
if(m>59)
m=0;
}
delay_ms(20);
rtc_set_time(h,m,s);
hienthi(ma[m%10]);
hienthi(ma[m/10]);
hienthi(0xff);
hienthi(0xff);
Latch();
}
}
void ktphim()
{
if(set==1)
{
kt++;

if(kt>2)kt=0;
delay_ms(20);
}
}
- Get và set thời gian trong DS1307
void rtc_get_time(unsigned char *hour,unsigned char *min,unsigned char *sec);
void rtc_set_time(unsigned char hour,unsigned char min,unsigned char sec);
void rtc_get_date(unsigned char *date,unsigned char *month,unsigned char *year);
void rtc_set_date(unsigned char date,unsigned char month,unsigned char year);
- Xuất thời gian ra 74HC595 để hiển thị ra led 7 đoạn
void hienthi(unit8 x)
{
unsigned int i,temp;
for(i=0;i<8;i++)
{
temp=x;
temp=temp&0x80;
if(temp==0x80)
DS=1;
else
DS=0;
x*=2;
SH_CP=0;
SH_CP=1;

}
}
void Latch()
{
ST_CP=0;

ST_CP=1;
}
V. Kết quả đạt được qua đợt thực tập
Trên công ty, chúng em không những được giao thực hiện đề tài này mà còn thực hiện
các công việc khác cho công ty, nên, ngoài những kinh nghiệm đạt được từ đề tài này thì
còn có được kiến thức và kinh nghiệm từ các công việc khác, cụ thể là:
 Những kiến thức lý thuyết đã được củng cố:
• Ngôn ngữ lập trình C// trên họ AVR (Atmega16).
• Kiến thức về điện, điện tử và một số linh kiện điện tử ứng dụng cho các
mạch trên công ty như led đơn, led 7 đoạn, led công suất, điện trở,
transistor, 7805, opto PC817, tụ điện (không phân cực và có phân cực),
diot chỉnh lưu, van nước (solenoi), mosfet công suất kênh N IRF540,
mosfet công suất kênh P IRF9540, DS1307, 74HC595,
• Thiết kế mạch in.
 Những kỹ năng thực hành đã được học thêm :
• Kỹ năng làm việc nhóm được cải thiện trong môi trường thực tế.
• Tính toán thông số điện trở cho một hệ thống.
• Kỹ năng hàn mạch được nâng cao.
 Những kinh nghiệm thực tiễn đã tích lũy được :
• Trong quá trình thực tập cũng đã được có thêm kinh nghiệm hiểu biết và
quy trình làm bộ đèn công suất dùng để trình chiếu cho công trình biểu
diễn Nhạc Nước.
• Tiếp cận với một số thiết bị chuyên dùng trong lĩnh vực điện tử như
đồng hồ đo điện chuyên dụng và một số thiết bị trong công nghiệp như
biến tần.

×