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 Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
Hôm qua, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
05-12-2025, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -

Comment