PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 25-12-2008, 10:30 AM   #1
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
bạn ko cần dùng timer để quét led đâu. nên dùng delay thì đơn giản hơn. nếu cảm thấy led còn bị giật thì có thể giảm delay xuống cho phù hợn là được. nếu bạn cải cách phần cứng như tôi nói thì có thể dùng cách sau để hiển thị led
int chon_ic[4] = {0x01, 0x02,0x04,0x08};
void display()
{ int a,b,i;
for(a = 0;a<30;a++) // điều chỉnh tốc độ dịch chữ
{ for(b = 0;b<4;b++)
{ portb = chon_ic[b]; // chọn ic 138 để quet
for(i-0;i<8;i++) {porte = i; delay_ms(1);} // quet 138
}
}
}
tại vị trí cần hiển thị chữ lên led bạn chỉ cần gọi hàm này là được.
còn một điều rất quan trọng là trình mô phỏng rất hạn chế khi quét led, vì nếu thời gian quét càng nhỏ thì đồi hỏi tốc độ xử lý của máy tính càng cao, không đáp ứng được tốc độ quét của vxl do đó cũng có thể hiển thị sai (có thể bị giật hoặc không chạy).
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-12-2008, 05:04 PM   #2
dungbk49
Đệ tử 1 túi
 
Tham gia ngày: Nov 2007
Bài gửi: 20
:
anh tungtot_vl cám ơn anh đã nhiệt tình giúp em quá nhiều rồi, em đã thử làm theo hướng của anh, em mới chỉ làm cho nó hiển thị thôi anh ạ, còn thực hiện dịch chữ thì chưa, nhưng nó giật mạnh quá anh ạ, có giải pháp nào ko anh.
dungbk49 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-01-2009, 11:31 AM   #3
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
lmd

Trích:
Nguyên văn bởi dungbk49 View Post
anh tungtot_vl cám ơn anh đã nhiệt tình giúp em quá nhiều rồi, em đã thử làm theo hướng của anh, em mới chỉ làm cho nó hiển thị thôi anh ạ, còn thực hiện dịch chữ thì chưa, nhưng nó giật mạnh quá anh ạ, có giải pháp nào ko anh.
máy hôm nay bận quá không giúp bạn được.
bài của bạn viết khó hiểu quá, vì tôi không hiểu cách trình bày của bạn.
tôi có viết một đoạn code tương thích với phần cứng của bạn. bạn chạy thủ xem thế nào nhé.
cách này viết hơi khó một tí nhưng nó rất thuận lợi để bạn thực hiện các hiệu ứng 1 cách dễ dàng. chúc vui vẽ
#include <16F877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#device 16F877a*=16 ADC=8
#use delay(clock=4000000)
#use fast_io(a)
#byte porta=0x05
#use fast_io(b)
#byte portb=0x06
#use fast_io(c)
#byte portc=0x07
#use fast_io(d)
#byte portd=0x08
#use fast_io(e)
#byte porte=0x09
int8 const font[] = {131,191,191,191,255,
131,187,185,130,249,255,
131,235,235,247,255,
255,255,255,
239,131,171,187,199,255,
130,255,
129,42,169,255,
131,247,239,131,255,
255,255,255,
251,131,251,255,
131,190,188,131,249,255,
255,255,255,
183,131,191,
199,187,187,199,255,
255,255};

int const ic[] = {0x01,0x02,0x04,0x08};
int ht[32]; // ram cho man hinh
void codinh();
void dinhtrai();
void display();
//============================
void codinh()
{ int a,b,c;
for(a=0;a<32;a++)
{ ht[a] = font[a]; }
for(b=0;b<20;b++)// delay
{display();}
}

//=========================
void dinhtrai()
{ int a,b,c;
for(a=0;a<32;a++)
{ ht[a] = 0xff; } // xoa man hinh
for(a=0;a<32;a++)
{ ht[31] = font[a];
display();
for(b=0;b<32;b++)
{ ht[b-1] = ht[b]; }

}
for(a=0;a<32;a++)
{ ht[31] = 0xff;
for(b=0;b<32;b++)
{ ht[b-1] = ht[b]; }
display();
}
}
//========================================
void display()
{ int a,b,i;
for(a=0;a<20;a++) // toc do dich
{
for(b=0;b<4;b++) // chon ic quet
{ portb = ic[b];
for(i=0;i<8;i++)
{
portd = ht[b*8+i];
porte = i;
delay_us(1000);
}
}
}

}
void main()
{
set_tris_a(0x00);
set_tris_b(0x00);
set_tris_c(0x00);
set_tris_d(0x00);
set_tris_e(0x00);
while(1)
{
codinh();
dinhtrai();
delay_ms(2000);

}

}
tungtot_vl 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à 01: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