求一个51测脉宽程序

[复制链接]
3062|14
 楼主| 胡斯哲 发表于 2013-5-25 20:56 | 显示全部楼层 |阅读模式
wangch_sh 发表于 2013-5-25 21:25 | 显示全部楼层
脉宽的范围多大?
zhoujiwun 发表于 2013-5-25 21:45 | 显示全部楼层
用门控制为GATE的功能。
 楼主| 胡斯哲 发表于 2013-5-25 21:54 | 显示全部楼层
wangch_sh 发表于 2013-5-25 21:25
脉宽的范围多大?

100k左右的吧
 楼主| 胡斯哲 发表于 2013-5-25 21:55 | 显示全部楼层
zhoujiwun 发表于 2013-5-25 21:45
用门控制为GATE的功能。

心情稀烂  写不出来
倩倩草 发表于 2013-5-26 10:36 | 显示全部楼层
 楼主| 胡斯哲 发表于 2013-5-26 11:32 | 显示全部楼层
gonggu8181 发表于 2013-6-9 07:55 来自手机 | 显示全部楼层
stc有脉冲捕捉功能
 楼主| 胡斯哲 发表于 2013-6-13 22:21 | 显示全部楼层
gonggu8181 发表于 2013-6-9 07:55
stc有脉冲捕捉功能

我用中断弄了   低频的怎么不好使   你说的脉冲捕捉怎么弄啊
lqfy 发表于 2013-6-14 10:52 | 显示全部楼层
书上有网上也有资料
gonggu8181 发表于 2013-6-17 22:10 | 显示全部楼层
胡斯哲 发表于 2013-6-13 22:21
我用中断弄了   低频的怎么不好使   你说的脉冲捕捉怎么弄啊
  1. #include "reg51.h"
  2. #include "intrins.h"

  3. typedef unsigned char BYTE;
  4. typedef unsigned int WORD;

  5. /*Declare SFR associated with the PCA */
  6. sfr CCON        =   0xD8;           //PCA control register
  7. sbit CCF0       =   CCON^0;         //PCA module-0 interrupt flag
  8. sbit CCF1       =   CCON^1;         //PCA module-1 interrupt flag
  9. sbit CR         =   CCON^6;         //PCA timer run control bit
  10. sbit CF         =   CCON^7;         //PCA timer overflow flag
  11. sfr CMOD        =   0xD9;           //PCA mode register
  12. sfr CL          =   0xE9;           //PCA base timer LOW
  13. sfr CH          =   0xF9;           //PCA base timer HIGH
  14. sfr CCAPM0      =   0xDA;           //PCA module-0 mode register
  15. sfr CCAP0L      =   0xEA;           //PCA module-0 capture register LOW
  16. sfr CCAP0H      =   0xFA;           //PCA module-0 capture register HIGH
  17. sfr CCAPM1      =   0xDB;           //PCA module-1 mode register
  18. sfr CCAP1L      =   0xEB;           //PCA module-1 capture register LOW
  19. sfr CCAP1H      =   0xFB;           //PCA module-1 capture register HIGH
  20. sfr PCAPWM0     =   0xf2;
  21. sfr PCAPWM1     =   0xf3;

  22. sbit PCA_LED    =   P1^0;           //PCA test LED

  23. void PCA_isr() interrupt 7 using 1
  24. {
  25.     CCF0 = 0;                       //Clear interrupt flag
  26.     PCA_LED = !PCA_LED;             //toggle the test pin while CEX0(P1.3) have a falling edge
  27. }

  28. void main()
  29. {
  30.     CCON = 0;                       //Initial PCA control register
  31.                                     //PCA timer stop running
  32.                                     //Clear CF flag
  33.                                     //Clear all module interrupt flag
  34.     CL = 0;                         //Reset PCA base timer
  35.     CH = 0;
  36.     CMOD = 0x00;                    //Set PCA timer clock source as Fosc/12
  37.                                     //Disable PCA timer overflow interrupt
  38.     CCAPM0 = 0x11;                  //PCA module-0 capture by a negative tigger on CEX0(P1.3) and enable PCA interrupt
  39. //  CCAPM0 = 0x21;                  //PCA module-0 capture by a rising edge on CEX0(P1.3) and enable PCA interrupt
  40. //  CCAPM0 = 0x31;                  //PCA module-0 capture by a transition (falling/rising edge) on CEX0(P1.3) and enable PCA interrupt

  41.     CR = 1;                         //PCA timer start run
  42.     EA = 1;

  43.     while (1);
  44. }
gonggu8181 发表于 2013-6-17 22:14 | 显示全部楼层
stc12c5A60s2 第十章 的单片机。兼容atmel89s51http://www.****ducst/datasheet/stc/STC-AD-PDF/STC12C5A60S2.pdf

liu0000feng 发表于 2013-6-19 12:22 | 显示全部楼层
用51的定时中断啊。
lixianghua0428 发表于 2013-6-21 12:02 | 显示全部楼层
检测到边沿开关定时器中断呀,记录时间呀
dengm 发表于 2013-6-21 17:27 | 显示全部楼层
正脉冲接入,  P3.2 or P3.3,   定时器可能溢出!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:读书喝茶,不争朝夕

141

主题

1431

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部