51单片机控制继电器的程序看不太懂,希望大神在每句后面注解一下。
-
#include
#include #define uint unsigned int sbit a=P1^4;// sbit b=P2^3;// sbit c=P2^5;// sbit d=P2^7;// uint t; void Init_t0(void) //定时器初始化 { TMOD=0x01; TH0=0x4C;TL0=0x00; //50ms ET0=1; TR0=1; ... #include #include #define uint unsigned int sbit a=P1^4;// sbit b=P2^3;// sbit c=P2^5;// sbit d=P2^7;// uint t; void Init_t0(void) //定时器初始化 { TMOD=0x01; TH0=0x4C;TL0=0x00; //50ms ET0=1; TR0=1; } void time0_server_(void)interrupt 1 { TH0=0x4C;TL0=0x00; t++; } void main() { Init_t0(); a=0;// b=0;// c=0;// d=0;// t = 0; EA = 1; while(1) //循环 { switch(t) { case 0: a = 1; b = c = d = 0; break; case 40: b = 1; a = c = d = 0; break; case 80: c = 1; a = b = d = 0; break; case 120: d = 1; a = b = c = 0; break; case 160: t=0; break; default: break; } } } 展开
全部评论(2条)
-
- 初心暖哭i 2015-05-17 00:00:00
- 需要给你写吗
-
赞(20)
回复(0)
-
- 新航星洗涤设备 2017-09-27 12:16:13
- #include<reg52.h> #include <intrins.h> #define uint unsigned int sbit 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; //定时时间50ms ET0=1; //允许定时器0中断 TR0=1; //定时器0启动 } void time0_server_(void)interrupt 1 //定时器0中断函数 { TH0=0x4C;TL0=0x00; //定时时间50ms t++; //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(Z初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,重复Z初2秒情况 t=0; break; default: //如果t与上述数字都不想等,啥也不做,免得干扰继电器状态 break; } } }
-
赞(10)
回复(0)
热门问答
- 51单片机控制继电器的程序看不太懂,希望大神在每句后面注解一下。
- #include
#include #define uint unsigned int sbit a=P1^4;// sbit b=P2^3;// sbit c=P2^5;// sbit d=P2^7;// uint t; void Init_t0(void) //定时器初始化 { TMOD=0x01; TH0=0x4C;TL0=0x00; //50ms ET0=1; TR0=1; ... #include #include #define uint unsigned int sbit a=P1^4;// sbit b=P2^3;// sbit c=P2^5;// sbit d=P2^7;// uint t; void Init_t0(void) //定时器初始化 { TMOD=0x01; TH0=0x4C;TL0=0x00; //50ms ET0=1; TR0=1; } void time0_server_(void)interrupt 1 { TH0=0x4C;TL0=0x00; t++; } void main() { Init_t0(); a=0;// b=0;// c=0;// d=0;// t = 0; EA = 1; while(1) //循环 { switch(t) { case 0: a = 1; b = c = d = 0; break; case 40: b = 1; a = c = d = 0; break; case 80: c = 1; a = b = d = 0; break; case 120: d = 1; a = b = c = 0; break; case 160: t=0; break; default: break; } } } 展开
- 汇编语言 51单片机 器程序
- 51单片机信号发生器的正弦波程序
- voidvout_sin(void)//输出正弦波{floatx;//用于正弦波发生器if(Voutsin())//“正弦波按键”被有效按下do{for(x=-3.1415;x<3.1415;x+=0.1)//正弦波发生器{vout=255*(1+sin(x))/2;//输出... void vout_sin(void) //输出正弦波
{ float x; //用于正弦波发生器
if(Voutsin()) //“正弦波按键”被有效按下
do{
for(x=-3.1415;x<3.1415;x+=0.1) //正弦波发生器
{ vout=255*(1+sin(x))/2; //输出值vout必须大于0
P1=vout;
delay_out();
} } while(P3_0==1&P3_1==1&P3_2==1&P3_4==1) } 此段程序中do{}内的内容不是很理解,希望好心网友帮忙解释一下,财富值不是很多,谢谢了。 展开
- 51单片机制作简易数字频率计程序
- 温度控制51单片机,DS1820温度传感器的程序
- 只要一小段,温度加热时候的程序,我要用Keil和proteus编程仿真的,加热到40,60,80的时候分别需要恒定温度一段时间后,在继续加热....... 只要一小段,温度加热时候的程序,我要用Keil 和 proteus 编程仿真的,加热到40,60,80 的时候分别需要恒定温度一段时间后,在继续加热.... 展开
- 51单片机频率计的中断程序怎么设计
- 有一个信号由200hz的NRZ码控制输出两个频率不同的方波(1600,800)。现在要还原,如果检测到1600则p3.5输出高电平,800则输出低电平。我的设想是定时一个5ms的中断,对输入的方波电平0→1进行计数。计数值大于(8+4)/2=6的话输出1,小于输出0。请问这样可以... 有一个信号由200hz的NRZ码控制输出两个频率不同的方波(1600,800)。现在要还原,如果检测到1600则p3.5输出高电平,800则输出低电平。我的设想是定时一个5ms的中断,对输入的方波电平0→1进行计数。计数值大于(8+4)/2=6的话输出1,小于输出0。请问这样可以吗?对于定时器计时器还有中断的使用不大明白,可否简略写下程序。谢谢 展开
- 51单片机温度控制系统的C语言程序
- 设计基于单片计算机的温度控制器。用于控制电加热炉的温度。具体要求如下1.温度连续可调,范围为30℃~150℃2.超调量σ%≤20%3.温度误差≤±0.5℃4.人-机对话方便5.控制算法采用PID或改... 设计基于单片计算机的温度控制器。用于控制电加热炉的温度。具体要求如下 1. 温度连续可调,范围为30℃~150℃ 2. 超调量σ%≤20% 3. 温度误差≤±0.5℃ 4. 人-机对话方便 5. 控制算法采用PID或改进的PID或其他算法 .请发至3166109374@qq.com 谢谢帮忙 具体见http://wenku.baidu.com/view/e0feacf0f121dd36a22d822c 展开
- 基于51单片机,ADC0804,光敏电阻,湿度传感器,求程序!!!!
- 我用的51单片机,采集光强度和空气湿度,利用了两个ADC0804进行转换(光敏电阻和电阻式湿度传感器),但是没有相应程序,哪位大哥能帮忙弄一个程序啊?如果是可行的程序,我账号里剩下... 我用的51单片机,采集光强度和空气湿度,利用了两个ADC0804进行转换(光敏电阻和电阻式湿度传感器),但是没有相应程序,哪位大哥能帮忙弄一个程序啊?如果是可行的程序,我账号里剩下的分全给你,虽然不多... 展开
- 基于51单片机用LCD1602液晶显示的频率计程序
- 求程序——————
- 求一个51单片机控制的温度计显示程序
- stc98c51控制2个4位数码管,温度传感器为DS18B20。数码管的a,b,c,d,e,f,g,dp端接在P0口... stc98c51控制2个4位数码管,温度传感器为DS18B20。数码管的a,b,c,d,e,f,g,dp端接在P0口 展开
- 单片机通过温湿度传感器DHT11输入数据控制继电器通断的程序
- 本人课程设计需要由单片机控制电路,单片机通过DHT11温湿度传感器读取温度数据,然后与设定的温度进行比较之后控制继电器的通断。设定的温度是20~23,23~26,26~29,控制的继电器是3个... 本人课程设计需要由单片机控制电路,单片机通过DHT11温湿度传感器读取温度数据,然后与设定的温度进行比较之后控制继电器的通断。设定的温度是20~23,23~26,26~29,控制的继电器是3个。当读取的温度达到设定值时其中一个继电器吸合,达到另一个温度区间时该温度对应的继电器吸合,其他的都处于断开状态。本人苦逼不会写程序,求各位大神帮个忙。急用谢谢了。 展开
- 谁能帮忙写一下用霍尔传感器和51单片机测量电机转速的程序和接线图
- 请问有谁写过htu21d温湿度传感器的51单片机 c程序吗,求参考一下
- 小白鼠排队 (希望大神用c++编写这个程序)
- 小白鼠排队(希望大神用c++编写这个程序)小白鼠排队N只小白鼠(12017-02-24 00:45:58 640 1
- GP2Y1010AU0F检测灰尘粉尘传感器和51单片机连的程序
- 这个51单片机HC-SR04超声波测距程序哪里错了
- //晶振11.0592MHz #include
#define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TI... //晶振11.0592MHz #include #define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TIM1init(void)//定时器1初始化 { TMOD=0x22;//定时器1工作方式2,TH1是重装值,TL1是初值 TH1=0xd2; //重载值 溢出一次约50us TL1=0xd2; //初始化值 ET1=1; //开中断 } void EX1init(void) //外部中断1初始化 { IT1 = 1; //指定外部中断0下降沿触发,INT1 (P3.3) EA = 1; //开总中断 } /*------------------------------------------------ 定时器1中断处理 ------------------------------------------------*/ void tim1_isr (void) interrupt 3 { irtime++; //用于计数2个下降沿之间的时间 } /*------------------------------------------------ 外部中断1中断处理 ------------------------------------------------*/ void EX1_ISR (void) interrupt 2 //外部中断1服务函数 { dis=340*(irtime/2.0)*50/10000; irtime=0; TR1=0; EX1=0; } void test(void) { trig=1; delay_20us(); trig=0; EX1=1; while(!echo); TR1=1; } void main(void) { TIM1init(); EX1init(); while(1) { test(); display(dis); } } 主函数调用test,然后在数码管上显示(显示函数略过),测试的时候,在数码管上显示的距离明显不对,还各种不稳定,有时就个位数上显示一个1或2,不知道怎么回事 展开
- 51单片机超声波模块测厚度程序怎么写?
- 基于51单片机的lm393振动传感器的程序怎么加蜂鸣器
- 51单片机 测速
- 当感应到磁性的时候 有高电平,没有感应到磁性的时候是低电平,求两次测到高电平之间时间是多少。 C语言程序怎么写?用霍尔传感器或者是磁性开关
- 求一段汇编程序,利用51单片机控制超声波传感器测距的程序。
1月突出贡献榜
推荐主页
最新话题
-
- #八一建军节——科技铸盾,仪器护航#
- 如何选择到合适的磷青铜绞线?磷青铜绞线的质量...如何选择到合适的磷青铜绞线?磷青铜绞线的质量解析和如何选择到合适的绞线?磷青铜绞线是一种特殊的铜合金导线,由铜、锡和磷等元素组成,具有很好的机械性能、电气性能和耐腐蚀性。磷青铜绞线基本定义与特性:磷青铜是铜与锡、磷的合金,质地坚硬,可制弹簧。典型成分为铜(90%)、锡(6-9%)及磷(0.03-0.6%)锡元素提升合金的强度和耐腐蚀性,磷则细化晶粒、增强耐磨性铸造性能。耐磨性:表面氧化层使其在特殊环境下耐腐蚀,使用寿命长导电性:保持铜很好导电性能的同时有化电子传输路径非铁磁性:不含铁元素,避免在强磁场环境中产生额外能量损耗弹性:受到外力作用时能迅速恢复原状
- 八一建军节 铁血铸军魂













参与评论
登录后参与评论