|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
22-06-2012, 01:14 AM | #8 |
Nhập môn đệ tử
Tham gia ngày: Jun 2012
Bài gửi: 1
: |
Doc Ds1307
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); } } |
|
|