Tự học 8051: Bài 3 - Lập trình chức năng IO _Led Blink & Bo trắng
HTML-код
- Опубликовано: 10 окт 2024
- Lập trình chức năng IO của 8051, ví dụ điều khiển nhấp nháy led, và cắm trên bo mạch các thành phần tối thiểu để 8051 hoạt động.
Chi tiết tại: dientu360.com/8051
anh trình bày cẩn thận quá, rõ ràng, đầy đủ, cấu trúc mạch lạc và rất nguyên tắc
Tôi nhiều tuổi,tiếp thu kém nhưng bạn giảng dễ hiểu.Cảm ơn bạn nhiều
Cảm ơn a. Clip rất chi tiết cho người mới bắt đầu.
cho mình hỏi mình học được cách thiết kế cho led chạy theo hình trái tim nhưng theo video này thì lúc ra chỉ 1 chân led mà ở kia thì hướng dẫn là nối cực âm của led vào hết p0, p1, p2, p3 thì mình phải làm sao
a oi cho e hoi lam the nao cai proteus ma khi vao lay linh kien no hien ra ca hinh dang va so do dau cua cac linh kien nhu khi a lay dien tro o trong bai giang
anh cho em hỏi là em viết chương trình bằng c++ trên vs code và nạp file code vào 8051 không cần keli có được không ạ
bài rất chi tiết , xin cảm ơn tác giả.
trong cửa sổ pick devices phần results ra kq ít vậy anh?có phải thiếu thư viện không?
A ơi cho e hỏi , hôm nọ em mới lên chợ Nhật tảo có mua cái usb isp nhưng không biết làm để sao kết nối với máy tính để nạp chương trình cho ic , a có thể giúp em làm cái mạch để nạp chương trình được không ạ , cảm ơn a
bài học rất hay và dễ hiểu cảm ơn anh nhiều
cho e hỏi nguyên lí hoạt động mạch tạo dao động thạch anh?nó hoạt động ntn,sao lại phải có 2 tụ mắc song song?
anh ơi cho em hỏi em đang học pic18f4520 vậy cần những gì để làm thực hành bài này ạ và anh cho em xin địa chỉ với ạ
anh ơi, vì sao lại phải dùng những tụ và điện trở có trị số như thế?
VÌ sao tụ lại là 1nF và trở là 100??
Em vẫn chưa hiểu rõ,mong anh giải đáp ...
a ơi cho em hỏi là cái keilc của em cái chức năng periprerals nó không hoạt động thì phải làm sao ạ
anh cho em hỏi. khi nạp code xong rút usb isp rồi cắm nguồn điện bình thường thì mạch có chạy tiếp không vậy?
bài học rất hay, rất bổ ích
lần đầu tiên nạp chip có cần xóa chương trình trong chip ko thầy?? tks trước!
Chào a,
A có thể làm một video hướng dẫn sử dụng mạch nạp MN89V2-U, với phần mềm proload 5.4 được không ạ, và em xin hỏi là mạch nạp này dùng phần mềm khác để nạp có đc ko ạ
Anh ơi anh hướng dẫn làm mạch led công suất đi anh
Em tìm trên mạng mà không thấy ai hướng dẫn cả
Mà em nhìn mấy hình ảnh mạch led công suất họ bán tren mạng thì không nhìn thấy mạch toàn thấy linh kiện thôi .
Chương trình được lạp hay được nạp mới đúng
hi tiếng địa phương thôi bạn
làm ơn cho mình hỏi sao khi mình biên dịch nó cứ cảnh báo 1 .chỉ vào lỗi thì nó báo lisence error Renew lisence code (LIC)cảm ơn nhiều
a ơi .viết vào cổng p0 như nào ạ .viết bằng asm ý ạ .a có thể cho e đoạn chương trình cho 1 led cổng p0 dc k ạ.
A ơi a có dạy học cái này ở hnoi ko vậy ạ. A cho e xin địa chỉ với
a ơi e dùng ProgIp 1.72 lúc nạp code cho AT89C52 bị thế này "Programmer can not be found" thì làm thế nào để nạp vậy
em chuẩn bị tập thực hành làm.....
cho em hỏi mạch nạp usb khi đã nối với ic 8051 và đã nạp xong lệnh mới thì sao khi rút usb,thì ic 8051 vẫn giữ lệnh và giờ mình cấp nguồn,thì ic vẫn chạy theo lệnh đã được nạp phải không anh
Tks anh nhiều
e dùng phần mềm MPLAB IDE v8.70 viết chương trình có được không ạ
em bỏ vòng while(1) thì nó mới chạy dc ah ơi
nạp chương trình cho 8051 bằng USP ISP
còn easy 8051 ko cần dùng ạ
hay và rất dễ hiểu
em lm y như thầy chả hiểu sao chân số 8 từ 8051 cứ đỏ lòm thầy ạ
anh ơi làm sao cho no không lặp lại vòng vô tận vi dụ cho led sáng 2 phút roi tắt luôn được không em cám ơn
thì không dùng vòng lặp while bạn
:))
nếu led nháy 5 lần thì chương trình như thế nào anh ơi
ad ơi cho e hỏi đơn vị tính cho con số trong hàm delay() la gì ạ. thank
+nguyễn gia phong hàm delay trong bài ko có đơn vị cụ thể. Bạn muốn viết chính xác theo 1 đơn vị cụ thể thì phải dùng Timer để viết hàm delay, còn viết đơn giản thế này thì nó gần tương đương đơn vị micro sec.
dien tro R1=100,R7=200,R5=20k nhung linh kien do nam o dau vay anh,huong dan dum to cach lay no ra voi.
bạn nháy kép vào điện trở để đổi giá trị mong muốn thôi
a ơi, sao của e khi nạp xong ctrinh r, e chạy thử thì báo lỗi mô phỏng vậy ạ
rất là hay, cảm ơn anh
cho e hỏi cái phần mềm nạp progISP có dùng cho win 10, 64 bits ko ạ?? e dùng mà ko được
Win 10không dùng được đâu bạn ơi.
e ve dung mach nhu hinh ve roi ma tai sao chay thi proteus no lai bao loi a?
A cho e hoi e muon bat led sang 3 tieng roi tat thi chinh do tre bao nhieu a
thế thì bạn phải dùng module thời gian thực nhé!
thay oi mach reset em ve tren proteus mhu thay ma tai sao no luon o muc 1 vay
benh ban co ban mach nap nao nap dc ca pic ca 8051 ko vay
cho e hỏi ngu câu là nguồn 5v vs đất a lấy tn đấy ah :v?
cho e hỏi usb isp bán ở đâu ah..
thầy ơi, mức cao mức thấp trong mạch là gì ạ
anh oi anh co the lm video huong dan cach viet code phat tan so hk anh
a ơi cho em xin link d0wn phần mềm mô phỏng vs phần mềm lập trình đi a
Target not created là lỗi gì vậy anh ơi
co the coppy tu con ic nay sang con ic khac k ban
Không hiểu sao máy mình nạp chương trình qua USB ISP toàn báo lỗi "Error USB communication in writting Flash" mặc dù đã làm đúng theo các bước trong hướng dẫn. Xóa chương trình thì vẫn báo thành công
ji
anh oi . sao em lại ko tìm thấy file hex vậy anh , em đã làm như anh . nhưng khi qua bên mô phõng . ấn vô thư mục đó để hex file . thì lại là một thư mục trống ko có gì cã . a có thể giúp em dc ko
a ơi cho e hỏi a có thể gửi cho e file để viết code đc k a
lỗi nayflaf sao ạ
compiling ledTraiTim.c...
LEDTRAITIM.C(3): error C129: missing ';' before 'delay'
Target not created
dạ..có thể cho e xin full linh kiện proteus của anh đc ko ạ..
về cơ bản Proteus đã có sẵn các linh kiện, em có thể search thêm trên internet có rải rác ở các website
thầy ơi cho e hỏi e làm đúng như thầy mà sao led e ko sáng:((((
lâm nguyễn mình cũng như bạn nó ko sáng @@
chương trình nạp là chương trình j vậy ạk
nạp ntn vậy ạk
mình đang dùng mạch nạp chuyên dùng cho 8051
sao e thấy nó báo là 'P2_0': địa chỉ cơ sở không hợp lệ?
Build target 'Target 1'
compiling led.c...
LED.C(4): error C141: syntax error near '}'
Target not created
vâng. e khai báo nhưng vẫn bj z.
#include
void main(){
P2_0 = 0
}
#include
void delay(int time){
while(time--);}
void BATTAT(){
P0=0;P1=0;P2=0;P3=0;
delay(100000);
P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
}
void traiquaphai(){
P0_0=0;delay(10000);P0_0=1;
P0_1=0;delay(10000);P0_1=1;
P0_2=0;delay(10000);P0_2=1;
P0_3=0;delay(10000);P0_3=1;
P0_4=0;delay(10000);P0_4=1;
P0_5=0;delay(10000);P0_5=1;
P0_6=0;delay(10000);P0_6=1;
P0_7=0;delay(10000);P0_7=1;
P1_0=0;delay(10000);P1_0=1;
P1_1=0;delay(10000);P1_1=1;
P1_2=0;delay(10000);P1_2=1;
P1_3=0;delay(10000);P1_3=1;
P1_4=0;delay(10000);P1_4=1;
P1_5=0;delay(10000);P1_5=1;
P1_6=0;delay(10000);P1_6=1;
P1_7=0;delay(10000);P1_7=1;
P2_0=0;delay(10000);P2_0=1;
P2_1=0;delay(10000);P2_1=1;
P2_2=0;delay(10000);P2_2=1;
P2_3=0;delay(10000);P2_3=1;
P2_4=0;delay(10000);P2_4=1;
P2_5=0;delay(10000);P2_5=1;
P2_6=0;delay(10000);P2_6=1;
P2_7=0;delay(10000);P2_7=1;
P3_0=0;delay(10000);P3_0=1;
P3_1=0;delay(10000);P3_1=1;
P3_2=0;delay(10000);P3_2=1;
P3_3=0;delay(10000);P3_3=1;
P3_4=0;delay(10000);P3_4=1;
P3_5=0;delay(10000);P3_5=1;
P3_6=0;delay(10000);P3_6=1;
P3_7=0;delay(10000);P3_7=1;
}
void phaiquatrai(){
P0_7=0;delay(10000);P0_7=1;
P0_6=0;delay(10000);P0_6=1;
P0_5=0;delay(10000);P0_5=1;
P0_4=0;delay(10000);P0_4=1;
P0_3=0;delay(10000);P0_3=1;
P0_2=0;delay(10000);P0_2=1;
P0_1=0;delay(10000);P0_1=1;
P0_0=0;delay(10000);P0_0=1;
P1_7=0;delay(10000);P1_7=1;
P1_6=0;delay(10000);P1_6=1;
P1_5=0;delay(10000);P1_5=1;
P1_4=0;delay(10000);P1_4=1;
P1_3=0;delay(10000);P1_3=1;
P1_2=0;delay(10000);P1_2=1;
P1_1=0;delay(10000);P1_1=1;
P1_0=0;delay(10000);P1_0=1;
P2_7=0;delay(10000);P2_7=1;
P2_6=0;delay(10000);P2_6=1;
P2_5=0;delay(10000);P2_5=1;
P2_4=0;delay(10000);P2_4=1;
P2_3=0;delay(10000);P2_3=1;
P2_2=0;delay(10000);P2_2=1;
P2_1=0;delay(10000);P2_1=1;
P2_0=0;delay(10000);P2_0=1;
P3_7=0;delay(10000);P3_7=1;
P3_6=0;delay(10000);P3_6=1;
P3_5=0;delay(10000);P3_4=1;
P3_3=0;delay(10000);P3_5=1;
P3_4=0;delay(10000);P3_3=1;
P3_2=0;delay(10000);P3_2=1;
P3_1=0;delay(10000);P3_1=1;
P3_0=0;delay(10000);P3_0=1;
}
void sole(){ P0=0XAA;P1=0XAA;P2=0XAA;P3=0XAA;delay(10000);
P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
P0=0X55;P1=0X55;P2=0X55;P3=0X55;delay(10000);
P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
P0=0XAA;P1=0XAA;P2=0XAA;P3=0XAA;delay(10000);
P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;;
P0=0X55;P1=0X55;P2=0X55;P3=0X55;delay(10000);
P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
P0=0XAA;P1=0XAA;P2=0XAA;P3=0XAA;delay(10000);
P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
P0=0X55;P1=0X55;P2=0X55;P3=0X55;delay(10000);
P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;
}
void main(){
while(1){
traiquaphai();delay(10000);
phaiquatrai();delay(10000);
sole();delay(10000);
BATTAT();delay(10000);
}
}
báo lỗi *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: MAIN
MODULE: led_ngan.obj (LED_NGAN)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: _DELAY
MODULE: led_ngan.obj (LED_NGAN)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MAIN?LED_NGAN
Program Size: data=9.0 xdata=0 code=719
Target not created
cho em hỏi cách nạp con 89S52 thì như nào vậy anh.
ok anh. nhanh anh nhé :)
lắp chân cũng giống như c51 à anh
à em thấy rồi. thank anh nhé
anh ơi cho em hỏi. nếu em nạp chương trình vão mỗi con 89s52 không có thạch anh với tụ. tức là cắm luôn ISP vào các chân 89s52 thì có nạp được không ạ???
anh ơi em bị lỗi này nghĩa là ntn ạ " chip enable program error"
Mình cũng bị giống b.bạn khắc phục đc chưa,chỉ mình với
Bạn mua đế nạp mạch nạp chưa
Tớ mua mạch nạp thì lỗi vậy sau mua thêm cái đế thì dùng OK lắm
@@tuine7598 Mình cũng đang định mua thì cắm test lại 1 lần nữa trên board mạch mini khác vs cái board mình cắm bị lỗi ấy thì nó lại nhận.Chắc là do chân con at89 chưa tiếp xúc hết vs các lỗ trên board.
@@tuine7598 giờ dùng ok rùi.Cám ơn b nhá.hehe
video hay nhưng người thực hiện không có chuẩn bị làm mất hay khó hiểu hơn cảm ơn
sao kelc cua minh ko viet dc dau {}
anh cho e slide dk k?
huhuhu làm quài ko chạy đc
ghét ghê
nghiên cứu kĩ trc khi làm nhé bạn, đơn giản lắm bạn à
chả hiểu j dậy nhanh thế!