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 Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Dạ, cảm ơn bác đã nghe qua và có lời khích lệ cháu ạ.
Thật lòng cháu không dám nhận hai danh hiệu Kỹ sư và Nhạc sĩ đâu ạ, vì phải thật hiểu sâu nắm vững cơ, chứ thực lực cháu đây chỉ là biết chút ít thôi à. Về phần...-
Channel: Tâm tình dân kỹ thuật
29-01-2026, 11:58 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietĐơn giản thì có trải nghiệm này
http://www.dientuvietnam.net/forums/...ch%C3%AA%CC%81
Chỉ phần cứng,...-
Channel: Điện tử công suất
27-01-2026, 21:32 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pphức tạp quá, nếu mà có mạch làm sẵn thì ngon, e dùng 2 tấm pv loại 18v 55w thôi bác
-
Channel: Điện tử công suất
26-01-2026, 08:52 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi Nexus 6Pcảm ơn bác nhiều nha, để e nghiên cứu
-
Channel: Điện tử công suất
26-01-2026, 07:38 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi vi van phamkỹ sư nhạc sĩ dinhthuong dạo này lên tay nghề khá quá.
-
Channel: Tâm tình dân kỹ thuật
25-01-2026, 21:29 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Hát Mừng Sinh Nhật, sáng tác: HĐT, hòa âm-thể hiện: AI
-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 22:13 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Chào bác, gần Tết công việc bác bận lắm phải không?
Vâng mọi người đều thế cả.
Em mới trả phí cho nó 1 tháng, nhờ nó hát thử ấy ạ. Tiếc vì em đã dốt nhạc lí lại lười học nên sáng tác thì vụng về mà hát demo...-
Channel: Tâm tình dân kỹ thuật
24-01-2026, 21:53 -
-
Trả lời cho Có mạch sạc nlmt nào có mppt không các bácbởi bqvietCảm thấy cứng tay thì làm theo hướng dẫn khá chi tiết ở trang sau
https://www.instructables.com/DIY-1k...ge-Controller/-
Channel: Điện tử công suất
23-01-2026, 16:50 -
-
bởi Nexus 6PNhư tiêu đề, các bác giới thiệu e mạch sạc nlmt mppt có chức năng chỉnh dòng với, tấm PV của em 18V 55W, dùng để sạc cho khối pin sắt 3.2V 45A (sắp tới sẽ thay bằng ắc quy 12V)
e cảm ơn-
Channel: Điện tử công suất
23-01-2026, 11:23 -

Comment