PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 29-04-2011, 01:45 PM   #1
thoai_phamkhac
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 7
:
Cần giúp đỡ RTC DS1307 + PIC 16F877A

sau khi tham khảo một số vị dụ của các pro trên forum , mình cũng làm 1 mạch RTC như sau :
+) Con ds1307 nối (SDA,SCL,SQW)---->(RC4,RC3,RB0)
+) A[0..4] nối đến con 74HC195 xuất ra led
+) Port D nối đến led
mình cũng viết ra đoạn code dưới () nhưng hình như mình khi nạp thì chỉ thấy 2 chân SDA SCL nháy liên tục , các chân khác không thay đổi điện áp.
Mình không biết sữa ntn nên lên forum mong các pro chỉ giùm (đề tài mình đang làm đồ án nên mong đc hoàn thành sớm)
[I]#include <16F877A.h>
#include <DEF_877A.h>
#include <DS1307.c>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use fast_io(d)
#use fast_io(a)

int8 second,minute,hour,day,date,month,year;
int i,so;
int8 time[16]={};
int8 led7doan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};

#int_ext
void ngat_RB0()
{
enable_interrupts(GLOBAL);
enable_interrupts(int_ext);
ext_int_edge(L_TO_H);
}
void ghivaoDS1307()
{
write_DS1307(0x00,1);
write_DS1307(0x01,1);
write_DS1307(0x02,1);
write_DS1307(0x03,1);
write_DS1307(0x04,1);
write_DS1307(0x05,1);
write_DS1307(0x06,1);
write_DS1307(0x07,11);
}
void docDS1307()
{
BYTE second,minute,hour,day,date,month,year;
second=read_DS1307(0x00);
minute=read_DS1307(0x01);
hour =read_DS1307(0x02);
day =read_DS1307(0x03);
date =read_DS1307(0x04);
month =read_DS1307(0x05);
year =read_DS1307(0x06);
}
void ghi_ra_led()
{
time[0]=(second & 0x0f)>>4; //Giay hang chuc
time[1]=second & 0x0f; //Giay don vi
time[2]=(minute & 0xf0)>>4; //Phut hang chuc
time[3]=minute & 0x0f; //Phut don vi
time[4]=(hour & 0xf0)>>4; //Gio hang chuc
time[5]=hour & 0x0f; //Gio don vi
time[4]=(hour & 0xf0)>>4; //Gio hang chuc
time[6]=day & 0x0f; //Thu
time[7]=0;
time[8]=(date & 0xf0)>>4;
time[9]=date & 0x0f; //Ngay don vi
time[10]=(month & 0xf0)>>4;
time[11]=month & 0x0f; //Thang hang don vi
time[12]=2; //Nam hang ngan
time[13]=0; //Nam hang tram
time[14]=(year & 0xf0)>>4; //Nam hang chuc
time[15]=year & 0x0f; //nam hang don vi
}
void main()
{
set_tris_a(0x00);
set_tris_d(0x00);
delay_ms(50);
init_DS1307();
ghivaoDS1307();
ngat_RB0();
while(true)
{
docDS1307();
ghi_ra_led();
for(i=0;i<=15;i++)
{
output_a(i);
so=time;
output_d(led7doan[so]);
delay_ms(10);
}

}

}

đoạn code mình sử dụng thêm file ds1307.c down twuf forum về
thoai_phamkhac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-04-2011, 10:57 PM   #2
thoai_phamkhac
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 7
:
hix hix, ko co ai giup do het
thoai_phamkhac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 12:29 AM   #3
tanbka
Đệ tử 5 túi
 
Tham gia ngày: Dec 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 91
:
Vấn đề của bạn cụ thể là bị làm sao, mình thấy bạn nói khi nạp chỉ có 2 chân SDA và SDl nháy liên tục, tức là bạn không nạp được, hay là LED hiển thị giờ không đúng
tanbka vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 04:17 PM   #4
thoai_phamkhac
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 7
:
khi mình mô phỏng = proteus thì chân SOUT của DS không thay đổi mức đa (hình như nó không phát xung 1Hz) , còn 2 chân SDA SCL thì hình như cứ ghi dữ liệu liên tục từ pic--> ds. mình nghĩ bị sai code phần ghi cho DS nhưng không biết bị lỗi chỗ nào , mong bạn chỉ giáo
thoai_phamkhac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2011, 04:19 PM   #5
thoai_phamkhac
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 7
:
các gt sec , min ,..... không nhận đc nên không có gì xuất ra led hết bạn ơi
thoai_phamkhac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-05-2011, 10:54 PM   #6
thoai_phamkhac
Nhập môn đệ tử
 
Tham gia ngày: Jun 2010
Bài gửi: 7
:
mấy anh ơi , cho em hỏi khi em đưa hàm đọc DS1307 với hàm ghi ra led vào vòng lặp while thì em có cần dùng hàm ngắt RB0 ko ?
thoai_phamkhac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2011, 12:00 AM   #7
danghien719
Đệ tử 3 túi
 
danghien719's Avatar
 
Tham gia ngày: Jan 2010
Bài gửi: 52
:
Trích:
Nguyên văn bởi thoai_phamkhac View Post
mấy anh ơi , cho em hỏi khi em đưa hàm đọc DS1307 với hàm ghi ra led vào vòng lặp while thì em có cần dùng hàm ngắt RB0 ko ?
bạn dùng ngắt để làm gì ? code chuối quá
nên xây dựng 1 thư viện cho ds1307 để dùng về sau.
Nếu cần mình send nguyên project của mình làm, có thể nói là tutorial
Đây là máy của bạn, có gì cứ pm : Y!M : danghien_004
thân
danghien719 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-05-2011, 01:00 AM   #8
vanquyet.rc
Nhập môn đệ tử
 
Tham gia ngày: Dec 2010
Bài gửi: 4
:
undefinedMình cũng đang rất quan tâm về vấn đề này! mong bạn giúp đỡ! cho mình xin tài liệu của bạn về :vanquyet.rc@gmail.com với nhá!thank bạn nhiều
Trích:
Nguyên văn bởi danghien719 View Post
bạn dùng ngắt để làm gì ? code chuối quá
nên xây dựng 1 thư viện cho ds1307 để dùng về sau.
Nếu cần mình send nguyên project của mình làm, có thể nói là tutorial
Đây là máy của bạn, có gì cứ pm : Y!M : danghien_004
thân
vanquyet.rc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-06-2011, 09:51 PM   #9
thangkho89
Nhập môn đệ tử
 
Tham gia ngày: Feb 2010
Bài gửi: 7
:
code viết theo ý hiểu của mình.nhưng mình chưa làm mạch thực tế với DS1307.ko hiểu code của mình nó có chạy được ko?. các bạn xem qua có gì sai thì chỉ cho mình với nha. code và mạch mô phỏng chạy ok
File Kèm Theo
File Type: rar realtime display lcd16x2 use Ds1307.rar (83.6 KB, 243 lần tải)
thangkho89 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à 01: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