Em mới học năm hai! Ngành cơ điện tử nhưng em rất yêu thích về lập trình nhất là VDK nên quyết tâm tự học! Nhưng khổ nỗi em chẳng biết bắt đầu từ đâu, học như thế nào cho hiệu quả! híc! mấy bác chỉ giúp em! Hiện em đang nghiên cứu con 8051! hic!
Thông báo
Collapse
No announcement yet.
tư vấn giùm em với mấy bác!
Collapse
X
-
hãy bắt đầu với luồng người bắt đầu với 8051.
sau đó kiếm giáo trình về học nhé.
Sách bắt đầu đây: Lập trình VĐK của thày Cường (HV KTQS):
Chúc bạn thành công.http://dientuvietnam.net/forums/showthread.php?t=2197
http://www.4shared.com/file/22730850..._VDK_8051.html
Đó là phần học lấy kiến thức, nhưng quanh quẩn là phải làm luôn mới hiểu.Đối với họ 8051 mình thấy Reads51 là okie. Down tại đây:
http://rigelcorp.com/reads51.htm
-
To Super_noob:
Keil C thì mình chưa sử dụng bao giờ nên cũng ko dám nói nhiều về nó.
Mặt khác với Reads51 bạn có thể lập trình bằng ASM hoặc C đều dc.
bạn vào link trên down Reads51 về mà "cày 8051" đi nhé.
ngoài ra nếu học bạn nên chuẩn bị những thứ sau để phục vụ học VĐK 8051 dễ dàng hơn:
1. chuẩn bị mạch nạp. có thể mua chỉ khoảng trên dưới 100k thôi
2. làm mạch nguồn
3. mua loại chip AT89C52 về thực hành cùng các linh kiện cần thiết.
4. học kiến thức trong cuốn sách mà bạn đã down ở trên rùi đó.
5. Ngoài ra bạn còn phải có phần mềm nạp chip nữa. Mình dùng ProLoad thấy chip chạy rất ổn định. bạn vào link này down nhé: http://projects.sunrom.com/proload/
==> đi đến thực hành.
Chúc bạn thành công với 8051.Last edited by NANO PRO; 09-09-2007, 13:44.
Comment
-
@super noob:
-Cái đó là do bạn tự chọn thôi.Nếu như bạn mới học về vi điều khiển thì bạn nên chọn ASM vì muốn lập trình với ASM bạn phải hiểu về cấu trúc của VDK để lập trình cho từng thanh ghi và nó tốn ít bộ nhớ hơn là C.Còn lập trình bằng C thì đễ học hơn vì nó gần giống ngôn ngữ con người,nhưng mà học C khi bạn mới biết về vi điều khiển sẽ dân đến việc kiến thức về vi điều khiển của bạn sẽ dậm chân tại chỗ và Cái thiết yếu là khi lập trình C khi biên dịch ra thì nó ngốn rất nhiều bộ nhớ VDK.Cho nên các bước cần thiết bạn phải làm như sau.
1/Tìm hiểu về cấu trúc vi điều khiển(nên học con AT89C51 nó thuộc hô 8051)
2/tìm hiểu tập lệnh ASM của con AT89c51,tìm hiểu chức năng của các ngắt,Timer,cờ tràn.....
3/Tìm hiểu cách vẽ mạch và vẽ mạch in (bằng OrCAD hoặc protel,eagler ....)
4/Học cách làm mạch in thủ công
5/Làm 1 mạch nạp cho con AT89C51 vì cách mạch nạp mua đắt hơn là làm và qua đó nâng cao kĩ năng làm mạch in.
6/Tập lập trình làm nhấp nháy led theo nhiều kiểu.
7/Kiếm tài liệu nâng cao để học
Chúc vuiTâm trí ta say nhưng lòng ta đâu có say
Bởi trái tim tôi đã trót say người
Comment
-
Học nhanh thì mua 1 cái kit về học.
Mình thấy có nhiều anh bán những kit loại đó lắm.
Dùng 8051 của Philip đấy.khỏi mạch nạp gì cả lại khỏi tháo cắm.
đỡ mất time làm mấy cái mạch EZ.
hình như bác tamphong có đấy.
Rồi PNLAB nữa.
TME
nhiều nhiều sắm 1 cái mà học cho nhanh.
Sông dài, Thuyền lớn, Biển rộng bao la.
Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.
Comment
-
Nếu dùng con 8051 của Philip(P89V/C51RDx) thì có phải là quá tốn tiền trong khi bạn này trong thời gian học không,nhưng mà con này lợi ở điểm có thể nạp ISP dùng mạch nạp ngoài ,mạch nạp ngoài cũng chỉ cần 4 con MAX232 và 4 tụ thôi.
Mới học dễ bị dốt VDK lắm nên dùng con rẻ thôi,cái thiết yếu là mạch nạpTâm trí ta say nhưng lòng ta đâu có say
Bởi trái tim tôi đã trót say người
Comment
-
Đốt vài con có saoNguyên văn bởi bk_future Xem bài viếtNếu dùng con 8051 của Philip(P89V/C51RDx) thì có phải là quá tốn tiền trong khi bạn này trong thời gian học không,nhưng mà con này lợi ở điểm có thể nạp ISP dùng mạch nạp ngoài ,mạch nạp ngoài cũng chỉ cần 4 con MAX232 và 4 tụ thôi.
Mới học dễ bị dốt VDK lắm nên dùng con rẻ thôi,cái thiết yếu là mạch nạp
mà con này chì lém.
Có đau mới hổng dám đốt nữa.
Mà RB rẻ mà chỉ vài chục K.
Còn RD thì mắc thật nhưng đáng $.
Cần RD thì call mình(quảng cáo tí chơi).
@phucthinhel:mạch nạp của anh xài tốt lém.
Sông dài, Thuyền lớn, Biển rộng bao la.
Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.
Comment
-
cho em hỏi cái .Cả ngay hôm nay em tim mãi không ra lôi tại sao mà chuong trình không chạy được .HUhu.Đây là chương trình em viêtcho LCD
#include <REGX51.H>
#include<string.h>
sfr LCD_data=0xa0;
sbit BF=0xa7;
sbit RS=P3^5;
sbit Rw=P3^4;
sbit En=P3^3;
void wait(void)
{
long n=0;
En=1;
RS=0;
Rw=1;
LCD_data=0Xff;
while(BF){n++;if(n>100) break;}
En=0;
Rw=0;
}
//*ham dieu khien LCD thuc hien 1 lenh*//
void LCD_control(unsigned char x)
{
En=1;
RS=0;
Rw=0;
LCD_data=x;
En=0;
wait();
}
//*ham khoi tao
void LCDinit(void)
{
LCD_control(0x30);//che do 8 bit
LCD_control(0X38);//2 dong va ma tran 5X7
LCD_control(0x0C);//bat contro
LCD_control(0x06);//tang con troi dich con tro sang phai
LCD_control(0x01);//xoa man hinh
}
//============
void LCD_write(unsigned char c)
{
En=1;
RS=1;
Rw=0;
LCD_data=c;
En=0;
wait();
}
//=========
void LCD_puts(unsigned char *s,unsigned char row)
{
unsigned char len;
if(row==1) LCD_control(0x80) ;
else LCD_control(0xc0);
len=strlen(s);
While(len!=0)
{
LCD_write(*s);
s++;
len--;
}
}
//=================
void delay(long time)
(
long n;
for(n=0;n<time;n++)
{
;
};
)
//=============
void main(void)
{
char x;
LCDinit();
LCD_puts("8052mcu",1);
delay*(30000);
While(1==1)
{
for(x=0;x<15;x++)
{
LCD_puts("8052mcu",1);
LCD_control(0X18) ;
delay(5000)
}
}
}
nó báo lỗi như sau :
#include <REGX51.H>
#include<string.h>
sfr LCD_data=0xa0;
sbit BF=0xa7;
sbit RS=P3^5;
sbit Rw=P3^4;
sbit En=P3^3;
void wait(void)
{
long n=0;
En=1;
RS=0;
Rw=1;
LCD_data=0Xff;
while(BF){n++;if(n>100) break;}
En=0;
Rw=0;
}
//*ham dieu khien LCD thuc hien 1 lenh*//
void LCD_control(unsigned char x)
{
En=1;
RS=0;
Rw=0;
LCD_data=x;
En=0;
wait();
}
//*ham khoi tao
void LCDinit(void)
{
LCD_control(0x30);//che do 8 bit
LCD_control(0X38);//2 dong va ma tran 5X7
LCD_control(0x0C);//bat contro
LCD_control(0x06);//tang con troi dich con tro sang phai
LCD_control(0x01);//xoa man hinh
}
//============
void LCD_write(unsigned char c)
{
En=1;
RS=1;
Rw=0;
LCD_data=c;
En=0;
wait();
}
//=========
void LCD_puts(unsigned char *s,unsigned char row)
{
unsigned char len;
if(row==1) LCD_control(0x80) ;
else LCD_control(0xc0);
len=strlen(s);
While(len!=0)
{
LCD_write(*s);
s++;
len--;
}
}
//=================
void delay(long time)
(
long n;
for(n=0;n<time;n++)
{
;
};
)
//=============
void main(void)
{
char x;
LCDinit();
LCD_puts("8052mcu",1);
delay*(30000);
While(1==1)
{
for(x=0;x<15;x++)
{
LCD_puts("8052mcu",1);
LCD_control(0X18) ;
delay(5000)
}
}
}
#include <REGX51.H>
#include<string.h>
sfr LCD_data=0xa0;
sbit BF=0xa7;
sbit RS=P3^5;
sbit Rw=P3^4;
sbit En=P3^3;
void wait(void)
{
long n=0;
En=1;
RS=0;
Rw=1;
LCD_data=0Xff;
while(BF){n++;if(n>100) break;}
En=0;
Rw=0;
}
//*ham dieu khien LCD thuc hien 1 lenh*//
void LCD_control(unsigned char x)
{
En=1;
RS=0;
Rw=0;
LCD_data=x;
En=0;
wait();
}
//*ham khoi tao
void LCDinit(void)
{
LCD_control(0x30);//che do 8 bit
LCD_control(0X38);//2 dong va ma tran 5X7
LCD_control(0x0C);//bat contro
LCD_control(0x06);//tang con troi dich con tro sang phai
LCD_control(0x01);//xoa man hinh
}
//============
void LCD_write(unsigned char c)
{
En=1;
RS=1;
Rw=0;
LCD_data=c;
En=0;
wait();
}
//=========
void LCD_puts(unsigned char *s,unsigned char row)
{
unsigned char len;
if(row==1) LCD_control(0x80) ;
else LCD_control(0xc0);
len=strlen(s);
While(len!=0)
{
LCD_write(*s);
s++;
len--;
}
}
//=================
void delay(long time)
(
long n;
for(n=0;n<time;n++)
{
;
};
)
//=============
void main(void)
{
char x;
LCDinit();
LCD_puts("8052mcu",1);
delay*(30000);
While(1==1)
{
for(x=0;x<15;x++)
{
LCD_puts("8052mcu",1);
LCD_control(0X18) ;
delay(5000)
}
}
}
#include <REGX51.H>
#include<string.h>
sfr LCD_data=0xa0;
sbit BF=0xa7;
sbit RS=P3^5;
sbit Rw=P3^4;
sbit En=P3^3;
void wait(void)
{
long n=0;
En=1;
RS=0;
Rw=1;
LCD_data=0Xff;
while(BF){n++;if(n>100) break;}
En=0;
Rw=0;
}
//*ham dieu khien LCD thuc hien 1 lenh*//
void LCD_control(unsigned char x)
{
En=1;
RS=0;
Rw=0;
LCD_data=x;
En=0;
wait();
}
//*ham khoi tao
void LCDinit(void)
{
LCD_control(0x30);//che do 8 bit
LCD_control(0X38);//2 dong va ma tran 5X7
LCD_control(0x0C);//bat contro
LCD_control(0x06);//tang con troi dich con tro sang phai
LCD_control(0x01);//xoa man hinh
}
//============
void LCD_write(unsigned char c)
{
En=1;
RS=1;
Rw=0;
LCD_data=c;
En=0;
wait();
}
//=========
void LCD_puts(unsigned char *s,unsigned char row)
{
unsigned char len;
if(row==1) LCD_control(0x80) ;
else LCD_control(0xc0);
len=strlen(s);
While(len!=0)
{
LCD_write(*s);
s++;
len--;
}
}
//=================
void delay(long time)
(
long n;
for(n=0;n<time;n++)
{
;
};
)
//=============
void main(void)
{
char x;
LCDinit();
LCD_puts("8052mcu",1);
delay*(30000);
While(1==1)
{
for(x=0;x<15;x++)
{
LCD_puts("8052mcu",1);
LCD_control(0X18) ;
delay(5000)
}
}
}|
Comment
-
To Super_noob
bạn khiêm tốn quá. Thực thà mà nói cho đến năm thứ 3 (học kì 2) mình mới thực sự tham gia vào quá trình học tập. Với sự khởi đầu của bạn cùng với quyết tâm mình tin bạn sẽ học tốt.Nguyên văn bởi super_noob Xem bài viếtcảm ơn các bạn nhiều lắm! mình sẽ cố học ASM trước nhưng các bạn có thể nói rõ hơn cho mình về cách chuẩn bị để thực hành được kô? bởi mình tự học hoàn toàn nên kô có ai hướng dẫn cả, với lại mới là sv năn hai nên chưa hiểu lắm về điện tử! mong các bạn giúp minh!
Mình có thể tổng hợp các modul nhỏ để bạn có kế hoạch học tập trinh phục 8051 như sau:
1. Sáng Led đơn, nháy theo chu kì(chạy ngược, chạy xuôi...) ...
2. Phím bấm ==> ma trận phím
3. Led 7 thanh (loại đơn, x2, x3, x4)
4. UART: truyền nhận dữ liệu nối tiếp
5. ghép nối ADC(ADC0804, 0808, 0809...)
6. truyền nhận hồng ngoại
7. Thực hành ngắt, Timer ....
==> thực hiện các modul lớn hơn như hệ thống điều khiển đèn giao thông (2 hướng, 3 hướng, 4 hướng ...), điều khiển nhiệt độ, đo dòng, ổn định tốc độ động cơ (DC, AC), giao tiếp máy tính để điều khiển giám sát ....Và tiến đến làm chủ 8051
Chúc bạn thành công.
Comment
-
Mình tự học VDK hồi lớp 12
bạn vào trang này học khỏi cái này 1/2 kiến thức thành thạo lun áh
http://codientu.info/codientu/ki_thu...cvdk/index.htm
Tài liệu khác mình sẽ gửi lên sau
Tâm trí ta say nhưng lòng ta đâu có say
Bởi trái tim tôi đã trót say người
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi mèomướpDạ cháu đọc 1 số bài viết của bác vi... thì nhớ đc bác là 1 cụ già gần 80 tuổi, sức khỏe yếu. Đam mê và làm vc về kỹ thuật điện. Thích thơ ca. Có nhìu bài chia sẻ quý báu cho thế hệ sau. Tuy nhiên già rồi nên khái tính, bảo thủ, nhưng vẫn đáng kính ạ... còn lão nhathung... thì kiểu bố đời
-
Channel: Tâm tình dân kỹ thuật
31-07-2026, 12:52 -
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
30-07-2026, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
30-07-2026, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
30-07-2026, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -

Comment