2。R3R4R5 分别都用多大功率的好呢?
3。图中7407可以省略吗?
4。图中4584可以省略吗?
5。程序像下面这样能用吗?= =如果能用的话, 感觉这样会频繁中断而且一直占资源。。。难道还要再用一个计时器吗?
6. STC的延迟函数是怎么计算的呢 ,感觉几层嵌套的时候计数取值和延迟时间并不是线性关系,是不是因为跳出循环也需要时间?
那么下面程序里面设想的10ms分256份=39us是不是就翻车了。。
#include "STC15xxx.H"
sbit ACsignal = INT1;
sbit GSignalOut = P1^6;
unsigned char Angle= 0; // 用于控制导通角的全局变量
void Delay39us() //@12.000MHz
{
unsigned char i;
_nop_();
_nop_();
i = 114;
while (--i);
}
void exint1() interrupt 2 //INT1中断入口
{
unsigned char j=Angle;
do
{
Delay39us();
}while(j--);
GSignalOut = 1;
}
void main()
{
INT1 = 1;
IT1 = 1; //设置INT1的中断类型 (1:仅下降沿 0:上升沿和下降沿)
EX1 = 1; //使能INT1中断
EA = 1;
while (1)
{
GSignalOut = 0;
}
}
本帖最后由 grove_armweak 于 2019-11-29 23:06 编辑
“2。R3R4R5 分别都用多大功率的好呢?”
R3R4两支电阻中存在电流的时间非常短,晶闸管开通后R3R4两端几乎没有电压,而光耦未通时R3R4两端也没有电压,所以R3R4不必使用大功率电阻。
引用: maychang 发表于 2019-11-29 20:17 “1。图中R1 用1W够吗?” R1两端电压接近于交流市电,约为220V。最高242V。根据P=U^2/R,自 ...
0.292w按四倍取值吗?0.0
“3。图中7407可以省略吗?”
根据图中R6的数值,7407可以省略。
但此图可能有错误,错把光耦2脚直接联接到单片机了。单片机是没有能力驱动这么重负载的。光耦2脚应该联接到7407输出端才对。从这个意义上说,7407不能省略。
引用: grove_armweak 发表于 2019-11-29 20:24 0.292w按四倍取值吗?0.0
通常至少按照计算结果取二倍功率,0.290W至少用0.5W电阻。当然,用1W电阻更安全一些。
引用: maychang 发表于 2019-11-29 20:27 “3。图中7407可以省略吗?” 根据图中R6的数值,7407可以省略。 但此图可能有 ...
感谢大佬也就是说7407可以换成个NPN三极管吗
引用: grove_armweak 发表于 2019-11-29 23:02 感谢大佬也就是说7407可以换成个NPN三极管吗
“7407可以换成个NPN三极管吗”
7407输出对输入是同相,一支NPN三极管构成共射放大只能是反相。其实反相也没有什么要紧,只要单片机I/O引脚从程序上改一下就行。需要注意的是:51系列单片机上电后各I/O引脚均为高电平,用一支NPN管的话,上电过程中光耦将导通。
“4。图中4584可以省略吗?”
可以,而且应该去掉。TC4584是六反相施密特触发器,用在这里无非是单片机中断引脚获得一个陡峭的脉冲。去掉TC4584,无非是中断引脚上的脉冲不够陡峭,但这并不影响中断的发生。
另外,TC4584输入端没有上拉电阻,其工作是不够可靠的。
去掉TC4584后,两片TIL117输出侧应该反接,以保证相位正确。当然,负载电阻是不可省略的(原图没有负载电阻)。
引用: maychang 发表于 2019-11-30 08:16 “7407可以换成个NPN三极管吗” 7407输出对输入是同相,一支NPN三极管构成共射放大只能是反 ...
谢谢老师