PIC入门2,看门狗和PWM波产生实验
扫描二维码
随时随地手机看文章
我使用的是爱晶3ePIC实验板,以下都是自己写的程序,调试都是成功的,只是为了纪念和学习交流使用,别无它意。在我的
相册里有板子的原理图。
启动看门狗后,系统会在一定的时间内重启,当遇到死循环的时候重启系统,在调试的时候ICD2配置字要求关掉看门狗,所以用ICD2把程序直接下载到芯片里执行。
程序:
//适合3ePIC实验板,看门狗实验
#include
unsigned long i;
//初始化
void initial()
{
OPTION=0x0F;//把前分频给WTD,且分频倍率为1:128
TRISD=0x00;//D口输出口,点亮LED
TRISE=0x00;//LED使能段
}
//延迟
void DELAY()
{
for(i=0;i<50000;i++)
continue;
}
//主函数
main()
{
initial();
RE0=0;
PORTD=0xFF;
DELAY();
PORTD=0x00;
while(1)
{
;//死循环
}
}
PWM波产生:
//该程序适合3EPIC实验板,用于使CCP1模块产生10bit的PWM波,占空比为50%
#include
//CPP1初始化
void CCP1INIT()
{
CCPR1L=0x7F;//循环高8位为01111111=7F
CCP1CON=0x3C;//设置CPP1为PWM工作方式,工作循环低2位为11
INTCON=0x00;//禁止总中断和外围中断
PR2=0xFF;//设置PWM波的周期
TRISC=0xFB;//设置CCP1的引脚为输出模式
}
//主函数
main()
{
CCP1INIT();
T2CON=0x04;//打开TMR2,使其后分频为1,
do//开始PWM波形
{
;
}while(1);//系统输出PWM波形,如果系统是多任务,不影响其它任务
}
第17脚RC2/CCP1为PWM输出脚。