pic16f877a的PWM实验学习

遇到的问题,编译时找不到TRISC。一开始以为头文件中没有定义,发现定义了。
所以是自己创建工程的时候,设备类型选错了。

  1. #include <pic.h>

  2. __CONFIG(0xFF32);

  3. #define uchar unsigned char
  4. #define uint unsigned int


  5. uchar a;

  6. void delayms(uint z)
  7. {
  8.     uint x,y;
  9.     for(x=z;x--;x>0)
  10.         for(y=40;y--;y>0);
  11. }

  12. void CCP1_init(void)
  13. {
  14.     a = 0x7F;
  15.     CCPR1L = a;
  16.     CCP1CON = 0x3C;                //设置CCP1模块为PWM工作方式,工作循环的低
  17.     INTCON = 0x00;                //关闭中断
  18.     PR2 = 0XFF;                    //设置PWM工作周期
  19.     TRISC &= ~(1<<2);                //设置CCP1引脚为输出方式
  20. }

  21. void main(void)
  22. {
  23.     PORTB = 0xff;
  24.     TRISB = 0xff;
  25.     nRBPU = 0;                    //禁止PORTB上拉
  26.     CCP1_init();                //初始化CCP1
  27.     T2CON = 0X04;                //打开TMR2,且使其前分频为0,同时开始输出PWM波形
  28.     while(1);
  29. }

posted @ 2017-08-15 09:12  习惯就好233  阅读(428)  评论(0编辑  收藏  举报