PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   PIC - Thiết kế và Ứng dụng (http://www.picvietnam.com/forum/forumdisplay.php?f=23)
-   -   Giúp mình về pic16f77 và GLCD (http://www.picvietnam.com/forum/showthread.php?t=9742)

chuot chui 12-06-2011 08:04 PM

Giúp mình về pic16f77 và GLCD
 
Mình đang cần lập trình cho GLCD bằng CCS nhưng khi đọc thư viện glcd.c của CCS thì mình không rõ lắm về cách khai báo gán chân và sử dụng. Mình cũng cần bản def của pic 16f77. Nếu bạn nào có chương trình mẫu nào về GLCD và có tài liệu liên quan mong chia sẻ cho mình!

Thanks!

chuot chui 13-06-2011 02:08 AM

#include "C:\Documents and Settings\Home\Desktop\hien\do_an_2.h"
#include "def16c77.h"
#include "GLCD.c"



char p[60] = "do tien thanh";
void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
TRISB = 0x00;
TRISC = 0x00;
TRISD = 0x00;
PORTB = 0x00;
PORTC - 0x00;
PORTD = 0x00;
glcd_init(ON);
delay_ms (20);
//glcd_line(20,20,20,50,OFF);

glcd_fillScreen(1);

delay_ms(20);

glcd_text57(20,20,p,1,1) ;




}


Trên là đoạn code mình sử dụng để viết 1 ví dụ nhỏ cho glcd dùng thư viện có sẵn glcd.c trong drivers mà PIC C cung cấp nhưng trong mô phỏng lại chỉ sáng đèn ko thôi~~ Mình đã sửa chân trong thư viện cho đúng với mục đích của mình nhưng ko chạy! Có ai có ví dụ nhỏ nào về glcd viết bằng PIC C thì cho mình xin đc ko

hein_ts 15-06-2011 12:43 AM

Bạn có mua được GLCD không chỉ cho mình với. Bạn cứ mở file header đó ra mà đọc. chân cẳng nó sẽ nói rất rõ trong đoạn đầu của file đó hoặc trong các hàm con. Hay, bạn cũng tên "hien"?

shakespeare_a18 21-06-2011 11:56 PM

Trích:

Nguyên văn bởi chuot chui (Post 46071)
Mình đang cần lập trình cho GLCD bằng CCS nhưng khi đọc thư viện glcd.c của CCS thì mình không rõ lắm về cách khai báo gán chân và sử dụng. Mình cũng cần bản def của pic 16f77. Nếu bạn nào có chương trình mẫu nào về GLCD và có tài liệu liên quan mong chia sẻ cho mình!

Thanks!

Trong folder ví dụ của CCS đã có một ví dụ về glcd là ex_glcd.c, bạn chỉ cần biên dịch, nạp hoặc mô phỏng là chạy.

chuot chui 16-07-2011 05:23 PM

1 Attachment(s)
Mình thử làm như ví dụ và define lại chân cho đúng với mạch của mình nhưng mô phỏng lại không chạy! Bạn có thể giải thích hộ mình tại sao ko?

chuot chui 18-07-2011 02:13 AM

Mình đã thử làm lại với cách nối chân giống như driver mà CCs cung cấp thì mô phỏng lại chạy được!! Mình đang tìm ra chỗ sai ở cách define chân của mình trong file mình đính kém!! Bạn nào đã thấy được lỗi thì hãy chỉ lại cho mình. Trong cách define lại chân mình đã khai báo lại chân và sửa lại hàm readdata và writedata

tdm 19-07-2011 09:54 PM

1 Attachment(s)
Trích:

Nguyên văn bởi chuot chui (Post 47115)
Mình đã thử làm lại với cách nối chân giống như driver mà CCs cung cấp thì mô phỏng lại chạy được!! Mình đang tìm ra chỗ sai ở cách define chân của mình trong file mình đính kém!! Bạn nào đã thấy được lỗi thì hãy chỉ lại cho mình. Trong cách define lại chân mình đã khai báo lại chân và sửa lại hàm readdata và writedata

thử lại xem sao:

chuot chui 20-07-2011 03:23 PM

Trích:

Nguyên văn bởi tdm (Post 47160)
thử lại xem sao:

đã thử chạy trên máy mình và thấy nó chạy rất lăng nhăng ko ra cái gì cả!phải chăng là do proteus??

chuot chui 21-07-2011 01:24 AM

Mình đã test trên mạch thật! code nào cũng chạy được cả! haiz! mô phỏng chán quá

chuot chui 21-07-2011 06:07 PM

Mình đã làm đc với GLCD chạy được những hàm cơ bản mà thư viện của CCS cung cấp nhưng hiện nay mình muốn hiển thị hình ảnh lên GLCD lại có trục trặc. Khi khai báo mảng 1024 phần tử trong CCS thì bị báo là dung lượng của dữ liệu quá lớn. Hiện nay mình phải thử ghi thẳng data này vào ROM của PIC rồi đọc ra nhưng như thế rất bất tiện nếu như mình xử lí với nhiều ảnh!! Có anh nào đã từng làm qua và có cách giải quyết nào hay hơn mong chỉ giáo?

tdm 21-07-2011 06:41 PM

Trích:

Nguyên văn bởi chuot chui (Post 47204)
Mình đã làm đc với GLCD chạy được những hàm cơ bản mà thư viện của CCS cung cấp nhưng hiện nay mình muốn hiển thị hình ảnh lên GLCD lại có trục trặc. Khi khai báo mảng 1024 phần tử trong CCS thì bị báo là dung lượng của dữ liệu quá lớn. Hiện nay mình phải thử ghi thẳng data này vào ROM của PIC rồi đọc ra nhưng như thế rất bất tiện nếu như mình xử lí với nhiều ảnh!! Có anh nào đã từng làm qua và có cách giải quyết nào hay hơn mong chỉ giáo?

khai báo như này vẫn dịch bình thường có sao đâu:
const unsigned char man_hinh[1024]={;;;;;;;};

8051topic 21-07-2011 09:53 PM

Cho mình hỏi xíu, có phải code cho GLCD 128*64 phải không vậy, có ai cho mình sơ đồ kết nối GLCD cơ bản được không ạh, mình nối mãi mà chẳng thấy gì cả!
thanks!

chuot chui 21-07-2011 10:11 PM

Trích:

Nguyên văn bởi tdm (Post 47207)
khai báo như này vẫn dịch bình thường có sao đâu:
const unsigned char man_hinh[1024]={;;;;;;;};


Mình cũng khai báo như thế mà nhưng mà nó vẫn báo lỗi

chuot chui 21-07-2011 10:13 PM

Trích:

Nguyên văn bởi 8051topic (Post 47209)
Cho mình hỏi xíu, có phải code cho GLCD 128*64 phải không vậy, có ai cho mình sơ đồ kết nối GLCD cơ bản được không ạh, mình nối mãi mà chẳng thấy gì cả!
thanks!

bạn hãy kết nối thử như thư viện GLCD.c là đc mà

chuot chui 24-07-2011 11:44 AM

Bạn nào có bản CCS nào mới chạy ổn định ko cho mình xin!! Mình lập trình để đọc từ ROm mà mỗi bản lại báo một lỗi khác nhau!!Toàn những lỗi trời hỡi ko bít đâu đc mà lần!
*#separate void glcd_image_buffer(unsigned long mempointer)
{

int i,j;

int page = 0xB8;
char chipsel;
char buffer[1];

output_low(GLCD_DI);
glcd_writeByte(GLCD_CS1,0x40);
glcd_writeByte(GLCD_CS2,0x40);
glcd_writeByte(GLCD_CS1,page);
glcd_writeByte(GLCD_CS2,page);
for (j=0;j<8;j++,page+=1)
{
output_low(GLCD_DI);
glcd_writeByte(GLCD_CS1,page);
glcd_writeByte(GLCD_CS2,page);
for(i=0;i<128;i++)
{
if(i<64)
{
chipsel=GLCD_CS1;
}
else
{
chipsel =GLCD_CS2;
}
read_program_memory(mempointer,buffer,1);
mempointer++;
output_high(GLCD_DI);
glcd_writeByte(chipsel,*buffer);

}
}
}


đây là hàm đọc ảnh từ ROM của mình!! Nó báo lỗi ở khai báo hàm void và ko định nghĩa biến mempoiter và hàm read_program_memory trong khi mình lấy hàm đó từ manual của CCS!!????????
ai giải thích hộ


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam