PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   câu hỏi về MẢNG trong C.(dù dốt những vẫn phải hỏi) (http://www.picvietnam.com/forum/showthread.php?t=10125)

pucapuca123 16-07-2011 12:18 PM

câu hỏi về MẢNG trong C.(dù dốt những vẫn phải hỏi)
 
mình có đoạn code như vậy.

const unsigned char LED_DATA[10]={0x05,0xDD,0x46,0x54,0x9C,0x34,0x24,0x5D,0x04,0x1 4};// từ số 0>>>số 9;
unsigned char MANG_A[5]={1,2,3,4,5};
a=MANG_A[0];
hoặc
a=MANG_A[1];
hoặc
a=MANG_A[2];
hoặc
a=MANG_A[3];
hoặc
a=MANG_A[4];
LED_Buffer[1]=LED_DATA[a/10];
LED_Buffer[2]=LED_DATA[a%10];
======> hiển thị được các số chính xác từ 1>>>5;

nhưng khi mình thay
unsigned char MANG_B[5]={10,20,31,41,51};
a=MANG_B[0];
hoặc
a=MANG_B[1];
hoặc
a=MANG_B[2];
hoặc
a=MANG_B[3];
hoặc
a=MANG_B[4];
LED_Buffer[1]=LED_DATA[a/10];
LED_Buffer[2]=LED_DATA[a%10];

=========> SAI HIỂN THỊ LUNG TUNG HOẶC TOÀN 0.
các bạn giúp mình với.
vì sao ko hiển thị được MANG_B.
cám ơn các bạn!

dinhnambkhn 16-07-2011 02:39 PM

neu dung trong vdk thi ban nen dua ve he hex het di!tren kia to thay ban de he thap phan kia!unsigned char MANG_B[5]={10,20,31,41,51};ban kiem tra lai thu coi!than

tdm 16-07-2011 05:00 PM

Trích:

Nguyên văn bởi pucapuca123 (Post 46983)
mình có đoạn code như vậy.

const unsigned char LED_DATA[10]={0x05,0xDD,0x46,0x54,0x9C,0x34,0x24,0x5D,0x04,0x1 4};// từ số 0>>>số 9;
unsigned char MANG_A[5]={1,2,3,4,5};
a=MANG_A[0];
hoặc
a=MANG_A[1];
hoặc
a=MANG_A[2];
hoặc
a=MANG_A[3];
hoặc
a=MANG_A[4];
LED_Buffer[1]=LED_DATA[a/10];
LED_Buffer[2]=LED_DATA[a%10];
======> hiển thị được các số chính xác từ 1>>>5;

nhưng khi mình thay
unsigned char MANG_B[5]={10,20,31,41,51};
a=MANG_B[0];
hoặc
a=MANG_B[1];
hoặc
a=MANG_B[2];
hoặc
a=MANG_B[3];
hoặc
a=MANG_B[4];
LED_Buffer[1]=LED_DATA[a/10];
LED_Buffer[2]=LED_DATA[a%10];

=========> SAI HIỂN THỊ LUNG TUNG HOẶC TOÀN 0.
các bạn giúp mình với.
vì sao ko hiển thị được MANG_B.
cám ơn các bạn!

vẫn hiển thị bình thường,bạn lên đưa ra port để kiểm tra.
Code:

#include <16F877A.h>//phat tone OK
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
//#use fast_io(c)
#use fast_io(a)
const unsigned char LED_DATA[10]={0x05,0xDD,0x46,0x54,0x9C,0x34,0x24,0x5D,0x04,0x14};// tu+` so^'
unsigned char MANG_B[5]={10,20,31,41,51};
int8 a;
main()
{
set_tris_b(0x00);
set_tris_c(0x00);
a=MANG_B[1];
output_b(LED_DATA[a/10]);
output_c(LED_DATA[a%10]);
while(1)
{
}
}


pucapuca123 16-07-2011 06:24 PM

Trích:

Nguyên văn bởi tdm (Post 47029)
vẫn hiển thị bình thường,bạn lên đưa ra port để kiểm tra.
Code:

#include <16F877A.h>//phat tone OK
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
//#use fast_io(c)
#use fast_io(a)
const unsigned char LED_DATA[10]={0x05,0xDD,0x46,0x54,0x9C,0x34,0x24,0x5D,0x04,0x14};// tu+` so^'
unsigned char MANG_B[5]={10,20,31,41,51};
int8 a;
main()
{
set_tris_b(0x00);
set_tris_c(0x00);
a=MANG_B[1];
output_b(LED_DATA[a/10]);
output_c(LED_DATA[a%10]);
while(1)
{
}
}


mình kiểm tra lại rồi.lỗi do trình dịch bạn à.
mình làm như bác * bqviet * bên dientuvietnam thì là chạy ok.
unsigned char a, b, c; //khai báo char a là lỗi đấy
a = MANG_B[0];
b = a/10;
c = a%10;
LED_Buffer[1]=LED_DATA[b];
LED_Buffer[2]=LED_DATA[c];

cám ơn bạn nhiều!


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