View Single Post
Old 31-03-2011, 09:23 PM   #30
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
char const mang[]="STUPID11"

for(i=0;i<20;i++)
{
portd=mang[i];
xuat();
delay_ms(5);//khỏi cần delay nếu làm mạch thật.
}

viết như thế này tương đương với việc xuất ra từng ký tự,bạn có thể viết như sau:
portd="S";
xuat();
portd="T";
xuat();
portd="U";
xuat();
.
.
.
viết như trên sẽ lâu hơn rất nhiều....thay vì như vậy bạn khai báo 1 mảng rồi xuất từng ký tự trong mảng đó ra..cấu trúc "for" đó bạn.

-còn bạn viết:
while(1)
{
portd=0x80;
lenh();
portd=0x18;
lenh();
delay_ms(20);
}
//hình như code này bạn nhầm thì phải,bạn xem lại thử coi.


void main()
{
int i;
int32 a;
const char ten [] = "nhau";
set_tris_b(0);
set_tris_d(0);
khoitao();
tinh=0;
delay_ms(20);
tinh++;....
-Đoạn này có nghĩa là gì vậy hả bạn,có phải bạn muốn tự động tăng giá trị "tinh" lên hả.Bạn viết như vậy là ko được rồi..
-Với đoạn

for(i=0;i<40;i++)
{
portd=0x80;
lenh();
portd=tinh;
xuat();
}

Chỉ khi nào cần xuất 1 mảng thì mới sử dụng "for..".Còn ko thì chỉ đơn thuần xuất ra thôi.

-Cái nữa bạn khai báo biến tính làm gì #byte tinh=0x20; ko nhất thiết phải khai như vậy đâu..bạn chỉ khai báo đơn giản như sau là đủ

int tinh; //số nguyên 8bit
int16 tinh; //số nguyên 16bit
float tinh; //số thực 32 bit

còn nếu khai báo kiểu bạn thì nên khai báo #locate tinh=0x20;như vậy địa chỉ này sẽ ko sử dụng vào mục đích khác đc nua~

thay đổi nội dung bởi: stupid11, 31-03-2011 lúc 09:45 PM.
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn