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.
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
-
chư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/caoson.vnatr@gmail.com
Thiết kế mạch điện tử
0914024690
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
dự án của bạn Tra theo mã, xem datasheet và đặt hàng trực tuyến. MicrochipROHMEpsonTaejin
Đặt hàng & tư vấn
Hà Nội024.3640 8561
TP.HCM028.3811 9870
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi nhathung1101Còn sống không lão??? Mất một thời gian chữa bệnh nên quên hỏi thăm.......
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 03:09 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi nhathung1101Thời buổi năng lượng xanh, nhất là xanh cả mặt... Thì Điện mặt giời, điện gió, sẽ lên ngôi.
Nếu không nắm bắt được cái cơ bản đó thì đi làm coder à? Mà coder giờ thất nghiệp cả lũ vì AI rồi!!!









...
-
Channel: Điện tử công suất
Hôm qua, 03:03 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi quangdonguehChà, lâu lắm rồi nhưng diễn đàn vẫn còn những chủ đề cốt lõi của điện tử công suất...-
Channel: Điện tử công suất
24-10-2026, 07:53 -
-
bởi bqvietNếu muốn tăng công suất cần tăng con chip và tăng biến áp lên lớn hơn. Thiết kế ban đầu dùng TNY25x và biến áp EE16 hoặc EE13. Tăng con chip lên TNY268 vẫn mạch nguyên lý đó và biến áp lên EE19 sẽ nâng công suất ra thêm nhiều. Tăng tối đa...-
Channel: Điện tử công suất
24-10-2026, 02:14 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 14:33 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 10:49 -
-
Trả lời cho Tìm VR 5 chânbởi dinhthuong80Cảm ơn bác bqviet . Nhưng hình như các VR 5 chân của linhkienchatluong là loại có 2 chân là công tắc đóng mở. Thấy trên Shopee có chỗ bán linh kiện đàn Organ, mà không biết đúng loại không, với lại sao ... mắc dữ dội luôn ấy!!!
...-
Channel: Hướng dẫn tìm thông tin linh kiện
19-10-2026, 11:30 -
-
Trả lời cho Tìm VR 5 chânbởi bqvietTrang sản phẩm này có loại 5 chân và 8 chân
https://linhkienchatluong.vn/chiet-a...doi_s1595.aspx
Ngoài ra một trang cùng cấp với nó có loại 6 chân nữa, chắc đủ cho người muốn tìm....-
Channel: Hướng dẫn tìm thông tin linh kiện
17-10-2026, 17:19 -
-
bởi dinhthuong80Chào cả nhà, chúc cuối tuần vui vẻ!
Hôm nay mình lên đây nhờ ai biết chỉ dùm biến trở 5 chân này tên gọi là gì, có thể mua ở đâu vậy? Xin cám ơn nhiều! ...-
Channel: Hướng dẫn tìm thông tin linh kiện
-
Up code lên xem sao?
Comment