PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 23-12-2009, 12:44 AM   #1
thuong008
Nhập môn đệ tử
 
thuong008's Avatar
 
Tham gia ngày: Apr 2009
Bài gửi: 6
:
Question viet C voi DS12c887 (coi loi gium em)

em làm cái đồng hồ dung 16f877a + ds12c887+ LCD
viết bằng CCS nhưng tới phần ghi và đọc 1 giá trị vào thanh ghi thì gặp 1 lỗi không hiểu được. Đó là chỉ đọc đúng giá trị của thanh ghi vào lần lặp đầu tiên, những lần tiếp theo thì sai. Các bác coi gium em lỗi ở đâu với.
Đây là code em tự mò viết:

Code:
#include <16F877a.h>
#include <DEFS_16F877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)
#define use_portb_lcd TRUE
#include <lcd.c>
#define DS  RE2
#define R_W RE1
#define AS RE0
#define RTC PORTD
int DCD,DCV,DLV,DCS,x,high,medum,low,digit;
//ham doc rtc
void docrtc(void) 
{
 set_tris_E(0);
 DS =1;
 R_W=1;
 AS =1;
 RTC=DCD;
 delay_ms(1);
 AS =0;
 DS =0;
 set_tris_D(0xff); 
 delay_ms(1);

}
 //Ham ghi vao rtc
void vietrtc(void)
{
 set_tris_E(0);
 AS = 1;
 DS = 1;
 R_W= 1;
 RTC= DCV;
 delay_ms(1);
 AS = 0;
 delay_ms(1);
 RTC= DLV;
 R_W= 0;
 delay_ms(1);
 AS = 1;
 delay_ms(1);
}
void main(void)
{
   delay_ms(100);          // tao tre 100ms cho LCD khoi dong
    set_tris_D(0);
    set_tris_E(0);
    DCV = 0;         //xoa dia chi ghi
    DLV = 0;         //xoa du lieu ghi
    delay_ms(1);
    DCV = 0x15;   //  dia chi thanh ghi 0x15
    DLV = 0x54;   // gia tri cap nhat
 while(1)
 {   
    DCS = 0;  //xoa dia chi luu
    DCD = 0; // xoa dia chi doc
    vietrtc();
    delay_ms(1);
    DCD = 0x15;   // doc gia tri thanh ghi 0x15
    docrtc();
    DCS = RTC;
    x = DCS;
    delay_ms(1);
    AS = 1;        
    lcd_init();
    lcd_gotoxy(7,1);        // vi tri (x,y)=(7,1)= hang 1, cot 7
    lcd_putc(x);
    delay_ms(1000);
 }  
 }
Một chương trình đơn giản ghi và đọc thanh ghi vậy mà giá trị đọc được chỉ đúng ở lần đầu những lần lặp sau giá trị đọc được thay đổi.

thay đổi nội dung bởi: namqn, 23-12-2009 lúc 07:57 AM. Lý do: định dạng code
thuong008 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 01:08 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam