《微机原理EV实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理EV实验报告.docx(15页珍藏版)》请在第一文库网上搜索。
1、专业:电气工程及其自动化姓名:沏户/挈实验报告学号:日期:2014.12.11地点:课程名称:微机原理及其应用指导老师:徐习东成绩:实验名称:EV实验实验类型:同组学生姓:目录X实验内容与要求(2)2实验原理(2)2.1 脉冲宽度调制(PWM)(2)2.2 PWM控制1ED的渐变闪烁(2)3程序设计与分析(2)3.1 主程序设计流程图(2)3.2 程序段设计与分析(2)4实验思考(15)一、实验内容与要求1、利用事件管理器实现TMS320F2812实验目标板上的绿灯与红灯的渐变闪烁;2、通过实验,掌握TMS320F2812事件管理器的使用方法。二、实验原理1、脉冲宽度调制(PWM)固定幅值、周
2、期,通过改变占空比使得波形能量与要求的波形基本相等。脉宽调制可以直接从DSP输出。2、PWM控制1ED的渐变闪烁事件管理器(EV)的比较单元又称为全比较/PWM单元,功能主要用来产生PWM波形,每一个比较单元可以产生一对(两路)互补的PWM波,每一路PWM波可以控制一个1ED的亮灭状态。通过动态改变PWM波的占空比来调节1ED在一个周期内的点亮时间,由于PWM波频率很高,超出人眼分辨率,在人眼里就是连续的灯光,按照渐变占空比的变化,就可以表现为1ED亮度的不断变化。三、程序设计与分析1、主程序设计流程图2、程序段设计与分析程序段voidInicSys(Void);/*初始化系统*/voidIn
3、itJOF(Void);/*初始化IO*/void1nit_timerO(void);*初始化CPUT1MER*/void1nit_CPUint(void);*初始化CP11int*/voidIniCPIEint(VOid);*初始化PIEJnt*/voidInit_EV(void);*初始化EV*/interruptvoidCPU_timerO_isr(void);interruptvoideva_T1PINT_isr(void);interruptvoideva_CMP1INT_isr(void);interruptvoideva_CMP2INT_isr(void);interruptvo
4、ideva_CMP3INT_isr(void);intprdnum;int1ed1_cmp;int1ed2_cmp;int1ed3_cmp;该程序段对系统初始化函数、GPIO初始化函数、CPUint初始化函数、PIE初始化函数、EV初始化函数以及T1周期中断子程序和三个比较中断子程序进行了声明。该程序段还对相关全局变量进行了定义。程序段int1ed_tab11OO=587,585,583,580,576,571,565,558,549,540,530,518,506,493,479,465,449,434,417,400,383,365,347,329,311,293,274,256,238,
5、220,202,185,168,151,136,120,106,92,79,67,55,45,36,27,20,14,9,9,9,9,9,9,9,9,9,14,20,27,36,45,55,67,79,92,106,120,136,151,168,185,202,220,238,256,274,292,311,329,347,365,383,400,417,434,449,465,479,493,506,518,530,540,549,558,565,571,576,580,583,5851;该程序段给出了一个比较值表,其中的数据是给比较单元的比较寄存器CMPRX进行动态赋值的数据。最大值应略
6、小于T1周期值TIPR(586)。程序段voidIniCSys(Void)/*初始化系统*/P11CR=OxA;PC1KCR=Oxffff;HISPCP=Ox1;/defau1t1OSPCP=Ox2;/defau1tWDCR=0x68;/disab1ewd1PMCR0=0x0;/1owpowerId1evoidInijSys(VOid)函数用于初始化系统。设置锁相环寄存器P11CR=OxA,外部晶振为C)SCC1K=30MHz,因此系统时钟Sysc1kout=scc1kp11cr=11MHz=150MHZ。设置外设时钟控制寄存器PC1KCR=Oxffff,使能片内各种相关外设时钟。设置高速外设
7、时钟预定标寄存器Hispcp=Oxi,则高速外设时钟为U*Sysc1kout15。“小皿HSPC1K=MHZ=15MHz。2HISPCP21设置低速外设时钟预定标寄存器1OSPCP=Ox2,则低速外设时钟为1SPC1K=Sysc1kout150MHZ=37.5MHz021OSPCP22设置看门狗控制寄存器WDCR=OX68,关闭看门狗。设置低功耗模式控制寄存器1pmcro=OxO,选择id1e模式。程序段voidInitJOF(Void)/*初始化IO*/(inti;GPFMUX=OxOOff;f8f13GPFDIR=0x3f00;GPFDAT=0x0700;GPEMUX=0xfff8;/f8
8、f13GPEDIR=0x0007;GPBMUX=OxOOff;/f8-f13GPBDIR=OxFFOO;Gpedat=OxFFFA;GPBDAT=0xe300;for(i=0;i100;i+)Gpedat=OxFFFF;Gpedat=OxFFFB;GPBDAT=0xe300;for(i=0;i100;i+)Gpedat=OxFFFF;GPAMUX=0x1;/PWM1activeGPADIR=0x3F;GPIOA_35Gpadat=OxOO;)voidInitOF(Void)函数用于初始化GPIO口。软件设置和操作流程说明如下:设置模式寄存器GPFMUX的高八位为0,使GPIOF813引脚配置为
9、通用数字I/O模式;设置方向寄存器GPFDIR的813位为1,使GP1oF相关引脚配置为输出;设置数据寄存器GPFDAT的1013位为0,8-10位为1,即点亮绿灯前三位,灭掉后三位,绿灯亮灭状态为OoO1U(O为亮,1为灭);设置模式寄存器GPEMUX的低三位为0,使GP1oE2-0引脚配置为通用数字I/O模式;设置方向寄存器GPEDIR的低三位为1使GP1oE20相关引脚配置为输出;设置模式寄存器GPBMUX的815位为0,使GPIOB815引脚配置为通用数字I/O模式;设置方向寄存器GPBDIR的815位为1,使GPIOB815引脚配置为输出;设置数据寄存器GPEDAT的GPIoE20位
10、为010,即选通红灯高八位;设置数据寄存器GPBDAT=OXe300;即红灯亮灭状态为1110001100000000;延时后锁存;设置数据寄存器GPEDAT=OXFFFB,即GPEDAT的GP1OE20位为O11,选通红灯低八位;设置数据寄存器GPBDAT=OXe300;即红灯亮灭状态为I11OOOI111100011;延时后锁存;设置模式寄存器GPAMUX=Ox1,即设置GPIOA为PWM1口;设置方向寄存器GPADIR=Ox3F(00000000OO111111),即设置05位为PWM1PWM6输出;程序段voidIniCCPUint(Void)/*初始化CPUJnt*/(IFR=OxO
11、;IER=0x3;voidInijCPUint(VOid)函数用于初始化CPUint;设置CPU中断标志寄存器IFR=OxO,清除中断标志;设置CPU中断使能寄存器IER=0x3,使能第3位对应的中断服务;程序段voidIniCPIEint(VOid)/*初始化PIEJnt*/(PIEIFRi=O;PIEIER2=0xf;PIEIFR2=0;PIEACK=0;PIECTR1=I;CMP1INTVector=&eva_CMP1INTJsr;CMP2INTVector=&eva_CMP2INT_isr;CMP3INTVector=&eva_CMP3INT_isr;T1PINTVector=&eva
12、_T1PINTJsr;)voidInijPIEint(VOid)函数用于初始化PIEint;设置PIE中断标志寄存器PIEIFRi=O,清除PIE控制器中第一组对应中断标志;设置PIE中断使能寄存器PIEIER2=0xf,使能INTX.1INTx.5;设置PIE中断标志寄存器PIEIFR2=0,清除PIE控制器中第二组对应中断标志;设置PIE中断应答寄存器PIEACK=0,PIE向CPU申请中断;设置PIE控制寄存器PIECTR1=I,使能PIE中断;CMP1INTVector=&eva_CMPIINTJsr;CMP2INTVector=&eva_CMP2INT_isr;CMP3INTVect
13、or=&eva_CMP3INT_isr;T1PINTVector=&eva_TIPINTJsr;以上语段用于关联相应中断服务子程序地址与对应的中断向量表,即将中断服务子程序的地址赋给中断向量表。程序段voidIniCEV(VOid)/*初始化EV*/EXTCONa=I;Gptcona=OxOOIO;T1CON=0x17ca;T1PR=586;COMCONA=Ox82eO;ACTRA=Ox1;DBTCONa=00;CMPR1=1ed1_cmp;CMPR2=1ed2_cmp;CMPR3=1ed3_cmp;EVAIMRA=0x8e;EVAIFRA=O;)voidIni1EV(Void)函数用于初始化
14、事件管理器;设置控制寄存器EXTCONa=I,采用独立比较输出模式;设置通用定时器全局控制寄存器GPTCoNA=OXOo10,KPT1CMPOE=1,定时器1比较输出使能(T1PWMjnCMP);设置定时器1控制寄存器T1Ce)N=OX17ca,则TMc)DE1TMODE0=10,计数模式为连续增模式;输入时钟预定标因子TPSbTPSO为111,输入时钟=高速外设时钟/64;TENAB1e=I,使能定时器操作;TC1KS1-TC1KSO=OO,时钟源选择内部时钟;Tc1di-Tc1do=IO,定时器比较寄存器重载条件为立即重载;设置定时器周期寄存器TIPR=586,定时器1周期值为586;设置比较控制寄存器COMCoNA=0x82e0,比较器使能,比较寄存器重载条件为当计数器T1CNT=O时(即下溢中断时)重载,全比较器1、2、3输出使能;设置比较行为控制寄存器ACTRA=0x1,比较输出引脚1低有效;CMPR1=Ied1Cmp;CMPR2=1ed2_cmp;CMPR3=1ed3_cmp;上述语段用于比较寄存器CMPR13值的动态变化,实现占空比的改变;设置EVA1MRA=0x8e,使能定时器1的周期中断和比较中断以及全比较器1-3的比较中断。设置EVA中断标志寄存器EVAIFRa=O,清除中断标志。程序段interr