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):
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
-
Nguyê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ạpmà 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
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 sauTâ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 Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80À, sản phẩm họ thiết kế ra, họ yêu cầu mình chứng minh là sau chỉnh sửa thì 1 là gỡ jump cắm lại không hư mạch, 2 là gỡ jump thì 220Vdc vẫn dùng được led áp thấp 20V mà không hư led như mình báo, nên họ hiểu rõ mà....
-
Channel: Điện tử công suất
hôm nay, 06:08 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Tôi biết và tôi biết.
Sẽ bắt đầu với cái Sồn La, rồi mấy mạch nguồn vớ vỉn.... Rồi sẽ đèn led...
Cuộc đời là những chuyến xe, nên sẽ có:
Xe đạp điện, xe máy điện, xe ô tô điện, xe cấp cứu điện, xe tang điện.
Rồi xem.-
Channel: Điện tử công suất
hôm nay, 01:38 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nhathung1101Vấn đề là thu ánh sáng rồi phát ra ánh sáng cơ. Hồi mẫu giáo cô bảo đừng làm, lão không nhớ à?
Tốt nhất im mồm....-
Channel: Điện tử công suất
hôm nay, 01:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietBài học kiểu trực tuyến dù là loại đơn giản bậc nhất cũng vẫn cần chú tâm. Chỉ bật tai nghe lên thì không có loại nào thấm nổi đâu. Cách hay hơn, dễ hơn là kiếm phim tiếng Anh nào đó xem, ban đầu bật phụ đề tiếng Việt, nghe và...
-
Channel: Tâm tình dân kỹ thuật
14-02-2025, 16:15 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanỞ đtvn này mới biết đến 2 loại mạch
1 step down
2 step up
Bây giờ anh lưu vong làm thuê bên nước lạ còn làm ra cái mach vừa up vùa dow luôn.
Tính chất là:
1 Đầu vào bằn ra cho nối thẳng
2 Đầu vào cao hơn...-
Channel: Điện tử công suất
14-02-2025, 00:51 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi nguyendinhvanHa ha !
Thay đổi cách nghĩ thì sẽ nghĩ ra.
.
.
.
Một thứ cần kiểm soát dòng + nhiệt + công suất tiêu tán. Nhưng lại dùng tư duy ổn áp. Làm sao mà giải quyết được.
Nó là mạch ổn dòng.
Vì thế các anh nước lạ không thèm quan tâm là phải....-
Channel: Điện tử công suất
14-02-2025, 00:42 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi dinhthuong80Vì cứ phải chỉnh sửa cho mỗi dải điện áp, quên chỉnh thì hư chíp phải bảo hành nên em thấy bất tiện, mới cần cái mạch 1 dải áp cao dùng cho tất cả loại đèn đó bác!...
-
Channel: Điện tử công suất
13-02-2025, 17:02 -
-
Trả lời cho Tiếng Anh cho người Việtbởi hankhungdtMình thỉnh thoảng cũng làm việc với người nước ngoài nói tiếng Anh thì toàn ghép nhặt từ, cộng với quơ tay quơ chân để diễn tả, hix. Nỗi khổ là không biết cách để mô tả sự việc. Tôi muốn tìm các bài giảng tiếng anh nào phù hợp...
-
Channel: Tâm tình dân kỹ thuật
13-02-2025, 08:43 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi ti500Chúc mừng bác đã chỉnh sửa thành công, nhưng theo em thì video hơi rối nếu bác muốn gửi cho bên supplier xem.
Nếu là em thì em chỉ cần nối dây để hiển thị liên tục điện áp ở ngõ ra là 220Vdc trước khi gắn LED, kế đến là cắm...-
Channel: Điện tử công suất
13-02-2025, 07:39 -
-
Trả lời cho Giúp em về mạch MPPT và Solar Panel với!?bởi tuyennhanTrước khi có đủ thực lực thì chỉ làm vì mình thôi đừng nghĩ đến chuyện khác cái mạch toàn dãi tiện sử dụng nhưng tỷ lệ hư hỏng phải bảo hành cũng cao hơn ,lợi bất cập hại .
-
Channel: Điện tử công suất
13-02-2025, 07:22 -
Comment