Mày mò vẽ lại cái Pickit chạy ok rồi , đến test làm cái đồng hồ led 7 đoạn dùng Pic16F887 chơi , thì mô phỏng cũng ok rồi , nhưng khi test trên bo cắm thử ( dựa vào mô phỏng thôi , chưa làm mạch thật ) thì đã " set " được thời gian , nhưng sau nó cứ đứng sáng led không chạy gì , nhiều khi cắm nguồn vào còn phải set Ok cái cho nó sáng led 7 đoạn ( sau nó vẫn " rậm chân tại chỗ" mới đau ):-(||>
Nên mình nghĩ chỉ sửa trên code thôi , chưa mạch thật nên không cần nguyên lý , nhưng chưa làm thực tế cái nào nên chưa biết lỗi tại đâu .
Nhờ bác nào làm rồi hay biết giúp mình gấp với , nếu lỗi code chỉnh lại giúp mình được không , máy mình bị " lên vùng cao" bảo hành rồi , không có gì chơi ,thỉnh thoảng mới ra internet tham khảo được . Mấy hôm nữa lên vùng cao tình nguyện rồi , nên nhờ các bác biết code lỗi đâu xin bớt chút thời gian sửa giúp được không , sau mình test thử , mình xin hậu tạ .
trích :
file mô phỏng + code ( mình không úp diễn đàn được ) : dong ho 16f877.rar
Nên mình nghĩ chỉ sửa trên code thôi , chưa mạch thật nên không cần nguyên lý , nhưng chưa làm thực tế cái nào nên chưa biết lỗi tại đâu .
Nhờ bác nào làm rồi hay biết giúp mình gấp với , nếu lỗi code chỉnh lại giúp mình được không , máy mình bị " lên vùng cao" bảo hành rồi , không có gì chơi ,thỉnh thoảng mới ra internet tham khảo được . Mấy hôm nữa lên vùng cao tình nguyện rồi , nên nhờ các bác biết code lỗi đâu xin bớt chút thời gian sửa giúp được không , sau mình test thử , mình xin hậu tạ .
trích :
#include<16f887.h>
#device ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=12m)
#define set input(pin_B3)
#define up input(pin_B4)
#define down input(pin_B5)
#define ok input(pin_B6)
#use i2c(master, sda=pin_B2, scl=pin_B1)
unsigned char so[11]={64,121,36,48,25,18,2,120,0,16,70};
unsigned char i,year,month,date,day,hour,min,sec,b,kt,a;
char t;
char set0,set1,up0,up1,down0,down1;
#include<lunar.h>
#include<ds1307.h>
#include<ktphim.h>
#include<hienthi.h>
#int_timer0
void timer0interrupt()
{
b++;
if(b==20)output_high(pin_D2);
if(b==40){output_low(pin_D2);b=0;}
}
#int_EXT //ngat ngoai RB0
void EXT_RB0(void)//cu moi lan co ngat ngoai thi doc du lieu (1s doc 1lan)
{
a++;
get_time();
if(a==5)
{
t=read_adc();
lunar_calculate(date,month,year);
a=0;
}
}
void main()
{
setup_timer_0 (RTCC_DIV_256);
ENABLE_INTERRUPTS(INT_TIMER0);
set_timer0(0);
ext_int_edge(0,H_TO_L);//chon ngat ngoai 0, suon ngat la suon xuong
enable_interrupts(GLOBAL);//cho phep ngat toan cuc
setup_adc(ADC_CLOCK_INTERNAL);//ADC lam viec voi nguon xung noi
setup_adc_ports(sAN0);//chon kenh ADC
setup_rtc();
while(1)
{
ktphim();
hien_thi();
}
}
#device ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=12m)
#define set input(pin_B3)
#define up input(pin_B4)
#define down input(pin_B5)
#define ok input(pin_B6)
#use i2c(master, sda=pin_B2, scl=pin_B1)
unsigned char so[11]={64,121,36,48,25,18,2,120,0,16,70};
unsigned char i,year,month,date,day,hour,min,sec,b,kt,a;
char t;
char set0,set1,up0,up1,down0,down1;
#include<lunar.h>
#include<ds1307.h>
#include<ktphim.h>
#include<hienthi.h>
#int_timer0
void timer0interrupt()
{
b++;
if(b==20)output_high(pin_D2);
if(b==40){output_low(pin_D2);b=0;}
}
#int_EXT //ngat ngoai RB0
void EXT_RB0(void)//cu moi lan co ngat ngoai thi doc du lieu (1s doc 1lan)
{
a++;
get_time();
if(a==5)
{
t=read_adc();
lunar_calculate(date,month,year);
a=0;
}
}
void main()
{
setup_timer_0 (RTCC_DIV_256);
ENABLE_INTERRUPTS(INT_TIMER0);
set_timer0(0);
ext_int_edge(0,H_TO_L);//chon ngat ngoai 0, suon ngat la suon xuong
enable_interrupts(GLOBAL);//cho phep ngat toan cuc
setup_adc(ADC_CLOCK_INTERNAL);//ADC lam viec voi nguon xung noi
setup_adc_ports(sAN0);//chon kenh ADC
setup_rtc();
while(1)
{
ktphim();
hien_thi();
}
}
Comment