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

Ðề tài đã khoá
 
Ðiều Chỉnh Xếp Bài
Old 24-09-2007, 10:19 PM   #1
funnyCat
Nhập môn đệ tử
 
Tham gia ngày: May 2007
Bài gửi: 3
:
À quên, em khai báo 4 mảng 60 phần tử thì lại được. Làm sao để gộp lại được thành 1 mảng nhỉ?
funnyCat vẫn chưa có mặt trong diễn đàn  
Old 24-09-2007, 10:36 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi funnyCat View Post
Các bác cho em hỏi là trong CCS làm sao có thể sử dụng được mảng nhiều phần tử cho PIC16F877a(em muốn dùng mảng khoảng 128 phần tử, nhưng chỉ khai báo được khoảng 93-94 phần tử thì nó báo là ko đủ RAM)
Trích:
Nguyên văn bởi funnyCat View Post
À quên, em khai báo 4 mảng 60 phần tử thì lại được. Làm sao để gộp lại được thành 1 mảng nhỉ?
Bạn đọc datasheet của PIC16F877A, hình 2-3 (bản đồ bộ nhớ thanh ghi) sẽ thấy vùng RAM mà người sử dụng có thể đọc/ghi tùy ý (công dụng chung) được chia thành 4 bank không liên tục. Do đó hai trường hợp mà bạn đã gặp là hợp lý. Bạn được phép có 4 mảng, mỗi mảng có tối đa 80 byte, chứ không thể có một mảng liên tục như bạn yêu cầu. Trình dịch cũng khó mà làm gì hơn được vì cấu trúc của RAM trong chip là như vậy. Các PIC18 có bộ nhớ RAM rộng rãi và liên tục hơn nhiều.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn  
Old 26-09-2007, 11:21 PM   #3
vuongctho
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 1
:
em dang hoc lap trinh c cho pic, a nao co tai lieu tieng viet huong dan lap trinh css cho pic cho e xin voi!!!!hepl!

cho em hoi!em muon lam lich van nien viet phan mem bang ccs,cac "thay" nao da tung lam roi cho em biet minh lam ntn voi??huong dan em viet ccs cho mach nay voi!!!cam on!!!!

thay đổi nội dung bởi: falleaf, 27-09-2007 lúc 01:06 AM.
vuongctho vẫn chưa có mặt trong diễn đàn  
Old 28-09-2007, 08:28 AM   #4
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
các anh ơi cho em hỏi cái này tí
em dùng ccs để lập trình cho bài led matrix. em mới mã hóa font cho vài từ thì chương trình đã báo là không đủ RAM.
thế làm cách nào để nâng cấp thêm RAM cho CCS hả các anh.
còn về phần cứng em cũng chưa biết dùng RAM gì cho đủ để mã hóa toàn bộ font cho đủ. còn cách giao tiếp với RAM ngoài thì thế nào em cũng chưa biết. các anh chỉ giúp em nhé.
vì em đang ở tp qui nhơn nên không có điều kiện họi hỏi mong các anh giúp đỡ
tungtot_vl vẫn chưa có mặt trong diễn đàn  
Old 28-09-2007, 09:33 AM   #5
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh
Trích:
Nguyên văn bởi tungtot_vl View Post
thế làm cách nào để nâng cấp thêm RAM cho CCS hả các anh.
Trình biên dịch chẳng liên quan gì đến RAM của chip cả.

Xin hỏi bạn dùng con pic nào? Với ứng dụng ko lớn thì 16F877A (887A) dùng thoải mái.

Nếu ko đủ thì bạn có thể lựa chọn chip có dung lượng lớn hơn, pic18F chẳng hạn.
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh vẫn chưa có mặt trong diễn đàn  
Old 28-09-2007, 06:42 PM   #6
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi tungtot_vl View Post
các anh ơi cho em hỏi cái này tí
em dùng ccs để lập trình cho bài led matrix. em mới mã hóa font cho vài từ thì chương trình đã báo là không đủ RAM.
thế làm cách nào để nâng cấp thêm RAM cho CCS hả các anh.
còn về phần cứng em cũng chưa biết dùng RAM gì cho đủ để mã hóa toàn bộ font cho đủ. còn cách giao tiếp với RAM ngoài thì thế nào em cũng chưa biết. các anh chỉ giúp em nhé.
vì em đang ở tp qui nhơn nên không có điều kiện họi hỏi mong các anh giúp đỡ
Để mã hóa font cho các ứng dụng led ma trận thì người ta thường dùng flash (bộ nhớ chương trình), vì RAM trên chip không nhiều và việc sử dụng RAM làm bảng mã hóa là sử dụng không đúng mục đích.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn  
Old 01-10-2007, 09:30 AM   #7
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
Trích:
Nguyên văn bởi namqn View Post
Để mã hóa font cho các ứng dụng led ma trận thì người ta thường dùng flash (bộ nhớ chương trình), vì RAM trên chip không nhiều và việc sử dụng RAM làm bảng mã hóa là sử dụng không đúng mục đích.

Thân,
lại làm phiền anh nam nữa rồi.
anh nam ơi vì em học lập trình qua mạng nên kinh nghiệm còn non lắm. từ trước đến giờ em chỉ biết xuất dữ liệu trực tiếp ra port thôi. em chưa biết cách lưu data vào flash như thế nào. em nhờ anh chỉ cho vài đường để hiểu biết thêm. em dùng pic 877. và trình dịch ccs
thank you
pic xuất hiện đầu tiên tại thành phố qui nhơn
tungtot_vl vẫn chưa có mặt trong diễn đàn  
Old 01-10-2007, 04:53 PM   #8
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
ai giải thích cho mình cái này nhỉ
khi dùng : unsigned char font[] = {...}; thì chương trình báo lỗi không đủ RAM
khi dùng : unsigned char const font[] = {...}; thì chương trình hết báo lỗi và dung lượng RAM giảm xuống rất nhiều.
mong giúp đỡ
tungtot_vl vẫn chưa có mặt trong diễn đàn  
Old 03-10-2007, 12:43 AM   #9
thaithienanh
Đệ tử 7 túi
 
thaithienanh's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 189
:
Send a message via Yahoo to thaithienanh
Trích:
Nguyên văn bởi tungtot_vl View Post
ai giải thích cho mình cái này nhỉ
khi dùng : unsigned char font[] = {...}; thì chương trình báo lỗi không đủ RAM
khi dùng : unsigned char const font[] = {...}; thì chương trình hết báo lỗi và dung lượng RAM giảm xuống rất nhiều.
mong giúp đỡ
Với cách khai báo thứ nhất sẽ có ý nghĩa là một mảng biến có kiểu ký tự cho nên dung lượng Ram lúc này sẽ tốn rất đáng kể.

Còn với cách khai báo thứ hai sẽ chỉ là một mảng các hằng số kiểu ký tự mà thôi cho nên việc bạn nhìn thấy dung lượng Ram giảm xuống rất nhiều là điều bình thường
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________
_ _ _ _ _ _ _ _ Yêu mến tất cả anh em Picvietnam.com _ _ _ _ _ _ _ _
. . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . .
thaithienanh vẫn chưa có mặt trong diễn đàn  
Old 02-10-2007, 03:28 PM   #10
nbchien
Nhập môn đệ tử
 
Tham gia ngày: Sep 2007
Bài gửi: 4
:
Sao luồng này trầm thế nhỉ. Lâu lâu không thấy các cao thủ post bài cho bọn đàn em học tập với nhỉ
nbchien vẫn chưa có mặt trong diễn đàn  
Old 08-10-2007, 02:50 AM   #11
thongtr
Đệ tử 2 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 27
:
Send a message via Yahoo to thongtr
Em vừa mới viết xong ct hiển thị LCD 4 bit! có hiệu ứng chữ chạy rất hay!! em post lên cho các pác tham khảo nhé! và góp ý cho em nhé!

#include <16F877A.h>
#include <DEFS_16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#define use_portb_lcd TRUE
#include <lcd.c>
const unsigned char line1[]={'H','E','L','L','O',' ','P','I','C','V','N','!','#'};
const unsigned char line2[]={'Y','H',':','T','H','O','N','G','T','R','0','6', '0','1','@',\
'Y','A','H','O','O','.','C','O','M','#'};

void main(void)
{ while(true)
{
int I=0,y=0,k=0,z=0;
delay_ms(100); // tao tre 100ms cho LCD khoi dong
lcd_init();
lcd_gotoxy(1,1);
while (line1[y]!='#')
{
lcd_putc(line1[y]);
delay_ms(200);
y++;
}
lcd_gotoxy(1,2);
while (i<16)
{
lcd_putc(line2[I]);
i++;
delay_ms(200);
}
i=2;

while (line2[z]!='#')
{
lcd_init();
lcd_gotoxy(1,1);
y=0;
while (line1[y]!='#')
{
lcd_putc(line1[y]);
y++; }

lcd_gotoxy(1,2);
k=i+16;
for(z=i;z<k;z++)
{lcd_putc(line2[z]);}
delay_ms(400);
i++;
}
}
}
File Kèm Theo
File Type: rar LCD 4 bit new.rar (25.0 KB, 454 lần tải)
__________________
thongtr0601@yahoo.com!!
Giúp nhau cùng tiến bộ.....

thay đổi nội dung bởi: thongtr, 08-10-2007 lúc 10:02 AM.
thongtr vẫn chưa có mặt trong diễn đàn  
Old 13-10-2007, 02:04 PM   #12
thongtr
Đệ tử 2 túi
 
Tham gia ngày: Jul 2007
Bài gửi: 27
:
Send a message via Yahoo to thongtr
Trích:
Nguyên văn bởi thongtr View Post
Em vừa mới viết xong ct hiển thị LCD 4 bit! có hiệu ứng chữ chạy rất hay!! em post lên cho các pác tham khảo nhé! và góp ý cho em nhé!

#include <16F877A.h>
#include <DEFS_16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#define use_portb_lcd TRUE
#include <lcd.c>
const unsigned char line1[]={'H','E','L','L','O',' ','P','I','C','V','N','!','#'};
const unsigned char line2[]={'Y','H',':','T','H','O','N','G','T','R','0','6', '0','1','@',\
'Y','A','H','O','O','.','C','O','M','#'};

void main(void)
{ while(true)
{
int I=0,y=0,k=0,z=0;
delay_ms(100); // tao tre 100ms cho LCD khoi dong
lcd_init();
lcd_gotoxy(1,1);
while (line1[y]!='#')
{
lcd_putc(line1[y]);
delay_ms(200);
y++;
}
lcd_gotoxy(1,2);
while (i<16)
{
lcd_putc(line2[I]);
i++;
delay_ms(200);
}
i=2;

while (line2[z]!='#')
{
lcd_init();
lcd_gotoxy(1,1);
y=0;
while (line1[y]!='#')
{
lcd_putc(line1[y]);
y++; }

lcd_gotoxy(1,2);
k=i+16;
for(z=i;z<k;z++)
{lcd_putc(line2[z]);}
delay_ms(400);
i++;
}
}
}
Chương trình này minh mô phỏng chạy rồi nhung sao khi cho chạy thực tế khì ko dc!!
Mình đã mắc mạch theo sơ đồ này!! (chỉ có thay thạch anh 20M thôi!)
Hình Kèm Theo
File Type: gif LCD_4pindata.gif (10.8 KB, 1017 lần tải)
__________________
thongtr0601@yahoo.com!!
Giúp nhau cùng tiến bộ.....
thongtr vẫn chưa có mặt trong diễn đàn  
Old 11-10-2007, 09:14 AM   #13
Nguoidumuc204
Nhập môn đệ tử
 
Nguoidumuc204's Avatar
 
Tham gia ngày: Oct 2007
Bài gửi: 6
:
Mình thấy khai báo mảng của bạn hơi phức tạp , sao không khai báo là

const unsigned char line1[]={"Hello PICVIETNAM#"};
const unsigned char line2[]={"YH :xxx"};

vậy thì đơn giản, dễ hiểu và kết quả vẫn vậy.

và hàm lcd_init(); chỉ cần dùng một lầm duy nhất là đủ,như vấy sẽ không làm cho lcd bị nháy khi hiển thị các câu khác nhau. Nếu muốn xóa trắng màn hình thì chỉ việc dùng lệnh lcd_putc("\f");
Nguoidumuc204 vẫn chưa có mặt trong diễn đàn  
Old 11-10-2007, 09:29 AM   #14
Nguoidumuc204
Nhập môn đệ tử
 
Nguoidumuc204's Avatar
 
Tham gia ngày: Oct 2007
Bài gửi: 6
:
Có cao thủ nào có thể cho em biết công thức liên hệ giữa Resolution và Overflow trong con PIC 16F877A không?
Em dùng thạch anh 4Mhz, timer0 , Resolution : 8us, Overflow : 2ms. Nhưng em không hiểu chúng liên hệ với nhau thế nào.
Em mới ra nhập làng VDK nói chung và Pic nói riêng,mong các bác giúp đỡ.
Nguoidumuc204 vẫn chưa có mặt trong diễn đàn  
Old 11-10-2007, 11:16 AM   #15
Nguoidumuc204
Nhập môn đệ tử
 
Nguoidumuc204's Avatar
 
Tham gia ngày: Oct 2007
Bài gửi: 6
:
Trích:
Nguyên văn bởi Nguoidumuc204 View Post
Có cao thủ nào có thể cho em biết công thức liên hệ giữa Resolution và Overflow trong con PIC 16F877A không?
Em dùng thạch anh 4Mhz, timer0 , Resolution : 8us, Overflow : 2ms. Nhưng em không hiểu chúng liên hệ với nhau thế nào.
Em mới ra nhập làng VDK nói chung và Pic nói riêng,mong các bác giúp đỡ.

Chờ cả buổi mà chẳng bác nào tra lời,đi ăn xin nhiều nơi mới hiểu ra, thôi thì cứ POST lên cho anh em nào chưa rõ thì coi.

Timer0 là bộ định thời có khoảng chia cho trước , các khoảng chia theo 2 lũy thừa 1 2 4 8 ... ( tùy theo chip )

Ví dụ ở câu hỏi trên của em thì câu lệnh
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_4); // Prescale 4us,Overflow 2us

có nghĩa là :
cứ 4us ( 4 xung đồng hồ ) ==> 1 xung timer
cứ 255 xung timer ( 8 bit ) ==> 1 lần tràn
==> timer sẽ tràn từ 0xFF -> 0x00 trong khoảng thời gian 4 x 255 = 1020 us

thay đổi nội dung bởi: Nguoidumuc204, 11-10-2007 lúc 11:33 AM. Lý do: Hì hì viết sai lỗi chính tả
Nguoidumuc204 vẫn chưa có mặt trong diễn đàn  
Ðề tài đã khoá


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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT về USART trong PIC16F877A mafd_47a MPASM 16 19-02-2025 05:32 AM
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 28 28-01-2025 10:45 PM
Lập nhóm PIC16F877A nhh Cơ bản về vi điều khiển và PIC 285 08-03-2017 11:08 PM
Bộ so sánh và PWM cho PIC16F877A anhquangngai Cơ bản về vi điều khiển và PIC 24 08-09-2012 09:00 AM
Pic16f877a TỪ DỄ TỚi KhÓ ntc Cơ bản về vi điều khiển và PIC 373 23-05-2009 10:24 PM


Múi giờ GMT. Hiện tại là 06:53 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