PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-01-2007, 10:18 AM   #1
vnbtech
Đệ tử 2 túi
 
Tham gia ngày: Dec 2006
Nơi Cư Ngụ: La Jolla, San Diego. Heaven on earth
Bài gửi: 26
:
chao ban,
BCD uses 4 binary bits to encode each decimal digit. Vi' du. la: ban muon dua du lieu ngay 27 vao trong con IC, thi ban phai dung 0x27, chung khong phai la 0x1B. 0x1B la sai roi, khong phai la ngay 27 theo chuan BCD dau.

Vi' du ban dung thong tin sau de "initialize" con timer IC:
gia^y : 45 second
Phut : 37 phu't
Gio : 8 gio.
Thi ban phai dung cai data sau day de dua vao : 0x45, 0x37, 0x08

sau khi dua vao, gia su*? 50 giay sau, ba.n doc cai thoi gio tu con IC, luc no' con IC se cho ban data sau:
Giay = 0x35
Phut = 0x38
Gio = 0x08
Neu ban muon hien thi. tren LCD cho du'ng thi ban phai doi ra nhu sau:
char second_digit1, second_digit2;
second_digit2 = (Giay / 0x10) + '0' = (0x35 / 0x10) + 0x30 = 0x33
second_digit1 = (Giay % 0x10) + '0' = (0x35 % 0x10) + 0x30 = 0x35

roi ban co' the display giong nhu display character:
lcd_display_char(second_digit2);
lcd_display_char(second_digit1);

Ban cu lam nhu vay, minh tin chac ban se da.p duoc yeu cau. Neu ban co' thac mac gi, thi cu hoi tiep nhe'.

VNBTECH
vnbtech vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2007, 01:23 PM   #2
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Cảm ơn các bạn đã quan tâm . hôm nay mình đã làm được rồi . cái con số mình nhập vào DS không qua trọng . là kiểu dữ liệu gi cũng ok , hex hoặc decimal . nhưng quan trọng là lúc đọc ra . mình phải chuyển số đó sang hex , rồi xuất thẳng ra LCD luôn . bây giờ thì ok rồi . nhưng mình còn chưa biết cái vụ AM và PM . lại còn năm nhuận hay không nhuận để mà biết tự cộng thêm ngày cho tháng 2 . nếu các bạn biết , mình mong các bạn chia sẻ nha .

a, mà lúc mình nạp lần đầu , mình nạp thẳng số hex luôn . vd :
năm : $07
tháng : $01
ngày : $28
giờ : $13
phút : $25
giây : $00
tương ứng khi xuất ra LCD là : 28 - 01 - 07 13:25:00

namqn: đây đâu phải là số hex, nó vẫn là dạng BCD đó chứ. Bạn thử nạp $0F vào ô nhớ đếm năm rồi đọc lại xem sẽ được số nào.

thay đổi nội dung bởi: namqn, 29-01-2007 lúc 07:32 PM.
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-01-2007, 08:44 PM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi hatuan296 View Post
Cảm ơn các bạn đã quan tâm . hôm nay mình đã làm được rồi . cái con số mình nhập vào DS không qua trọng . là kiểu dữ liệu gi cũng ok , hex hoặc decimal . nhưng quan trọng là lúc đọc ra . mình phải chuyển số đó sang hex , rồi xuất thẳng ra LCD luôn . bây giờ thì ok rồi . nhưng mình còn chưa biết cái vụ AM và PM . lại còn năm nhuận hay không nhuận để mà biết tự cộng thêm ngày cho tháng 2 . nếu các bạn biết , mình mong các bạn chia sẻ nha .

a, mà lúc mình nạp lần đầu , mình nạp thẳng số hex luôn . vd :
năm : $07
tháng : $01
ngày : $28
giờ : $13
phút : $25
giây : $00
tương ứng khi xuất ra LCD là : 28 - 01 - 07 13:25:00
Chip DS1307 tự động điều chỉnh ngày theo năm nhuận cho đến 2100. Nếu bạn chọn chế độ 12 giờ (bit6 = 1) ở thanh ghi đếm giờ (02h) thì bit5 sẽ là bit báo PM/AM (mức 1 là PM). Khi đó chỉ có bit4 được dùng cho hàng chục giờ. Ngược lại, khi ở chế độ 24 giờ (bit6 = 0) thì bit5 sẽ được dùng làm bit thứ hai của hàng chục giờ. Nếu thay đổi giữa 12 và 24 giờ thì phải nhập lại giá trị giờ.

Bạn chịu khó đọc datasheet đi.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-01-2007, 01:17 AM   #4
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Trích:
Nguyên văn bởi namqn View Post
Chip DS1307 tự động điều chỉnh ngày theo năm nhuận cho đến 2100. Nếu bạn chọn chế độ 12 giờ (bit6 = 1) ở thanh ghi đếm giờ (02h) thì bit5 sẽ là bit báo PM/AM (mức 1 là PM). Khi đó chỉ có bit4 được dùng cho hàng chục giờ. Ngược lại, khi ở chế độ 24 giờ (bit6 = 0) thì bit5 sẽ được dùng làm bit thứ hai của hàng chục giờ. Nếu thay đổi giữa 12 và 24 giờ thì phải nhập lại giá trị giờ.

Bạn chịu khó đọc datasheet đi.

Thân,
Cảm ơn bạn đã trả lời tin . trước khi thử nghiệm con DS này , mình cũng đã xem datasheet của nó rất nhiều lần . và datasheet thì ai xem cũng như ai mà thôi . quan trọng là người nào nắm bắt được vấn đề nhanh lẹ . Và hiện giờ thì mình cũng đã làm được chế độ AM\PM . Dù sao cũng rất cảm ơn những kinh nghiệm mà các bạn đã chia sẽ .
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-01-2007, 03:16 AM   #5
hatuan296
Làm quen với PIC
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: Hcm
Bài gửi: 160
:
Bài thực hành

sẵn tiện đây mình đưa lên diễn đàn đề tài đồng hồ số dùng DS1307 mà mấy hôm nay mình nghiên cứu , học hỏi kinh nghiệm của anh em .

Đề tài dùng ngôn ngữ Picbasic pro . pic 18f458 kết nối I2c với DS1307 .bạn thông cảm , mình chưa rành về Proteus cho lắm nên cũng chưa biết con xtal và pin backup ở đâu . nên đành thay 2 con đó bằng 2 con điện trở . .
Sơ đồ kết nối như sau :

1\dành cho lcd :
portb từ b.4 đến b.7 kết nối từ D4 đến D7 của lcd
portb.1 >> rs
portb.2 >>rw
portb.3 >>e

2\ dành cho DS1307 :
porta.0 >> sda
porta.1 >> sc

3\ dành cho các nú bấm :
portc.0 >> nút nạp dữ liệu vào DS
portc.1 >> nút vào chương trình cài ngày giờ
portc.2 , portc.3 >> tương ứng với nút giảm , tăng dữ liệu .

các bạn xem file đính kèm sẽ rõ nha .
nếu có thắc mắc , hãy liên hệ mình . h_a_tuan2002@yahoo.com
đây là phần mềm cho con pic . mình mới làm quen nên chắc sẽ có nhiều sai sót . nếu có gì mong anh em giúp đỡ mình hoàn thiện phần mềm nha . cảm ơn nhiều .
File Kèm Theo
File Type: txt ds1307.txt (11.7 KB, 616 lần tải)
File Type: rar zip.rar (69.2 KB, 1415 lần tải)
hatuan296 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2008, 01:28 PM   #6
rhinoceros
Đệ tử 1 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 17
:
bạn viết chương trình bằng ASM.mình dùng C để viết nên đọc chương trình của bạn minh không hiểu được.mình đang tìm hiểu về con DS1307 này,không biết bắt đầu từ đâu,bạn có thể nói cho mình các bước để đọc,ghi lên con DS1307 này không.mình kết nối trực tiếp với VDK không dùng IC phụ
cảm ơn trước nhá
rhinoceros vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 11-10-2009, 10:38 AM   #7
const_nos
Đệ tử 2 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 33
:
Smile

Trích:
Nguyên văn bởi hatuan296 View Post
Cảm ơn các bạn đã quan tâm . hôm nay mình đã làm được rồi . cái con số mình nhập vào DS không qua trọng . là kiểu dữ liệu gi cũng ok , hex hoặc decimal . nhưng quan trọng là lúc đọc ra . mình phải chuyển số đó sang hex , rồi xuất thẳng ra LCD luôn . bây giờ thì ok rồi . nhưng mình còn chưa biết cái vụ AM và PM . lại còn năm nhuận hay không nhuận để mà biết tự cộng thêm ngày cho tháng 2 . nếu các bạn biết , mình mong các bạn chia sẻ nha .

a, mà lúc mình nạp lần đầu , mình nạp thẳng số hex luôn . vd :
năm : $07
tháng : $01
ngày : $28
giờ : $13
phút : $25
giây : $00
tương ứng khi xuất ra LCD là : 28 - 01 - 07 13:25:00

namqn: đây đâu phải là số hex, nó vẫn là dạng BCD đó chứ. Bạn thử nạp $0F vào ô nhớ đếm năm rồi đọc lại xem sẽ được số nào.
Ủa.Mình có thắc mắc: Con DS nó lưu sẵn thời gian bên trong nó .Mình chỉ cần đọc nó ra với địa chỉ thanh ghi tương ứng để có được là có được thới gian thôi chứ.Tại sao lại phải nhậpo vào rồi mới đọc ra?Mình ko hiểu.Bạn có thể giải thích chổ nầy được không?Sắn tiện bạn post luôn chươnmg trình của bạn lên để mọi người cùng tham khảo
const_nos vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Làm ơn giúp đỡ lập trình PIC với DS1307, EEPROM enti PIC - Thiết kế và Ứng dụng 1 20-11-2006 06:19 PM


Múi giờ GMT. Hiện tại là 10:28 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam