![]() |
pic 16f877a và hiển thị led matran
chào các bác!!!!!!!!!11
mình đang làm đề tài quang báo hiển thị led matran vấn đề mình gặp phải chưa giải quyết được là khi từ máy tính đẩy một chuỗi dữ liệu xuống thì làm sao xử lý chuỗi đó hiển thị led matran(ở đây mình đã làm hiển thị được ký tự rồi nhưng xử lý chuỗi từ pc xuống vẫn chưa được) vd :truyền chuỗi từ pc xuống pic là"*picvietnam.com#" khi pic nhận dc ký tự # rồi thì sẽ xử lý chuỗi vậy làm sao mình lấy từng ký tự hiển thị led matran(mình nghĩ lấy từng ký tự tra mảng rồi hiển thị nhưng vẫn không biết tách từng ký tự trong 1 chuỗi như thế nào) mong bác nào đã làm qua có thể chỉ mình cách viết được không...........cám ơn các bác |
Từ máy tình truyền nối tiếp xuống xuống PIC mà, bạn chỉ lấy từng byte từ bộ đệm ra thôi. Không bít có đúng ý bạn muốn hỏi không?
|
nhưng cách lấy mình lấy như thế nào mình muốn hỏi là vậy
một chuỗi là vậy nhưng lấy 1 ký tự hiện thì mình vẫn chưa làm được bạn biết cách lấy ko chỉ mỉnh dc không? |
cái này bạn chỉ việc trong hàm ngắt nhận bạn đưa data vào 1 mảng.Sau đó bạn lấy từng byte trong mảng đem tham chiếu vào bảng mã Font =>Quét hiển thị lên led ma trận
Trong hàm ngắt bạn viết như sau: Code:
#int_RDA |
vậy bạn stupid xử lý chuỗi pic hiển thị lên như thế nào để lấy từng ký tự ra rồi xuất lên led matrix
|
mong các bạn đóng góp ý kiến giúp mình làm đồ án tốt nghiệp
nếu làm xong thì mình sẽ post len toàn bộ cho bạn nào chưa làm hay muốn nghiên cứu về led matran mong các bác pro nào đã từng làm chỉ giáo giúp mình.........thanks ..............**********Học thầy không tày học bạn*********............... ..............******ở nhà nhờ ba mẹ,ra đường nhờ bạn bè******.............. |
sao không ai giúp thế nhỉ?
|
Trích:
vd bạn nhận được một chuỗi là :pic# bạn lưu nó vào vùng luu_chuỗi[] đọc luu_chuỗi[] so sánh nếu không phải là kí tự # so sánh xem nó là kí tự gì rồi lấy font kí tự đó lưu vào vùng nhớ :hien_thị[] lúc này chỉ cần lấy data từ vùng nhớ:hien_thị[] đưa ra matrix là xong. |
mình đã nghĩ tới phương pháp đó nhưng viết mãi vẫn không lấy ký tự ra được
bạn có thể post 1 đoạn chương trình làm vd được không mong bạn giúp mình nha!!!!!!!!!!! ...........********Những điều ta biết là 1 hạt cát*********.............. ...........******những điều ta chưa biết là cả 1 sa mạc*****............. |
Trích:
|
1 Attachment(s)
mình gửi cả file mo phỏng và code lên mình chỉ mới hiển thị được ký tự mặc định thôi chứ chưa lấy dc ký tự bất ký bạn xem và chỉ giúp mình nha
cám ơn tdm nha!!!!!!!!!!!!!!! |
nếu ai làm được thì post lên diễn đàn mọi người cùng tham khảo và cùng làm nha
cám ơn mọi người đã xem qua!!!!!!!!!!!!!!!!!!!!!! |
sao ko thấy ai trả lời dùm hết vậy ta
a admin giúp dùm em đi!!!!!!!!!!!!! |
Trích:
hi vọng nó có ích cho bạn. Code:
//lay mang du lieu so sanh voi font luu font vao vung nho hien thi |
cám ơn tdm nhiều lắm nha
giúp mình lần nữa nha đoạn code lấy font sao mình đọc khó hiểu quá bạn có thể giải thích từng dòng bằng tiếng việt được không với lại mình lấy bài bạn mô phỏng sao chỉ hiển thị mà khong dịch được vậy tdm xem lại dùm mình chỗ đó nữa nha thanks tdm nhiều nha mong bạn giúp mình mail bạn là gì vậy có gì mình trao đổi qua đó cho tiện của mình là namcddt0811b@gmail.com mong nhận được sự trả lời sớm nhất bạn thanks |
void lay_font(char * textptr);????????? dòng này khai báo trong ngặoc là gì vậy bạn
for(m=0;m<=63;m++) { n=hien_thi[m]; n=~n;??????????????????? toán tử ~ là gì nhỉ? xuat(n); delay_us(1000); } giải thích tiếng việt dùm mình void lấy font dc ko bạn những lệnh dưới mình chưa sử dung bao giờ nên đọc không hiểu cho lắm void lay_font(char * textptr) { int i, j;// BYTE pixelData[5]; // Stores character data for(i=0; textptr[i] != '\0'; ++i ) // Loop through the passed string { if(textptr[i] == '#') break; if(textptr[i] < 'S') // Checks if the letter is in the first text array memcpy(pixelData, TEXT[textptr[i]-' '], 5); else if(textptr[i] <= '~') // Check if the letter is in the second array memcpy(pixelData, TEXT2[textptr[i]-'S'], 5); else memcpy(pixelData, TEXT[0], 5); // Default to space for(j=0;j<=4;j++) { hien_thi[chieu_dai]=(pixelData[j]); chieu_dai++; } } } [/code][/QUOTE] |
void lay_font(char * textptr)
{ int i, j;// BYTE pixelData[5]; // Stores character data for(i=0; textptr[i] != '\0'; ++i ) // Loop through the passed string { if(textptr[i] == '#')//textptr khai bao vi tri con tro break; if(textptr[i] < 'S') //ky tu nam o mang text memcpy(pixelData, TEXT[textptr[i]-' '], 5);//copy 5 byte gia tri text[textptr[i]-'' vao pixeldata else if(textptr[i] <= '~') // ky tu nam o mang text2 memcpy(pixelData, TEXT2[textptr[i]-'S'], 5);//copy 5 byte gia tri text2[textptr[i]-'s' vao pixeldata else memcpy(pixelData, TEXT[0], 5); // khoang trang for(j=0;j<=4;j++) { hien_thi[chieu_dai]=(pixelData[j]);//hien thi 5 byte da copy chieu_dai++; mình giải thích vậy hợp lý không tdm còn 1 dòng mình không hiểu là BYTE pixelData[5]; // Stores character data nghĩa là gì vậy tdm với khai báo char * textptr nghĩa là gì vậy |
Trích:
BYTE pixelData[5]; // Stores character data khai báo mảng chứa font lấy được hien_thi[chieu_dai]=(pixelData[j]);// lưumảng pixelData vào mảng hien_thi char * textptr khai báo dang con trỏ n=~n;??????????????????? toán tử ~ là gì nhỉ? [đảo byte] |
vậy mình muốn cho dịch chữ chạy mình dùng ngắt rda phải không bạn?
for(i=0; textptr[i] != '\0'; ++i ) lệnh này nghĩa là gì vậy tdm tetprt[i]!='\0' là gì mình đọc không hiểu? mình muốn chử chạy cuộn tròn vậy viết như thế nào bạn gợi ý dùm mình nha tm có yahoo ko co cho mình nha?tiện việc trao đổi phongvu_1232002 nick của mình mong được sự chỉ giáo của bạn thanks bác nhiều!!!!!!!!!!!! |
1 Attachment(s)
Tdm giúp mình với mình đang làm nhiệt độ sao hiển thị lên được rồi nhưng khống chế nó hiển thị laị không được
vd:nó hiển thị 78 thì nó phải hiển thị mãi 78 cho đến khi thay đổi giá trị lm 35 thì mới hiển thị số khác đằng này số 78 cứ hiển thị ra thêm 3 số 78 phía sau nữa mình khống chế nó mãi mà vẫn không được mong bạn giúp mình nha ak mình muốn cho số 78 đó cuộn tròn trên 8 led matrix thì làm sao nhỉ mong được sự giúp đỡ từ tdm nha cám ơn tdm nhiều!!!!!!!!!!!!!!!!!!!!!!!! dưới là code mình đã hiển thị nhưng không khống chế được các bác down về xem dùm nha!!!!!!!!!!!! thanks mọi người do đề tài gần phải nộp cho thầy mong được sự giúp đõ từ mọi người!!!!!!!!!!!!!!!!!! |
giúp mình với tdm ơi
|
Trích:
|
anh tdm có thể nói cụ thể hơn được không xóa hiển thị như thế nào ạk
em làm mãi nó vẫn cứ hiển thị như vậy àk anh cũng đã down về chắc cungthay61ay61 được chỗ sai của em rồi mong a chỉ ngay vị trí đó dc không anh cám ơn anh nhiều!!!!!!!!!!!!! xong cái này em còn phải cho nó dịch và hiển thị ngày tháng năm giờ phút giây nữa em mong anh sẽ chỉ giúp em biết chỗ cần phải sữa là ở vị trí nào đi anh!!!!!!!!!!!!!!! àk anh tên gì vậy?anh co yahoo cho em với mong dc sự trả lời sớm từ anh!!!!!!!!!!!!!! thanks anh |
Trích:
em biết anh rất bận nhưng em mong sẽ chỉ giúp em làm luận văn tốt nghiệp này em lang thang trên mạng hỏi ở nhiều diễn đàn nhưng có mỗi a giúp em,em mong anh sẽ tiếp tục chỉ giúp em hoàn thành khóa luận văn cuối cùng này để em có thể ra trường và tìm việc làm anh hướng dẫn em từ đầu giờ anh mà bỏ em cũng như đưa em tới giữa dòng sông rồi đạp em xuống em không biết bơi chỉ có chết đuối thôi anh ơi!!!!!!!!!!! em gần phải nộp rồi do kiến thức làm bài em còn yếu kém nên không hiểu hết ý của anh chỉ giáo cho em em mong anh đừng chê cười khi em hỏi những câu hỏi ngớ ngấn e cũng có thầy hướng dẫn nhưng thầy chỉ em khó hiểu quá với thầy lúc nào bận rộn nên thời gian chỉ em không nhiều giờ chỉ có anh là giúp được em thôi àk mỗi tối a có thể dành ít thời gian chỉ em những điều em chưa thông được không anh a co yahoo ko cho em đi em trao đổi cho tiện em sẽ không làm phiên anh nhiều đâu mong anh chỉ giúp ạk!!!!!!!!!!!!!!!!1 chân thành cám ơn anh!!!!!!!!!!!!!!!!!!! yahoo em là phongvu_1232002 |
Trích:
Code:
#include <16f877a.h> |
cám ơn anh tdm nhiều lắm ak!!!!!!!!!!!!!!
nều giờ em làm 16 con led thành 2 hàng trên 8 con dưới 8 con cho chữ chạy ở giữa 8 con trên và 8 con dưới vậy font e tạo sẽ là font 16 phải không anh? anh có font 16 con chạy 2 hàng không cho em với thực tức đồ án em làm là 16con led chia làm 2 hàng cho chay chữ giữa 2 hàng đó vậy có khác lắm so với chạy 1 hàng led 8 con ko anh.............. em nghi xuất dữ liệu sẽ 16 lần còn cột thì mình quét cùng lúc 2 hàng mỗi hàng 64 cột hay là mình quét trực tiếp 128 cột lun anh......... hihi cho em hỏi cái này nữa nghe e học lập trình chưa nhiều nên lệnh này sao em đọc mãi không hiểu anh giải thik dùm em for(i=0; textptr[i] != '\0'; ++i ) cái tetptr[i] !='\0' là gì anh nhỉ? void xoa_hien_thi(void) cái chữ (void) nằm trong ngoac có tác dụng gì anh nếu mình không dùng dc ko anh? const BYTE TEXT2[44][5] khai báo mảng này là 44 hàng 5 cột vậy đây là mảng 1 chiều hay 2 chiều vậy anh?và dữ liệu trong mảng anh tạo là tích cực mức thấp hay cao vậy anh?nếu thấp sao mình lại dùng thêm toán tử n=~n làm gì ạk?(n=~n là đảo toàn bộ byte vd 0011 sẽ đảo lại là 1100 em hiểu vậy không biết đúng không anh? cám ơn anh đã xem qua và mong dc sự trả lời từ anh và các bạn!!!!!!!!! |
Trích:
bây giờ matrix người ta quét hàng chứ không quét cột void xoa_hien_thi() viết như này cũng được const BYTE TEXT2[44][5] //mảng 2 chiều font đó tích cực mức cao matrix của em tích cực mức thấp lên phải đảo lại . |
vậy em nên quét theo hàng hả anh?
chương trình 8 con led anh đã chỉnh sửa cho em là quét cot phải không anh? dữ liệu mình xuất ra hàng sao đó mình đưa dữ liệu ra cột từ trước tới giờ em toan quét cột dữ liệu ra hàng không biết cột quét phức tạp nhiều hơn không nữa :( ak anh co em hỏi về ngắt nhận từ pc nếu từ pc truyền chuỗi xuống pic pic sẽ lưu vào mảng phụ sao khi nhận ký tự ký tự kết thúc # chẳng hạn thì pic bắt đầu lấy chuỗi và bắt đầu xử lý và đẩy chuỗi ra led matrix vậy khi nhận dữ liệu xong thì mình xuất như thế nào tại vì code lay_font() là lấy chuỗi ký tự nhưng chuỗi pic nhận dc thì mình phải tra từng ký tự rồi mới lấy ra xuất ra led matrix vd: #int_rda void ngat() { mang[dem]=getc(); if(mang[dem]=='#') { flag=1;//co ngat dem=0; } else dem++; } while(flag==1) { trong đây mình sẽ xử lý font như thế nào cho hợp lý vậy anh và cách lấy ký tự trong chuỗi nhận dc như thế nào anh(e đã nghĩ 3 ngày nay rồi vẫn ko tìm dc hướng giải quyết } chương trình trên pc là em viết bằng vb 6 em cũng đã viết xong rồi truyền cũng dc rồi nhưng khi pic nhận dc chuỗi ký tự em lại không biết cách lấy ra đưa lên led matrix mong anh chỉ em dum chỗ này nữa ạk? cám ơn anh nhiều!!!!!!!!!!!!!!!!!!!!!! |
Trích:
{ lay_font(mang);// trong đây mình sẽ xử lý font như thế nào cho hợp lý vậy anh và cách lấy ký tự trong chuỗi nhận dc như thế nào anh(e đã nghĩ 3 ngày nay rồi vẫn ko tìm dc hướng giải quyết } |
Trích:
anh xem e viet bi sai cho nao khong ạk? #include <16f877a.h> #device 16f877*=16 ADC=10 #include <stdlib.h> #include <string.h> #fuses nowdt,noprotect,nolvp,hs,put #use delay(clock=20000000) #use fast_io(b) #use fast_io(c) #use rs232(baud=9600,parity=n,xmit=pin_c6,rcv=pin_c7) #byte porta=0x05 #byte portb=0x06 #byte portc=0x07 #bit b0=portb.0 #bit b1=portb.1 #bit b2=portb.2 #bit b3=portb.3 #bit b4=portb.4 #bit b5=portb.5 void doc_adc(); void lay_font(char * textptr); unsigned char bi,temp,chieu_dai=0; unsigned char hien_thi[64]; char string[5]; char string1[5]; char string2[5]; char string3[10]; const BYTE TEXT[51][5] ={0x00, 0x00, 0x00, 0x00, 0x00, // SPACE 0x00, 0x00, 0x5F, 0x00, 0x00, // ! 0x00, 0x03, 0x00, 0x03, 0x00, // " 0x14, 0x3E, 0x14, 0x3E, 0x14, // # 0x24, 0x2A, 0x7F, 0x2A, 0x12, // $ 0x43, 0x33, 0x08, 0x66, 0x61, // % 0x36, 0x49, 0x55, 0x22, 0x50, // & 0x00, 0x05, 0x03, 0x00, 0x00, // ' 0x00, 0x1C, 0x22, 0x41, 0x00, // ( 0x00, 0x41, 0x22, 0x1C, 0x00, // ) 0x14, 0x08, 0x3E, 0x08, 0x14, // * 0x08, 0x08, 0x3E, 0x08, 0x08, // + 0x00, 0x50, 0x30, 0x00, 0x00, // , 0x08, 0x08, 0x08, 0x08, 0x08, // - 0x00, 0x60, 0x60, 0x00, 0x00, // . 0x20, 0x10, 0x08, 0x04, 0x02, // / 0x3E, 0x51, 0x49, 0x45, 0x3E, // 0 0x04, 0x02, 0x7F, 0x00, 0x00, // 1 0x42, 0x61, 0x51, 0x49, 0x46, // 2 0x22, 0x41, 0x49, 0x49, 0x36, // 3 0x18, 0x14, 0x12, 0x7F, 0x10, // 4 0x27, 0x45, 0x45, 0x45, 0x39, // 5 0x3E, 0x49, 0x49, 0x49, 0x32, // 6 0x01, 0x01, 0x71, 0x09, 0x07, // 7 0x36, 0x49, 0x49, 0x49, 0x36, // 8 0x26, 0x49, 0x49, 0x49, 0x3E, // 9 0x00, 0x36, 0x36, 0x00, 0x00, // : 0x00, 0x56, 0x36, 0x00, 0x00, // ; 0x08, 0x14, 0x22, 0x41, 0x00, // < 0x14, 0x14, 0x14, 0x14, 0x14, // = 0x00, 0x41, 0x22, 0x14, 0x08, // > 0x02, 0x01, 0x51, 0x09, 0x06, // ? 0x3E, 0x41, 0x59, 0x55, 0x5E, // @ 0x7E, 0x09, 0x09, 0x09, 0x7E, // A 0x7F, 0x49, 0x49, 0x49, 0x36, // B 0x3E, 0x41, 0x41, 0x41, 0x22, // C 0x7F, 0x41, 0x41, 0x41, 0x3E, // D 0x7F, 0x49, 0x49, 0x49, 0x41, // E 0x7F, 0x09, 0x09, 0x09, 0x01, // F 0x3E, 0x41, 0x41, 0x49, 0x3A, // G 0x7F, 0x08, 0x08, 0x08, 0x7F, // H 0x00, 0x41, 0x7F, 0x41, 0x00, // I 0x30, 0x40, 0x40, 0x40, 0x3F, // J 0x7F, 0x08, 0x14, 0x22, 0x41, // K 0x7F, 0x40, 0x40, 0x40, 0x40, // L 0x7F, 0x02, 0x0C, 0x02, 0x7F, // M 0x7F, 0x02, 0x04, 0x08, 0x7F, // N 0x3E, 0x41, 0x41, 0x41, 0x3E, // O 0x7F, 0x09, 0x09, 0x09, 0x06, // P 0x1E, 0x21, 0x21, 0x21, 0x5E, // Q 0x7F, 0x09, 0x09, 0x09, 0x76};// R const BYTE TEXT2[44][5]={0x26, 0x49, 0x49, 0x49, 0x32, // S 0x01, 0x01, 0x7F, 0x01, 0x01, // T 0x3F, 0x40, 0x40, 0x40, 0x3F, // U 0x1F, 0x20, 0x40, 0x20, 0x1F, // V 0x7F, 0x20, 0x10, 0x20, 0x7F, // W 0x41, 0x22, 0x1C, 0x22, 0x41, // X 0x07, 0x08, 0x70, 0x08, 0x07, // Y 0x61, 0x51, 0x49, 0x45, 0x43, // Z 0x00, 0x7F, 0x41, 0x00, 0x00, // [ 0x02, 0x04, 0x08, 0x10, 0x20, // \ 0x00, 0x00, 0x41, 0x7F, 0x00, // ] 0x04, 0x02, 0x01, 0x02, 0x04, // ^ 0x40, 0x40, 0x40, 0x40, 0x40, // _ 0x00, 0x01, 0x02, 0x04, 0x00, // ` 0x20, 0x54, 0x54, 0x54, 0x78, // a 0x7F, 0x44, 0x44, 0x44, 0x38, // b 0x38, 0x44, 0x44, 0x44, 0x44, // c 0x38, 0x44, 0x44, 0x44, 0x7F, // d 0x38, 0x54, 0x54, 0x54, 0x18, // e 0x04, 0x04, 0x7E, 0x05, 0x05, // f 0x08, 0x54, 0x54, 0x54, 0x3C, // g 0x7F, 0x08, 0x04, 0x04, 0x78, // h 0x00, 0x44, 0x7D, 0x40, 0x00, // i 0x20, 0x40, 0x44, 0x3D, 0x00, // j 0x7F, 0x10, 0x28, 0x44, 0x00, // k 0x00, 0x41, 0x7F, 0x40, 0x00, // l 0x7C, 0x04, 0x78, 0x04, 0x78, // m 0x7C, 0x08, 0x04, 0x04, 0x78, // n 0x38, 0x44, 0x44, 0x44, 0x38, // o 0x7C, 0x14, 0x14, 0x14, 0x08, // p 0x08, 0x14, 0x14, 0x14, 0x7C, // q 0x00, 0x7C, 0x08, 0x04, 0x04, // r 0x48, 0x54, 0x54, 0x54, 0x20, // s 0x04, 0x04, 0x3F, 0x44, 0x44, // t 0x3C, 0x40, 0x40, 0x20, 0x7C, // u 0x1C, 0x20, 0x40, 0x20, 0x1C, // v 0x3C, 0x40, 0x30, 0x40, 0x3C, // w 0x44, 0x28, 0x10, 0x28, 0x44, // x 0x0C, 0x50, 0x50, 0x50, 0x3C, // y 0x44, 0x64, 0x54, 0x4C, 0x44, // z 0x00, 0x08, 0x36, 0x41, 0x41, // { 0x00, 0x00, 0x7F, 0x00, 0x00, // | 0x41, 0x41, 0x36, 0x08, 0x00, // } 0x02, 0x01, 0x02, 0x04, 0x02};// ~ int8 i,m,t,flag,dem; int8 n; char mang[]; void dich(void); void xuat(unsigned char bi); void xoa_hien_thi(); #INT_RDA void ngat() { mang[dem]=getc(); if(mang[dem]=='#') { flag=1;//co ngat dem=0; } else dem++; while(flag==1) { lay_font(mang); } } 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); doc_adc(); while(1) { doc_adc(); x=read_adc(); x=x/2.049; dv=x%10; chuc=(x%100)/10; tram=x/100; 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 itoa(tram,10,string2);//gan tram vao string2 strcat(string2,string1);//ghepstring1 va string2 hien thi string2 strcpy(string3,"nhiet do "); strcat(string3,string2); xoa_hien_thi();//xóa vùng nho hien thi truoc khi cap nhat nhiet do lay_font(string3); // Write character set to matrix b1=1; b0=1; b2=1; b0=0; b2=0; for(m=0;m<=63;m++) { n=hien_thi[m]; n=~n; xuat(n); delay_us(1000); dich(); } } } void doc_adc() { setup_ADC(ADC_clock_internal); setup_ADC_ports(AN0); set_ADC_channel(0); delay_us(1000); } void dich() { b1=0; b0=1; b0=0; b2=1; b2=0; } void xuat(unsigned char temp) { #bit flag_bit = temp.7 b4=0; for(i=0;i<=7;i++) { if(flag_bit==1) {b4=1;} else {b4=0;} b3=1; b3=0; temp<<=1; } b5=1; b5=0; } void lay_font(char * textptr) { int i, j;// BYTE pixelData[5]; // Stores character data for(i=0; textptr[i] != '\0'; ++i ) // Loop through the passed string { if(textptr[i] == '#')//textptr khai bao vi tri con tro break; if(textptr[i] < 'S') //ky tu nam o mang text memcpy(pixelData, TEXT[textptr[i]-' '], 5);//copy 5 byte gia tri text[textptr[i]-'' vao pixeldata else if(textptr[i] <= '~') // ky tu nam o mang text2 memcpy(pixelData, TEXT2[textptr[i]-'S'], 5);//copy 5 byte gia tri text2[textptr[i]-'s' vao pixeldata else memcpy(pixelData, TEXT[0], 5); // khoang trang for(j=0;j<=4;j++) { hien_thi[chieu_dai]=(pixelData[j]);//hien thi tung ky tu chieu_dai++; } } } void xoa_hien_thi(void) { chieu_dai=0; for(m=0;m<=63;m++) { hien_thi[m]=0x00;// } } phía dưới là code vb6 em viết đấy ạk anh xem dùmm e lun nha Private Sub truyen_Click() Dim data As String data = Text1.Text MSComm1.Output = "*" MSComm1.Output = data MSComm1.Output = "#" End Sub Private Sub exit_Click() MsgBox "thoat" End End Sub Private Sub Form_Load() 'cai dat thong so cho cong com...." COMFIG FOR COM PORT " With MSComm1 .CommPort = 2 'cong COM 2 .Settings = "9600,N,8,1" 'Baudrate=9600,Ko KT chan le,frame 8 bit,1 bit stop .InBufferSize = 1024 'Bo dem 1024 byte thi day .InputLen = 0 'Doc toan bo gia tri bo dem .RThreshold = 1 'Cho phep ngat khi su kien Receiver o MSCOMM .SThreshold = 0 'Ko cho phep ngat khi su kien Send o MMSCOMM .OutBufferSize = 512 .InputMode = comInputModeText .PortOpen = True 'Mo cong COM End With End Sub |
e đã thử cách của anh và nhiều cách trên diễn đàn nhưng vẫn không hiển thị được khi dùng ngắt hichic mong anh giup em!!!!!!!!!!!!1
các bạn ai biết chỉ giúp mình lun nha!!!!!!!!!!!! thanks tất cả mọi người!!!!!!!!!!!!!!!! |
Trích:
em bỏ code vào trong thẻ cho dễ nhìn. hãy kiểm tra từng phần một. viết thử một ct đưa dữ liệu từ pc xuống xem matrix hiển thi đúng hay chưa. http://www.youtube.com/watch?v=uMCZBRYTnog |
Trong CCS dã xây dựng sẵn hàm truyền nhận nối tiếp, theo chuẩn RS485. Bạn vào đường dẫn cài thư mục, tìm file RS485.c. Trong đó người ta đã xây dựng đủ các hàm truyền nhận, có chống xung đột khi truyền theo mạng 485. Bạn chỉ cần khai báo bộ đệm(một mảng số liệu), sau đó mỗi khi có số liệu, bạn chỉ cần lôi từng thằng trong mảng ra để xử lý. Cái này Tây nó làm, chạy ngon lắm rồi, mình cũng đã dùng nó với thằng PIC6F877, chạy mạng 485 đa điểm. Very good.
|
Trích:
bạn nói khó hiểu quá có vd nào cụ thể dễ hiễu được không? mình chỉ sử dụng rs 232 thôi không cần dùng 485 đâu mình truyền dữ liệu từ pc xuống pic rồi pic hiển thị thôi ak bạn biết chỉ giúp mình nghe!!!!!!!!!!! thanks!!!!!!!!11 |
Trích:
phần mềm anh đang sử dụng là gì vậy ak sao em down về không giống cái của anh ạk khi mình down phần mềm đó về rồi có cần phải cài thông số gì không anh hay sử dụng trực tiếp ạk,chỉ viết chương trình nhận phía dưới pic thôi hả anh? |
2 Attachment(s)
Trích:
phải khai báo tốc độ baud=9600,parity=n |
cái đọc từ pc này để em nghiên cứu từ từ đã
truyền mãi không dc bực chit dc àk anh ơi em muốn chữ dịch sang trái thì em phải dùng vòng lặp như thế nào anh? cho em gợi ý nhe anh!!!!!!!!!!!!!!!!!! mong bạn tanbka chỉ giúp mình nữa nha !!!!!!!!!!!!! thanks anh và tanbka nhiều!!!!!!!!!!!! |
Trích:
sao em cài rồi mà vẫn không hiển thị được ký tự anh có viết thay đổi chương trình chỗ nào không anh!!!!!!!!!!!!!! hay anh vẫn giữ nguyên chương trình cũ ạk |
Trích:
Trích:
|
sao cả buổi tối ngồi em đã tìm được cái sai của mình mong anh cho em hướng giải quyết ạk!!!!!!!!!!!!1
vấn đề sai ở chỗ là: #INT_RDA void ngat() { mang[dem]=getc(); if(mang[dem]=='#') { flag=1;//co ngat dem=0; } else dem++; while(flag==1) { lay_font(mang); } } khi em khai báo char mang[]=""; thì nó hiểu nhưng khi em khai báo mang[]=""; thì nó không hiểu để xuất ra led matran vậy mình nên khai báo như thế nào để cho nó hiểu mảng là char mang[]="" để lúc đó flag==1 thì nó sẽ xuất ra led ak và giờ em muồn cho chữ cuộn tròn (dịch trái )thì mình nên thêm vòng lặp như thế nào anh nhỉ? |
Múi giờ GMT. Hiện tại là 02:17 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam