PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 31-03-2011, 09:23 PM   #1
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
Old 31-03-2011, 09:32 PM   #2
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 ht[]={'0','1','2','3','4','5','6','7','8','9',' '};

-khi thực hiện tính toán xong,kết quả trả về là 1 con số...mình sẽ tham chiếu giá trị tính toán được vào mảng này để được 1 kí tự =>xuất ra LCD.
vd:số dem=85;
chuc=dem/10;
dv=dem%10;
portb=ht[chuc]; //chuc="8"=> "ký tự" này được lấy trong mảng ht[]
xuat();
portb=ht[dv]; //dv="5"
xuat();
.
.
.


-tuy nhiên bạn cũng có thể xuất trực tiếp,khỏi cần tham chiếu vào mảng..(cái này mình chưa test mạch thật..nhưng proteus vẫn chạy bt)..
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

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


Múi giờ GMT. Hiện tại là 12:40 AM.


Đượ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