PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và 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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 10-08-2011, 02:09 PM   #6
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi maruko View Post
bác tmd ơi. em dùng hàm printf(" gia tri doc la : %lu", adc ); như bác nói nhưng vẫn k dc
nhưng nếu em dùng hàm printf(lcd_putc,"\fGia tri adc:\n\%lu", adc); thì kết quả adc lại hiển thị dc bác ah.nhưng nó lại phát sinh ra mấy lỗi sau :
- kết quả hiển thị bị nhấp nháy . em nghĩ là do hàm delay 200 cuối cùng em để ít nhưng khi em tăng delay len 1000 thì nó cũng vẫn nhấp nháy,chỉ có điều thời gian nó nhấp nháy lâu hơn thôi, nhờ bác suẳ dùm giúp em
- khi em để giá trị biến trở (biến trở nối với chân RW) lớn hơn 50% thì nó k hiển thị đc( khi đang đọc kết quả ta ấn nút dừng lại và ta tăng giá trị biến trở lên quá 50%.ta cho chạy thì lại không thể đọc dc, nó chỉ có thể dọc dc kêt quả khi giá trị biến trở đó là dưới 50% thôi )

tiện thể các bác giải thích giúp em giá trị adc hiển thị lên dc tính như thế nào với
code của em sau khi sửa :
#include <16f877A.h>
#device *=16, adc = 10
#use delay(clock = 20M)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT

#define LCD_ENABLE_PIN PIN_D3
#define LCD_RS_PIN PIN_D2
#define LCD_RW_PIN PIN_D6
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

#include <lcd.c>
void main(){
lcd_init();
int i;
int16 adc;

setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0); // Chon cong RA0 lam cong vao ADC
set_adc_channel(0);
delay_ms(10);


lcd_putc("STARTING");
for(i = 1; i < 10; i++){
lcd_putc('.');
delay_ms(100);
}
lcd_putc('\f');

while(1){
lcd_putc("\f");
adc = read_adc();
//lcd_putc_int(adc);

printf(lcd_putc,"\fGia tri adc:\n\%lu", adc);
delay_ms(200);

}
}


em có uo mạch mô phỏng lên phiền các bác suẳ giúp em với
em cảm on các bác
thứ nhất bạn dịnh nghĩa chân LCD_RW_PIN PIN_D6 trùng với chân #define LCD_DATA6 PIN_D6.
phần cứng sai một vài chỗ.
hiện tượng nháy là do trong vòng lặp while bạn xóa lcd rồi lại cập nhập dữ liệu liên tục.
code và phần cứng sửa lại:
Code:
#include <16f877A.h>
#device *=16, adc = 10
#use delay(clock = 20M)
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT

#define LCD_ENABLE_PIN  PIN_D3                                   
#define LCD_RS_PIN      PIN_D2                                   
#define LCD_RW_PIN      PIN_D1                                 
#define LCD_DATA4       PIN_D4                                  
#define LCD_DATA5       PIN_D5                                  
#define LCD_DATA6       PIN_D6                               
#define LCD_DATA7       PIN_D7  

#include <lcd.c>
void main(){
   lcd_init();
   int i;
   int16 adc;
   
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_adc_ports(AN0);        // Chon cong RA0 lam cong vao ADC 
   set_adc_channel(0);
    delay_ms(10);
    lcd_putc('\f');  
   lcd_putc("STARTING");
   for(i = 1; i < 10; i++){
      lcd_putc('.');
      delay_ms(100);
   }
      while(1){
      adc = read_adc();
      //lcd_putc_int(adc);
        lcd_gotoxy(1,2);     // cot 1 hang 2
        printf(lcd_putc,"Gia tri adc:%lu", adc);
      delay_ms(200);
   }
  }
File Kèm Theo
File Type: zip mach mo phong va code.zip (26.9 KB, 59 lần tải)
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.

thay đổi nội dung bởi: tdm, 10-08-2011 lúc 02:35 PM.
tdm 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à 09:33 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