版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(1)多功能波形信号发生模块程序应用#INCLUDERTCC EQU01HPCEQUU02HHPCLAATHEQUU0AHHTEMPP0TIIME EQUU20HH;方波波次数TEMPP0COONSTTEQUU21HH;方波波常数TEMOO0DOOTEQUU22HH;方波波点数TEMPP0OUUTEQUU23HH;方波波输出值值TEMPP1TIIME EQUU30HH;锯齿齿波次数数TEMPP1COONSTTEQUU31HH;锯齿齿波常数数TEMPP1 DDOTEQUU32HH;锯齿齿波点数数TEMPP1OUUTEQUU33HH;锯齿齿波输出出值TEMPP2TIIME EQUU40HH;三角角
2、波次数数TEMPP2COONSTTEQUU41HH;三角角波常数数TEMPP2 DDOTEQUU42HH;三角角波点数数TEMPP2OUUTEQUU43HH;三角角波输出出值OPTIION_REQUU81HHWBUEQUU2FHH;W暂暂存SBUEQUU2EHH;STTATUUS暂存存RCCEQUU0FAAH;最大大频率常常数;- ORG0SYS_RESSETGOTOOSTAART;- ORG4;中断断程序 MOVWWFWBUUSWAPPFWB00, 00SWAPPFSTTATUUS, 0MOVWWF SSBUCALLLSERRV_IINTSWAPPF SSBU, 0MOVWWFSTAATUS
3、SSWAPPF WWBU, 0RETFFIE;- ORG40HH NOPPSTARRTCALLL INNTCALLLINTTPORRT CALLL IINTTTMOLOOPP;延时时NOPNOPGOTOOLOOOP;- INTCLRFFTEMMP0DDOTCLRFFTEMMP1DDOTCLRFF TEEMP22DOTTCLRFF TEMMP0OOUTCLRFF TEMMP1OOUTCLRFF TEMMP2OOUTMOVLLW 003HMOVWWFTEEMP00TIMMEMOVWWF TTEMPP0COONSTTMOVWWF TTEMPP2TIIMEMOVWWF TTEMPP2COONSTTMO
4、VLLW 006HMOVWWF TTEMPP1TIIMEMOVWWF TTEMPP1COONSTTRETUURN;- INTPPORTT;端口口初始化化BCF STAATUSS, 0BCF STAATUSS,1BCF STAATUSS, 55CLRFF PORTCCCLRFF PORTDBSFPORRTE,1BSFSTAATUSS, 55MOVLLW 00HHMOVWWF TTRISSDMOVLLW OF44HMOVWWF TTRISSC ;定义义RE11为输出出,其他他为输入入MOVWWF TTRISSEBCF STAATUSS, 55RETUURN;-INTTTM0;定时时器初始始化BSF
5、 STAATUSS, 55MOVLLW 880HMOVWWF OOPTIION_ RBCF STAATUSS, 55MOVLLW 00A0H;开放放定时器器中断MOVLLWRCCC;RCCC=最最大频率率延时常常数MOVWWFRTTCCRETUURN;;-SERYY_ IINT;中断断服务程程序BTFSSC INTTCONN,2GOTOO SEERVRRTCCCCLRFF INNTCOONBSFIINTCCON, 5RETUURNSERVVRTCCCMOVLLW RCCCMOVWWF RRTCCCBCFINTTCONN,2CALLL OUTTPUTTRETFFIE;-OUTPPUT;输出出波形
6、BCF STAATUSS,5FBO DECCFSZZTEMMP0TTIMEE,1;方波波GOTOO J BOCALLL FANNGBOOJBO DECCFSZZTEMMP1TTIMEE,1;锯齿齿波GOTOO SJ BBOCALLL JUCCBOSJBOO DDECFFSZ TEMMP2 TIMME,11;三角角波RETUURNCALLL SJIIAOBBORETUURN;-FANGGBOBCF PORRTS, 1;为低BCFPORRTC, 0 BCFPORRTC, 1;选择择输出通通道, 0通道道为方波波INCFF TEMMP0DDOT,1MOVFF TEEMP00CONNST, 0MOVW
7、WFTEEMP00TIMMEBTFSSC TEMMP0DDOT,7 GOTOO GAAOGOTOO DIIGAOMMOVLLW OOFFHHMOVWWFPORRTDBSF PORRTE, 1RETUURNDIM00VLWW 00HMOVWWF PPORTTDBSFPPORTTE, 11RETUURN;-JUCBBOBCFPORRTE, 11BCF PORRTC,0 ;选择择输出通通道, 1通道道为锯齿齿波MOVFFTEMMP1CCONSST,00 MOVWWF TEMMP1TTIMEEINCFFSZ TEMMP1DDOT, 1GOTOOJUBBO1MOVFF TEMMP1OOUT, 0MOVW
8、WF PORRTDINCFFTEMMP1OOUT, 1RETUURNJUBOO1 MMOVLLW 00HHMOVWWF TTEMPPlOUUTRETUURN;-SJIAAOBOOBCF PORRTE, 1BCF PORRTC, 1;选择择输出通通道, 2通道道为三角角波MOVFFTEMMP2CCONSST, 0MOVWWF TEMMP2TTIMEEINCFFSZ TEMMP2DDOT, 1 GOTOO SJBBO2 CALLL SJBBO0 SJB002 MMOVFF TEEMP22OUTT, 00MOVWWF PORRTDBSF PORRTE, 1MOVLLW 02HH BTFSSS TEM
9、MP2DDOT,7GOTOOSJBBO1ADDWWF TTEMPP2OUUT, 1RETUURNSJBOO1SUBWWFTEMMP2OOUT,1 RETUURNSJBOO0 CCLRFF TEEMP22OUTTRETUURNEND(2)PPWM信信号发生生模块程序应用用#inccludde /*CCCP1模模块的PPWM工工作方式式初始化化子程序序*/voidd IINITT_CCCP1() PR2=0XFFF; /*设置置PWMM周期*/CCPRR1L=00X7FF; /*设置工工作循环环的高88bitt为01111111111*/CCP11CONN=0XX3C; /*设设置CCCP1为为P
10、WMM工作方方式,且且工作循循环的低低bitt2为111*/INTCCON=0X000; /*禁禁止总中中断和外外围中断断*/TRISSC=00XFBB; /*设置RRC2/CCPP1为输输出*/*主程程序*/mainn()INITT_CCCP1();/*CCCP1模模块的PPWM工工作方式式初始化化*/T2COON=00X033; /*前前分频比比为166,打开开TMRR2,同同时输出出PWMM信号*/(3)正正弦信号号发生模模块程序应用用#inccludde /本程程序将通通过PIIC166F8777的I2C方式驱驱动D/A 转转换器MMAX5518,使其DD/A00 通道道输出/一个个连
11、续的的正弦波波形consst ccharr taablee = 0XX80,0X886,0X88D, 0XX93,0X999,0X9FF,0XAA5,0XAAB,0XB11,0XBB7,0XBBC,0XCC2,0XCC7,0XCCC,0XDD1,0XDD6,0XDDA,0XDDF,0XEE3,0XEE7,0XEEA,0XEEE,0XFF1,0XFF4,0XFF6,0XFF8,0XFFA,0XFFC,0XFFD,0XFFF,0XFFF,0XFFF,0XFFF,0XFFF,0XFFF,0XFFE,0XFFD,0XFFB,0XFF9,0XFF7,0XFF5,0XFF2,0XEEF,0XEEC,0XE
12、E9,0XEE5,0XEE1,0XDDD,0XDD8,0XDD4,0XCCF,0XCCA,0XCC5,0XBBF,0XBBA,0XBB4,0XAAE,0XAA8,0XAA2,0X9CC,0X996,0X990,0X889,0X883,0X880,0X779,0X772,0X6CC,0X666,0X660,0X5AA,0X555,0X44E,0X448,0X443,0X33D,0X338,0X333,0X22E,0X229,0X225,0X220,0X1CC,0X118,0X115,0X111,0X00E,0X00B,0X009,0X007,0X005,0X003,0X002,0X000,0X0
13、00,0X000,0X000,0X000,0X000,0X001,0X002,0X004,0X006,0X008,0X0AA,0X00D,0X110,0X113,0X116,0X1AA,0X11E,0X222,0X227,0X22B,0X330,0X335,0X3AA,0X440,0X445,0X4CC,0X551,0X557,0X55D,0X663,0X669,0X6FF,0X776,0X7CC;/以上上的数组组用于存存放正弦弦表,在在定义数数组时,前面应应该加上上 coonstt,/使数数组存放放于ROOM 中中,而不不至于占占用太多多的RAAMunsiigneed ccharr i;un
14、siigneed ccharr j;unsiigneed ccharr n;/I22C初始始化子程程序voidd i22cinnt()SSPCCON = 00X088;/初始始化SSSPCOON 寄寄存器TRISSC3 =1;/设置置SCLL 为输输入口TRISSC4 =1;/设置置SDAA 为输输入口TRISSA4 = 00;SSPSSTATT=0XX80;/初始始化SSSPSTTAT 寄存器器SSPAADD=0X002;/设定定I2C时钟钟频率SSPCCON22=0XX00;/初始始化SSSPCOON2 寄存器器di();/关闭闭总中断断SSPIIF=00;/清SSPP 中断断标志RA4=
15、0;/关掉掉74HHC1665 的的移位时时钟使能能,以免免74HHC1665/移位位数据输输出与II2C总线线的数据据线发生生冲突SSPEEN=11;/SSSP模模块使能能/I22C总线线输出数数据子程程序voidd i22couut()SEN=1;/产生生I2C启动动信号for(n=00 x022;-nn;)conttinuue;/给予予一定的的延时,保证启启动do RSENN=1;/产生生I2C启动动信号whiile(SSPPIF=0);/如果果没能启启动,则则反复启启动,直直到启动动为止SSPIIF=00;/SSSPIIF 标标志清00SSPBBUF=0X558;/II2C总线线发送地
16、地址字节节do ;whiile(SSPPIF=0);/等待待地址发发送完毕毕SSPIIF=00;/SSSPIIF 标标志清00SSPBBUF=0X001;/II2C总线线发送命命令字节节do ;whiile(SSPPIF=0);/等待待命令发发送完毕毕SSPIIF=00;/SSSPIIF 标标志清00SSPBBUF=j;/II2C总线线发送数数据字节节do ;whiile(SSPPIF=0);/等待待数据发发送完毕毕SSPIIF=00;/SSSPIIF 标标志清00PEN=1;/产生生停止条条件do ;whiile(SSPPIF=0);/等待待停止条条件产生生SSPIIF=00;/SSSPII
17、F 标标志清00/主程程序mainn ()i2ciint();/II2C初始始化whille(11)for(i=00 x000;i=1277;+ii)j=taableei;/从数数组中得得到需要要传输的的数据量量i2coout();/利用用I2C总线线方式送送出数据据(4)简简易频率率计模块块程序#inccludde #inccludde #inccludde bankk3 iint cp11z111;/定义义一个数数组,用用于存放放各次的的捕捉值值unioon ccp1int y1;unsiigneed ccharr cpp1e2;cp11u; /定义一一个共用用体unsiigneed cc
18、harr COOUNTTW,COUUNT; /测量脉脉冲个数数寄存器器unsiigneed ccharr COOUNTTER,datta,k;unsiigneed ccharr s114;/定义义4个显显示缓冲冲数组unsiigneed ccharr s224;unsiigneed ccharr s334;unsiigneed ccharr s444;int T5,uoo;doubble RE55;doubble puaad5;/CCCP 模模块工作作于捕捉捉方式初初始化子子程序voidd cccpinnt( )CCP11CONN=0XX05;/首先先设置CCCP11 捕捉捉每个脉脉冲的上上升
19、沿T1COON=00X000;/关闭闭TMRR1 震震荡器PEIEE=1;/外围围中断允允许(此时总总中断关关闭)CCP11IE=1;/允许许CCPP1 中中断TRISSC2=1;/设置置RC22 为输输入/系统统其它部部分初始始化子程程序voidd innitiial( )COUNNT=00X0BB;/为保保证测试试精度,测试55 个脉脉冲的参参数后/求平平均值,每个脉脉冲都要要捕捉其其上升、下降沿沿,故需需要有111 次次中断/中断断服务程程序voidd innterrruppt ccp1iint(voiid)CCP11IF=0;/清除除中断标标志cp1uu.cpp1e0=CCPPR1LL
20、;cp1uu.cpp1e1=CCPPR1HH;cp1zzdaata=cpp1u.y1;/存储储1 次捕捕捉值CCP11CONN=CCCP1CCON0X001; /把CCPP1 模模块改变变成捕捉捉相反的的脉冲沿沿dataa+;COUNNT-;/周期期处理子子程序voidd PEERIOOD( )T5=ccp1zz100-ccp1zz0;/求得得5 个周周期的值值RE5=(dooublle)TT5;/强制制转换成成双精度度数RE5=RE55/5;/求得得平均周周期,单单位为s/频率率处理子子程序voidd FRREQUUENCCY( )PERIIOD( );/先求求周期RE5=100000000
21、/RRE5;/周期期值求倒倒数,再再乘以1100000000,得频频率,单单位为HHz/脉宽宽处理子子程序voidd PUULSEE( )int pu;for(datta=00,puaad5=0;datta=9;datta+) pu=ccp1zzdaata+1-cp11zddataa;puadd5=(douublee)puu+puuad55;dataa=daata+2; /求得5 个脉宽宽的和值值RE5=puaad5/5; /求得平平均脉宽宽/占空空比处理理子程序序voidd OCCCUPPATIIONAAL( )PULSSE( );/先求求脉宽puadd5=RRE5;/暂存存脉宽值值PERI
22、IOD();/再求求周期RE5=puaad5/RE55;/求得得占空比比preccisiion(RE55) /为为了保证证小数点点的精度度,对RRE5进进行处理理k=5;if(RRE51)RE5=RE55*10000; /若RE551,则乘以以1 0000,保证小小数点的的精度k=0 xx00;elsee iff(REE5110)RE5=RE55*10000; /若RE55100,则乘乘以1 0000,保证证小数点点的精度度k=0 xx00;elsee iff(REE51100)RE5=RE55*1000; /若RE551000,则则乘以1100,保证小小数点的的精度k=0 xx01;else
23、e iff(REE5110000)RE5=RE55*100; /若RE5510000,则乘以以10,保保证小数数点的精精度k=0 xx02;elsee REE5=RRE5 ;/主程程序mainn( )ccpiint();/CCCP模模块工作作于捕捉捉方式初初始化inittiall();/系统统其它部部分初始始化dataa=0 xx00;/存储储数组指指针赋初初值TMR11H=00;TMR11L=00;/定时时器1 清0CCP11IF=0;/清除除CCPP1 的的中断标标志,以以免中断断一打开开就进入入/中断断ei( );/中断断允许TMR11ON=1;/定时时器1 开whille(11)if(
24、CCOUNNT=0)bbreaak; /等待中中断次数数结束di();/禁止止中断TMR11ON=0;/关闭闭定时器器/进行行下面的的数值转转换和显显示工作作PERIIOD();/进行行周期处处理preccisiion(RE55);uo=(intt)REE5;spriintff(s11,%4d,uo);/把周周期数据据转换成成4 位ASIII 码码,且放放入数组组S中FREQQUENNCY();/进行行频率处处理preccisiion(RE55);uo=(intt)REE5;spriintff(s22,%4d,uo);/把频频率数据据转换成成4 位ASIII 码码,且放放入数组组S中OCCUU
25、PATTIONNAL();/进行行占空比比处理preccisiion(RE55);uo=(intt)REE5;spriintff(s22,%4d,uo);/把占占空比数数据转换换成4 位ASIII 码码,且放放入数组组S中PULSSE();/进行行脉宽处处理preccisiion(RE55);uo=(intt)REE5;spriintff(s22,%4d,uo);/把脉脉宽数据据转换成成4 位ASIII 码码,且放放入数组组S中(5)交交流电压压测量模模块程序序#inccludde #inccludde #inccludde uunioonaddress intty1; unssignned
26、chaaraddre2; addressultt;/定义义一个共共用体 bannk3iintrre440;/定义义存放AA/D转转换结果果的数组组,在bbankk3中 unssignned chaar kk,datta;/定义义几个通通用寄存存器 douubleesquu,squuad;/平方方寄存器器和平方方和寄存存器,ssqu又又通用为为存储其其它数值值 inttuo; bannk1uunsiigneed ccharrs44;/此数数组用于于存储需需要显示示的字符符的ASSII码码 /AA/D转转换初始始化子程程序 voiidaddiniitiaal() ADCCON00=0 xx41;/
27、选择择A/DD通道为为RA00,且打打开A/D转换换器 /在工工作状态态,使AA/D转转换时钟钟为8TToscc ADDCONN1=00X8EE;/转换换结果右右移,及及ADRRESHH寄存器器的高66位为00 /把RA00口设置置为模拟拟量输入入方式 ADIIE=11;/AA/D转转换中断断允许 PEIIE=11;/外围围中断允允许 TRIISA00=1;/设置置RA00为输入入方式 /系统其其它初始始化子程程序 voiidinnitiial() CCCP2IIE=00;/禁止止CCPP中断 SSPPIE=0;/禁止止SSPP中断 CCPP2COON=00X0BB;/初始始化CCCP2CCON,CCPP2为特特别事件件触发方方式 CCPPR2HH=0XX01; CCPPR2LL=0XXF4;/初始始化CCCPR22寄存器器,设置置采样间间隔5000 s,/一个个周期内内电压采采40个点点 /中断服服务程序序 voiidinnterrrupptaddintt(vooid) CCPP2IFF=0; ADIIF=00;/清除除中断标标志 adrresuult.adrre00=AADREESL; adrresuu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水厂管理案例分享会
- 2026湖南永州市双牌县融媒体中心(双牌县广播电视台)招聘1人备考题库附参考答案详解(轻巧夺冠)
- 2026汉江水利水电(集团)有限责任公司及所属单位招聘91人备考题库(管理与专业技术岗位)附答案详解(模拟题)
- 2026浙江杭州电子科技大学招聘(劳务派遣)14人备考题库及参考答案详解【培优b卷】
- 精神分裂症特殊症状的护理
- 2026春季建信基金管理有限责任公司校园招聘2人备考题库及参考答案详解【典型题】
- 2026新疆和田墨玉县鑫玉经济开发有限责任公司招聘8人备考题库含答案详解(考试直接用)
- 绿色食品生产与管理
- 工程设计质量管理与监督实施措施
- 汽车销售线上销售平台设计方案
- 养生馆公司章程标准文本范例
- 地下车库消防系统施工方案
- 山东港口集团招聘笔试题
- 螺蛳粉行业技术环境分析报告
- 实物期权理论视角下汽车产业并购的价值评估与策略优化研究
- 2024北师大版七年级生物上册期末复习全册必背知识清单
- (新教材)2026年人教版一年级下册数学 第二单元 20以内的退位减法 整 理和复习 课件
- 2025新华保险总部校园招聘笔试历年参考题库附带答案详解
- 八年级数学人教版下册第十九章《二次根式》单元测试卷(含答案)
- 施工现场安全、文明考核管理办法
- 新型能源体系建设形势和展望-
评论
0/150
提交评论