找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2775|回复: 1
收起左侧

STC8系列单片机发高速脉冲

[复制链接]
ID:282021 发表于 2019-10-2 10:10 来自手机 | 显示全部楼层 |阅读模式
再做一个stc 发出高数脉冲,说明书程序没有弄清楚,请大神解答,这个如何控制输出
Screenshot_2019-10-02-10-03-34-406.png
Screenshot_2019-10-02-10-04-43-679.png
回复

使用道具 举报

ID:155507 发表于 2019-10-3 17:59 | 显示全部楼层
需要习惯并学会看手册
请参考STC-ISP里的范例程序里的STC8系列的 "PCA/CCP口切换"

我给你来个程序试试
  1. #include "reg51.h"
  2. #include "intrins.h"



  3. //测试工作频率为11.0592MHz

  4. #define T38K4HZ         (11059200L / 2 / 38400)

  5. sfr     CCON        =   0xd8;
  6. sbit    CF          =   CCON^7;
  7. sbit    CR          =   CCON^6;
  8. sbit    CCF3        =   CCON^3;
  9. sbit    CCF2        =   CCON^2;
  10. sbit    CCF1        =   CCON^1;
  11. sbit    CCF0        =   CCON^0;
  12. sfr     CMOD        =   0xd9;
  13. sfr     CL          =   0xe9;
  14. sfr     CH          =   0xf9;
  15. sfr     CCAPM0      =   0xda;
  16. sfr     CCAP0L      =   0xea;
  17. sfr     CCAP0H      =   0xfa;
  18. sfr     PCA_PWM0    =   0xf2;
  19. sfr     CCAPM1      =   0xdb;
  20. sfr     CCAP1L      =   0xeb;
  21. sfr     CCAP1H      =   0xfb;
  22. sfr     PCA_PWM1    =   0xf3;
  23. sfr     CCAPM2      =   0xdc;
  24. sfr     CCAP2L      =   0xec;
  25. sfr     CCAP2H      =   0xfc;
  26. sfr     PCA_PWM2    =   0xf4;
  27. sfr     CCAPM3      =   0xdd;
  28. sfr     CCAP3L      =   0xed;
  29. sfr     CCAP3H      =   0xfd;
  30. sfr     PCA_PWM3    =   0xf5;
  31. sfr     P_SW1       =   0xa2;

  32. unsigned int value;

  33. void PCA_Isr() interrupt 7
  34. {
  35.     CCF0 = 0;                    //清中断标志
  36.     CCAP0L = value;
  37.     CCAP0H = value >> 8;         //更新比较值
  38.     value += T38K4HZ;
  39. }

  40. void main()
  41. {
  42.     CCON = 0x00;                            //初始化PCA控制寄存器
  43.     CMOD = 0x08;                            //PCA时钟为系统时钟
  44.     CL = 0x00;                              //复位PCA寄存器
  45.     CH = 0x00;
  46.     CCAPM0 = 0x4d;                         //PCA模块0为16位定时器模式并使能脉冲输出
  47.     value = T38K4HZ;
  48.     CCAP0L = value;                       //CCP0 P1.7输出38.4KHz方波
  49.     CCAP0H = value >> 8;                  //初始化PCA模块0
  50.     value += T38K4HZ;
  51.     P_SW1 = 0x00;             //ECI/P1.2, CCP0/P1.7, CCP1/P1.6, CCP2/P1.5,CCP3/P1.4
  52. //  P_SW1 = 0x10;             //ECI_2/P2.2, CCP0_2/P2.3, CCP1_2/P2.4, CCP2_2/P2.5,CCP3_2/P2.6
  53. //  P_SW1 = 0x20;             //ECI_3/P7.4, CCP0_3/P7.0, CCP1_3/P7.1, CCP2_3/P7.2,CCP3_3/P7.3
  54. //  P_SW1 = 0x30;             //ECI_4/P3.5, CCP0_4/P3.3, CCP1_4/P3.2, CCP2_4/P3.1,CCP3_4/P3.0

  55.     CR = 1;                                     //启动PCA计时器
  56.     EA = 1;

  57.     while (1);
  58. }

复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表