a gửi cả file lên cho e dk không
Thông báo
Collapse
No announcement yet.
[Share-code] Mỗi ngày một bài tập về AT89S52
Collapse
X
-
mình có cái này này. k nhớ tác giả nhéNguyên văn bởi hoanganh234 Xem bài viếta gửi cả file lên cho e dk không
Code:#include <REGX51.H> unsigned char preloadTH=0xFF,preloadTL=0xFF; unsigned int pointer=0,ii=0,jj; sbit out=P2^0; //octa: 0 //key : C C# D D# E F F# G G# A A# B code float key_octa0[]={16.35,17.32,18.35,19.45,20.6,21.83,23.12,24.5,25.96,27.5,29.14,30.87}; code unsigned int chuan=1000; code float crystal=11.0592; //music code unsigned char music[]= { "4d~,4d~,3g~,3a~,4d.,4d~,4g~,4a~,4b~,4a=,4g=,4d.,4 e~,3a~,4c~,3g~,3a~,4d~,4d ,4d=,4c=,3a~,4c~,3g~,3a~,4do" "4g~,4g~,4d~,3a~,4g.,4g~,4a~,4g~,4b=,4a=,4g~,4d.,4 g~,4e ,4e~,4d~,4c ,4d~,4d~,3a~,4d~,3b~,3a~,3go,4d ,4go" "4go,4a ,4b~,4a~,4F~,4g.,4d~,4g~,4a~,4a=,4b=,4a~,4g.,4d~,3 a ,3a ,3a~,4d ,4d~,4d ,3a=,3b=,3a~,3g.,4b=,4a=" "4g~,4d~,4g~,4d~,3a.,4g~,4g ,4F~,4a~,5d.,4a=,4b=,4d ,3a ,4go,4d~,4d~,3g~,3a~,4do,4g~,4g~,4d~,3a~,4go,4g~" "4d~,4g~,4a~,4A ,4a~,5d~,4b~,4a~,4g~,4F~,4g ,4d ,4d ,4g~,4a~,4A ,4a~,5d~,4b~,4a~,4g~,4F~,4go,s" }; void doitanso(float tanso) { unsigned int giatrinap; giatrinap=65536-(unsigned int)((1000000*crystal)/(24*tanso)); preloadTL=(unsigned char)giatrinap; preloadTH=(unsigned char)(giatrinap>>8); } void key(unsigned char octa,unsigned char k) { float tanso; switch (k) { case 'c' : tanso=key_octa0[0]; break; case 'C' : tanso=key_octa0[1]; break; case 'd' : tanso=key_octa0[2]; break; case 'D' : tanso=key_octa0[3]; break; case 'e' : tanso=key_octa0[4]; break; case 'f' : tanso=key_octa0[5]; break; case 'F' : tanso=key_octa0[6]; break; case 'g' : tanso=key_octa0[7]; break; case 'G' : tanso=key_octa0[8]; break; case 'a' : tanso=key_octa0[9]; break; case 'A' : tanso=key_octa0[10]; break; case 'b' : tanso=key_octa0[11]; break; } switch (octa) { case '1' : tanso*=2; break; case '2' : tanso*=4; break; case '3' : tanso*=8; break; case '4' : tanso*=16; break; case '5' : tanso*=32; break; case '6' : tanso*=64; break; case '7' : tanso*=128; break; case '8' : tanso*=256; break; } doitanso(tanso); } unsigned int trave(unsigned int ms) { unsigned int a; a=preloadTH; a=a<<8|preloadTL; return (ms*crystal*1000)/12/(65536-a); } unsigned int tempo(unsigned char tem) { switch (tem) { case '=' : return trave(chuan); break; case '~' : return trave(chuan*2); break; case ' ' : return trave(chuan*4); break; case '.' : return trave(chuan*6); break; case 'o' : return trave(chuan*8); break; } } void ngattimer_0(void) interrupt 1 { out=~out; TL0=preloadTL; TH0=preloadTH; if(ii==0) { if(music[pointer]=='s') TR0=0; key(music[pointer],music[pointer+1]); jj=tempo(music[pointer+2]); } ii++; if(ii==jj) { ii=0; pointer+=4; } } void main(void) { P0=P1=P2=P3=0; /*TMOD=17; TL0=0xff; TH0=0xff; ET0=1; EA=1; TR0=1;*/ EA=0; TMOD=0x02;// 8 BIT AUTO RELOAD TL0=0xff; TH0=0xff; ET0=1; EA=1; TR0=1; while(1); }Nguyễn Huy Biên - 01649 802 694
gmail :
Comment
-
a có hướng dẫn tạo tần số bài hát cho e vớiNguyên văn bởi bienhou Xem bài viếtmình có cái này này. k nhớ tác giả nhé
Comment
-
bạn chịu khó serach có 1 topic trong luồng này bàn về vấn đề này rồi nhéNguyên văn bởi hoanganh234 Xem bài viếta có hướng dẫn tạo tần số bài hát cho e vớiNguyễn Huy Biên - 01649 802 694
gmail :
Comment
-
e tìm rồi nhưng chẳng hiểu làm thế nào để tạo ra code jinglebell như của chjpchjp1991 vậyNguyên văn bởi bienhou Xem bài viếtbạn chịu khó serach có 1 topic trong luồng này bàn về vấn đề này rồi nhé
Comment
-
rất cám ơn bạn đã up những bài hay thế này. Đối với mình, những bài như thế này giúp mình có thể hiểu và áp dụng ngày càng nhuần nhuyễn hơn từ kiến thức của C++ vào việc lập trình cho vi điều khiển. Từ đó phát triển thêm các dạng bài tập mà bạn đưa.
Ngoài ra, bạn có thể gửi mình 1 số tài liệu giáo trình về lập trình C cho 8051 được không ? Mail mình là malphite1993@yahoo.com
Cám ơn nhiều!!!
Comment
-
hay quá đúng cái em đang cần
PK ! $çéü Ä [Content_Types].xml ó (á ┤öMOâ@ å∩&■▓W █z0╞ö÷á⌡¿M¼±╝.C┘╚~dg√⌡∩ JK¬íÑZ╜É└2∩√╠
3â╤Jù╤ <*kR╓Oz, #mª╠,e»╙╟°ûE ä╔Di
ñl
╚F├╦ï┴tφ #¬6ÿ▓" w╟9╩ ┤└─:0tÆ[»Eá[?πN╚ 1 ~▌δ▌piM ΓPi░ßα r1/C4^╤πÜ─Cë,║»_¼╝R&£+ò üHTổng thống + điện = Ăn mày + điện = die => Tổng thống = ăn mày
Comment
-
ặc lỗi font rồi .viết tay vậy .
Đề: chân ngắt của vi điều khiển dc nối với 1 nút nhấn .mỗi khi nhấn tạo ra sự thay đổi trạng thái của vdk .(từ mức cao xuống mức thấp)
chân p2.0 dc nối vs 1 con led đơn
Yêu cầu :
khi nhấn nút (sử dụng ngắt int0) thì đèn sẽ sáng nhấp nháy 3 lần với chu kì là (1s sáng 1s tối)Tổng thống + điện = Ăn mày + điện = die => Tổng thống = ăn mày
Comment
-
bạn nên tạo 1 nhãn chương trình con delay 1s, mỗi lần sáng tắt thì gọi, chươnng trình dành cho ngắt của bạn rắc rối quáNguyên văn bởi hoangthuanhd Xem bài viếtặc lỗi font rồi .viết tay vậy .
Đề: chân ngắt của vi điều khiển dc nối với 1 nút nhấn .mỗi khi nhấn tạo ra sự thay đổi trạng thái của vdk .(từ mức cao xuống mức thấp)
chân p2.0 dc nối vs 1 con led đơn
Yêu cầu :
khi nhấn nút (sử dụng ngắt int0) thì đèn sẽ sáng nhấp nháy 3 lần với chu kì là (1s sáng 1s tối)
Comment
-
sbit khai báo địa chỉ của một bit đó bạn. Ví dụ: Port 0 địa chỉ của nó là 0x80. Thay vì phải set nguyên một Port 0 mỗi lần muốn điều khiển một pin thì bạn khai báo của địa chỉ của pin đó:Nguyên văn bởi malphite1993 Xem bài viếtcho mình hỏi lệnh sbit trong c ý nghĩa và mục đích là gì vậy? vì hồi đó giờ toàn dùng define hoặc dùng trực tiếp port luôn nên thấy cái sbit lạ lắm
hoặcCode:sbit P0_1 P0^2 //thường trong header của keilc dùng dạng này
Code:sbit P0_1 0x81 //địa chỉ cụ thể của bit trong special function registers
Comment
-
cho mình hỏi chút xíu về cái 89s52 này, mình nạp qua isp nhưng khi ko cắm led + trở vào chân p0.1 thì ok. còn khi mà đề led + trở nối p0.1 là báo lỗi chip k nạp được. Mình dùng progisp.
ai biết về vụ này cho mình lời khuyên vs.
Chân reset mình nối 1 con 104 xuống đất luôn có ok không ?, vì nạp thấy nó vẫn chạy đều mà xem trên net thì thấy còn cần trở 10k nữa
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