普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 2533|回复: 2

继电器控制问题

[复制链接]

1

主题

2

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2021-6-14 21:51:57 | 显示全部楼层 |阅读模式
1金钱
老师我做了一个 通过串口发送指令控制继电器开关的实验
  1. #include "reg52.h"

  2. typedef unsigned int u16;
  3. typedef unsigned char u8;

  4. sbit relay = P0^0;

  5. //串口初始化函数
  6. void UsartInit()
  7. {
  8.         relay = 1;

  9.         //0010 0000 工作方式2
  10.         TMOD = 0x20;  
  11.        
  12.         //晶振平路12Mhz,波特率4800 SMOD=1 F3H               
  13.         TH1 = 0xF3;
  14.         TL1 = 0xF3;

  15.         PCON = 0X80;

  16.         //打开定时器
  17.         TR1 = 1;

  18.         SCON = 0x50;
  19.         //打开串口终断
  20.         ES = 1;
  21.         //打开总终断
  22.         EA = 1;
  23. }

  24. void main()
  25. {
  26.         UsartInit();
  27.         while(1){
  28.         }
  29. }

  30. void Usart() interrupt 4
  31. {
  32.         //SBUF 是串口接受缓冲区
  33.         u8 receiveData;
  34.         receiveData = SBUF;
  35.         //取消终断
  36.         RI = 0;

  37.         if(receiveData == 'a'){
  38.                 relay = 1;
  39.         }else if(receiveData == 'b'){
  40.             relay = 0;
  41.         }

  42.         //将数据传递给发送缓冲器
  43.         SBUF = receiveData;
  44.         //判断发送终断
  45.         while(!TI);
  46.         TI = 0;
  47. }
复制代码
以上是我的代码  

这是我接线的草图
P0.0 连接  继电器的J15


当我通过串口调试工具发送a的时候  p0.0 口为高电平  继电器关闭   当我  发送b的时候  p0.0为低电平继电器打开  马达开始工作  
但是当我打开继电器的时候 马达的确正常工作了   但是在发送b  就报错了  关不上继电器了

这是串口调试工具报的错  
如果不接马达和电池仓   一切正常  发送a 关闭继电器  发送b 打开继电器  
不知道是不是我接线有问题
我知道答案 本帖寻求最佳答案回答被采纳后将获得系统奖励10 金钱 , 目前已有1人回答

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册
回复

使用道具 举报

27

主题

337

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2021-6-16 14:01:44 | 显示全部楼层
有可能电机在开启时,电流消耗过大,导致单片机处于复位状态,就没法执行后面的程序。你试试换单片机其他IO口,不用P0口
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-29 13:14 , Processed in 0.094338 second(s), 34 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表