![]() |
|
|
|
|
#1 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
vậy là mình bỏ dòng này đi phải không bạn#include <lcd.c>
|
|
|
|
|
|
#2 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
Bạn Nam nói <Làm sao bạn biết được cần phải gộp file "lcd.c" do CCS C lúc ban đầu? Vì khi CCS C chưa tạo ra file đó thì bạn làm sao biết được tên của nó là gì.
Về chỗ bạn chưa rõ, bạn đọc tài liệu hướng dẫn của CCS C, mục nói về #include. Link download ở đây: http://www.ccsinfo.com/downloads/ccs_c_manual.pdf. Nếu dùng #include <lcd.c> thì thư mục của project sẽ được tìm kiếm sau cùng (theo tài liệu hướng dẫn của CCS C), do đó nếu một trong những thư mục được CCS C dùng để tìm kiếm tập tin gộp (đọc tài liệu hướng dẫn để biết chúng được thiết lập ở đâu) cũng có một tập tin tên là "lcd.c" thì CCS C sẽ dùng tập tin đó, chứ không phải tập tin vừa được tạo trong thư mục của project đang biên dịch. Và hiện thời, chúng ta chưa biết nội dung của tập tin (nếu có) đó.> Cho Mình hỏi : Vậy có phải là nếu file lcd.c mà tìm không thấy thì CCS sẽ tự tạo ra file này không bạn? |
|
|
|
|
|
#3 | |
|
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
led
Trích:
|
|
|
|
|
|
|
#4 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
Bạn cho mình hỏi là mình khi viết trong file lcd.c có cần phải xác định chân cho LCD luôn không.Hay là xác định chân cho LCD trong chương trình chính.
|
|
|
|
|
|
#5 | |
|
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
Trích:
nếu đặt trong chương trình chính thì phải khai báo tên các chân trước rồi mới liên kết đến file LCD.c vi dụ: #bit RS = porta.0 #bit RW = porta.1 #bit E = porta.2 #include<path\LCD.c> // nếu LCD. nằm trong thư viện của CCS thì không cần path còn nếu đặt trong LCD.c thì nó phải đặt ở đầu chương trình hay nằm trên các hàm trong LCD. |
|
|
|
|
|
|
#6 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
#include <16F877A.h> // //
#include <def_877a.h> // #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT // #use delay(clock=20000000) #bit RS = portd.2 #bit E = portd.3 // #include <lcd.c> // float vantoc,soxung; // int8 a,b,c,d,a1; // int16 sovong,i; // /////////////////ket thuc phan khai bao thu vien va cac bien////////////////////// ////////////khai bao va chuong trinh ngat cho TIMER1///////////////////// #int_TIMER1 // void TIMER1_isr(void) // { // soxung=get_timer0(); //Lay so xung ma Timer0 dem // set_timer1(65535); // Trong 1ms // if(tmr1if==1) // { // intcon=0; //stop ngat // a1=1; // } // } // //////////////////////////ket thuc phan TIMER1/////////////////////////// //////////////////////////bat dau chuong trinh chinh//////////////////////////// void main() { trisa=0xFF; //set RA4 input trisb=0; trisc=0; trisd=0; lcd_init(); lcd_gotoxy(1,1); lcd_putc("Beginning...."); delay_ms(1000); lcd_putc('\f'); setup_timer_2(T2_DIV_BY_16,255,1); setup_ccp1(CCP_PWM); for(i=0;i<1024;i++) //tu 0 den 1024 thi toc do tang dan { set_pwm1_duty(i); // Toc do tang dan delay_ms(1); set_timer0(0); set_timer1(65535); setup_timer_0(RTCC_EXT_H_TO_L|RTCC_DIV_1); //Che do counter setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); delay_ms(50); //cai vao if(a1==1) { vantoc=((float)(60*soxung)/(0.01*100)); //Tinh van toc a=vantoc/1000; //chia lay phan nguyen b=(int)(vantoc-1000*a)/100; //chia lay phan nguyen c=(int)(vantoc-1000*a-100*b)/10; //chia lay phan nguyen d=(int)vantoc%10; //chia lay phan du /////////////////////////////////hien thi LCD////////////////// lcd_gotoxy(3,3); //den vi tri hang 3 cot 3 lcd_putc(a+48); //in ra a lcd_gotoxy(3,4); //den vi tri hang 3 cot 4 lcd_putc(b+48); //in ra b lcd_gotoxy(3,5); //den vi tri hang 3 cot 5 lcd_putc(c+48); //in ra c lcd_gotoxy(3,6); //den vi tri hang 3 cot 6 lcd_putc(d+48); //in ra d lcd_gotoxy(4,3); //den vi tri hang 4 cot 3 lcd_putc("vong/phut"); //in ra "vong/phut" lcd_gotoxy(2,2); //den vi tri hang 2 cot 2 lcd_putc("toc do dc"); //in ra "toc do dc" delay_ms(5); //Vong for tu 0->1000 nen delay it thoi tmr0if=0;tmr1if=0; //Xoa tran } } } Các bạn cho mình hỏi khi biên dịch thì ở file LCD.c báo lỗi ở dòng này struct lcd_pin_map { // This structure is overlayed lỗi là "A#DEVICE required before this line |
|
|
|
|
|
#7 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
Bạn cho mình hỏi nếu chân RW của LCD nối max thì khai báo chân thế nào
|
|
|
|
|
|
#8 | |
|
Đệ tử 7 túi
Tham gia ngày: Jul 2007
Nơi Cư Ngụ: Đà Nẵng
Bài gửi: 188
: |
Trích:
http://www.picvietnam.com/forum/show...p?t=357&page=4 |
|
|
|
|
|
|
#9 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
Bạn làm ơn chỉ bảo mình với .mình rối quá .
|
|
|
|
|
|
#10 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
Các bạn à , sao mình thấy việc gọi các thư viện hàm Trong CCS quá phức tạp đi , toàn bị báo lỗi thôi , chẳng hiểu nổi , chắc là mình phải nghĩ cách tự viết Code từ đầu tới đuôi thôi , chứ trông chờ vào thư viện thấy mệt quá , chỉ cái thư viện 16F877A.h thôi mà đã báo lỗi tùm lum rồi , huống chi mấy thư viện khác nữa ...Bạn nào có ý gì giúp mình với .Mình bế tắc !
|
|
|
|
|
|
#11 | |
|
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
lcd
Trích:
|
|
|
|
|
|
|
#12 |
|
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
LCD cua mình là loại 4 hàng 16 cột
|
|
|
|
![]() |
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|