Nguyên văn bởi H.Hai
Xem bài viết
Thông báo
Collapse
No announcement yet.
Tutorial: Led ma trận bằng hình ảnh (completed)
Collapse
This is a sticky topic.
X
X
-
Nguyên văn bởi nghaiha Xem bài viếtĐây là em giới thiệu mang tính học thuật chứ không phải làm thực tế. Sau này bác có dùng phần mềm tạo font gì khác nữa thì vẫn phải tham khảo nguyên lý em đã trình bày trong phần excel. Bác hiểu rồi chứ.
Comment
-
Mong được các bác giúp đỡ ( dù biết là sai mục MCU)
Em lấy mạch led 8x8 của bác nghaiha , em thay con MCU AVG bằng con 89C52. Em đã viết chương trình led sáng xen kẻ như bác nghaiha nhưng sao khi nạp vào mạch thật hoặc mô phỏng thì nó không giống như Bài 1 vậy. Mong các bác chỉ giúp .
Đây là chương trinh mạch + sơ đồ
CODE:
#include <at89x52.h>
#define DATA P2_0//Du lieu noi tiep ra 74595
#define INPUT P2_1//Clock cho phep dich 74595
#define OUTPUT P2_2//Clock cho phep chot 74595
#define A P2_0//Dau vao A cua 74138
#define B P2_1//Dau vao B cua 74138
#define C P2_2//Dau vao C cua 74138
#define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138
void delay(unsigned int ms)
{
unsigned int i,j;
for (i=0;i<ms;i++)
for (j=0;j<121;j++);
}
void scanmatrix();
void data_in(unsigned char k);
void out_595(void);
void main(void)
{
P0=0xFF;
P2=0xFF;
INPUT=1;
OUTPUT=1; while(1)
{
scanmatrix();
}
}
void scanmatrix()
{
unsigned char i,j;
for (i=0;i<=7;i++)
{
for(j=0;j<12;j++)
{
data_in(0);
data_in(1);
}
out_595();
P2=i+8;
delay(20) ;
}
}
void data_in(unsigned char k)
{
DATA=k;
INPUT=1;
INPUT=0;
}
void out_595(void)
{
OUTPUT=1;delay(1);
OUTPUT=0; delay(1);
}Học hỏi là trên hết .
Comment
-
Trong này có sơ đồ mạch và chương trình mô phỏng , các bạn xem hộ mình cái nha.
http://www.mediafire.com/?sharekey=8...eada0a1ae8665aHọc hỏi là trên hết .
Comment
-
Bác định nghĩa các chân quét hàng và quét cột giống nhau:
#define DATA P2_0//Du lieu noi tiep ra 74595
#define INPUT P2_1//Clock cho phep dich 74595
#define OUTPUT P2_2//Clock cho phep chot 74595
#define A P2_0//Dau vao A cua 74138
#define B P2_1//Dau vao B cua 74138
#define C P2_2//Dau vao C cua 74138
phải sửa thành
#define DATA P0_0//Du lieu noi tiep ra 74595
#define INPUT P0_1//Clock cho phep dich 74595
#define OUTPUT P0_2//Clock cho phep chot 74595
#define A P2_0//Dau vao A cua 74138
#define B P2_1//Dau vao B cua 74138
#define C P2_2//Dau vao C cua 74138
#define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138
Chương trình tôi sửa cho bác như sau: phần chữ đỏ là phần sửa hoặc thêm vào, bác mô phỏng nhá
#include <at89x52.h>
#define DATA P0_0//Du lieu noi tiep ra 74595
#define INPUT P0_1//Clock cho phep dich 74595
#define OUTPUT P0_2//Clock cho phep chot 74595
#define A P2_0//Dau vao A cua 74138
#define B P2_1//Dau vao B cua 74138
#define C P2_2//Dau vao C cua 74138
#define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138
unsigned char Flag = 0;
void delay(unsigned int ms)
{
unsigned int i,j;
for (i=0;i<ms;i++)
for (j=0;j<121;j++);
}
void scanmatrix();
void data_in(unsigned char k);
void out_595(void);
void main(void)
{
P0=0xFF;
P2=0xFF;
INPUT=1;
OUTPUT=1;
while(1)
{
scanmatrix();
}
}
void scanmatrix()
{
unsigned char i,j;
for (i=0;i<8;i++)
{
for(j=0;j<12;j++)
{
if(Flag == 0)
{
data_in(0);
data_in(1);
else
{
data_in(1);
data_in(0);
}
}
out_595();
P2=i+8;
delay(20) ;
}
Flag = ~ Flag;
}
void data_in(unsigned char k)
{
DATA=k;
INPUT=1;
INPUT=0;
}
void out_595(void)
{
OUTPUT=1; delay(1);
OUTPUT=0; delay(1);
}----------------------
Bể học là mênh mông!
Comment
-
Nguyên văn bởi wish_blue07 Xem bài viếtTrong này có sơ đồ mạch và chương trình mô phỏng , các bạn xem hộ mình cái nha.
http://www.mediafire.com/?sharekey=8...eada0a1ae8665a
HTML Code:
#INT_TIMER1
void ngat_timer1()
{ int temp,k;
spi_write(DMem[r]);
LatchData();
PORTD=r+8;
r++;
if (r==8)
{
for (k=0;k<=7;k++)
{
DMem[k]=~(chu_c[k]>>rr);
}
rr++;
if (rr==8)
{
rr=0;
}
r=0;
}
}
Bác xem giùm em, em cho chạy chữ từ phải sang trái mà chữ chạy thì được, nhưng sao mà nó cứ nháy nháy liên tục. Không biết có cách nào cho nó khỏi nhấp nháy. Mà chỉ dịch qua thôi.
Phần ngắt Timer1 ta đã dành cho việc quét led rồi. Không cần can thiệp vào hàm này làm gì. Muốn dịch chữ bác thử thay đổi nội dung của DMem thôi nhé.
Ban đầu bác thử thay đổi nội dung DMem trong vòng lặp while (1){} xem sao.
các bác ơi chỉ em chỗ dịch chữ sang phải với em làm thế này mà mãi ko ổn
while (1){
for(j=0;j<=7;j++)
{
DMem[j*3] =(DMem[j*3]<<1) |(DMem[j*3+1]>>7);
DMem[j*3+1]=(DMem[j*3+1]<<1)|(DMem[j*3+2]>>7);
DMem[j*3+2]=(DMem[j*3+2]<<1)|(DMem[j*3]>>7);
delay_ms(3);
}
Comment
-
Nguyên văn bởi hai_abc Xem bài viếtBác định nghĩa các chân quét hàng và quét cột giống nhau:
#define DATA P2_0//Du lieu noi tiep ra 74595
#define INPUT P2_1//Clock cho phep dich 74595
#define OUTPUT P2_2//Clock cho phep chot 74595
#define A P2_0//Dau vao A cua 74138
#define B P2_1//Dau vao B cua 74138
#define C P2_2//Dau vao C cua 74138
phải sửa thành
#define DATA P0_0//Du lieu noi tiep ra 74595
#define INPUT P0_1//Clock cho phep dich 74595
#define OUTPUT P0_2//Clock cho phep chot 74595
#define A P2_0//Dau vao A cua 74138
#define B P2_1//Dau vao B cua 74138
#define C P2_2//Dau vao C cua 74138
#define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138
Chương trình tôi sửa cho bác như sau: phần chữ đỏ là phần sửa hoặc thêm vào, bác mô phỏng nhá
#include <at89x52.h>
#define DATA P0_0//Du lieu noi tiep ra 74595
#define INPUT P0_1//Clock cho phep dich 74595
#define OUTPUT P0_2//Clock cho phep chot 74595
#define A P2_0//Dau vao A cua 74138
#define B P2_1//Dau vao B cua 74138
#define C P2_2//Dau vao C cua 74138
#define ENBALE P2_3//Tin hieu cho phep dau ra cua 74138
unsigned char Flag = 0;
void delay(unsigned int ms)
{
unsigned int i,j;
for (i=0;i<ms;i++)
for (j=0;j<121;j++);
}
void scanmatrix();
void data_in(unsigned char k);
void out_595(void);
void main(void)
{
P0=0xFF;
P2=0xFF;
INPUT=1;
OUTPUT=1;
while(1)
{
scanmatrix();
}
}
void scanmatrix()
{
unsigned char i,j;
for (i=0;i<8;i++)
{
for(j=0;j<12;j++)
{
if(Flag == 0)
{
data_in(0);
data_in(1);
else
{
data_in(1);
data_in(0);
}
}
out_595();
P2=i+8;
delay(20) ;
}
Flag = ~ Flag;
}
void data_in(unsigned char k)
{
DATA=k;
INPUT=1;
INPUT=0;
}
void out_595(void)
{
OUTPUT=1; delay(1);
OUTPUT=0; delay(1);
}Học hỏi là trên hết .
Comment
-
Mô phỏng ma trận led trong protues chán quá.Chỉ có loại ứng dụng cho quét cột.Sửa chữa mãi mới quét hàng đc_nhưng rất tiếc nó quét bị thiếu pixel.Mình làm theo bác Nghaiha nhưng ko đc.Có lẽ sang mạch thật sẽ khác chăng????.(Code và phần cứng mô phỏng y hệt luôn)
Add: 97 Quán Nam - Lê Chân - Hải Phòng.
Tel: 031 518648 Phone: 0904 283 505
Comment
-
Nguyên văn bởi hoangdai Xem bài viếtMô phỏng ma trận led trong protues chán quá.Chỉ có loại ứng dụng cho quét cột.Sửa chữa mãi mới quét hàng đc_nhưng rất tiếc nó quét bị thiếu pixel.Mình làm theo bác Nghaiha nhưng ko đc.Có lẽ sang mạch thật sẽ khác chăng????.(Code và phần cứng mô phỏng y hệt luôn)
Loay hoay mãi cuối cùng cũng sáng đầy đủ
bạn thử làm giống mình xem: Trong hàm ngắt,bạn đưa dữ liệu ra hàng trước,sau đó mới đẩy dữ liệu ra 74hc595 và đưa ra cột.
Comment
-
Hình như các cao thủ đã chán chủ đề ledmatrix này rùi!
Đã ai làm được các hiệu ứng như chữ chạy sang phải,trái,chữ mất từ giữa ra ....chưa?Hướng dẫn cho mình với.
Thú thật cái tutorial của bác nghaiha viết rất dễ hiểu,nhưng mình cũng chỉ làm đc vài hiệu ứng đơn giản như chữ đứng yên,chạy từ trên xuống dưới,từ dưới lên trên thui.
mail của mình là : haui0037@yahoo.com.vn
Comment
-
Nếu bạn đã làm được từng đó hiệu ứng rồi và "thực sự hiểu" thì các hiệu ứng khác bạn hoàn toàn có thể tự nghĩ ra và chỉnh sửa code đôi chút là ổn thôi
còn nhiều bạn chỉ copy code rồi chỉnh đôi chút mà không hiểu rõ về bản chất nó thì rất khó để tự mình viết thêm nhiều hiệu ứng..
. khuyên bạn chỉ cần từ một hiệu ứng thôi nhưng bạn hiểu rõ cách mà bảng quang báo bạn thực hiện để tạo ra nó ra sao thì bạn sẽ làm được khá nhiều hiệu ứng khác thôi.
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Dùng MC34063 để làm driver lái led 1W, 3Wbởi nhathung1101Dự là bạn này định chế đèn led cho oto.
không hiểu các bạn hiểu về đèn led thế nào? chỉ mong các bạn hiểu cuộc sống chỉ có một lần thôi.-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 22:29 -
-
Trả lời cho Dùng MC34063 để làm driver lái led 1W, 3Wbởi bqvietChỗ đó là chỉ IC này chạy DC (tất nhiên) được mà AC cũng được. Khi chạy điện AC thì cần cầu nắn dòng và tụ lọc 100uF. Nếu chạy DC thì không cần cầu nắn mà tụ đó cũng chỉ cần tầm vài uF thôi. Cái đi-ốt thì càng dễ, luận tí...
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 21:37 -
-
Trả lời cho Hỏi về nơi mua tda7294bởi bqvietChính hãng hay không vẫn khó nói nhưng hình như ở diễn đàn này chưa thấy ai kêu ca gì
http://www.linhkienchatluong.vn/ic-a...577_ct763.aspx-
Channel: Điện thanh
17-05-2024, 13:14 -
-
bởi sonlazioHi các bác,
em có nhu cầu mua ic này để thay thế
trên shopee thì trôi nổi nhiều quá sợ mua về cháy nổ, các bác có nơi nào mua chính hãng ko ạ-
Channel: Điện thanh
17-05-2024, 07:03 -
-
bởi nhathung1101Lâu nay, thấy nick chinhnguyen9 viết rất nhiều bài "phổ biến kiến thức" một cách vô tư.
Xem lại mới thấy bạn "dịch" hay "Google dịch" hay "AI" tôi đang xem xét.
Nhưng những gì đang xem tôi đánh giá là...-
Channel: Góp ý cho diễn đàn
17-05-2024, 00:24 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi nhathung1101Cảm ơn lão nói hộ lòng tôi. Nhưng cái gì "ngang" quá đều có thể giải quyết = beer
Dạo này lão có thời gian không? Em gửi vé lão bay ra HN. Đúng địa chỉ "Khu Văn Công Mai Dịch" nhé. Ta tha hồ đàm hay đàn, kể cả...-
Channel: Tâm tình dân kỹ thuật
16-05-2024, 16:57 -
-
Trả lời cho Dùng MC34063 để làm driver lái led 1W, 3Wbởi Nexus 6P
Chỗ AC 12V-18V là sao bác, rồi còn con D là giá trị bao nhiêu bác...-
Channel: Điện tử dành cho người mới bắt đầu
16-05-2024, 14:19 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamCháu xem cái này: https://www.beemusic.vn/2020/10/chu-...-ban-nhac.html
Đầu tiên cháu viết bản nhạc phải chọn ton. Thăng hay giáng quyết đinh Ton bản nhạc, nốt nhạc cuối cùng phải đúng theo khoá nhạc....-
Channel: Tâm tình dân kỹ thuật
16-05-2024, 14:02 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác chỉ cặn kẽ. Vậy thêm một dấu giáng như dưới là ổn phải không bác nhỉ, nó có là fa thứ Fm được không? Hay phải thêm 4 dấu giáng ạ?...
-
Channel: Tâm tình dân kỹ thuật
16-05-2024, 11:24 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamTôi đoán bác nhathung1011 nói sai chỗ này:
- Đầu tiên cháu viết nhạc , bản nhạc khóa sol không thăng, không giáng, nốt kết thúc là nốt do thì bản nhac đó thuộc ton Đo trưởng. Đúng lý thuyết nhạc lý.
- Cháu sửa lại nốt nhạc...-
Channel: Tâm tình dân kỹ thuật
16-05-2024, 10:32 -
Comment