单片机/MCUwilliam hill官网
直播中

wywaa2008

12年用户 305经验值
擅长:测量仪表 医疗
私信 关注
[文章]

怎么利用定时器中断控制51单片机发200个脉冲?

各位大侠你们好!
              怎么利用定时器中断控制51单片机发200个脉冲。谢谢
已退回1积分

回帖(4)

birdinskydzfsy

2015-7-23 11:12:49
利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。参考这个实现发脉冲
程序代码如下:
#include
#define uchar unsigned char
#define uint  unsigned int
***it led1=P1^0;
uchar num;
void main()
{
  TMOD=0x01;      //设置定时器0位工作模式1(M1,M0位0,1)
  TH0=(65536-45872)/256;  //装初值11.0592M晶振定时50ms数为45872
  TL0=(65536-45872)%256;
  EA=1;    //开总中断
  ET0=1;   //开定时器0中断
  TR0=1;   //启动定时器0
  while(1)
  {
     if(num==20)    //如果到了20次,说明1秒时间
{
    led1=~led1;    //让发光管状态取反, 此处可以调用你的发脉冲函数,200个脉冲怎么放,是一秒放完,还是一秒一个放200个
num=0;
}
  }
}
void T0_time()interrupt 1
{
   TH0=(65536-45872)/256;  //重新装载初值
   TL0=(65536-45872)%256;
   num++;   
}
举报

wywaa2008

2015-7-23 16:18:39
引用: birdinskyd***sy 发表于 2015-7-23 11:12
利用定时器0工作方式1,实现一个发光管以1s亮灭闪烁。参考这个实现发脉冲
程序代码如下:
#include

老师你好!

此处可以调用你的发脉冲函数,200个脉冲怎么放,是一秒放完,还是一秒一个放200个.
这句话我不知道什么意思
应该怎么写啊
  谢谢~~~~~~·
举报

wywaa2008

2015-7-23 16:20:31
引用: wywaa2008 发表于 2015-7-23 16:18
老师你好!

此处可以调用你的发脉冲函数,200个脉冲怎么放,是一秒放完,还是一秒一个放200个.

200个脉冲怎么放,是一秒放完
举报

birdinskydzfsy

2015-7-24 11:56:22
本帖最后由 birdinskyd***sy 于 2015-7-24 12:04 编辑
引用: wywaa2008 发表于 2015-7-23 16:20
200个脉冲怎么放,是一秒放完

就是问脉冲是什么频率 200个脉冲是1秒放完  算出放一个用多长时间  还有你用什么设备放 那个设备是有个管脚控制高低电平还是怎么着代码里用led亮灭模拟脉冲  亮一秒灭一秒  就是一个周期是两秒  就是频率为0.5Hz的方波脉冲  根据你需要的改就行了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分