Mô phỏng protes chương trình đồng hồ chạy được khoảng 1 lúc đúng sau đó nhảy lung tung. Khi dừng chương trình và chạy lại thì tiếp tục chạy đúng và cũng 1 lúc lại nhảy linh tinh. Anh nào biết nó bị sao không ah ? Có phải tràn bộ nhớ không ah ?
Thông báo
Collapse
No announcement yet.
Ds1307
Collapse
X
-
số bạn đọc ra từ DS1307 là mã hex còn khi hiển thị là mã thập phân nên bạn tưởng nó nhảy lung tung đấy. Lần đầu mình làm cũng gặp vấn đề này: vd số giây nó đếm từ 0 đến 9 rồi nhảy lên 16 đếm đến 25 rồi nhảy luôn 32.Nguyên văn bởi quytho Xem bài viếtMô phỏng protes chương trình đồng hồ chạy được khoảng 1 lúc đúng sau đó nhảy lung tung. Khi dừng chương trình và chạy lại thì tiếp tục chạy đúng và cũng 1 lúc lại nhảy linh tinh. Anh nào biết nó bị sao không ah ? Có phải tràn bộ nhớ không ah ?
Thực ra khi bạn đọc byte lưu số liệu giây thì 4 bit đầu là đơn vị giây, 4 bit sau là chục giây. Với phút và giờ cũng thế bạn chỉ cần tách byte số liệu thành 2 nửa và hiển thị từng nửa một là được.Cty tnhh thiết bị điện - điện tử công nghiệp: 0437821690 / 0988.775.900
Thiết kế hệ thống điện điều khiển
Sửa chữa INVERTER, DRIVER , PLC, UPS ...!
Comment
-
Loạn như thế nào? bạn post sơ đồ và ctr lên thì mới có cái mà test chứ nói ko sao biết bị chỗ nào?Nguyên văn bởi quytho Xem bài viếtko được bạn ơi ! Khi mình mô phỏng : lúc đầu chạy cũng ko đúng thời gian cài đạt. Cho chạy lại là được rùi nhưng khi làm mạch thật vẫn bị loạn. Anh em nào gặp trường hợp đó chưa, cho mình ý kiến với !
Thank !!!!!
Comment
-
Sao hiện thị giờ không đúng, và đứng im vậy...???
code của bạn mình mô phỏng thấy lỗi gi mà không chạy dc thế chỉ hiên thị như hình dưới đây thôi, không thay đổi gi cả,, ??? sao nhỉ???Nguyên văn bởi phong25_2 Xem bài viếthehe, cai mach no chay tot roi, 2 điện trở kéo lên e cũng có mắc, nhưng nó sao sao ấy, giog như bị nhiễu, e gắn thêm 2 con 4k7 nữa là chạy ngon luôn, đây là ctrinh rất cơ bản, xin post lên cho các bạn muốn làm về 1307 tham khảo:
#asm
.equ __lcd_port=0x1B ;PORTA
.equ __i2c_port=0x18
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include <mega16.h>
#include <ds1307.h>
#include <delay.h>
#include<lcd.h>
void main(void) {
unsigned char h,m,s,x,y;
i2c_init();
lcd_init(16);
rtc_init(0,0,0);
i2c_start();
i2c_write(0xd0);
i2c_write(0);
i2c_write(0);
i2c_stop();
rtc_set_time(0,0,0);
lcd_gotoxy(0,0);
lcd_putsf("REAL TIME CLOCK!");
while (1)
{
rtc_get_time(&h,&m,&s);
lcd_gotoxy(4,1);
x=h/10;
y=h%10;
lcd_putchar(x+0x30);
lcd_putchar(y+0x30);
lcd_putsf(":");
x=m/10;
y=m%10;
lcd_putchar(x+0x30);
lcd_putchar(y+0x30);
lcd_putsf(":");
x=s/10;
y=s%10;
lcd_putchar(x+0x30);
lcd_putchar(y+0x30);
delay_ms(200);
};
}
Comment
-
có ai giúp minh với.sao mình lập trình với ds1307 mà no không chạy .sử dụng atmega16l.mạch mô phỏng và code cac bác xem giùm nhé;[http://www.mediafire.com/?8zuajo70gebsto8]có gi gửi vào gmail nhé.thank may bac nhiều:trunghaudn@gmail.com
/************************************************** ***
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 12/20/2010
Author :
Company :
Comments:
Chip type : ATmega16L
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega16.h>
#include <delay.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
//khai bao nut nhan
#define nut_tang PINA.1
#define nut_giam PINA.2
#define nut_chon PINA.3
#define nut_thoat PINA.4
unsigned char m,h,day,month=0,year,led_7s,nhiet_do=78,s ;
unsigned char ms[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F};
unsigned int Addr[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
void cai_dat()
{
while (nut_thoat)
{
if(!nut_chon)led_7s++;
if(led_7s<=5)
{
if(led_7s==1) //cai min
{
if(!nut_tang){
if( m==59)m=0;
else m++;}
delay_ms(50);
if(!nut_giam){
if(m==0)m=59 ;
else m--;}
delay_ms(50);
PORTD=Addr[2];
PORTB=ms[m/10];//min chuc
delay_ms(10);
PORTD=Addr[3];
PORTB=ms[m%10];//min don vi
delay_ms(10);
}
if(led_7s==2)// cai hour
{
if(!nut_tang){
if( h==12)h=0;
else h++; }
delay_ms(50);
if(!nut_giam){
if( h==0)h=12;
else h--;}
delay_ms(50);
PORTD=Addr[0];
PORTB=ms[h/10];//hour chuc
delay_ms(10);
PORTD=Addr[1];
PORTB=ms[h%10];//hour don vi
delay_ms(10);
}
if(led_7s==3)// cai day
{
if(!nut_tang){
if( day==31)day=0;
else day++; }
delay_ms(50);
if(!nut_giam){
if( day==0)day=31;
else day--;}
delay_ms(50);
PORTD=Addr[4];
PORTB=ms[day/10];//day chuc
delay_ms(10);
PORTD=Addr[5];
PORTB=ms[day%10];//day don vi
delay_ms(10);
}
if(led_7s==4)//cai month
{
if(!nut_tang){
if( month==12)month=0;
else month++; }
delay_ms(50);
if(!nut_giam){
if( month==0)month=12;
else month--;}
delay_ms(50);
PORTD=Addr[6];
PORTB=ms[ month/10];// month chuc
delay_ms(10);
PORTD=Addr[7];
PORTB=ms[ month%10];// month don vi
delay_ms(10);
}
if(led_7s==5)//cai year
{
if(!nut_tang){
if( year==99)year=0;
else year++; }
delay_ms(50);
if(!nut_giam){
if( year==0)year=99;
else year--;}
PORTD=0xff;
delay_ms(50);
PORTC=Addr[5];
PORTB=ms[ year/10];// year chuc
delay_ms(10);
PORTC=Addr[4];
PORTB=ms[ year%10];//year don vi
delay_ms(10);
}
// PORTC=Addr[7];
// PORTB=ms[ led_7s];
// delay_ms(10);
}
else led_7s=0;
PORTC=0xff;
PORTB=0x00;
delay_ms(50);
}
};
void hien_thi()
{
PORTC=0xff;
PORTD=Addr[2];
PORTB=ms[m/10];//min chuc
delay_ms(1);
PORTD=Addr[3];
PORTB=ms[m%10];//min don vi
delay_ms(1);
PORTD=Addr[0];
PORTB=ms[h/10];//hour chuc
delay_ms(1);
PORTD=Addr[1];
PORTB=ms[h%10];//hour don vi
delay_ms(1);
PORTD=Addr[4];
PORTB=ms[day/10];//day chuc
delay_ms(1);
PORTD=Addr[5];
PORTB=ms[day%10];//day don vi
delay_ms(1);
PORTD=Addr[6];
PORTB=ms[month/10];// month chuc
delay_ms(1);
PORTD=Addr[7];
PORTB=ms[month%10];// month don vi
delay_ms(1);
PORTD=0xff;
PORTC=Addr[3];
PORTB=ms[ 2];// year nghin
delay_ms(1);
PORTC=Addr[2];
PORTB=ms[ 0];//year tram
delay_ms(1);
PORTC=Addr[5];
PORTB=ms[year/10];// year chuc
delay_ms(1);
PORTC=Addr[4];
PORTB=ms[year%10];//year don vi
delay_ms(1);
PORTD=0xff;
PORTC=Addr[6];
PORTB=ms[nhiet_do/10];// nhiet chuc
delay_ms(1);
PORTC=Addr[7];
PORTB=ms[nhiet_do%10];//nhiet don vi
delay_ms(1);
};
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0xff;
DDRA=0xFF;
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTB=0x00;
DDRB=0xFF;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=In Func0=In
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=T State0=T
PORTC=0x00;
DDRC=0xFC;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// I2C Bus initialization
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: On
// Square wave frequency: 1Hz
rtc_init(0,1,0);
while (1)
{
cai_dat();
i2c_start();
i2c_write(0xd0);
i2c_write(0);
i2c_write(0);
i2c_stop();
rtc_set_time(h,m,s);
rtc_set_date(day,month,year);
while(1)
{
rtc_get_time(&h,&m,&s);
rtc_get_date(&day,&month,&year);
hien_thi();
delay_ms(10);
};
};
}
Comment
-
bạn nên tạo một project riêng biệt để kiểm tra con DS1307, sau đó bạn mới kiểm tra lại cái proiect hiện tại của bạn.Nguyễn Xuân Thanh - 0905848525 - 01686996698
Chuyên: Quảng Cáo Điện Tử
=>Led Siêu Sáng - Board điều khiển led động
=>Các loại Màn Hình Led trong nhà, ngoài trời
Comment
-
-
bạn thử nối mass cho vỏ thạch anh xem, mà bạn thử trên test board hay board phát triển thế, nếu ko dc nữa bạn dùng phương pháp loại trừ thử xemNguyễn Xuân Thanh - 0905848525 - 01686996698
Chuyên: Quảng Cáo Điện Tử
=>Led Siêu Sáng - Board điều khiển led động
=>Các loại Màn Hình Led trong nhà, ngoài trời
Comment
-
em coi lại chương trình, coi lại phần thiết lập thời gian ban đầu cho chip.Nguyên văn bởi thangktvta Xem bài viếtChào các bác đã dùng con này. Em đang dùng DS1307 giao tiếp với mega88 để băm thời gian lên LED 7, không hiểu tại sao sau khi reset hoặc mất điện thì Giây nó lại nhảy về 0, giờ, phút... vẫn bình thương. Các khai báo biến cho h,m,s giống hệt nhau? Nhờ các bác giúp em. Thanks!Tư vấn thiết kế hệ thống điện-điện tử theo yêu cầu.
Tel: 0903 702 417. Email: web:
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Game xe tăng v2.0 dùng ic 8051 code asmbởi zizou23Yeah, Tank used to be an iconic game, but now there is a game inspired by it that uses the same style of play, with modern characters and graphics. You should download Null's Brawl for it.
-
Channel: Vi điều khiển họ 8051
hôm nay, 14:08 -
-
bởi FotiniChào mọi người.
Cấu trúc khung giàn của tôi sử dụng một động cơ servo tích hợp trên mỗi trục (https://www.oyostepper.es/category-8...integrado.html), với một dây nối đất chung.
Việc kích hoạt từng trục riêng lẻ hoạt động tốt, nhưng...-
Channel: Điện tử dành cho người mới bắt đầu
18-06-2026, 14:03 -
-
Trả lời cho Cấu hình chiến game "quốc dân" cho nền tảng AM5: Lựa chọn tối ưu ngân sách với Ryzen 5 7500Fbởi kumarbrMình đồng ý với hướng build AM5 bằng 7500F, nhưng nếu có thể cố thêm ngân sách thì nên lên RX 7600 ngay từ đầu. 4GB VRAM của RX 6500 XT bắt đầu khá chật với nhiều game mới, còn RX 7600 sẽ dùng thoải mái hơn trong vài năm tới.
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 15:49 -
-
bởi theidiotcatTrong thời buổi vật giá leo thang, việc sắm một bộ máy tính chơi game đáp ứng đủ tiêu chí "ngon, bổ, rẻ" là ưu tiên hàng đầu của nhiều bạn trẻ. Lúc này, combo sử dụng vi xử lý AMD Ryzen 5 7500F kết hợp cùng card màn hình Radeon...
-
Channel: Đánh giá sản phẩm DTVN
16-06-2026, 10:16 -
-
bởi theidiotcatAMD Ryzen 9 9950X3D không chỉ là một bộ vi xử lý đơn thuần; nó là lời khẳng định về sức mạnh của kiến trúc Zen 5 kết hợp cùng công nghệ 3D V-Cache đột phá. Trong bối cảnh thị trường linh kiện PC cạnh tranh khốc liệt, đây được xem...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:21 -
-
bởi theidiotcatBộ đôi Ryzen 9 9950X3D2 và Radeon RX 9070 XT 16GB là sự kết hợp phần cứng cao cấp nhất của AMD hiện nay. Đây không chỉ là một dàn máy tính để giải trí thông thường, mà là công cụ làm việc mạnh mẽ dành cho những ai có nhu cầu xử lý cường...
-
Channel: Đánh giá sản phẩm DTVN
15-06-2026, 09:09 -
-
bởi theidiotcatKhi ráp một bộ máy tính cấu hình cao, việc cân đối ngân sách cho từng linh kiện là rất quan trọng. Sự kết hợp giữa vi xử lý AMD Ryzen thế hệ mới có công nghệ 3D V-Cache và card đồ họa Radeon RX 9070 XT đang là lựa chọn rất đáng tiền....
-
Channel: Đánh giá sản phẩm DTVN
11-06-2026, 10:43 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Giới thiệu bản nhạc đệm mới nhộn nhịp tươi vui, nghe là muốn... xuất gia đi tu liền!!!!😁...
-
Channel: Tâm tình dân kỹ thuật
11-06-2026, 09:51 -

Comment