PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Giao tiếp USB, CAN, I2C, SPI, USART... (http://www.picvietnam.com/forum/forumdisplay.php?f=45)
-   -   Làm một cái đồng hồ điện tử mini thời gian thực với LCD (http://www.picvietnam.com/forum/showthread.php?t=2498)

babybaby002 24-11-2010 10:43 AM

anh Cuong cho em xin cái code <flex_lcd_1.c> ko có code này sao đủ đc hàm main, anh cuong có thể gửi đoạn code này vào mail cho em nha bnktunganh@gmail.com. thanks

babybaby002 27-11-2010 09:43 PM

"Đây là 1 cái đồng hồ lcd hoàn chỉnh,gồm mô phỏng proteus và CCS
Tiếc là có 1 lỗi excessive cpu load làm sản phẩm mô phỏng chỉ chạy đc trong khoảng 5s,sau đó thì...hỏi Chúa để biết thêm chi tiết"
dtvtb.

chào bác dtvtb, mình đang làm thử cái project này và mình đã down cái flie của bác về mà sao nó hiện thị lên LCD thì tốt mà time và ngày tháng năm nhảy lung tung, năm lên đến 2167... bác xem lại code ds1307 và update time hay sao ấy.

thienson_000 01-12-2010 11:14 AM

anh em xin chỉ giáo lúc mình mô phỏng protues thì giá trị giây chỉ chạy được khoảng 10 là không đếm nữa trong khi giá trị giây bên con ds1307 vẫn chạy bình thường là bị sao xin chỉ giúp

thienson_000 01-12-2010 11:16 AM

Trích:

Nguyên văn bởi babybaby002 (Post 40408)
"Đây là 1 cái đồng hồ lcd hoàn chỉnh,gồm mô phỏng proteus và CCS
Tiếc là có 1 lỗi excessive cpu load làm sản phẩm mô phỏng chỉ chạy đc trong khoảng 5s,sau đó thì...hỏi Chúa để biết thêm chi tiết"
dtvtb.

chào bác dtvtb, mình đang làm thử cái project này và mình đã down cái flie của bác về mà sao nó hiện thị lên LCD thì tốt mà time và ngày tháng năm nhảy lung tung, năm lên đến 2167... bác xem lại code ds1307 và update time hay sao ấy.

mã chuyển đổi BCD có vấn đề bạn copy mã chuyển đổi khác sẽ chạy đc

babybaby002 03-12-2010 02:21 PM

đồng hồ số đo thời gian thực dùng ds1307 và hiển thị lên LCD
 
Trích:

Nguyên văn bởi thienson_000 (Post 40496)
mã chuyển đổi BCD có vấn đề bạn copy mã chuyển đổi khác sẽ chạy đc

hix, vậy lấy mã chuyển đổi BCD khác ở đâu giờ? ai có mã chuyển đổi BCD đúng ko cho mình với? mình đang làm về cái mạch này mà bị kẹt mấy tuần nay, ai có mạch hoàn chỉnh chạy đúng thì post protues và cod lên cho mình tham khảo với nhé, thanks

thienson_000 05-12-2010 11:28 AM

1 Attachment(s)
Trích:

Nguyên văn bởi babybaby002 (Post 40546)
hix, vậy lấy mã chuyển đổi BCD khác ở đâu giờ? ai có mã chuyển đổi BCD đúng ko cho mình với? mình đang làm về cái mạch này mà bị kẹt mấy tuần nay, ai có mạch hoàn chỉnh chạy đúng thì post protues và cod lên cho mình tham khảo với nhé, thanks

bạn thử file ds nay xem sao minh ko up len dc
/*------- Chuyên du liêu mã BIN cua MASTER -> du liêu mã BCD cho DS1307-----*/
int8 decToBcd(int8 val) // MASTER -> DS1307.
{ // x -> y.
int8 x,y; //vd: 7 -> 7 = 0x07.
x = val; //vd: 12 -> 18 = 0x12.
if(x<10)
{
y = x;
}
else if(x>=10)
{
y = (x/10 * 6) + x; //vd: 29 -> 41 = 0x29.
}
return(y); //vd: 35 -> 53 = 0x35.
}


/*------- Chuyên du liêu mã BCD cua DS1307 -> du liêu mã BIN cho MASTER-----*/
int8 bcdToDec (int8 val)
{ // MASTER <- DS1307.
int8 x,y,z; // x <- y.
y = val; //vd: 5 <- 5 = 0x05.
i=0; //vd: 10 <- 16 = 0x10.
if(y<10) //vd: 20 <- 32 = 0x20.
{ //vd: 30 <- 48 = 0x30.
x = y; //vd: 40 <- 64 = 0x40.
z = x; //vd: 50 <- 80 = 0x50.
} //.....
else if(y>=10)
{
do {
x = y - (6 * i);
z = (x/10 * 6) + x;
i++;
}
while(z!=y);
}
return(x);
}

babybaby002 05-12-2010 02:16 PM

đồng hồ số đo thời gian thực dùng ds1307 và hiển thị lên LCD
 
1 Attachment(s)
mình đang làm về đồng hồ số đo thời gian dùng ds1307 hiển thị lên LCD ,mình viet code hoài mà vẫn chạy sai,mình viết 5 đoạn code và built ra 5 file hex, mà không file hex nào chạy hoàn chỉnh cả, mình có post protues và 5 file code lên, các bạn xem dùm mình và chỉnh sửa dùm mình với nhá, thanks các bạn nhiều lắm.

babybaby002 05-12-2010 02:20 PM

Trích:

Nguyên văn bởi thienson_000 (Post 40608)
bạn thử file ds nay xem sao minh ko up len dc
/*------- Chuyên du liêu mã BIN cua MASTER -> du liêu mã BCD cho DS1307-----*/
int8 decToBcd(int8 val) // MASTER -> DS1307.
{ // x -> y.
int8 x,y; //vd: 7 -> 7 = 0x07.
x = val; //vd: 12 -> 18 = 0x12.
if(x<10)
{
y = x;
}
else if(x>=10)
{
y = (x/10 * 6) + x; //vd: 29 -> 41 = 0x29.
}
return(y); //vd: 35 -> 53 = 0x35.
}


/*------- Chuyên du liêu mã BCD cua DS1307 -> du liêu mã BIN cho MASTER-----*/
int8 bcdToDec (int8 val)
{ // MASTER <- DS1307.
int8 x,y,z; // x <- y.
y = val; //vd: 5 <- 5 = 0x05.
i=0; //vd: 10 <- 16 = 0x10.
if(y<10) //vd: 20 <- 32 = 0x20.
{ //vd: 30 <- 48 = 0x30.
x = y; //vd: 40 <- 64 = 0x40.
z = x; //vd: 50 <- 80 = 0x50.
} //.....
else if(y>=10)
{
do {
x = y - (6 * i);
z = (x/10 * 6) + x;
i++;
}
while(z!=y);
}
return(x);
}

hix, cái này mình cũng thử rồi vẫn không chạy được, mình có post protues và 5 file code mình viết theo 5 cách, bạn xem dùm mình với, sao ko có cách nào chạy hoàn chỉnh hết, trong void main mình cần phải khai báo những gì nữa không? xem dùm mình với nhá, bạn có thể gửi vào mail của mình bnktunganh@gmail.com, thanks bạn nhiều lắm lắm.

babybaby002 06-12-2010 03:45 PM

pic16f877a+ds1307+LCD
 
1 Attachment(s)
sau 2 đêm cặm cụi sửa chữa, mình đã sửa 6 code thành còn 2 code gần như hoàn chỉnh nhưng vẫn chưa gọi là hoàn chỉnh đúng nhất, vì thời gian chạy được khoảng mấy phút là đứng không hiển thị tiếp ra LCD nữa, ở đây mình có 2 code dùng 2 thư viện LCD khác nhau và trong mỗi code có 2 cách chuyển dữ liệu sang BCD, các bạn xem và chỉnh sửa code sao cho chạy đúng nhất nhé, các bạn có thể post lên đây hoặc gửi vào mail bnktunganh@gmail.com cho mình, cảm ơn các bạn đã giúp đỡ.

babybaby002 10-12-2010 12:19 AM

pic16f877a+ds1307+LCD
 
1 Attachment(s)
mấy bài trước mình post, mình dùng proteus 7.7 và bị lỗi nên time và day nó nhảy loạn xạ, sau khi mình vẽ lại bằng proteus 7.1 thì time và day ổn nhưng biến giây đếm trên ds1307 chậm mất 3 nhịp, khi giây ở đồng hồ thật bên ngoài nhảy được 3s thì con ds mới nhảy được 1s, mình post code và proteus lên đây, bạn nào xem dùm mình phải chỉnh sửa code như thế nào cho giây của con ds nó chạy đúng nha. thanks.

anhtai90_dtvt 04-04-2011 05:14 PM

chào bạn,mình thấy trong phần code của bạn có một số vấn đề như sau:
1. trong code cho phần update_time,tại sao phần lúc đọc phần cuối lại là read(i2c_read(0)),mình thầy nó khác với các dòng trước
2. trong phần hiển thị thứ trong tuần cần chỉnh lại một chút,day=1 là Sun,day=2 là Mon....
3. trong phần void main,bạn chưa khởi tạo cho port dùng LCD,và port dùng DS1307 thì sẽ không hiển thị được.trong vòng lặp while bạn nên để delay_ms(1000) để thấy second chạy.tuy nhiên,mình nhận thấy là khi để là year=read(i2c_read()) thì second lại không chạy,còn nếu để là year=read(i2c_read(0)) thì second lại chạy.mong bạn có thể giải thích cho mình.

chimcon 17-05-2011 10:39 AM

chào mọi người,

mình đang làm đông hồ thời giang thực hiển thì ngày, tháng, năm, giờ,phút, giây,
dùng pic6f877a ,ds12c887,ic 74595 để mở rộng các i/O và hiển thì lên led 7 đoạn?
bạn nào đã làm rồi gửi cde cho mình xin nhé.code dùng ngôn ngữ C viết trên ccs.
cãm ơn.

mrhuy3009 24-10-2011 10:40 PM

bạn nào viết xong code realtime g dùng 4 nút nhấn ngắt ngoài RB4 -> RB7 kia để dịch chuyển con trỏ tới các vị trí: thứ, giờ, ngày... và set giá trị ban đầu của nó như bác cường nói gửi cho mình với

boydtbk 30-10-2011 03:02 PM

các bác dùng con pic để hiển thị đồng hồ mà tiết kiệm port làm gì nên điều khiển LCD bằng 8port cho dễ
thứ 2 là kiếm thêm con đo nhiệt độ nữa làm hiển thị nhiệt đọ nữa
thứ 3 có thêm phần hẹn giờ và báo đến giờ như cái casio là đc
thứ 4 tốn đống tiền mà chả có nhẽ lại không làm đc bằng cái đồng hồ 120k à vì thế nên làm phần đồng hồ bấm giò nữa
thứ 5 cải tiến thành con casio 260k là
a: hẹn đc 5 lần giờ
b: bấm giờ chạy ngược (ví dụ cài đặt 25p thì nó đếm ngược hết 25 phút sẽ kêu)
c: có thể lưa trữ tên số điện thoại và ngày sinh đc.
mình học chưa giỏi về pic nhưng mình nghĩ với 1 con vi điều khiển không rẻ (62k) thì đủ để làm những việc này. chả có nhẽ mình lại thua bọn tàu

ngdnhanbk 01-01-2012 08:30 PM

ai giải thích giúp mình chân số 7 dùng làm gì với?


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam