ZKX's LAB

单片机 控制继电器 51单片机控制继电器的程序看不太懂,希望大神在每句后面注解一下。

2020-07-21知识8

51单片机控制继电器的程序看不太懂,希望大神在每句后面注解一下。 #includeincludedefine uint unsigned intsbit a=P1^4;a继电器控制端sbit b=P2^3;b继电器控制端sbit c=P2^5;c继电器控制端sbit d=P2^7;d继电器控制端uint t;void Init_t0(void)/定时器初始化{TMOD=0x01;定时器0工作于方式1,16位定时器TH0=0x4C;TL0=0x00;定时时间50msET0=1;允许定时器0中断TR0=1;定时器0启动}void time0_server_(void)interrupt 1/定时器0中断函数{TH0=0x4C;TL0=0x00;定时时间50mst+;t每50ms加1}void main()/主函数{Init_t0();a=0;初始化,所有继电器释放b=0;c=0;d=0;t=0;计时器从0开始计时EA=1;开启总中断while(1)/循环{switch(t)/以t为参数的分支程序,t每50ms加1{case 0:/如果t=0(最初2秒),继电器a吸合,其他释放a=1;b=c=d=0;break;case 40:/如果t=40(第二个2秒),继电器b吸合,其他释放b=1;a=c=d=0;break;case 80:/如果t=80(第三个2秒),继电器c吸合,其他释放c=1;a=b=d=0;break;case 120:/如果t=120(第四个2秒),继电器d吸合,其他释放d=1;a=b=c=0;break;case 160:/如果t=160(第四个2秒结束),t=0,重复最初2秒情况t=0;break;default:/如果t与上述数字都不想等,啥也不做,免得干扰继电器状态break。单片机怎么控制继电器? 我最近也在搞单片机和继电器的控制,下面是我的图片,你把那个三极管一改就可以了.你不要用三极管放大,直接接一上拉电阻就得了单片机控制继电器 可能有两个问题1.单片机程序有问题,程序出错让让继电器反复开/断2.可能是驱动问题,单片机一般是不能直接驱动继电器的,需要接放大器来驱动,一个功率管就可以当然我估计第一种可能比较大,只要你仔细检查程序,一般能解决

#三极管#单片机#继电器

随机阅读

qrcode
访问手机版