Chào các bác. Em mới vào nghề với con 8051. Hiện em đang học lập trình led dùng 8051. Nhưng em ko biết làm sao để điều khiển 2 dòng chữ chạy độc lập nhau khi chỉ dùng 1 con vi điều khiển 8051. Ví dụ ta có dòng chữ "ĐIỆN TỬ VIỆT NAM" và viền xung quanh phải chạy độc lập nhau. nhưng em ko biết làm thế nào cả. Các bác chỉ giùm em. Thanks...
Thông báo
Collapse
No announcement yet.
Lập trình Led bằng C dùng 8051
Collapse
X
-
Cảm ơn bạn hepro_90nd. Nhưng mình muốn viết 1 chương trình chuyên nghiệp với nhiều hiệu ứng khác nhau. Nhiều chữ khác nhau và cả đường viền nữa thì viết như bạn ko ổn. Hơn nữa có thể có chữ nhiều hơn 8 chân của 1 cổng, theo mình để tạo hiệu ứng cho chữ đó thì fai sd vòng lặp. Mình có thể viết cho 1 chữ nhưng viết cho nhiều chữ và cả đường viền chạy đồng thời và độc lập nhau thì mình chưa biết làm thế nào cả. Mong mọi ng chỉ giáo giúp.
Comment
-
nếu bạn làm biển cảo cáo chuyên nghiệp nên dùng phiên bản leddim của anh bảo việt hoàng vì phần mềm đó có thể cho trong một cổng chạy khác nhau và cùng một lúc thêm cả băm xung nữa rất hay mình đang làm hình trái tim tặng bạn gái nên cũng cần đường viền và đã dung leddim làm điều đó rất ok còn nếu không thì bạn lắp một bộ điều khiển riêng dành riêng cho đường viền có thay bằng vxl thì lắp mạch dao động đa hài cũng được mình cũng đã làm thử rất tốt mình thử viết bằng phương phát của bác hepro_90nd nhưng không ổn lắmhãy làm theo cách của bạn!
Comment
-
Mình dùng cái này đế lập trình led trái tim đấy .Mình thấy lập trình cho mấy cái chữ với đường viền thì quá đơn giản .Dùng vòng for kết hợp với mảng là xong .Đọc đoạn code này mình viết xem có hiểu k? Nếu hiểu là làm dc.//############################################
#include<reg52.h>
#include<stdio.h>
#include<intrins.h>
unsigned int i,j,k;
//###### ham delay tao thoi gian tre 0.5s ######
void delay(unsigned int ms)
{
unsigned int a;
unsigned char b;
for(a=0;a<ms;a++)
{
for(b=0;b<125;b++)
{
}
}
}
//##### hieu ung chop tat toan bo led ########
void hieu_ung_1(void)
{
for(k=0;k<8;k++)
{
P0=P1=P2=P3=0xff;
delay(300);
P0=P1=P2=P3=0x00;
delay(300);
}
}
//##### hieu ung chop 2 nua trai tim #########
void hieu_ung_2(void)
{
for(i=0;i<6;i++)
{
P0=P3=0x00;
delay(300);
P0=P3=0xff;
P1=P2=0x00;
delay(300);
P1=P2=0xff;
}
}
//##### hieu ung led nhay so le 1 ##############
void hieu_ung_3(void)
{
for(i=0;i<8;i++)
{
P0=P1=P2=P3=0x55;
delay(300);
P0=P1=P2=P3=0xaa;
delay(300);
}
}
//##### hieu ung led nhay so le 2 ##############
void hieu_ung_4(void)
{
for(i=0;i<8;i++)
{
P0=P1=P2=P3=0xaa;
delay(300);
P0=P1=P2=P3=0x55;
delay(300);
}
}
//##### p0,p1,p2,p3,p4 cung sang thuan ######
void hieu_ung_5(void)
{
unsigned char x,y;
x=y=255;
i=1;
j=128;
for(k=0;k<8;k++)
{
x=x-i;
y=y-j;
P0=x;
P1=P2=P3=y;
i=i*2;
j=j/2;
delay(300);
}
}
//##### p0,p1,p2,p3,p4 cung sang nghich ######
void hieu_ung_6(void)
{
unsigned char x,y;
x=y=255;
i=1;
j=128;
for(k=0;k<8;k++)
{
x=x-i;
y=y-j;
P0=y;
P1=P2=P3=x;
i=i*2;
j=j/2;
delay(300);
}
}
//##### sang dan het cac led theo chieu thuan ##
void hieu_ung_7(void)
{
unsigned char M[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,
0x80,0x00};
unsigned char N[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,
0x01,0x00};
P0=P1=P2=P3=0xff;
for(i=0;i<8;i++)
{
P0=M[i];
delay(300);
}
for(i=0;i<8;i++)
{
P2=N[i];
delay(300);
}for(i=0;i<8;i++)
{
P3=N[i];
delay(300);
}for(i=0;i<8;i++)
{
P1=N[i];
delay(300);
}
}
//##### tat dan het cac led theo chieu thuan ############
void hieu_ung_8(void)
{
unsigned char M[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned char N[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P0=M[i];
delay(300);
}
for(i=0;i<8;i++)
{
P2=N[i];
delay(300);
}for(i=0;i<8;i++)
{
P3=N[i];
delay(300);
}for(i=0;i<8;i++)
{
P1=N[i];
delay(300);
}
}
//##### sang dan het cac led theo chieu nghich #####
void hieu_ung_9(void)
{
unsigned char M[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
unsigned char N[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
P0=P1=P2=P3=0xff;
for(i=0;i<8;i++)
{
P1=M[i];
delay(300);
}
for(i=0;i<8;i++)
{
P3=M[i];
delay(300);
}for(i=0;i<8;i++)
{
P2=M[i];
delay(300);
}for(i=0;i<8;i++)
{
P0=N[i];
delay(300);
}
}
//##### tat dan het cac led theo chieu nghich #####
void hieu_ung_10(void)
{
unsigned char M[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
unsigned char N[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};
P0=P1=P2=P3=0x00;
for(i=0;i<8;i++)
{
P1=M[i];
delay(300);
}
for(i=0;i<8;i++)
{
P3=M[i];
delay(300);
}for(i=0;i<8;i++)
{
P2=M[i];
delay(300);
}for(i=0;i<8;i++)
{
P0=N[i];
delay(300);
}
}
//##### hieu ung pro 1 #################
void hieu_ung_11(void)
{
unsigned char M[]={0xf0,0xe1,0xc3,0x87,0x0f};
unsigned char N[]={0x0f,0x4f,0x63,0x71,0x78};
unsigned char L[]={0x1f,0x4f,0x6f,0x73,0x79,0x7c};
unsigned char K[]={0x3f,0x5f,0x6f,0x77,0x7b,0x7d,0x7e};
P0=P1=P2=P3=0xff;
for(i=0;i<5;i++)
{
P0=M[i];
delay(300);
}
P0=0xff;
for(i=0;i<5;i++)
{
P2=N[i];
delay(300);
}
P2=0x7f;
for(i=0;i<6;i++)
{
P3=L[i];
delay(300);
}
P2=P3=0x7f;
for(i=0;i<7;i++)
{
P1=K[i];
delay(300);
}
P1=P2=P3=0x7f;
}
Comment
-
Nguyên văn bởi tjeunjnzah Xem bài viếtnếu bạn làm biển cảo cáo chuyên nghiệp nên dùng phiên bản leddim của anh bảo việt hoàng vì phần mềm đó có thể cho trong một cổng chạy khác nhau và cùng một lúc thêm cả băm xung nữa rất hay mình đang làm hình trái tim tặng bạn gái nên cũng cần đường viền và đã dung leddim làm điều đó rất ok còn nếu không thì bạn lắp một bộ điều khiển riêng dành riêng cho đường viền có thay bằng vxl thì lắp mạch dao động đa hài cũng được mình cũng đã làm thử rất tốt mình thử viết bằng phương phát của bác hepro_90nd nhưng không ổn lắm
thanks trước.
0912.159.369
Comment
-
@tjeunjnzah: Mình đang học để biết lập trình thôi bạn à. Bắt đầu bằng việc xuất nhập cho các led. :d. phầm mềm ledimm mình cũng đã dùng rồi. Nhưng nó làm cho sinh viên như bọn mình lười nhác. ko chịu tìm hiểu để phát triển thêm kiến thức của mình. phầm mềm đó có 1 nhược điểm là khi cho led tối dần thì led bị nháy. Và chỉ có 1 hàm delay duy nhất cho tất cả các hiệu ứng.
Comment
-
Bác hepro_90nd ơi. Ý em là thế này.Em tác động vào các cổng theo từng bít. Ví dụ như một chữ có 10 chữ cái chẳng hạn, thì em định nghĩa cho nó từ chân P0_0 đến chân P1_1 chằng hạn. còn các chân P1_2 đến P1_4 thì em định nghĩa cho viền, và các chân còn lại em lại định nghĩa cho các chữ cái khác. Và viết hiệu ứng cho từng chữ riêng. Sau rồi làm cách nào để cho chúng chạy đồng thời cùng 1 lúc. Viết như bác thì khi muốn sửa hiệu ứng cho từng chữ rất khó. Bác có cách nào ko? giúp em với.
Comment
-
Nguyên văn bởi hepro_90nd Xem bài viếtMình dùng cái này đế lập trình led trái tim đấy .Mình thấy lập trình cho mấy cái chữ với đường viền thì quá đơn giản .Dùng vòng for kết hợp với mảng là xong .Đọc đoạn code này mình viết xem có hiểu k? Nếu hiểu là làm dc.Tôi thích cái cầu kỳ của kỹ thuật
Nhưng ghét mọi phức tạp trong tính cách con người
Comment
-
Nguyên văn bởi MinhNhat_dhv Xem bài viếtSao chẳng có ai giúp em vậy??
sau đó ta làm lập delay nhỏ cố định tùy theo muốn chạy viền nhanh hay chậm. sau đó tạo chương trình con chay_vien
VD:
void chay_vien(void){
P0=0x01;
delay(200);
P0=0x02;
delay(200);
P0=0x04;
delay(200);
}// và cái "chay_vien" này bạn thay nó cho "delay" trong chương trình(coi nó như delay chỉ có điều khi cần trễ nhiều bạn lặp lại nó nhiều lần bằng cách của riêng bạn), chay_vien tương đương với trễ (600). nếu chạy kểu khác bạn thay trễ nhỏ hơn tùy bạn.
chúc thành công!Tôi thích cái cầu kỳ của kỹ thuật
Nhưng ghét mọi phức tạp trong tính cách con người
Comment
Bài viết mới nhất
Collapse
-
bởi vi van pham[/COLOR]
- À! thì ra dưới nước người ta không chế tạo động cơ có tốc độ cao được, nên phải dùng cánh quạt lớn.
- À! bây giờ tôi mới biết trục to, trục bé ảnh hưởng đến lưu lượng.
- À! diện tích cánh quạt nhỏ khó trượt trong nước hơn cánh lớn....-
Channel: Điện tử gia dụng
hôm nay, 13:02 -
-
bởi dinhthuong80Dạ, cháu nghĩ,chân vịt nó phải làm cánh to vì không thể làm nhỏ được, vì số vòng quay/phút của cánh quạt dưới nước rất thấp hơn trong không khí. Vả lại độ nhớt của nước lớn hơn không khí rất nhiều lần, nên nếu cùng độ dày...
-
Channel: Điện tử gia dụng
hôm nay, 10:23 -
-
bởi appongthoMã lỗi H-84 Máy giặt Panasonic là gì?
https://appongtho.com/khac-phuc-loi-...iat-panasonic/
Mã lỗi H-84 trên máy giặt Panasonic là một cảnh báo đặc biệt nghiêm trọng báo hiệu hệ thống điều khiển đang kích hoạt chế độ bảo vệ...-
Channel: Điện tử gia dụng
hôm nay, 10:14 -
-
bởi vi van phamDinhthuong ơi! cơ hội làm giàu của cháu đến rồi.
Trên thế giới toàn bộ : "Chân Vịt" cho tàu bè đều là cánh to, nó hao nhiên liệu, ma sát làm hư hao. Nay cháu sx chân vịt cánh nhò cho thế giới sử dụng, chân vịt của cháu...-
Channel: Điện tử gia dụng
Hôm qua, 21:25 -
-
Trả lời cho nguồn switchingbởi bqvietThông tin cá nhân bqv xin phép tránh nêu ở diễn đàn. Nghề nghiệp thì bao năm nay vẫn thế thôi : điện - điện tử - tự động hóa - IT. Làm ơn đừng hâm mộ, nhỡ có dịp gặp thật thì lại thất vọng vì thực tế không như mình nghĩ. Bqv xét...
-
Channel: Nguồn!
Hôm qua, 21:16 -
-
bởi mèomướpDạ chú dinh... cứ xét hệ tại 1 thời điểm thì sẽ dễ hiểu hơn ạ, với cánh to thì mặt tiếp xúc lớn hơn, lực tác động vào đồng thời nhiều không khí hơn, nhìu không khí cùng chuyển động thì sẽ tạo lưu lượng gió lớn hơn ạ...
-
Channel: Điện tử gia dụng
Hôm qua, 18:49 -
-
Trả lời cho nguồn switchingbởi mèomướpDạ cháu hỏi lại chị hàng xóm nhà cháu rồi ạ, chị ấy bảo anh thợ sửa điều hòa tâm sự với chị ấy nên hông nhầm đâu ạ. Chú bq... hông tin thì có thể xem video này ạ
https://youtu.be/dvU8ZcvgYH4?si=15Sd_j3uxuWah9PR-
Channel: Nguồn!
Hôm qua, 17:30 -
-
bởi dinhthuong80Cảm ơn bác ạ, nhờ chủ đề này, nhờ bác nhiệt tình chia sẻ mà mọi người biết thêm nhiều kiến thức về quạt điên, thiết bị điện tưởng chừng rất đơn giản chỉ chuyển điện thành cơ.
Tuy nhiên, chỗ in đậm cháu không đồng...-
Channel: Điện tử gia dụng
Hôm qua, 17:00 -
-
Trả lời cho nguồn switchingbởi bqvietHình như bạn mèomướp lộn chút. Mạch nguồn xung vốn chạy 220V, muốn chuyển sang chạy 110V thì có thể dùng mạch nhân áp; hoặc thậm chí chẳng phải làm gì nếu đó là nguồn xung flyback đầu vào dải rộng. Chứ mạch nguồn vốn chạy 110V hoặc 100V nay muốn chuyển sang chạy 220 thì phải thay một mớ đấy....
-
Channel: Nguồn!
Hôm qua, 16:16 -
-
Trả lời cho nguồn switchingbởi milanĐại ca bqviet năm nay bao nhiêu tuổi rồi, làm nghề gì nhỉ.
Ngày xưa em hâm mộ anh nhất diễn đàn mà chưa có dịp gặp....-
Channel: Nguồn!
Hôm qua, 11:51 -
Comment