网站导航: 首页 > 设计参考 > 正文 文章搜索
51单片机测变周期脉冲信号的简便方法
 
文章编号:
081203212601
文章分类: 单片机 51系列
点 击:
...
关 键 词: 周期,脉冲
文章来源:
网络,作者:李毓华
摘 要:
利用MCS-5l系列单片机内部定时/计数器控制灵活的特点,设计出了一个只用其内部一个定时/计数器测量脉冲周期连续变化的脉冲信号的方法.该方法没有额外的硬件开销,只是将脉冲信号直接引入单片机的一外部中断口;软件

    定时器Tl中断服务程序清单如下:
 

 
  1. INT1:CLR  TR1  ;关计数器1  
  2. PUSH ACC;ACC入栈  
  3. PUSH 00H;R0入栈  
  4. CLR  C  ;清零进位标志  
  5. MOV  A,TL1 ;计数值低8位→累加器  
  6. ADD  A,#23H ;计数器值+中断执行时间32us(12MHz晶振)+  
  7.   ;最小中断响应时间3-脉冲周期  
  8. MOV R0,A  ;低8位暂存R0  
  9. MOV  A,TH1  
  10. ADDC A,#00H  
  11. MOVX @DPTR,A ;脉冲周期高8位→@DPTR指向的RAM单元  
  12. INC DPTR ;指向下一RAM单元  
  13. MOV A,R0  
  14. MOVX @DPTR,A ;脉冲周期低8位→DPTR指向的RAM单元  
  15. INC DPTR     
  16. INC R1  ;脉冲周期个数加一  
  17. MOV TH1,#00H ;清零计数器1  
  18. MOV TL1,#00H  
  19. POP 00H  
  20. POP ACC  
  21. SETB TR1 ;重新启动计数  
  22. RETI  ;中断返回 


    该中断服务程序能采样的最小脉冲周期为32us,若去掉该程序中的现场保护和将计数值变为脉冲周期放在采样后进行,则可进一步减小能采样的脉冲周期。能采样的最大脉冲周期为65535us(12MHz晶振时),若大于该值,则用户对程序稍加修改即可,因此,实际上对最大周期可不加限制。设对脉冲信号采样100个周期,采样值存于50H开始的外部RAM中,则主程序如下:
 

 
  1. MAIN:   
  2.     PUSH TMOD    ;专用寄存器TMOD TCON IE入栈      
  3.     PUSH TCON  
  4.     PUSH IE  
  5.     MOV THI,#00H  ;清零计数器  
  6.     MOV TL1,#00H  
  7.     MOV TMOD10H;计数器1工作方式1  
  8.     SETB EA    ;允许中断  
  9.     SETB EX1    ;外部中断1  
  10.     SETB  IT1    ;INT1负跳变触发中断  
  11.     MOV DPTR,#50H;存脉冲周期的RAM首地址  
  12.     MOV  R1,#00H  ;R1一控制采样周期个散  
  13.     SETB TR1    ;计数器1开始计时  
  14.     CJNE  R1,#64H,$;等待100个周期采样结束  
  15.     CLR  TR1    ;关计数器  
  16.     POP  IE  
  17.     POP TCON  
  18.     POP TMOD  


    以上采样的第一脉冲周期不准,应在数据处理时丢掉,也可在中断服务程序中加判断语句自动丢掉。由以上可以看出,该方法无额外硬件,软件简明,能测量的脉冲周期范围大,但不能测得脉冲信号的第一个周期。

 
相关文章:

上一页 12
 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4