找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3163|回复: 18
收起左侧

p_out用万用表量只有0.6v,单片机怎样设置输出模式输出5v呢

[复制链接]
ID:418482 发表于 2018-11-6 10:48 | 显示全部楼层 |阅读模式
这个设置输出模式的单片机代码怎么写呢  继电器不动作


控制继电器24v

控制继电器24v

芯片

芯片
  1. #include<reg52.h>

  2. sbit P_out=P3^6;

  3. void main()
  4. {
  5.      P_out=1;
  6.          while(1);
  7. }
复制代码


回复

使用道具 举报

ID:149144 发表于 2018-11-6 11:29 | 显示全部楼层
1,电源 VCC 电压是多少
2,继电器工作电压多少
3,继电器线圈电阻多少
4,三极管放大倍数多少
回复

使用道具 举报

ID:97554 发表于 2018-11-6 11:54 | 显示全部楼层
换个单片机型号,比如89C52试下
回复

使用道具 举报

ID:97554 发表于 2018-11-6 11:59 | 显示全部楼层
12C5A60S2需要在循环语句前加端口模式设置,
比如
P1M1=0X00;  
P1M0=0XFF;
上边两句是把P1口八个IO口设置推挽输出,如果单独使用一个口,把P1M0=  这个后边的改成所需引脚就可以了
回复

使用道具 举报

ID:123289 发表于 2018-11-6 12:28 | 显示全部楼层
R6 820欧再与继电器串联,电流够不够?
从P_out至VCC之间接一只3K的电阻试试。
回复

使用道具 举报

ID:418482 发表于 2018-11-6 13:19 | 显示全部楼层
杨雪飞 发表于 2018-11-6 11:54
换个单片机型号,比如89C52试下
  1. #include<reg52.h>

  2. sbit P_out=P3^6;
  3. unsigned char P1M1;
  4. unsigned char P1M0;
  5. void main()
  6. {
  7.      P_out=1;
  8.          P1M1=0x00;
  9.          P1M0=P_out;
  10.          while(1);
  11. }
复制代码
回复

使用道具 举报

ID:418482 发表于 2018-11-6 13:22 | 显示全部楼层
杨雪飞 发表于 2018-11-6 11:59
12C5A60S2需要在循环语句前加端口模式设置,
比如
P1M1=0X00;  
  1. #include<reg52.h>

  2. sbit P_out=P3^6;
  3. unsigned char P1M1;
  4. unsigned char P1M0;
  5. void main()
  6. {
  7.      P_out=1;
  8.          P1M1=0x00;
  9.          P1M0=P_out;
  10.          while(1);
  11. }
复制代码
单片机本身输出的电压

念之前,望之后 2018/11/6 9:25:20
引脚得设置下

念之前,望之后 2018/11/6 9:26:01
你得看下是开漏还是浮空,推挽?

笨小孩 2018/11/6 9:26:03
是啊我设置的是1啊 我就写了个简单的程序 给了1  想看他动不动

念之前,望之后 2018/11/6 9:26:15
输出模式……

笨小孩 2018/11/6 9:26:22
回复

使用道具 举报

ID:421663 发表于 2018-11-6 13:24 | 显示全部楼层
设置为推完输出,驱动能力要是不够就加上拉
回复

使用道具 举报

ID:418482 发表于 2018-11-6 13:25 | 显示全部楼层
杨雪飞 发表于 2018-11-6 11:59
12C5A60S2需要在循环语句前加端口模式设置,
比如
P1M1=0X00;  

都试过了 还是没有输出电压
  1. #include<reg52.h>

  2. sbit P_out=P3^6;
  3. unsigned char P1M0;
  4. void main()
  5. {
  6.      P_out=1;
  7.          P1M0=P_out;
  8.          while(1);
  9. }
复制代码
回复

使用道具 举报

ID:418482 发表于 2018-11-6 13:26 | 显示全部楼层
cuihaodianzi 发表于 2018-11-6 11:29
1,电源 VCC 电压是多少
2,继电器工作电压多少
3,继电器线圈电阻多少

1:24伏  2:24伏 谢谢
回复

使用道具 举报

ID:418482 发表于 2018-11-6 13:46 | 显示全部楼层
杨雪飞 发表于 2018-11-6 11:59
12C5A60S2需要在循环语句前加端口模式设置,
比如
P1M1=0X00;  

我都试过了  还是不正确啊
  1. #include<reg52.h>

  2. sbit P_out=P3^6;
  3. unsigned char P1M0;
  4. void main()
  5. {
  6.      
  7.          P1M0=P_out;
  8.          P1M0=0X00;
  9.          P1M0=1;
  10.          while(1);
  11. }
复制代码
回复

使用道具 举报

ID:418482 发表于 2018-11-6 14:19 | 显示全部楼层
yzwzfyz 发表于 2018-11-6 12:28
R6 820欧再与继电器串联,电流够不够?
从P_out至VCC之间接一只3K的电阻试试。

我就是想写个一个代码让P_OUT输出一个高电平 控制继电器动作 帮我看看这个代码还有哪里需要改的
回复

使用道具 举报

ID:202748 发表于 2018-11-6 15:30 | 显示全部楼层
去掉R6和D3。
代码如下:
#include<reg52.h>
sbit  P_out=P3^6;
void main(void)
{
    while(1)
     {
         P_out=1;
     }
}
回复

使用道具 举报

ID:418482 发表于 2018-11-6 15:54 | 显示全部楼层
lanshi08 发表于 2018-11-6 13:24
设置为推完输出,驱动能力要是不够就加上拉

我知道是要设置为推挽输出 但是不知道用代码怎么实现啊 谢谢
回复

使用道具 举报

ID:213173 发表于 2018-11-6 16:23 | 显示全部楼层
如果你确认使用的是STC12C5A32S2芯片和所示电路,按下面程序保准能行。
#include<reg52.h>
//#include "STC12C5A60S2.H"//如用此头文件,以下两行去掉。
sfr P3M0 = 0xB2;//定义寄存器地址
sfr P3M1 = 0xB1;//定义寄存器地址

sbit P_out=P3^6;

void main()
{
        P3M0 = 0x40;//端口设置推挽
        P3M1 = 0x00;//端口设置推挽
        P_out=1;
        while(1);
}
回复

使用道具 举报

ID:418482 发表于 2018-11-6 19:43 | 显示全部楼层
wulin 发表于 2018-11-6 16:23
如果你确认使用的是STC12C5A32S2芯片和所示电路,按下面程序保准能行。
#include
//#include "STC12C5A60 ...

你好编译无法通过呢  按照你写的编了
QQ截图20181106193812.png
回复

使用道具 举报

ID:418482 发表于 2018-11-6 20:22 | 显示全部楼层
wulin 发表于 2018-11-6 16:23
如果你确认使用的是STC12C5A32S2芯片和所示电路,按下面程序保准能行。
#include
//#include "STC12C5A60 ...

麻烦你了 谢谢
2.png
回复

使用道具 举报

ID:213173 发表于 2018-11-6 21:30 | 显示全部楼层
a超人 发表于 2018-11-6 19:43
你好编译无法通过呢  按照你写的编了

如使用STC12C5A60S2.H头文件需要去掉#include<reg52.h>
回复

使用道具 举报

ID:418482 发表于 2018-11-7 07:47 | 显示全部楼层
wulin 发表于 2018-11-6 21:30
如使用STC12C5A60S2.H头文件需要去掉#include

你好 这样也不行呢 谢谢
3.png
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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