PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 09-11-2012, 11:25 PM   #1
lanoltn
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 2
:
led ma trận sử dụng 74595

mọi người cho e hỏi...mạch như vậy thì liệu thực tế có ổn k?...code như vậy thì muốn mở rộng thêm thì làm thế nào..hi..do code này là e copy của mỗi người 1 ít nên bây h k bít mở rộng như thế nào
File Kèm Theo
File Type: rar ledmatran.rar (27.7 KB, 58 lần tải)
lanoltn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2012, 02:52 AM   #2
youaremylife
Đệ tử 2 túi
 
Tham gia ngày: Nov 2008
Bài gửi: 26
:
Send a message via AIM to youaremylife Send a message via Yahoo to youaremylife
mạch này để mô phỏng chơi thôi, thực tế lắp thế thì chắc là không ổn rồi.
Bạn muốn mở rộng nhưng mở rộng thế nào, ma trận bạn cần là mấy hàng mấy cột.
Cái chương trình viết theo kiểu tạo hiệu ứng theo bảng dữ liệu, bạn muốn viết hiệu ứng thì chỉ việc điền dữ liệu vào cái bảng dữ liệu.
Nói chung là chương trình rất cơ bản, mã viết thế ko có gì là đặc biệt cả
-------------------------------------------------
Đây là một vài gợi ý cho bạn
- Tạo mảng dữ liệu cho bộ đệm hiển thị
ví dụ ở đây có 8 hàng 8bit = byte
32 cột = 32 byte
bộ đệm byte buffer[32];
- Thực hiện quét led trong ngắt timer, nhiệm vụ của nó đơn giản là quét toàn bộ mảng dữ liệu đó lên các led ma trận buffer[0] tương ứng với cột 0. chương trình ngắt này ko quét hết led trong cùng 1 ngắt mà sẽ được chia đều thời gian hạn chế tối đa sử dụng các hàm delay trong ngắt.
- Chương trình của bạn chỉ đơn giản là cập nhật cái mảng dữ liệu này, nếu việc thao tác trên mảng cần nhiều thời gian thì bạn cần copy mảng này vào một mảng khác sau đó thao tác trên mảng này sau đó thực hiện cập nhật.
- Tạo bảng mã font chữ của riêng bạn, bộ đệm mã font
- bộ đệm chuỗi dữ liệu cần hiển thị byte string[MAX_STRING_LEN];
Một ví dụ việc tạo hiệu ứng chạy chữ như sau (pseudo code)

do
{
ch = string[i++];
if(ch == NULL) return; //ket thu chuoi
Load_font(ch); // doc ma font ky tu vao bo dem
for(j=0;j<8;j++) // duyet qua cac phan tu cua ma font
{
buffer[31] = fontbuf[j]; //cap nhat vao bo dem
shift_left_buffer(1); //dich bo dem hien thi sang trai 1
//buffer[0] = buffer[1];
//buffer[1] = buffer[2];
//buffer[31] = 0;
delay_ms(x); // tre tao hieu ung
}
}while(1);

tương tự bạn có thể hiệu ứng gì đó cũng được bạn không càn phải quan tâm đến việc quét led
youaremylife vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-11-2012, 10:50 PM   #3
lanoltn
Nhập môn đệ tử
 
Tham gia ngày: Sep 2012
Bài gửi: 2
:
e sẽ thử theo cách của bác..hihi...bác có ý tưởng cho hiệu ứng dịch từng ký tự của 1 chữ k?...hay hiệu ứng rót nước cũng được...e k có ý tưởng gì hết..hĩ
lanoltn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 03:41 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