PDA

View Full Version : giup phan cung lich van nien 16f877a+ds1307+lcd


phanhoangag
30-04-2011, 10:56 AM
code va mo phong thi ok .nhung lam phan cung thi no im ru khong hien thi gi het.e dung thach anh 4MHZ.mach nap pickit2.e gui mach orcad va mo phong proteus may anh xem gup

tomato2711
30-04-2011, 03:10 PM
code va mo phong thi ok .nhung lam phan cung thi no im ru khong hien thi gi het.e dung thach anh 4MHZ.mach nap pickit2.e gui mach orcad va mo phong proteus may anh xem gup

trong code của bạn mình ko thấy khai báo sử dụng pic và bộ nhớ pic

#include <16F877A.h> // khai bao dùng loại pic
#fuses NOWDT,PUT,XT,NOPROTECT //khai báo phần này thì pic mới chạy đc
#use delay(clock=4000000) //dùng thạch anh 4M

phanhoangag
30-04-2011, 10:42 PM
minh viet bang mikroC.co can khai bao vay k.cai ban noi la viet bang ccs C ha?.minh moi lam voi con pic nen chua ro lam.mong cac anh giup cho

phanhoangag
01-05-2011, 12:50 AM
tim duoc nguyen nhan rui.do minh k nhan nut (default)khi dich code bang mikroc. Hien thi rui nhung kho noi la chay duoc khoang 1phut thi dung hoac nhay lung tung.co luc cham vao thach anh cung nhay lung tung.co ai xem lạ code giup mh k.code minh co gui o tren

tomato2711
01-05-2011, 10:21 AM
uhm, cái mình nói là ccs, vậy bạn kiểm tra lai xem tụ gắn ở chân thạch anh có phù hơp với thạch anh hok? cũng đừng để thạch anh xa pic quá, ko thui dao động bị nhiễu. Mình chĩ bít zi!

phatcddt08a
01-05-2011, 10:04 PM
thằng mikroc cung na ná ccs co dieu phan tren khoi khai bao.dia chi thanh ghi cua no su dung nhu hop ngu vay . khong can phai khai bao def_877a.h gj do chi can thanh ghi dung dia chi la ok thang nay cung toi uu lam .toi thi chua lam nhung no cung co uu diem day.toi thi chi lam ccs thoi .giong nhu tren nhung ma bang ccs

phanhoangag
02-05-2011, 10:17 AM
co aj gup mh viet doan code chay dong chu tren CLD bang mikroc.su dung pic6f877a.la dong chu chay ngan wa CLD rui chay laj.

thanks!

nghong
22-06-2012, 01:14 AM
minh dang viet ct doc ds1307 bang mikro C 5.61 cho pic16f877a. khong biet sao m lam giong huong dan trong thu vien cua mikro C. ma doc RTC k duoc chi hien thi tren LCD toan la so 0. Duoi day la code va file mo phong cua m co ai hieu li do sao k giup m voi.



//define pin LCD
sbit lcd_rs at rd0_bit;
sbit lcd_en at rd1_bit;
sbit lcd_d4 at rd2_bit;
sbit lcd_d5 at rd3_bit;
sbit lcd_d6 at rd4_bit;
sbit lcd_d7 at rd5_bit;
// define tris register
sbit LCD_RS_Direction at TRISD0_BIT;
sbit LCD_EN_Direction at TRISD1_BIT;
sbit LCD_D4_Direction at TRISD2_BIT;
sbit LCD_D5_Direction at TRISD3_BIT;
sbit LCD_D6_Direction at TRISD4_BIT;
sbit LCD_D7_Direction at TRISD5_BIT;

char buff,seconds,minutes;
char read_ds1307(char address)
{
i2c1_start();
i2c1_wr(0xd0);
i2c1_wr(address);
i2c1_repeated_start();
i2c1_wr(0xd1);
buff = i2c1_rd(0);
i2c1_stop();
return(buff);
}
char write(char address,char data1)
{
i2c1_start();
i2c1_wr(0xd0);
i2c1_wr(address);
i2c1_wr(data1);
i2c1_stop();
return (0x01);
}
void main()
{
trisd = 0; trisc = 0;
portb = 0;
lcd_init();
i2c1_init(100000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
lcd_out(1,3,"giao tiep ds1307");
minutes = write(0x00,0x53);
minutes = write(0x01,0x03);
minutes = write(0x02,0x02);
while(1)
{
seconds = read_ds1307(0);
buff = seconds & 0x0F;
LCD_Chr(3,15,buff + 48 );
buff =seconds >> 4 ;
LCD_Chr(3,14,buff + 48);


seconds = read_ds1307(1);
buff = seconds & 0x0F;
LCD_Chr(3,11,buff + 48 );
buff =seconds >> 4 ;
LCD_Chr(3,10,buff + 48);


seconds = read_ds1307(2);
buff = seconds & 0x0F;
LCD_Chr(3,7,buff + 48 );
buff =seconds >> 4 ;
LCD_Chr(3,6,buff + 48);
}
}