您的位置 首页 电路

51单片机的脉冲控制器

这个是在前面那个定时器的基础上改过来的。脉冲控制器输出4个脉冲,输出方式:先输出P050ms,停止100ms后,输出P150ms,停止100ms

这个是在前面那个定时器的基础上改过来的。

脉冲控制器
输出4个脉冲,输出方法:
先输出P0 50ms,中止100ms后,输出P1 50ms,中止100ms后。。。
P3输出完成后,中止10秒,之后循环
因为时刻比较规整,能够在中止里判别输出:
第一个届时,输出P0, 第二个届时,封闭P0 第三个届时,无动作
第四个届时,输出P1, 第五个届时,封闭P1 第六个届时,无动作
第七个届时,输出P2, 第八个届时,封闭P2 第九个届时,无动作
第十个届时,输出P3, 第11个届时,封闭P3
歇息200个周期,第211个届时,复位i
case i=1,4,7,10,输出; 2,5,8,11,封闭一切输出
50ms,晶振为11.0592,初值为0x4C00
#include “reg51.h”
sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;
sbit P0_3 = P0^3;
char i = 0;
void main()
{
TMOD = 0x11; //T0方法1
TL0 = 0x0; //TL0的初值
TH0 = 0x4C; //TH0的初值
ET0 = 1; //定时器1的中止答应
EA = 1; //开中止
TF0 = 0;
TR0 = 1;
while(1);
}
void Int_T0() interrupt 1 using 2
{
TL0 = 0x00; //从头装入初值
TH0 = 0x4C;
i++;
switch (i)
{
case 1: P0_0 = 0; break;
case 2: P0_0 = 1; break;
case 4: P0_1 = 0; break;
case 5: P0_1 = 1; break;
case 7: P0_2 = 0; break;
case 8: P0_2 = 1; break;
case 10: P0_3 = 0; break;
case 11: P0_3 = 1; break;
case 211: i = 0; break;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/260567.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部