Đồng Hố số sủ dũng DS1307 cần giúp đỡ!
Collapse
X
-
Tags: None
-
mô phỏng treo
thực ra thì do cái chan SCL của con ds1307 khi bỏ trở treo ra thì hết treo dầu có click thế nào cũng được mà treo chân scl lên thì nó treo vi điều khiển vi diều khiễn không chạy nữa vậy có cách khắc phục hông nếu làm mạch thật mà bỏ dien trở treo chân scl có vấn đề gì hông
Comment
-
dây là code của tui
#include <REGX51.H>
sbit SDA = P1^1;
sbit SCL = P1^0;
#define PortData P2
#define PortScan P3
#define Set P1_2
#define Back P1_3
#define Next P1_4
#define W 0xD0
#define R 0xD1
#define HOUR 0x02
#define MIN 0x01
#define SEC 0x00
unsigned char code Led7Seg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x9 0};
char Data,Hour,Min,Sec;
char IncSet=0,Scanled=0,run=0,t=0;
void delay(int t)
{
while(t--) ;
}
void Start()
{
SCL = 1;
SCL = 0;
SDA = 1;
SCL = 1;
delay(2);
SDA = 0;
delay(2);
SCL = 0;
delay(2);
}
void Stop()
{
SCL = 1;
SCL = 0;
SDA = 0;
delay(2);
SCL = 1;
delay(2);
SDA = 1;
}
void Write(unsigned char Data)
{
unsigned char i;
for (i=0;i<8;i++)
{
SDA = (Data & 0x80) ? 1:0;
SCL=1;SCL=0;
Data<<=1;
}
SCL = 1; delay(2);
SCL = 0;
}
unsigned char Read()
{
bit rd_bit;
unsigned char i ;
Data=0x00;
for(i=0;i<8;i++)
{
delay(2);
SCL = 1;
delay(2);
rd_bit = SDA;
Data = Data<<1;
Data = Data | rd_bit;
SCL = 0;
}
return Data;
}
unsigned char Read_DS1307(unsigned char DataTime)
{
unsigned char Bcd_Hex;
Start();
Write(W);
Write(DataTime);
Start();
Write(R);
Bcd_Hex=Read();
Stop();
Bcd_Hex = (((Bcd_Hex/16)*10)+ (Bcd_Hex & 0x0f));
return Bcd_Hex;
}
void interrupt_Time() interrupt 3 //ngat timer 1 chay dong ho
{
TR1=0;
TF1=0;
TH1=0x3c;
TL1=0xaf;
TR1=1;
}
void interrupt_San_Led7Seg()interrupt 1
{
TH0=0xfc;
TL0=0x18;
TR0=0;
TF0=0;
Scanled++ ;
if(Scanled==1)
{
PortData=0xff;
PortData =Led7Seg[Hour/10];
PortScan = 0x01;
}
if(Scanled==2)
{
PortData=0xff;
PortData =Led7Seg[Hour%10];
PortScan = 0x02;
}
if(Scanled==3)
{
PortData=0xff;
PortData = Led7Seg[Min/10];
PortScan = 0x04;
}
if(Scanled==4)
{
PortData=0xff;
PortData = Led7Seg[Min%10];
PortScan = 0x08;
}
if(Scanled==5)
{
PortData=0xff;
PortData = Led7Seg[Sec/10];
PortScan = 0x10;
}
if(Scanled==6)
{
PortData=0xff;
PortData = Led7Seg[Sec%10];
PortScan = 0x20;
Scanled=0;
}
TR0=1;
}
void Setup_Timer()
{
TMOD=0x11;
TH1=0x3C;
TL1=0xAF;
TR1=1;
ET1=1;
TH0=0XFC;
TL0=0X18;
TR0=1;
ET0=1;
EA=1;
}
void main()
{
Setup_Timer();
while(1)
{
if ((run==1)&&(IncSet==0))
{
run=0;
Hour=Read_DS1307(HOUR);
Min=Read_DS1307(MIN);
Sec=Read_DS1307(SEC);
}
}
}Last edited by sansuridan; 17-09-2012, 19:07.
Comment
-
-
vậy à cám ơn nhiều để tui nghiên cứu mạch thật xem sao
bạn đã làm rúi à nhấn nút luôn không thả củng khong sao à chắc 100% chứ huynhLast edited by sansuridan; 18-09-2012, 13:48.
Comment
Bài viết mới nhất
Collapse
-
bởi mèomướp1. Tìm hiểu đc thì càng tốt, bận thì thôi. Ko cần quá quan trọng
2. Số tự động cho đơn giản, kiểu như đi xe ga ấy ạ
3. Học lý thuyết tử tế ok
4.ok
5.có. đủ số km, tgian cầm lái là đc
6.đi ăn tập thể,...-
Channel: Tâm tình dân kỹ thuật
hôm nay, 16:34 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnE nhớ bác Vivanpham làm bên điện tử y sinh, có lần đó cái sơ đồ máy chụp x quang sao có mấy con thryristor làm gì mà ko ai trả lới đúng cả
...
-
Channel: Tâm tình dân kỹ thuật
07-08-2026, 09:17 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnBác kiểm tra lại đường mạch, mối hàn xem có bị hở hoặc dẫn không tốt không?
Thay cầu diode lớn hơn càng tốt không vấn đề gì cả....-
Channel: Điện thanh
07-08-2026, 09:12 -
-
bởi LantheChào bạn.
Trục đầu ra của hộp số hành tinh xoắn ốc được kết nối với mặt bích của khách hàng thông qua một trục răng trong. Sau chưa đầy sáu tháng hoạt động, nó phát ra tiếng kêu lách cách và độ rơ lớn đáng báo động.
Việc...-
Channel: Thiết bị điện tử cá nhân
06-08-2026, 13:05 -
-
bởi ittcChào các anh em nhé, mình dự định sắp tới sẽ đi học lái xe Ôtô, thi lấy bằng lái. Cụ thể mình sẽ học và thi lấy giấy phép lái xe hạng B. Thật sự mình là người chưa có kiến thức hiểu biết gì về Ôtô cả ? tất nhiên mình sẽ phải...-
Channel: Tâm tình dân kỹ thuật
-
-
Trả lời cho Amply bị rò DC 22 voltbởi trung30000Theo sự hướng dẫn của bác, sau khi em kiểm tra tầng Vi sai sử dụng cặp c1815, tiếp đến là 1 con a1013, và cặp thúc sử dụng mje304g và mje305g, em đã tiến hành thay cặp Vi sai c1815 sau đó mở máy lên đo ngõ công suất DC 0,2V hai giây sau máy đo...-
Channel: Điện thanh
05-08-2026, 20:09 -

Comment