a超人 发表于 2018-11-6 19:43 如使用STC12C5A60S2.H头文件需要去掉#include<reg52.h> |
如果你确认使用的是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); } |
lanshi08 发表于 2018-11-6 13:24 我知道是要设置为推挽输出 但是不知道用代码怎么实现啊 谢谢 |
去掉R6和D3。 代码如下: #include<reg52.h> sbit P_out=P3^6; void main(void) { while(1) { P_out=1; } } |
yzwzfyz 发表于 2018-11-6 12:28 我就是想写个一个代码让P_OUT输出一个高电平 控制继电器动作 帮我看看这个代码还有哪里需要改的 |
杨雪飞 发表于 2018-11-6 11:59 我都试过了 还是不正确啊
|
cuihaodianzi 发表于 2018-11-6 11:29 1:24伏 2:24伏 谢谢 |
杨雪飞 发表于 2018-11-6 11:59 都试过了 还是没有输出电压
|
设置为推完输出,驱动能力要是不够就加上拉 |
杨雪飞 发表于 2018-11-6 11:59
单片机本身输出的电压 |
杨雪飞 发表于 2018-11-6 11:54
|
R6 820欧再与继电器串联,电流够不够? 从P_out至VCC之间接一只3K的电阻试试。 |
12C5A60S2需要在循环语句前加端口模式设置, 比如 P1M1=0X00; P1M0=0XFF; 上边两句是把P1口八个IO口设置推挽输出,如果单独使用一个口,把P1M0= 这个后边的改成所需引脚就可以了 |
换个单片机型号,比如89C52试下 |
1,电源 VCC 电压是多少 2,继电器工作电压多少 3,继电器线圈电阻多少 4,三极管放大倍数多少 |