Ðăng Nhập

View Full Version : Giúp mình về pic16f77 và GLCD


chuot chui
12-06-2011, 08:04 PM
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
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
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
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
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
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
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
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ộ

tuyenet86
19-08-2011, 10:10 AM
chào cả nhà.!
em là thành viên mới.
hiện nay em đang làm luận văn tốt nghiệp về lập trình hiển thị GLCD dùng PIC, phần mềm lập trình sử dụng CCS C.
em đang nghiên cứu về con GLCD mà mãi chưa biết cách để lập trình cho nó.
mong cả nhà giúp đỡ giùm em với ah.
Cả nhà ai có tài liệu gì liên quan đến GLCD gủi cho em với.
em chân thành cảm ơn trước.
gmail: tuyenet86@gmail.com

phatcddt08a
19-08-2011, 10:41 AM
Khai báo kiểu hằng số const thì lưu trong flash,còn bỏ hằng thì lưu trong ram.tot nhat khaj báo lưa theo kieu dử liêu cấu trúc kết hợp kiểu dữ liệu mới.khai báo trên chỉ lưu dc 256 phan tử thôi nếu hơn thì đọc kô dúng gì cả vì mình thử làm ma tran luu font rồi.à kô bjết ai đã từng làm ma trận 16x64 quét hàng chạy chữ đc 255 ký tự mà chỉ tốn 383 byte ko lưu ý 1 ký tự 16 byte ko.nếu chạy 510 ký tự tốn 383 +255 = 638 byte ko cần giao tiếp ram,rom ngoài gì cả.