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)
-   -   pic 16f877a và hiển thị led matran (http://www.picvietnam.com/forum/showthread.php?t=9261)

tdm 15-05-2011 08:39 PM

Trích:

Nguyên văn bởi friend_1990 (Post 45128)
char string3[10]="nhiet do:#"; sao mình phải thêm ký tự # vậy anh khi em bỏ lại xuất hiện ký tự khác vậy anhh?
trong lúc đang chạy sao nhiệt độ khi mình thay đồi con lm 35 nó không thay đổi theo vậy anh!!!!!!!!!!!vấn đề nằm ở đâu anh nhỉ?(nó chỉ dịch được 32 cột xong thì nhiệt độ mới cập nhật tiếp dc em muốn là nó đang chạy khi mình chỉnh lm35 thì nhiệt độ thay đổi theo vậy mình chỉnh dc ko anh)
nếu mình dùng ram ngoài mình nên dùng ram dung lượng là bao nhiêu vậy anh?
và mảng mình khai báo dùng ram ngoài thì được bao nhiêu byte vậy anh?
em chưa sử dụng ram ngoài lần nào anh gợi ý hay 1 vd cho em ạk?
em cám ơn anh nhiều !!!!!!!!!!!!!!

Trích:

sao mình phải thêm ký tự # vậy anh khi em bỏ lại xuất hiện ký tự khác vậy anhh?
em để ý trong hàm ( lay_font ) anh viết khi gặp kí tự # thoát khỏi hàm.
Trích:

em muốn là nó đang chạy khi mình chỉnh lm35 thì nhiệt độ thay đổi theo vậy mình chỉnh dc ko anh)
hoàn toàn được.
Code:

void main()
{int x=0;
int dv,chuc,tram;
enable_interrupts(INT_RDA);
enable_interrupts(global);
  set_tris_b(0b00000000);
  set_tris_d(0b00000000);
  set_tris_a(0b000001);
int dich_chu=0,toc_do_chay=0;
 while(1)
{
doc_adc();
for(dich_chu=0;dich_chu<=32;dich_chu++)
{
for(toc_do_chay=0;toc_do_chay<=2;toc_do_chay++)
{
b1=1;
b0=1;

b2=1;
b0=0;
b2=0;
x=read_adc();
x=x/2.049;
dv=x%10;
chuc=x/10;
itoa(dv,10,string);//gan dv vao string
itoa(chuc,10,string1);//gan chuc vao string1
strcat(string1,string);//ket hop string1 va string hien thi la string1
xoa_hien_thi();//xóa vùng nho hien thi truoc khi cap nhat nhiet do
lay_font(string3);      // Write character set to matrix
lay_font(string1);      // Write character set to matrix
for(m=0;m<=63;m++)
{
n=hien_thi[m+dich_chu];

n=~n;
xuat(n);
delay_us(1000);

dich();
}
}
}
}
}

em có thể dùng pic18f ram lớn hơn phù hợp với ứng dụng của em.

friend_1990 15-05-2011 09:12 PM

dạ em biết là sử dụng con 18f sẽ đủ nhưng đề tài thầy giao cho em là phải dùng con 16f877a anh ơi!!!!!!!hic
em có lên mạng tìm hiểu về cách đọc ram ngoài thấy người ta sử dụng con 6264 em đọc datasheet nó em không hiểu cho lắm liệu em dùng con này đủ dung lượng chương trình em không anh (sau này em còn viết ngày giờ phút giây tháng năm nữa)
em thấy phía trước ram ngoài lúc nào người ta cũng dùng con ic chốt 74153 ở phía trước nó ngõ ra pic nối vào ic chốt ngõ ra ic chốt nối vào ram ngoài vậy em có nên dùng ic chốt phía trước không anh hay cho dữ liệu đổ từ pic vào ram lun anh!!!!!!!!!!!

và chương trình viết copy font vào ram có khó không anh em đọc thấy người ta viết có cái em đọc hiểu có cái em vẫn chưa rõ anh viết 1 đoạn code nhỏ làm vd minh họa cho em hiểu nhe anh!!!!!!!!!!!!!

và dữ liệu ram ngoài thì mảng mình chứa bao nhiêu byte vậy anh(vd :em muốn làm 14 con led hay hơn thì mình dịch vẫn được đúng hok anh?)

còn 1 điều nữa anh nghĩ nó không quan trọng với anh nhưng em thấy nó quan trọng với em hi đơn giản thôi àk em muốn biết tên anh là gì để dễ xưng hô thôi ạk
tại a đã giúp em nhiều mà em lại hok biết dc anh tên gì thì kỳ lắm hihi

e rất vui vì được quen anh và nhậ được sự giúp đỡ từ anh
cám ơn anh nhiều nhều lắm ạk!!!!!!!!!!!!!:)

tdm 15-05-2011 09:24 PM

Trích:

Nguyên văn bởi friend_1990 (Post 45137)
dạ em biết là sử dụng con 18f sẽ đủ nhưng đề tài thầy giao cho em là phải dùng con 16f877a anh ơi!!!!!!!hic
em có lên mạng tìm hiểu về cách đọc ram ngoài thấy người ta sử dụng con 6264 em đọc datasheet nó em không hiểu cho lắm liệu em dùng con này đủ dung lượng chương trình em không anh (sau này em còn viết ngày giờ phút giây tháng năm nữa)
em thấy phía trước ram ngoài lúc nào người ta cũng dùng con ic chốt 74153 ở phía trước nó ngõ ra pic nối vào ic chốt ngõ ra ic chốt nối vào ram ngoài vậy em có nên dùng ic chốt phía trước không anh hay cho dữ liệu đổ từ pic vào ram lun anh!!!!!!!!!!!

và chương trình viết copy font vào ram có khó không anh em đọc thấy người ta viết có cái em đọc hiểu có cái em vẫn chưa rõ anh viết 1 đoạn code nhỏ làm vd minh họa cho em hiểu nhe anh!!!!!!!!!!!!!

và dữ liệu ram ngoài thì mảng mình chứa bao nhiêu byte vậy anh(vd :em muốn làm 14 con led hay hơn thì mình dịch vẫn được đúng hok anh?)

còn 1 điều nữa anh nghĩ nó không quan trọng với anh nhưng em thấy nó quan trọng với em hi đơn giản thôi àk em muốn biết tên anh là gì để dễ xưng hô thôi ạk
tại a đã giúp em nhiều mà em lại hok biết dc anh tên gì thì kỳ lắm hihi

e rất vui vì được quen anh và nhậ được sự giúp đỡ từ anh
cám ơn anh nhiều nhều lắm ạk!!!!!!!!!!!!!:)

ram 6264 có dung lượng 8k như vậy là đủ cho ứng dụng của em.
dùng con ic chốt 74ls573 để chốt d/c thấp (mục đích tiết kiệm chân vdk)
anh tên là:Minh

friend_1990 15-05-2011 09:43 PM

hi cám ơn anh Minh nha!!!!!

vậy mình phải dùng con chốt để tiết kiệm port vdk vậy mình phải dùng 1 port để điều khiển copy ram hả anh?

vậy phần cứng mình phải thiết kế thế nào anh Minh( theo em thì từ vdk nối vào ic chốt sao đó từ ic chốt nối vào ram ngoài )
vậy từ ram ngoài mình có cần nối vào ic ghi dich 595 nua không anh hay mình cho dữ liệu ra trực tiếp

em nghĩ nếu cho dữ liệu ra trực tiếp thì code sẽ phải viết lại từ đầu,nếu dùng 595 phía sau thì mình phải dùng 1 con ic chuyển đổi từ song song ra nối tiếp nữa đúng hok anh Minh tại ram ngoài dữ liệu ra song song mà

em nghĩ vậy không biết đúng hok a chỉnh giùm em nha!!!!!!!!!!!!

àk còn vấn đề em thắc mắc nữa là ram ngoài đó mình chỉ chứa font hay còn phải chứa gì nữa không anh?

cám ơn anh Minh nhiều ạk!!!!!!!!!!!!!

tanbka 16-05-2011 01:15 AM

Hinh nhu cac ban dang lam 1 bang dien tu cho ngan hang hay sao ay ma phai dung them RAM ngoai...Do an cua ban dinh quet bao nhieu cot. Minh nghi trong khuon kho mot do an cua ban thi dung 1 con 16F887 la thua suc roi.
Mình đã từng làm, với một mảng n phần tử, thì bạn quyét được n cột, mảng 40 phần tử bạn đã quyét được 40 cột rồi.
Ngày trước mình dùng con 8051 để quyét 3 module led, dịch trái, phải, lên, xuống, còn thừa sức mà. Vấn đề cơ bản là bạn sắp xếp chương trình như thế nào cho hợp lý
Không nên phức tạp vấn đề quá lên bạn ơi...

friend_1990 16-05-2011 01:45 AM

Trích:

Nguyên văn bởi tanbka (Post 45149)
Hinh nhu cac ban dang lam 1 bang dien tu cho ngan hang hay sao ay ma phai dung them RAM ngoai...Do an cua ban dinh quet bao nhieu cot. Minh nghi trong khuon kho mot do an cua ban thi dung 1 con 16F887 la thua suc roi.
Mình đã từng làm, với một mảng n phần tử, thì bạn quyét được n cột, mảng 40 phần tử bạn đã quyét được 40 cột rồi.
Ngày trước mình dùng con 8051 để quyét 3 module led, dịch trái, phải, lên, xuống, còn thừa sức mà. Vấn đề cơ bản là bạn sắp xếp chương trình như thế nào cho hợp lý
Không nên phức tạp vấn đề quá lên bạn ơi...



vấn đề là pic 16f dung lương ram ko đủ bạn ơi mình ko làm 8051 nên ko rõ nữa đề tài mình bắt buộc dùng pic 16f mà nên mình mới cần sự giúp đỡ của bạn cũng như của mọi người để mình hoàn thành luận văn cuối cùng này

mong bạn giúp đỡ mình
thanks bạn!!!!!!!!!!!!!!!!

friend_1990 16-05-2011 10:51 AM

1 Attachment(s)
Trích:

Nguyên văn bởi tdm (Post 45138)
ram 6264 có dung lượng 8k như vậy là đủ cho ứng dụng của em.
dùng con ic chốt 74ls573 để chốt d/c thấp (mục đích tiết kiệm chân vdk)
anh tên là:Minh


anh Minh ơi em tìm hiểu cả buổi tối nhưng em không biết kết nối ngõ ra ram ngoài như thế nào cho phù hợp với phần mềm mình đã viết hết anh giúp em nha

dưới là protuse e đã vẽ nhưng còn ngõ ra ram ngoài thì em không biết kết nối với 595 như thế nào hết ák

anh có kinh nghiệm chỉ em với!!!!!!!!!!!!!

em chỉ kết nối với 8 con led trên thôi nha anh còn 8 con dưới thì khỏi nhe anh!!!!!!!!!!!!

em cám ơn anh!!!!!!

tdm 16-05-2011 10:12 PM

2 Attachment(s)
Trích:

Nguyên văn bởi friend_1990 (Post 45155)
anh Minh ơi em tìm hiểu cả buổi tối nhưng em không biết kết nối ngõ ra ram ngoài như thế nào cho phù hợp với phần mềm mình đã viết hết anh giúp em nha

dưới là protuse e đã vẽ nhưng còn ngõ ra ram ngoài thì em không biết kết nối với 595 như thế nào hết ák

anh có kinh nghiệm chỉ em với!!!!!!!!!!!!!

em chỉ kết nối với 8 con led trên thôi nha anh còn 8 con dưới thì khỏi nhe anh!!!!!!!!!!!!

em cám ơn anh!!!!!!

phần cứng nó chẳng liên quan gì đến 595 cả.
em nên coi tài liệu liên quan đến sram 6264 để biết cách đọc và ghi nó.
đây là cách cơ bản để kết nối sram 6264 với pic.

friend_1990 16-05-2011 10:19 PM

như vậy dữ liệu mình đổ vào chạy vẫn như cũ hả anh?

em nghĩ dữ liệu mình copy vào ram là 8bit sao mình không dùng từ A0 tới A7 thôi mà phải dùng cả A8 trở xuống nữa hả anh?mình bỏ được không anh nó có tác dụng gì anh nhỉ?

chân data chan chốt chan clk 595 mình vẫn mắc như cũ hay có phải thay đổi gì không anh Minh?

àk nếu mình dùng ram ngoài khi mất điện thì sẽ bị xóa và phải nạp lại chương trình đúng hok anh?

khi mình dùng ngắt rda truyên dữ liệu từ pc xuống pic mình cần phải lưu vào eprom trong pic liệu dung lương pic 16f rom chứa đủ dữ liệu từ máy tính truyền xuống không anh hay phải dùng rom ngaòi nữa anh?

tanbka 16-05-2011 11:17 PM

Oh ý mình nói là con 8051 còn dư RAM thì con PIC 16F chắc chắn thừa vì nó còn nhìu ram hơn mà hix hix...

tanbka 16-05-2011 11:25 PM

16F877 có 256bytes rom cơ mà, bạn liệu đã dùng hết chưa mà đã nghĩ đến chuyện lắp rom ngoại.
Nếu giả sử có thiếu nữa, thì bạn dùng pic16F877A ấy, loại này bạn có thể lưu dữ liệu lên Flash nữa, thoải mái nhé.
À còn về RAM nữa, con này có những 368 bytes RAM, gấp 3 lần con 8051 đó bạn. Mình nghĩ là quá thoải mái để bạn làm một đồ án.
Chúc bạn thành công.

friend_1990 16-05-2011 11:25 PM

Trích:

Nguyên văn bởi tanbka (Post 45194)
Oh ý mình nói là con 8051 còn dư RAM thì con PIC 16F chắc chắn thừa vì nó còn nhìu ram hơn mà hix hix...


sr tại mình ko hiểu ý bạn đùng bùn nhe!!!!!!!!!!

mình dùng nhiều thứ khác nữa nên thiếu rồi bạn ơi!!!!!!!!
bạn có yahoo chứ nếu có mình với bạn có thể trao đổi cho nhau dc chứ

của mình là phongvu_1232002

friend_1990 17-05-2011 12:28 AM

Trích:

Nguyên văn bởi tdm (Post 45191)
phần cứng nó chẳng liên quan gì đến 595 cả.
em nên coi tài liệu liên quan đến sram 6264 để biết cách đọc và ghi nó.
đây là cách cơ bản để kết nối sram 6264 với pic.


anh Minh ơi giờ mình muốn dịch cả 64 cột hay lớn hơn thì biện pháp mình làm là gì hả anh?nó liên quan đến việc mở rộng ram ngoài không anh?
thanks anh!!!!!!!!!!!!!!!

tdm 17-05-2011 10:05 PM

Trích:

Nguyên văn bởi tanbka (Post 45195)
16F877 có 256bytes rom cơ mà, bạn liệu đã dùng hết chưa mà đã nghĩ đến chuyện lắp rom ngoại.
Nếu giả sử có thiếu nữa, thì bạn dùng pic16F877A ấy, loại này bạn có thể lưu dữ liệu lên Flash nữa, thoải mái nhé.
À còn về RAM nữa, con này có những 368 bytes RAM, gấp 3 lần con 8051 đó bạn. Mình nghĩ là quá thoải mái để bạn làm một đồ án.
Chúc bạn thành công.

368 bytes RAM nó chia ra làm nhiều bank
với pic 16f ccs c chỉ cho phép khai báo một mảng sram dài tối đa là 96 byte.
bạn có thể cho một đoạn code để mọi người tham khảo.
làm led matrix quan trọng tốc độ ghi đọc dữ liệu phải nhanh.

tdm 17-05-2011 10:30 PM

Trích:

Nguyên văn bởi friend_1990 (Post 45200)
anh Minh ơi giờ mình muốn dịch cả 64 cột hay lớn hơn thì biện pháp mình làm là gì hả anh?nó liên quan đến việc mở rộng ram ngoài không anh?
thanks anh!!!!!!!!!!!!!!!

theo anh đề tài của em yêu cầu cập nhập nhiệt độ và hiển thị thời gian thực
thì dữ liệu đưa ra bảng matrix cũng khá nhiều.em nên dùng ram ngoài(đây chỉ là ý kiến của anh thôi nhé)
anh cũng làm matrix chán rồi tìm đủ mọi cách tận dụng hết tài nguyên của pic
nhưng tốc độ đọc ghi của Flash,eeprom mất nhiều time quá.


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