试验6 脉宽调制实验_第1页
试验6 脉宽调制实验_第2页
试验6 脉宽调制实验_第3页
试验6 脉宽调制实验_第4页
试验6 脉宽调制实验_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

按试验台号就坐,每个试验台2名学生。3班坐1—18试验台,2班坐19—27试验台。若您的电脑没有看到老师的屏幕,请修改你的IP地址为试验台号安静试验7CCP模块试验Capture/Compare/PWMModule

CCPModule1、试验名称

CCP模块试验----PWM脉宽调制试验//1、今天的完成1khz占空比0.5的PWM脉冲信号的输出//2、完成8khz,占空比1/8的PWM脉冲信号的输出//3、完成400hz,占空比1/2的PWM脉冲信号的输出

2、试验目的学习PWM模块的使用,输出PWM信号3、试验设备硬件环境:微机、ICD2调试器、实验板软件环境:MPLABIDE、HI-TECHC语言工具4、试验电路RC2/CCP2RC1/CCP2引脚5、试验原理

PWM则是输出脉冲宽度可调的信号,脉冲的周期Period和工作循环周期DutyCycle是由内部的定时器产生的,也需要定时器的配合。与TMR2配合,是8位的。

PWM功能PWM功能所使用的时基是Timer2,是8位的,再加上预分频器的两位,PWM分辨率可达到10位。要输出PWM信号,需注意PWM信号的周期和工作循环周期DutyCycle。有两个寄存器分别存储PWM的周期值Period和工作循环周期值,PR2和CCPRxL.在Timer2从零开始递增时,会和PR2和CCPRxL的值比较,开始时PWM输出高电平,当TMR2值和CCPRxL寄存器相等时,PWM输出变低,然后继续递增,当TMR2值和PR2寄存器值相等时,TMR2归零并重新计数。周期period=(PR2+1)*4Tosc*TMR2预分频例如:设置PR2=0XFF;T2CON=0x05;晶振选择4MHZ,则Tosc=0.25us则周期为:(255+1)*4*0.25us*4=1024us则频率是:1/1.024ms=1KHZ占空比q=(高电平时间)/周期

10位脉宽寄存器(CCPRxL和CCPxCON的bit5—bit4构成10位)10位并行受控三态门10位比较器10位定时器TMR28位比较器8位周期寄存器RS寄存器输出级受控三态门7.2.1相关的寄存器INTCON:中断控制寄存器PIR1: 第一外设中断标志寄存器PIR2: 第二外设中断标志寄存器PIE1: 第一外设中断屏蔽寄存器PIE2: 第二外设中断屏蔽寄存器TRISC: RC口方向寄存器TMR1L: 定时器1低字节TMR1H:定时器1高字节T1CON: TRM1控制寄存器CCPR1L: CCP1低字节CCPR1H: CCP1高字节CCP1CON: CCP1控制器CCPR2L: CCP2低字节CCPR2H: CCP2高字节CCP2CON: CCP2控制器CCP1CON寄存器的介绍bit7bit6bit5bit4bit3bit2bit1bit0--CCPxXCCPxYM3m2m1m0Bit7bit6:没有使用。0x3C00111100Bit5-bt4:脉宽寄存器低2位,高8位在CCPR1L里Bit3-bit0:工作模式选择位0000:关闭CCP1模块11XX:脉宽调制PWM模式,低2位不起作用。TMR2的使用TIMER2是一个带有预分频器和后分频器的8位定时器,TMR2是可读写的,任何单片机的复位都将其清零。输入时钟(fosc/4)有1,4,16分配选择,通过T2CON的控制位T2CKPS1-0来选择。Timer2有一个8位周期PR2寄存器,timer2从00h递增到和PR2相等时,PR2复位到00h,进行下一次递增。PR2是可读写的,PR2通过复位初始化到FFH.TMR2的匹配输出通过一个4位后分频器产生一个TMR2中断TMR2IF.T2CON寄存器的使用Bit7 没有使用0x0500000101Bit6-3后分频器选择位Bit2:TMR2ON1=TIMER2ISON0=OFFBit1-0:预分频选择位

00=预分频比率是1 01=预分频比率是4 1x=预分频比率是166参考程序#include<pic.h>//作业8:试编写程序,使用CCP1输出分辨率为10位的PWM波形,占空比为0.5,频率为1khz。并说明原因。voidCCP1INIT(){TRISC=0X00; //RC2为输出CCPR1L=0X7F;//工作循环时间,高电平时间的高8位:01111111xxCCP1CON=0X3C; //00111100,设置为PWM模式,

//bit5-4是11,是工作循环时间的低2位,INTCON=0X00; //禁止外部一切中断PR2=0XFF; //设置周期

}main(){ CCP1INIT(); T2CON=0X05; //打开T2,使其预分频为4分频

while(1); }7程序结果计算频率:周期period=(PR2+1)*4Tosc*TMR2预分频例如:设置PR2=0XFF;T2CON=0x05;晶振选择4MHZ,则Tosc=0.25us则周期为:(255+1)*4*0.25us*4=1024us则频率是:1/1.024ms=1KHZ听1khz的声音,修改周期,听听4khz的声音。完成8khz、16khz、32khz的脉冲输出,占空比均是0.5完成500hz、400hz、10hz、2hz的脉冲波形输出。祝您成功定时器0(TMR0)8位的定时/计数器可读可写附一8位的软件可编程预分频器内部或外部时钟可选当从FFh计数溢出到00h时,可产生中断当选外部时钟时,计数脉冲触发沿可选相关的4个控制寄存器TMR0 8位宽的累加计数寄存器OPTION_REG 选项寄存器INTCON 中断控制寄存器TRISA RA口方向寄存器选项控制寄存器OPTION_REGbit7bit6bit5bit4bit3bit2bit1bit0RBPUINTEDGT0CST0SEPSAPS2PS1PS0T0CS:时钟源选择位,

1=外部引脚输入的脉冲触发. 0=内部指令周期信号T0SE:边沿触发选择位,计数模式时有效, 1=外部始终T0CK下降沿触发TMR0增1. 0=外部始终T0CK上降沿触发TMR0增1PSA=1

预分频器分配给WDTPSA=0

预分频器分配给TIME0PS2~PS0对应的分频比PS2~PS0TMR0比率WDT比率0001:21:10011:41:20101:81:40111:161:81001:321:161011:641:321101:1281:641111:2561:128相关的4个控制寄存器TMR0 8位宽的累加计数寄存器OPTION_REG 选项寄存器INTCON 中断控制寄存器TRISA RA口方向寄存器中断控制寄存器INTCONbit7bit6bit5bit4bit3bit2bit1bit0GIEPEIET0IEINTERBIET0IFINTFRBIFT0IF=1发生溢出0未发生溢出T0IE=1允许TMR0溢出后产生中断0不使能GIE=1允许CPU响应外围设备产生的中断请求TMR0和内部时钟同步Fosc/4外部时钟输入溢出时中断标志T0IF被置1T0SE8位可编程预分频器PS2,PS1,PS03PSAT0CS(2个周期延时)8位数据总线TMR0电路结构工作原理TMR0初始化voidinitial(){ INTCON=0x00; //全局中断禁止

INTCON,GIE=1; //允许没有屏蔽的中断向CPU请求。

TRISB=0B11111000; //设置B0管脚为输出

TRISC=0X00; TMR0=0X01; //置定时器初值,255*1*1us=255us,fosc=4Mhz,指令周期 是1us T0CS=0; //工作于定时模式

PSA=0; //把预分频分配给TIME0, PS2=0; //分频256,则定时时间是256us*256=65535us=65.535ms PS1=0; PS0=1; T0IE=1; //T0中断允许

T0IF=0; //清T0中断标志 }6、参考程序

定时器TIME0使用举例#include <pic.h>intk=0; //定义变量kvoidinitial(){…}voidinterruptwww0() //中断的唯一入口{ T0IF=0; k=k+1;}main(){ initial(); /*初始化*/ PORTB=0Xf0; while(1) {if((k>0)&(k<=5)) RC2=1; //通5ms elseif((k>5)&(k<10)) RC2=0; //断5ms,周期是100HZ elseif(k>=10) k=0; }}6、参考程序#include<pic.h> //文件包含指一个源文件将另外一个源文件的全部内容包含进来。voiddelay_xs(void) //定义了一个函数,大概延时1秒钟{ unsignedinti; i=6553;

while(i>0) i=i-1;}voidmain() //每个C程序都必须有一个main函数{ intk=0; TRISB=0X00; //定义B口为输出

TRISC=0X00; //定义B口为输出

while(1) //循环语句

{ PORTB=0B00000001; //点亮

delay_xs(); //延时

PORTB=0B00000010;

delay_xs(); PORTB=0B00000100;

delay_xs(); PORTB=0B00001000;

delay_xs(); PORTB=0B00000000;

delay_xs(); }}7、试验步骤1、安装软件MPLABIDE2、安装ICD2USB驱动3、启动MPLABIDE4、新建工程Project工程名字:学号5、用文本编辑器编辑源文件:led001.c6、建立通讯7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论