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
-
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
-
Nguyê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
-
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
-
Nguyê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
-
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
-
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
Code: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
-
bởi vi van phamKhác nhiều lắm cháu ơi.
Góc này người ta gọi là góc cắt không khí, nó ảnh hưởng đến tốc độ quạt, ảnh hưởng đến lưu lượng gió, cũng như lưu lương hút gió.-
Channel: Điện tử gia dụng
hôm nay, 12:15 -
-
bởi dinhthuong80Mặt phẳng cánh quạt lệch 1 góc so với trục nên nhìn theo phương vuông góc với trục ta sẽ "thấy nó có một độ dày d", đây chính là chiều cao của "hình trụ tròn rỗng ruột" theo trục của quạt có thể tích V = d * S_vành khăn....
-
Channel: Điện tử gia dụng
hôm nay, 11:46 -
-
bởi vi van phamCông thức tính lưu lượng gió cháu lấy ở đâu ra vậy? tôi thấy có gì đó không ổn.
Theo thí dụ trên, mặt phẳng cánh quạt vuông góc với trục sẽ có lưu lượng khác với mặt phẳng cánh quạt song song với trục, và khác với mặt...-
Channel: Điện tử gia dụng
hôm nay, 11:19 -
-
bởi dmthanhanMáy lạnh âm trần Daikin FCFC60DVM/RZFC60DVM là sản phẩm chính hãng 100%, đến từ thương hiệu nổi tiếng Daikin, mang lại hiệu suất làm lạnh mạnh mẽ và tiết kiệm năng lượng. Đây là dòng máy lạnh 1 chiều, chỉ có chức năng làm lạnh, phù hợp...
-
Channel: Điện tử dành cho người mới bắt đầu
hôm nay, 10:38 -
-
bởi appongthoNguyên nhân mã lỗi H-57, H-58, H-59 Máy giặt Panasonic
https://appongtho.com/loi-h-57-h-58-...iat-panasonic/
Mã lỗi H-57, H-58, H-59 trên máy giặt Panasonic thường liên quan đến sự cố trong hệ thống sấy, bao gồm lỗi mạch khử từ...-
Channel: Điện tử gia dụng
hôm nay, 09:56 -
-
bởi kiều phongchào mọi người
xin cho hỏi mạch nguồn máy hàn 110v chuyển sang 220v được không? thanks
...-
Channel: Nguồn!
hôm nay, 09:48 -
-
bởi dinhthuong80Dạ, theo thí nghiệm của chủ thớt thì hiệu ứng đó không ảnh hưởng gì, vì nó được tính theo công thức lí thuyết hợp lí: lưu lượng khí bằng thể tích khí do quạt vận chuyển được trong một phút (chỉ ảnh hưởng, hợp lí khi máy đo...
-
Channel: Điện tử gia dụng
hôm nay, 09:15 -
-
bởi tuyennhanChắc sai rồi quạt thông gió công nghiệp sử dụng mô tơ 3 pha 750 w mà lưu lượng gió chỉ 1500 m3 / h ....
-
Channel: Điện tử gia dụng
hôm nay, 07:55 -
-
bởi nguyendinhvan
Khi cái cánh chuyển động, một phần không khí xoáy , quay ngược lại phía sau cánh. Không phải tất cả đề đẩy ra phía trước....-
Channel: Điện tử gia dụng
Hôm qua, 19:01 -
-
bởi dinhthuong80Xin cảm ơn tất cả sự góp ý giúp đỡ.
Từ diện tích bạn mèomướp vẽ và tính giúp:
S' ~ 3272mm2 => độ dày cánh:
d=S'/156 = 21*10^-3m
S = pi/4 [ D1^2 - D2^2 ] ~ 0.785*[38^2-7^2]cm2 ~ 1095cm2 = 0.1095m2
Lưu lượng gió tại số 2, quạt 3 cánh:...-
Channel: Điện tử gia dụng
Hôm qua, 15:24 -
Comment