EM LÀM CÁI MẠCH ĐỒNG HỒ SỐ DÙNG LED DƠN GHÉP LẠI. MẠCH DÙNG IC DICH 74HC595. EM LÀM MẠCH SONG RÁP VÀO THÌ NÓ HIỆN THỊ SỐ 8 HẾT KHÔNG CHẠY GIÂY. VỚI LẠI CÁI CHÂN 7 CỦA CON DS1307 KHÔNG THẤY CÓ TÍN HIỆU 1HZ XUẤT RA (led ko nháy). MONG CÁC ANH GIÁPR ĐÁP HIỆN TƯỢNG VÀ HƯỚNG GIẢI QUYẾT. THANKS!!!!!!!
Thông báo
Collapse
No announcement yet.
đồng hồ số có lỗi !!!!!!!!!!!!! Giúp em với ạ
Collapse
X
-
em xem lại code+mạch của e ráp có setup cho con ds1307 hay không(có phím bấm chỉnh giờ..p..s )Nguyên văn bởi tuyen_evn Xem bài viếtEM LÀM CÁI MẠCH ĐỒNG HỒ SỐ DÙNG LED DƠN GHÉP LẠI. MẠCH DÙNG IC DICH 74HC595. EM LÀM MẠCH SONG RÁP VÀO THÌ NÓ HIỆN THỊ SỐ 8 HẾT KHÔNG CHẠY GIÂY. VỚI LẠI CÁI CHÂN 7 CỦA CON DS1307 KHÔNG THẤY CÓ TÍN HIỆU 1HZ XUẤT RA (led ko nháy). MONG CÁC ANH GIÁPR ĐÁP HIỆN TƯỢNG VÀ HƯỚNG GIẢI QUYẾT. THANKS!!!!!!!
có thể up code +mạch lên không,mình giúp cho....
-
đây là mạch anh ạ. còn code thì em mô phỏng trên protues nó chạy rồi ạ!Nguyên văn bởi congminh2013 Xem bài viếtem xem lại code+mạch của e ráp có setup cho con ds1307 hay không(có phím bấm chỉnh giờ..p..s )
có thể up code +mạch lên không,mình giúp cho....
Comment
-
mô phỏng trong proteus VSM sẽ lấy thời gian của máy tính nên lúc nào nó cũng chạy, mạch thực tế còn nhiều thứ phải làm thì mới chạy đc. Quan trọng là code đã xóa bit CH trong thanh ghi giây của 1307 hay chưa, VDK đã giao tiếp hiểu đc bus I2C hay chưa,.......Nguyên văn bởi tuyen_evn Xem bài viếtđây là mạch anh ạ. còn code thì em mô phỏng trên protues nó chạy rồi ạ![ATTACH=CONFIG]60421[/ATTACH]
Comment
-
bấm nút set xem có chỉnh giây được không,chắc chắn là không có đúng không..Nguyên văn bởi tuyen_evn Xem bài viếtđây là mạch anh ạ. còn code thì em mô phỏng trên protues nó chạy rồi ạ![ATTACH=CONFIG]60421[/ATTACH]
Comment
-
tặng cho em cái này đã làm mạch thật nhưng với vdk 89c2051
dongho_595.hex
nhưng chả sao cả em sửa lại mấy chân phím bấm rồi nạp vào 89cxx là chạy.....
Comment
-
#include<reg52.h>
sbit DATA1 = P3^0;
sbit SCK1 = P3^1;
sbit LACH1 = P3^2;
sbit set=P3^4;
sbit up=P3^5;
sbit down=P3^6;
unsigned char hour, minute, second,c;
unsigned char ma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};
unsigned char kt=0,a=0,i,k,x=0;
bit set0=1,set1=1,up1=1,up0=1,down0=1,down1=1;
sbit SCL = P1^0;
sbit SDA = P1^1;
void delay(){
unsigned char i;
for (i = 0; i < 4; i++){};
}
//-----------------------------------------
void SCL_high(){
SCL = 1;
delay();
}
//------------------------------------------
void SCL_low(){
SCL = 0;
delay();
}
//-------------------------------------------
void I2C_Start(){
SDA = 1;
SCL = 1;
SDA = 0;
delay();
SCL = 0;
SDA = 1;
}
//--------------------------------------------
void I2C_Stop(){
SDA = 0;
SCL_high();
SDA = 1;
}
//----------------------------------------------
bit I2C_Write(unsigned char dat){
unsigned char i;
bit outbit;
for (i = 1; i <= 8; i++){
outbit=dat&0x80;
SDA = outbit;
dat = dat << 1;
SCL_high();
SCL_low();
}
SDA = 1;
SCL_high();
outbit = SDA;
SCL_low();
return(outbit);
}
//----------------------------------------------------
unsigned char I2C_Read(bit ack){
unsigned char i, dat;
bit inbit;
dat = 0;
for(i=1;i<=8;i++) {
SCL_high();
inbit = SDA;
dat = dat << 1;
dat = dat | inbit;
SCL_low();
}
if (ack) SDA = 0;
else SDA = 1;
SCL_high();
SCL = 0;
SDA = 1;
delay();
return(dat);
}
//-------------------------------------------------------------
void rtc_write(unsigned char add, unsigned char dat){
I2C_Start();
I2C_Write(0xd0);
I2C_Write(add);
I2C_Write(((dat/10)<<4)|(dat%10));
I2C_Stop();
}
unsigned char rtc_read(unsigned char add){
unsigned char dat;
I2C_Start();
I2C_Write(0xd0);
I2C_Write(add);
I2C_Start();
I2C_Write(0xd1);
dat = I2C_Read(0);
I2C_Stop();
dat = (dat & 0x0f) + (dat>>4)*10;
return (dat);
}
void writeds(){
rtc_write(0x00, second);
rtc_write(0x01, minute);
rtc_write(0x02, hour);
}
void readds()
{
if(kt==0)
{
if(a==1)
{writeds();a=0;
}
second = rtc_read(0x00);
minute = rtc_read(0x01);
hour = rtc_read(0x02);
}
}
void hienthi(unsigned char x)
{
unsigned int i,temp;
for(i=0;i<8;i++)
{
temp=x;
temp=temp&0x80;
if(temp==0x80)
DATA1=1;
else
DATA1=0;
x*=2;
SCK1=0;
SCK1=1;
}
}
void quetled()
{
if(kt==0)
{
hienthi(ma[second%10]);
hienthi(ma[second/10]);
hienthi(ma[minute%10]);
hienthi(ma[minute/10]);
hienthi(ma[hour%10]);
hienthi(ma[hour/10]);
LACH1=0;
LACH1=1;
}
if(kt==1)
{
hienthi(0xff);
hienthi(0xff);
hienthi(0xff);
hienthi(0xff);
hienthi(ma[hour%10]);
hienthi(ma[hour/10]);
LACH1=0;
LACH1=1;
}
if(kt==2)
{
hienthi(0xff);
hienthi(0xff);
hienthi(ma[minute%10]);
hienthi(ma[minute/10]);
hienthi(0xff);
hienthi(0xff);
LACH1=0;
LACH1=1;
}
if(kt==3)
{
hienthi(ma[second%10]);
hienthi(ma[second/10]);
hienthi(0xff);
hienthi(0xff);
hienthi(0xff);
hienthi(0xff);
LACH1=0;
LACH1=1;
}
}
void ktphim()
{
set0=set1;set1=set;
if((set0==1)&&(set1==0))
{
kt++;
if(kt>3)kt=0;
}
switch(kt)
{
case 0:break;
case 1:
{
up0=up1;up1=up; a=1;
if((up0==1)&&(up1==0))
{
hour++;
if(hour>23)hour=0;
}
down0=down1;down1=down;
if((down0==1)&&(down1==0))
{
hour--;
if(hour==-1)
hour=23;
}
break;
}
case 2:
{
up0=up1;up1=up; a=1;
if((up0==1)&&(up1==0))
{
minute++;
if(minute>59)
minute=0;
}
down0=down1;down1=down;
if((down0==1)&&(down1==0))
{
minute--;
if(minute==-1)
minute=59;
}
break;
}
case 3:
{
up0=up1;up1=up;a=1;
if((up0==1)&&(up1==0))
{
second++;
if(second>59)
second++;
}
down0=down1;down1=down;
if((down0==1)&&(down1==0))
{
second=0;
}
break;
}
}
}
void main()
{
I2C_Start();
I2C_Write(0xD0);
I2C_Write(0x07);
I2C_Write(0x10);
I2C_Stop();
while(1)
{
ktphim();
readds();
quetled();
}
}
còn đây là code anh ak
Comment
-
cho em mạch luôn đc ko ạ!Nguyên văn bởi congminh2013 Xem bài viếttặng cho em cái này đã làm mạch thật nhưng với vdk 89c2051
dongho_595.hex
nhưng chả sao cả em sửa lại mấy chân phím bấm rồi nạp vào 89cxx là chạy.....
Comment
-
Của mình bạn tham khảo thửNguyên văn bởi tuyen_evn Xem bài viếtcho em mạch luôn đc ko ạ!
Download: http://www.mediafire.com/?34gxv6tfgq3oib8Last edited by minhthanh29; 22-02-2013, 22:28.Nhận vẽ mạch in ^_^
TEL: 0167 4500 365
Mail:
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chào bác, gần Tết công việc bác bận lắm phải không?
Vâng mọi người đều thế cả.
Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 21:53 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietCảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau
https://www.instructables.com/DIY-1k...ge-Controller/-
Channel: Điện tử công suất
23-01-2026, 16:50 -
-
bởi Nexus 6PNhư tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V)
e cảm ơn-
Channel: Điện tử công suất
23-01-2026, 11:23 -

Comment