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 13-12-2008, 02:26 PM   #1
lequocbao
Đệ tử 6 túi
 
lequocbao's Avatar
 
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
:
Chà! ngoài con ds12887 này ra mình còn con RTC nào khác không anh Namqn(càng ít chân càng tốt)?vì pic em còn dư có 1 port (8 pins) ah!vậy là không đủ để giao tiếp rồi!
lequocbao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-12-2008, 04:00 PM   #2
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 lequocbao View Post
Chà! ngoài con ds12887 này ra mình còn con RTC nào khác không anh Namqn(càng ít chân càng tốt)?vì pic em còn dư có 1 port (8 pins) ah!vậy là không đủ để giao tiếp rồi!
Có khá nhiều RTC giao tiếp với vi điều khiển bằng các giao thức nối tiếp. Chẳng hạn, DS1307 dùng giao thức I2C, đã được giới thiệu trong tutotial 4 cho dsPIC của tôi. Bạn có thể tham khảo thông tin về DS1307 trong tài liệu đó.

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 15-12-2008, 10:59 AM   #3
lequocbao
Đệ tử 6 túi
 
lequocbao's Avatar
 
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
:
Em đã chọn dùng con ds1307 r (chỉ có 8 chân thôi hì hì).Cảm ơn anh Namqn nhiều!
Nhưng anh cho em hỏi là ds1307 chỉ cho nhập xuất dữ liệu dạng mã BCD, mà mã BCD là như vậy phải không anh?
vd:
số 0(decimal):00000000
số 1 :00000001
số 2 :00000010
số 3 :00000011
số 4 :00000100
số 5 :00000101
số 6 :00000110
số 7 :00000111
số 8 :00001000
số 9 :00001001

nếu đúng thì mình có cách nào chuyển thành số decimal không?tại vì em đang xử lý dữ liệu trong pic bằng số decimal.
lequocbao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-12-2008, 04:52 PM   #4
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 lequocbao View Post
Em đã chọn dùng con ds1307 r (chỉ có 8 chân thôi hì hì).Cảm ơn anh Namqn nhiều!
Nhưng anh cho em hỏi là ds1307 chỉ cho nhập xuất dữ liệu dạng mã BCD, mà mã BCD là như vậy phải không anh?
vd:
số 0(decimal):00000000
số 1 :00000001
số 2 :00000010
số 3 :00000011
số 4 :00000100
số 5 :00000101
số 6 :00000110
số 7 :00000111
số 8 :00001000
số 9 :00001001

nếu đúng thì mình có cách nào chuyển thành số decimal không?tại vì em đang xử lý dữ liệu trong pic bằng số decimal.
Số BCD thì mã hóa như vậy là đúng rồi. 4 bit cho một chữ số thập phân, chẳng hạn, 99 sẽ có mã BCD là '10011001'.

Dữ liệu trong vi điều khiển được lưu ở dạng nhị phân. Không rõ bạn lưu dữ liệu và xử lý bằng số decimal như thế nào, và thực tế bạn thực hiện những phép toán gì?

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 16-12-2008, 12:38 PM   #5
lequocbao
Đệ tử 6 túi
 
lequocbao's Avatar
 
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
:
Thì các biến em đều khai báo là int8,gán giá trị cho biến là các số thập phân và thực hiện các phép toán +,- ,so sánh bình thường.
lequocbao vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-12-2008, 04:33 PM   #6
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 lequocbao View Post
Thì các biến em đều khai báo là int8,gán giá trị cho biến là các số thập phân và thực hiện các phép toán +,- ,so sánh bình thường.
Nếu vậy bạn chỉ cần chuyển mã BCD về nhị phân thôi. Các giá trị trong mã nhị phân, thập phân, hay thập lục phân đều như nhau, chỉ có cách biểu diễn (đối với con người) là khác nhau thôi. Tức là, giá trị 11 trong mã nhị phân, thập phân, hay thập lục phân đều vẫn là 11, chỉ khác là được viết thành '00001011' trong mã nhị phân, '11' trong mã thập phân, và 'B' trong mã thập lục phân (để cho thuận tiện khi viết).

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

thay đổi nội dung bởi: namqn, 16-12-2008 lúc 05:44 PM. Lý do: viết nhầm
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-12-2008, 05:19 PM   #7
lequocbao
Đệ tử 6 túi
 
lequocbao's Avatar
 
Tham gia ngày: Oct 2008
Nơi Cư Ngụ: HCM
Bài gửi: 137
:
Như vậy với lệnh:
x=0b00001010;
if (x=0xa);
thì kết quả vẫn là true đúng không anh?

và khi em nhận 01 byte dữ liệu từ ds1307 vào pic và byte đó được lưu tạm thời trong biến có kiểu là int8 thì mặc nhiện byte dữ liệu đó đang được biểu diễn dưới dạng nhị phân đúng không anh?
vd:
ds1307 truyền đi số 10 (mã BCD) là:00000001(MSB đi đầu - chổ này e không chắc có đúng không nữa,nếu sai anh góp ý giúp e nha!).
nhưng khi pic lần lượt nhận vào sẽ là:10000000(binary) sẽ có giá trị là 128 thập phân.
Em hiểu như vậy có đúng không?




anh Namqn ơi! 11 thập phân là 00001011b chứ đâu phải là 00010011b đâu anh!hì hì...

thay đổi nội dung bởi: lequocbao, 16-12-2008 lúc 05:40 PM.
lequocbao 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


Múi giờ GMT. Hiện tại là 06:09 AM.


Đượ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