Em vừa mới chân ướt chân ráo nhận đồ án. Em làm mạch đo và hiển thị(LED) tốc độ động cơ DC. Sử dụng Vi xử lý 8051+encoder. Nhưng e không biết mạch nguyên lý, sơ đồ khối, cần những con IC nào và bắt đầu từ đâu hết? Mong các anh và chị cho em chút tư vấn và tài liệu! xin cảm ơn. Nếu chủ đề này có trùng mong các anh chị đừng xóa và chỉ đường link dùm em!
Thông báo
Collapse
No announcement yet.
Mạch đo và hiển thị động cơ DC!
Collapse
X
-
Code hiển thị led 7 đoạn. bạn tham khảoCode:#include <REGX51.H> sbit A1 = P1^0; sbit A2 = P1^1; sbit A3 = P1^2; sbit A4 = P1^3; sbit TANG=P1^4; sbit GIAM=P1^5; unsigned char so[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned long xung,i; unsigned int k; unsigned char dem,tocdo; /////////////////////////////////////// void delay(int time) // ham delay phuc vu quet led {int n; for(n=0;n<time;n++) { ; } } ////////////////////////////////////// void quetled7() // ham quet led 7 { //////////////// hang nghin A1 = 1; P2 = so[i/1000]; delay(50); A1 = 0; P2=0xff; ////////////////////////// hang tram A2=1; P2=so[(i/100)%10]; delay(50); A2=0; P2=0xff; ///////////////////////////////// hang chuc A3=1; P2=so[(i/10)%10]; delay(50); A3=0; P2=0xff; //////////////////////////////// hang don vi A4=1; P2=so[i%10]; delay(50); A4=0; P2=0xff; } ///////////////////////////////////// void khoitaotimer() // { TMOD = 0x21; // timer0 che do 1 IE = 0x8A; TH0 = 0xC3; // tre 50us TL0 = 0x50; ET0 = 1; TR0 = 1; TH1 = -100; TL1 = -100; ET1 = 1; TR1 = 1; } //////////////////////////// void khoitaongatngoai() { EA=0; EX0=1; IT0=1; EA=1; } /////////////////////////////////////////// void isr_timer0() interrupt 1 { TF0=0; TR0=0; quetled7(); k++; TH0=0xC3; // gia tri nap lai TL0=0x50; if(k==20) // lay mau 1s { i=((xung*60)/32); // vong/phut encoder dung loai 32x k=0; xung=0; } TR0=1; } ///////////////////////////////////////// void isr_timer1() interrupt 3 { TF1=0; TR1=0; dem++; if(dem>100) dem=0; if(dem<tocdo) P1_6=1; else P1_6=0; TR1=1; } /////////////////////// phim nhan void phimnhan() { ////////////////////////// if((TANG==0)&&(GIAM==1)) { while(!TANG); tocdo=tocdo+10; if(tocdo==110)tocdo=100; } //////////////////////////////// if((GIAM==0)&&(TANG==1)) {while(!GIAM); tocdo=tocdo-10; if(tocdo==-10)tocdo=0; } } /////////////////////////////////// ham ngat ngoai void isr_ex0() interrupt 0 { xung++; } ////////////////////////////////////// ham chinh void main() {P1_6=1; khoitaotimer(); khoitaongatngoai(); while(1) {phimnhan(); } }Nguyễn Huy Biên - 01649 802 694
gmail :
Comment
-
Mấy bạn cứ xin đồ ăn sẵn vậy.
nếu không yêu cầu hiển thị chiều quay thì bạn cho đầu ra từ encoder vào chân nhắt của vdk đếm số xung trong 1 khoảng thời gian xác định nào đó rồi suy ra tốc độ thôi. nếu encoder có 2 đầu ra thì bạn có thể dùng chế độ x2 x4 số xung để tăng độ chính xác
còn việc hiển thị bạn có thể dùng các mạch chốt, ghi dịch để giữ trang thái của đèn, hoặc trực tiếp để cho vdk liên tục quét qua các led để hiển thị
Comment
-
http://www.dientuvietnam.net/forums/...54/#post642781Nguyên văn bởi youaremylife Xem bài viếtMấy bạn cứ xin đồ ăn sẵn vậy.
nếu không yêu cầu hiển thị chiều quay thì bạn cho đầu ra từ encoder vào chân nhắt của vdk đếm số xung trong 1 khoảng thời gian xác định nào đó rồi suy ra tốc độ thôi. nếu encoder có 2 đầu ra thì bạn có thể dùng chế độ x2 x4 số xung để tăng độ chính xác
còn việc hiển thị bạn có thể dùng các mạch chốt, ghi dịch để giữ trang thái của đèn, hoặc trực tiếp để cho vdk liên tục quét qua các led để hiển thị
anh ơi tư vấn giúp e với
Comment
-
Nguyên văn bởi bienhou Xem bài viếtCode hiển thị led 7 đoạn. bạn tham khảoCode:#include <REGX51.H> sbit A1 = P1^0; sbit A2 = P1^1; sbit A3 = P1^2; sbit A4 = P1^3; sbit TANG=P1^4; sbit GIAM=P1^5; unsigned char so[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned long xung,i; unsigned int k; unsigned char dem,tocdo; /////////////////////////////////////// void delay(int time) // ham delay phuc vu quet led {int n; for(n=0;n<time;n++) { ; } } ////////////////////////////////////// void quetled7() // ham quet led 7 { //////////////// hang nghin A1 = 1; P2 = so[i/1000]; delay(50); A1 = 0; P2=0xff; ////////////////////////// hang tram A2=1; P2=so[(i/100)%10]; delay(50); A2=0; P2=0xff; ///////////////////////////////// hang chuc A3=1; P2=so[(i/10)%10]; delay(50); A3=0; P2=0xff; //////////////////////////////// hang don vi A4=1; P2=so[i%10]; delay(50); A4=0; P2=0xff; } ///////////////////////////////////// void khoitaotimer() // { TMOD = 0x21; // timer0 che do 1 IE = 0x8A; TH0 = 0xC3; // tre 50us TL0 = 0x50; ET0 = 1; TR0 = 1; TH1 = -100; TL1 = -100; ET1 = 1; TR1 = 1; } //////////////////////////// void khoitaongatngoai() { EA=0; EX0=1; IT0=1; EA=1; } /////////////////////////////////////////// void isr_timer0() interrupt 1 { TF0=0; TR0=0; quetled7(); k++; TH0=0xC3; // gia tri nap lai TL0=0x50; if(k==20) // lay mau 1s { i=((xung*60)/32); // vong/phut encoder dung loai 32x k=0; xung=0; } TR0=1; } ///////////////////////////////////////// void isr_timer1() interrupt 3 { TF1=0; TR1=0; dem++; if(dem>100) dem=0; if(dem<tocdo) P1_6=1; else P1_6=0; TR1=1; } /////////////////////// phim nhan void phimnhan() { ////////////////////////// if((TANG==0)&&(GIAM==1)) { while(!TANG); tocdo=tocdo+10; if(tocdo==110)tocdo=100; } //////////////////////////////// if((GIAM==0)&&(TANG==1)) {while(!GIAM); tocdo=tocdo-10; if(tocdo==-10)tocdo=0; } } /////////////////////////////////// ham ngat ngoai void isr_ex0() interrupt 0 { xung++; } ////////////////////////////////////// ham chinh void main() {P1_6=1; khoitaotimer(); khoitaongatngoai(); while(1) {phimnhan(); } }
bạn có thể post sơ đồ nguyên lý lên được không
Comment
-
Cảm ơn thuật toán của bạn mình cũng đang có một đề tài cần dùng đến đo tốc độ động cơ đọc qua qua chưa hiểu gì. Nhờ code của bạn giờ hiểu hơn rồi. Thanks...Nguyên văn bởi bienhou Xem bài viếtCode hiển thị led 7 đoạn. bạn tham khảoCode:#include <REGX51.H> sbit A1 = P1^0; sbit A2 = P1^1; sbit A3 = P1^2; sbit A4 = P1^3; sbit TANG=P1^4; sbit GIAM=P1^5; unsigned char so[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned long xung,i; unsigned int k; unsigned char dem,tocdo; /////////////////////////////////////// void delay(int time) // ham delay phuc vu quet led {int n; for(n=0;n<time;n++) { ; } } ////////////////////////////////////// void quetled7() // ham quet led 7 { //////////////// hang nghin A1 = 1; P2 = so[i/1000]; delay(50); A1 = 0; P2=0xff; ////////////////////////// hang tram A2=1; P2=so[(i/100)%10]; delay(50); A2=0; P2=0xff; ///////////////////////////////// hang chuc A3=1; P2=so[(i/10)%10]; delay(50); A3=0; P2=0xff; //////////////////////////////// hang don vi A4=1; P2=so[i%10]; delay(50); A4=0; P2=0xff; } ///////////////////////////////////// void khoitaotimer() // { TMOD = 0x21; // timer0 che do 1 IE = 0x8A; TH0 = 0xC3; // tre 50us TL0 = 0x50; ET0 = 1; TR0 = 1; TH1 = -100; TL1 = -100; ET1 = 1; TR1 = 1; } //////////////////////////// void khoitaongatngoai() { EA=0; EX0=1; IT0=1; EA=1; } /////////////////////////////////////////// void isr_timer0() interrupt 1 { TF0=0; TR0=0; quetled7(); k++; TH0=0xC3; // gia tri nap lai TL0=0x50; if(k==20) // lay mau 1s { i=((xung*60)/32); // vong/phut encoder dung loai 32x k=0; xung=0; } TR0=1; } ///////////////////////////////////////// void isr_timer1() interrupt 3 { TF1=0; TR1=0; dem++; if(dem>100) dem=0; if(dem<tocdo) P1_6=1; else P1_6=0; TR1=1; } /////////////////////// phim nhan void phimnhan() { ////////////////////////// if((TANG==0)&&(GIAM==1)) { while(!TANG); tocdo=tocdo+10; if(tocdo==110)tocdo=100; } //////////////////////////////// if((GIAM==0)&&(TANG==1)) {while(!GIAM); tocdo=tocdo-10; if(tocdo==-10)tocdo=0; } } /////////////////////////////////// ham ngat ngoai void isr_ex0() interrupt 0 { xung++; } ////////////////////////////////////// ham chinh void main() {P1_6=1; khoitaotimer(); khoitaongatngoai(); while(1) {phimnhan(); } }
Let's go!!!
Comment
Bài viết mới nhất
Collapse
-
bởi theidiotcatViệc lựa chọn một chiếc laptop gaming phù hợp với nhu cầu, ngân sách chưa bao giờ là dễ dàng. Và điều đó càng khó hơn trong năm 2026 khi mà mức giá liên tục tăng.
Nếu bạn chưa biết nên chọn một chiếc laptop gaming như thế nào...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:29 -
-
bởi theidiotcatVới mức ngân sách 20 - 30 triệu đồng trong năm 2026, các bạn sinh viên và dân văn phòng có thể tìm thấy nhiều lựa chọn cao cấp, mạnh mẽ, pin “trâu”, đặc biệt là các mẫu laptop AI hỗ trợ cho học tập và làm việc.
Trong phân...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:25 -
-
bởi theidiotcatDưới đây là một số mẫu laptop nổi bật trong phân khúc dưới 20 triệu giúp các bạn văn phòng, sinh viên và đặc biệt là tân sinh viên có thể dễ dàng lựa chọn được mẫu laptop phù hợp với nhu cầu và ngân sách của mình.
Thị...-
Channel: Đánh giá sản phẩm DTVN
26-06-2026, 10:07 -
-
bởi theidiotcatViệc chọn mua một bộ máy tính phục vụ cho các nhu cầu làm việc văn phòng và sử dụng cơ bản hàng ngày đang trở nên dễ dàng và tiết kiệm hơn bao giờ hết. Thay vì phải đau đầu trích ngân sách để mua cả vi xử lý lẫn card đồ họa rời...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:23 -
-
bởi theidiotcatViệc nâng cấp từ một dàn máy tính cũ lên cấu hình mới luôn khiến nhiều người đắn đo về mức chi phí bỏ ra. Nếu bạn đang tìm kiếm một sự lột xác hoàn toàn về hiệu năng mà vẫn cân đối được dòng tiền, combo giữa vi xử lý Ryzen...
-
Channel: Đánh giá sản phẩm DTVN
25-06-2026, 11:06 -
-
Trả lời cho Lực dọc trục làm hỏng ổ bi.bởi nguyendinhvanVí dụ một trang như thế này
...-
Channel: Điện tử công suất
24-06-2026, 19:57 -
-
Trả lời cho Lực dọc trục làm hỏng ổ bi.bởi nguyendinhvanỔ bi có loại chịu lực dọc, loại chịu lực ngang.
Bạn kiếm một quyển Data cũng một hãng vòng bi nào đó. Họ sẽ cấp cho bạn đủ thông số kỹ thuật.
Khi lựa chọn được mã sản phẩm, bạn chỉ việc tìm mua mã đó, hoặc đặt hàng....-
Channel: Điện tử công suất
24-06-2026, 19:52 -
-
bởi GargiChào mọi người, tôi đang gặp một vấn đề kỹ thuật và muốn được nghe ý kiến của mọi người.
Tôi đã lắp một đĩa xích vào trục đầu ra của hộp số hành tinh bánh răng xoắn dùng cho truyền động xích. Sau vài tháng hoạt động, ổ bi đầu ra bị hỏng.
Bản thân...-
Channel: Điện tử công suất
24-06-2026, 13:22 -
-
bởi vi van phamSau hàng chục năm, không biết có ai còn nghĩ gì về tôi? Riêng tôi, nhớ nhiều về dientuviet nam. net. Ngày ấy tìm 1 người bạn đam mê về điện từ khó như trúng số độc đăc. Tôi đã trúng số độc đắc khi được mời về dientuvietnam.net...
-
Channel: Tâm tình dân kỹ thuật
23-06-2026, 22:43 -

...
Comment