hiện tại mình đang làm mạch cửa tự động dùng PIR203D trên proteus mô phỏng ok hết mà khi làm mạch thật thì không chạy ( chân 24,25 vdk 89c52 mình thấy luôn ở mức 1 không về mức 0 được,nên opto pc 817 không hoạt động kiểu đóng mở được). Ở dưới là mạch mô phỏng của mình, mọi người góp ý dùm mình với, mình làm bài tập này sắp nộp rồi.
Thông báo
Collapse
No announcement yet.
cần giúp đỡ về mạch vdk 8051 điều khiển động cơ DC
Collapse
X
-
#include <REGX52.H>
#include <stdio.h>
#include <math.h>
#include <intrins.h>
#include <string.h>
// Dinh nghia chan Dieu Khien
#define K1 P1_0
#define K2 P1_1
#define K3 P1_2
#define K4 P1_3
#define K5 P1_4
// Dinh nghia chan LCD
#define RS P2_0
#define RW P2_1
#define EN P2_2
#define LCDdata P0
#define BF P0_7
// Dinh nghia chan Led
#define LED1 P2_3
#define LED2 P2_4
// Khai bao chuoi hien thi
unsigned char code string1[]
unsigned char code string2[]
unsigned char i,j,k;
/*********HAM DELAY***********/
void delay(unsigned char ms)
{
for(i =0;i<ms;i++)
{for(j=0;j<125;j++){;}
}
}
//=======================================
void tre(unsigned int t)
{
unsigned int i;
for(i=0;i<=t;i++);
}
/*************HAM CHO***************/
void wait(void)
{
RS=0;//thanh ghi lenh
RW=1;//doc du lieu tu lcd
LCDdata=0xff;//gia tri 11111111 // khoi dong ngo vao
while(BF) //kiem tra co ban
{
EN =0;//dua xung thap en cao de chot
EN =1;//dua xung len cao
}
}
////////////////thiet lap Dieu khien LCD//////////////
void LCDcontrol(unsigned char x)
{
RS = 0;//chon thanh ghi lenh
RW =0;//ghi du lieu len lcd
LCDdata =x;
EN=1; //dua xung cao xuong thap de mo
EN=0;
wait();//doi LCD san sang
}
//////////////////Khoi tao LCD////////////
void LCDinit(void)
{
LCDcontrol(0x30);
tre(500);
LCDcontrol(0x30);
tre(100);
LCDcontrol(0x30);
LCDcontrol(0x38);//2 dong va ma tran 5x7
LCDcontrol(0x0e);//bat man hinh,bat con tro
LCDcontrol(0x01);//xoa man hinh
}
///////////////Thiet lap du lieu co LCD/////////
void LCDwrite(unsigned char c)
{
RS=1;//Ghi du lieu
RW=0;//ghi du lieu len LCD
LCDdata=c;
EN=1;
EN=0;
tre(50);
}
///////////////////
void LCDwrites(unsigned char*s)
{
unsigned char data lens,count;
lens=strlen(s);
for(count=0;count<lens;count++)
{
LCDwrite(*(s+count));
}
}
//////////////HAM HIEN THI CHUOI KY TU//////////////
void SendString2LCD(unsigned char code *p)
{
unsigned char i=0;
while(p[i]!=0)
{
LCDwrite(p[i]);
i++;
delay(200);
}
}
/////////////////HAM HIEN THI DONG CHU///////////////////
void DisplayText(void)
{
// Dich con tro den vi tri thu 1, dong thu nhat
LCDcontrol(0x80);
SendString2LCD(string1);
// Dich con tro den dau dong thu hai
LCDcontrol(0xC0);
SendString2LCD(string2);
}
/////////////// XOA LCD///////////////////
void LCDclear(void)
{
LCDcontrol(0x01);
wait();
}
////////////// HIEN THI 1 SO LEN LCD < 100
void putnum(unsigned char val)
{
if(val<10){
LCDwrite(val+48);
}else if(val<100){
LCDwrite(val/10+48);
LCDwrite(val%10+48);
}
}
//////////////////HIEN THI SO LEN LCD > 100
void LCD_putnum(int num)
{
unsigned char nghin,tram,chuc,donv;
nghin=num/1000;
tram=(num%1000)/100;
chuc
num%1000)%100)/10;
donv
num%1000)%100)%10;
LCDwrite(nghin+48);
LCDwrite(tram+48);
LCDwrite(chuc+48);
LCDwrite(donv+48);
}
//////////////////HAM PHIM BAM DIEU KHIEN/////////////////////
void dieukhien_hn(void)
{
if(K1==0)
{
LCDclear();
LCDcontrol(0x81);// dua con tro ve vi tri 2 dong thu nhat
LCDwrites(" WELLCOM ");
LCDcontrol(0xC0); // ep con tro ve dau dong thu 2
LCDwrites(" DH13TD ");
delay(100);
LED1=1;
}
else{LED1=0;}
if(K1==1)
{
LED2=1;
}
else{LED2=0;}
}
//===============================
void main(void)
{
LCDcontrol(0x01);
LCDinit();//Khoi tao LCD
LCDcontrol(0x82); // dua con tro den vi tri thu 4 dong 1
LCDwrites("HAI LONG");
LCDcontrol(0xC0); // ep con tro ve dau dong thu 2
LCDwrites("CUA TU DONG");
/*LCDclear();
LCDcontrol(0x0f);//nhap nhay con tro
DisplayText();//viet chuoi ky tu */
while(1)//vong lap vo han
{
dieukhien_hn();
}
}
Comment
-
LCD trên proteus thì chạy bình thường, còn trên mạch thật mình chưa lắp vô.Nguyên văn bởi tanh_ta Xem bài viếtLCD có chạy k? Hay không có gì chạy cả
Comment
-
Nguyên văn bởi caoson_vnatr Xem bài viếtchưa bàn về code và các phần khác của mạch, riêng opto lắp thế k đủ để dẫn được, vì dòng xuất con 89xx ra nhỏ, bác nên lắp lại cho xuất ra mức 0 nhé. Sau đó mới test tiếp các phần khác/
bác xem em sửa lại thế có được không? hay bác cho em xin cái ví dụ đi.
Comment
Bài viết mới nhất
Collapse
-
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
Hôm qua, 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
Hôm qua, 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
Hôm qua, 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
Hôm qua, 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 -
-
Trả lời cho Công thức tính định luật kirchhoffbởi abcnewmemberGiải bằng hệ phương trình bật nhất 3 ẩn.
...
-
Channel: Hỗ trợ học tập
23-07-2026, 14:52 -
Up code lên xem sao?

Comment