



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章 交流电压测量11.3.2 程序清单该程序已在模板上调试通过,可作读者的参考。有关显示部分请读者参考本书相关章节,有关A/D转换的详细设置请参考前面章节。#include#include #include /该程序用于测电网的交流电压有效值,最后的结果将在4个LED上显示,保留/1位小数。/为了保证调试时数据运算的精确性,需要将PICC的double型数据选成32位unionadresinty1;unsigned charadre2;adresult;/定义一个共用体bank3intre40;/定义存放A/D转换结果的数组,在bank3中unsigned char k,data;/定义几个通用寄存器doublesqu ,squad;/平方寄存器和平方和寄存器,squ又通用为存储其/它数值intuo;bank1unsigned chars4;/此数组用于存储需要显示的字符的ASII码const chartable10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90;/不带小数点的显示段码表const char table010=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/带小数点的显示段码表/A/D转换初始化子程序voidadinitial()ADCON0=0x41;/选择A/D通道为RA0,且打开A/D转换器 /在工作状态,使A/D转换时钟为8ToscADCON1=0X8E;/转换结果右移,及ADRESH寄存器的高6位为0 /把RA0口设置为模拟量输入方式ADIE=1;/A/D转换中断允许PEIE=1;/外围中断允许TRISA0=1;/设置RA0为输入方式/spi方式显示初始化子程序void SPIINIT()PIR1=0;SSPCON=0x30;SSPSTAT=0xC0;/设置SPI的控制方式,允许SSP方式,并且时钟下降沿发送,与74HC595,当其/SCLK从低到高跳变时,串行输入寄存器的特点相对应TRISC=0xD7;/SDO引脚为输出,SCK引脚为输出TRISA5=0;/RA5引脚设置为输出,以输出显示锁存信号/系统其它初始化子程序voidinitial()CCP2IE=0;/禁止CCP中断SSPIE=0;/禁止SSP中断CCP2CON=0X0B;/初始化CCP2CON,CCP2为特别事件触发方式CCPR2H=0X01;CCPR2L=0XF4;/初始化CCPR2寄存器,设置采样间隔500 s,/一个周期内电压采40个点/中断服务程序voidinterruptadint(void)CCP2IF=0;ADIF=0;/清除中断标志adresult.adre0=ADRESL;adresult.adre1=ADRESH;/读取并存储A/D转换结果,A/D转换的结果 /通过共用体的形式放入了变量y1中 rek=adresult.y1;/1次A/D转换的结果存入数组k+;/数组访问指针加1/SPI传送数据子程序void SPILED(data)SSPBUF=data;/启动发送do ;while(SSPIF=0);SSPIF=0;/主程序main( )adinitial();/A/D转换初始化SPIINIT();/spi方式显示初始化initial();/系统其它初始化while(1)k=0;/数组访问指针赋初值TMR1H=0X00;TMR1L=0X00;/定时器1清0ei();/中断允许T1CON=0X01;/打开定时器1while(1)if(k=40)break;/A/D转换次数达到40,则终止di();/禁止中断for(k=0;k40;k+)rek=rek-0X199;/假设提升电压为2 V,对应十六进制数199H,/则需在采样值的基础上减去该值for(k=0,squad=0;k40;k+)uo=rek;squ=(double)uo;/强制把采得的数据量转换成双精度数,以便运算squ=squ*5/1023;/把每点的数据转换成实际数据squ=squ*squ;/求一点电压的平方squad=squad+squ;/以上求得40点电压的平方和,存于寄存器 squad中squ=squad/40;/求得平均值squ=sqrt(squ);/开平方,求得最后的电压值squ=squ*154.054;/通过变压器的变比和分压电阻分配确定该系数/以上得到了实际电网的电压值squ=squ*10;/为了保证显示的小数点的精度,先对电压值乘以10uo=(int)squ;/强制把U转换成有符号整型量sprintf(s,%4d,uo);/通过sprintf函数把需要显示的电压数据转换成/ASII码,并存于数组S中RA5=0;/准备锁存for(k=0;k4;k+)data=sk;data=data&0X0F;/通过按位相与的形式把ASII码转换成BCD码if(k=2)data=table0data;/因为squ已乘以10,则需在第2位打小数点elsedata=tabledata;/ table0存储带小数点的显示段码, /table存储不带小数点的显示段码SPILED(data);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省驻马店市第十七中学2026届九年级化学第一学期期中调研试题含解析
- 高血压病人护理公开课
- 2026届十堰市重点中学英语九年级第一学期期末调研模拟试题含解析
- 心态培训课程员工培训
- 2026届安徽省宿州地区化学九上期中检测试题含解析
- 2026届安徽六安市叶集区三元中学九年级化学第一学期期中联考模拟试题含解析
- 陕西省西安市蓝田县2026届化学九年级第一学期期中监测模拟试题含解析
- 生产报表数据培训
- 新员工入职培训
- 2026届广东省广州市东环中学英语九上期末复习检测模拟试题含解析
- 建筑施工项目管理平台使用指南
- 全球低空经济2025年技术规范与实施白皮书
- 水泵房巡检流程培训课件
- 东海证券面试题及答案
- 基本药物制度补助资金管理办法
- 2025年建筑工地安全培训考试题库试题及答案
- 2025年陕建集团资料员考试题库
- 2025江西赣州市财政投资运营有限公司招聘笔试历年参考题库附带答案详解
- 2025年人教版新教材数学二年级上册教学计划(含进度表)
- 《雅马哈MG166 调音台使用说明书》
- 2024-2025学年深圳北师大版八年级下学期期末数学复习题《平行四边形》解答题含答案
评论
0/150
提交评论