




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子设计基础期末任务基于单片机的有效值检波器1012 有效值检波器摘要本作品以单片机 STC12C5A60S2 为主控芯片并以此为基础,通过二极管 1N5819实现半波整流,使用单片机内部自带10位AD对整流后的输入信号进行 采样,从而实现对峰值的检测;同时通过运放 LM837 对输入信号进行放大,之 后通过施密特触发器, 将原始信号整形成可被单片机识别的标准脉冲波形, 之后 配合内部计数器(定时器)达到测量其频率的目的;这样,整流和 AD 采样实现 对输入信号峰值的检测;通过放大、整形实现对输入信号频率的检测。AbstractOur system adopts the STC12C5A60S
2、2 as the core processing CMOS chip .On this basis, achieved the half-wave rectifier through diode 5819, use the native 10-bit microcontroller internal AD to sample the rectified input signal , in order to achieve the peak detection; At the same time, use the operation Amp LM837 to amplify the input
3、signal, and then through the Schmitt trigger, the entire formation of the original signal can be recognized by the standard single chip pulse waveform, then with the use of internal counter (timer) ,we can measure the frequency ; so that rectification and AD Sampling the input signal to achieve the
4、peak detection; through the amplification, shaping to achieve the detection of the input signal frequency.关键字: 半波整流,运放, AD 采样,定时,计数一、 理论分析本文要求输入交流信号,通过电路测量其峰值,频率,有效值以及平均值, 因为输入的交流信号为模拟信号,而一般处理数据使用的主控芯片单片机处理的 是数字信号,所以我们选择使用数模转换器 AD(Analog to Digital Converter) 将输入的模拟信号转换为数字信号,并进行采样;由于要求输入交流信号电压峰 峰值Vp
5、p为50mV10V,所以如果我们采用AD为8位,则最小采样精度为:一 :/.,因此会产生78.4%的误差,并且题目要求输入交流信号的频率范围为40Hz50kHz,所以为了保证对高频率信号的单周期内采样个数,我们需要选择尽量高速度的AD ;因此我们选用使用单片机 STC12C5A60S2其内部自带AD为8路10位最高 速度可达到250KHz所以我们可以将最小采样精度缩小到 并且在输入交流信号频率最大时(50KHZ在单个周期内可采集5个点,因此可 保证测量精度。由于该ADR能接受05V勺模拟信号输入,所以当我们直接输入一个双极性信 号时可能损坏AD,因此当信号进入A龙前我们要进行半波整流,为此我们
6、设计了 整流电路,在交流信号通过整流电路输入ADH,由AD实时输出对应模拟信号大小 的二进制数,并存入变量MAX中,随着信号的不断输入MAX中只保存AD输出 过的最大值,这样既可测出输入信号的峰值;由交流信号有效值表达式可知检波器应当首先把输入的瞬时电压平方,然后在一定平均时间内取平均值再开方。即可得到交流信号的有效值,然后通过比较峰值和有 效值的关系即可知道该交流信号的波形;由于要检测交流信号的频率,所以我们使用单片机内部定时器和计数器,而计数器只能由上升沿或是下降沿触发, 所以 我们想通过施密特触发器将输入交流信号变为高低电平,以便检测其频率,而施密特触发器CD4010在常温5V供电下门限
7、电压 . =1.4V骂出濡,而输入交流 信号的峰值最小时为25mV所以不能保证输入信号为正的时候施密特触发器就能 发生跳变,因此我们要对输入交流信号进行放大,为此我们设计了放大电路。方案比较方案一:Vo =CR1R3K2一 RM此方案只能检测已知、并且固定频率下的交流信号的有效值;无法检测频率方案二:此方案是先将一个5V的直流信号叠加到待测的交流信号上,使其输入到 运放LM324的信号都为正,然后通过运放放大 0.5倍,从而使信号在AD的 接受范围内(0-5V),LM324的正常工作时的供电要求为12V。相比于方案一此方案可以在未知输入信号的极性、周期、波形的条件下测得其峰值,但-12V的电压
8、的产生比较困难。方案三:此方案我们使用整流二极管5819实现半波整流,但通过此电路输出波形会 出现一个负电压方案四:我们在方案三的基础上在二极管后加了一个上拉电阻,实现最大程度的消 除输入波形的负电压,使其在单片机 STC12C5A60S2内部AD的可接收信 号范围内(0-5V)。输入信号经过整流后进入 AD,由AD输出10位数字信 号,再有单片机进行处理,得出信号的峰值、有效值、及平均值;lOOkOOPAMP 3T BASIC它号湮输入U110kQR4 r-JWlOOkQU2U4gSCiHMirTT TRIGGER:此电路为本方案检测输入信号频率的核心电路,信号通过由三个运放 LM837组成
9、的运放电路后放大100倍,然后输入施密特触发器使其波形变为 高低电平,将此波形输入到单片机主控芯片,利用单片机内部的计数器和定 时器完成对频率的测量综述:经实际测试发现, 方案一对频率的测量无法改进; 方案二中的运放LM324的正负12V供电设计比较有难度;方案三输出波形存在负值,并且超 出单片机内部AD可接受范围,直接输入会损坏 AD方案四针对方案一二三 存在的问题加以改进可实现高精度,宽范围的信号测量。三、软硬件设计3.1系统原理框图:3.1系统总体结构图3.1整流电路设计:整流电路部分使用整流二极管5819加10K上拉电阻构成,从而实现半波整流, 原理图如下:交流信号整流二极管IN581
10、9电路图如下:10K上拉电阻整流电路结构图3.2放大电路设计:放大部分采用运放LM837构成放大100倍电路,位于图下方由5V电源供电的 运放可以产生一个2.5V的直流电压,将此2.5V的直流电压输入到第一级运放后, 会使输入的交流信号上偏2.5V,变为0-5V,再经过100000pF的电容C3滤掉被 放大的噪声以及2.5V直流后,变为-2.5 +2.5的交流信号,之后进入二级放大; 如图所示第二级运放在加入+2.5V直流电压后输出为05V的交流信号,至此外 加交流信号已被放大100倍;在外加交流信号被放大100倍之后进入施密特触发器CD40106该触发器在常温5V供电下门限电压讥严=1.4V
11、;%:卄-丽,输出高电 平%曲,低电平%七皿,此部分电路输出即为这个高低电平 原理图:电路图如下:信号源輸人Cl -yJJnFOPAMP 3T BASIC-WrtOOpFR3 :ODkQ:::R4 :10DkOC4Tl-IWnFU412:SCHMITT TRIGGERAMP- 3TBASICC3Tl-4JnFisQ1 R 1. leF -J a a a a a a 500,丸.I*1-lh一GlililiaHEGBEa.QOPAMPST VIRTUAL10 C&ths3.3单片机电路:采用STC12C5A60S单片机,作为整个系统的控制器,控制各个模块协调工作。运用其内部集成的一个 AD作为数
12、模转换器阿lai*SITrml_-FIKX-:cTIXTHCUZOUTiAJKa?! 0VEADClrFl 1PO.WADOEC1-ADC1T1.2PO.LADICCW ADC3 P1 3P0.3AD2裁 C.iCPlADC-l.PI 4POJ.ADiMOSrADC5.T1.5PO 4-.W4MSOADCOl.dPO 5/AD5SClJGADCJiPL?P0.6aAD!?XAG-ZcfAfS口 D AgT Flz HE FOE Bolrr Ez n.7EtHJT no5 2Z 饶 口 OUT nrEEl宗IFTTI3.5软件设计:定时0.05s,定时20次幵始定时器1输出计数 器的计数由施密特
13、k整形后的脉冲整流后的信号将采样值存 入最大值中(最大值定 时清零)输出最大值详细代码见附表二。四、参数计算(1) 峰值Amp=MaxAD 采样值(2)-,为AD在信号的一个周期内采集的电压值(3)平均值:(4)频率:定时1s,脉冲计数五、测试记录表一:输入信号在固定峰值下的频率测量输入信 号频率(Hz)测量信号频率(Hz)相对误差(%)绝对误差(%)方波正弦波三角波方波正弦波三角波方波正弦波三角波4038383855522250494849242121605959591.671.671.67111706969691.431.431.4311180808080000000909190911.1
14、11.111.111011001011011011111112001931931933.53.53.57773002942942942226664003953953951.251.251.255555004874874872.62.62.61313136005885885882221212127006906906901.431.431.431010108007917917911.1251.1251.1259999008928928920.890.890.8988810009939939930.70.70.777720001932193219323.43.43.46868683000294429
15、4429441.871.871.8756565640003956395639561.11.11.144444450004968496849680.640.640.6432323260005980598059800.330.330.3320202070006900690069001.431.431.4310010010080007912791279121.11.11.188888890008924892489240.840.840.8476767610K9936993699360.640.640.6464646415K1490414904149040.640.640.6496969620K198
16、7219872198720.640.640.6412812812825K2493224932249320.270.270.2768686830K2990029900299000.330.330.3310010010035K3486834868348680.380.380.3813213213240K3992839928399280.180.180.1872727245K4489644896448960.20.20.210410410450K4986449864498640.270.270.27136136136表二:输入信号在不同幅值下的频率测量输入信 号频率(Hz)输入信 号峰值(V)测量信
17、号频率(Hz)相对误差(%)方波正弦波三角波方波正弦波三角波400.023838385550.053838385550.538383855553838385554000.023953953951.251.251.250.053953953951.251.251.250.53953953951.251.251.2553953953951.251.251.2540000.023956395639561.11.11.10.053956395639561.11.11.10.53956395639561.11.11.153956395639561.11.11.140K0.0239928396523992
18、80.180.870.180.053992839928399280.180.180.180.53992839928399280.180.180.1853992839928399280.180.180.18从上述表格可看出,在改变待测信号峰值的条件下,所测信号频率基本不变表三:输入信号在固定频率(5kHz)下的峰值测量输入信号 峰值(V)测量信号峰值(mV相对误差%绝对误差正弦方波三角正弦方波三角正弦方波三角0.021271471275356355351071271070.03127156127323.3420323.297126970.04127166127217.5315217.587126
19、870.051271761271542521541271911270.06127191127111.6218.3111.667131670.0712720012781.4185.781.457130570.0812721512758.75168.7558.7547135470.0912722012741.1144.441.137130370.10132230132321303232130320.2015633815622692244138440.3022045022026502680150800.403185433189.5369.582144820.5040364140118.828.219
20、.894141990.6049573949017.623.222.41061391100.706328186279.716.81168618770.807209067151013.310.680106850.9080899480310.210.410.79294971.0090110828969.98.210.499821041.501450148914503.30.733.35011502.002053247920532.621.052.655321532.502499296925080.0418.760.32146983.003096344330773.28.12.5796243773.5
21、03547364035471.3441.3447140474.003998412040130.0530.332120134.504463460144830.822.240.3837101175.004939496850121.220.640.24613212表四:输入信号在不同频率下的峰值测量输入信号峰值(V)输入信号频率(Hz)测量信号峰值(mV相对误差()正弦方波三角正弦方波三角0.02401271271276356356354001271371276354856354K13212713256058556040K1321421375606105850.2401561611562219.52
22、24001563331562266.5224K1563431562271.52240K186343176771.5122402048209720532.44.852.654002048246920582.423.452.94K2048245920532.422.952.6540K2038249418321.924.78.45404929501249781.420.240.444004924501249781.520.240.444K4939501249731.220.240.5440K4904501247381.920.241.24从上述表格可看出,在改变待测信号频率的条件下,所测信号峰值基本
23、不变六、测试结果分析由表一和表二可看出,在测量输入频率在40Hz-50KHz之间变化的交流信 号的频率时,正弦波、方波、三角波的误差都在 3%以内,而且输入交流信 号的峰值在 0.025-5V 之间变化时对频率的测量基本无影响。由表三可知, 当输入交流信号的峰值在 1-5V 之间变化时, 测量误差都可 保证在 10%以内,此测量结果并未消除二极管导通压降造成的误差,此误差 可通过编程进行修正;当输入交流信号的峰值小于1V时,测量误差较大,此误差源于电路设计存在缺陷, 无法通过编程修正; 相比于方波, 正弦波和 三角波的峰值测量误差更小; 由表四可知在改变待测信号频率的条件下,所测信号峰值基本不
24、变。七、测试仪器函数信号发生器,示波器附录一:经整流电路后的交流信号波形:Tek JLTigPM Pos: -3.200.us探头1XVoltage带宽限制 S 200MHzCH2耦合MSB反相CH1 2.00VCH2 2.00VM IO.OjjsCH11 -ln-iV21-May-11 13:54543660kHzTek JLTrigdM Pos: -3.200jusCH2耦合隊头1X VoltageL R丄 A丄丄上 A A丄 R R h丄丄丄CH2 2.00V带宽限制B 200MHz直;CH1 2.00V反相8 lbw CHi / -ITrnF21-May-11 13:5254.3353
25、kHzIm1 丄i A人I丄JLCH1 2.00VCH2 2.00V探头1X Voltage带宽限制 S 200MHzM 250jusiSHI -l21-May-11 1W&38.367Hz反相A CH1 2.00VCH2 2.00V探头1X Voltage带宽限制H 200MHzOfflsCH1 Z-147mV =21-May-11 14:03& 38.390Hz反相TrigJdM Pos: -3.200JU5探头1X Voltage 反相CH2耦合直流带克限制粗调CH1 2.00V CH2 2*00V M 250川$CH1 Z -147mV21-May-11 何開 833.0iMHz经施密
26、特触发器整形后的波形(方波):Tek JLTTigdM Pos: -3.200jusCH2附录二:软件部分代码:#include #include #define FOSC 12000000L#define BAUD 9600 typedef unsigned char BYTE; typedef unsigned int WORD;sbit LCM_E=P2A5;/ 定义接口 sbit LCM_RW=P2A6;sbit LCM_RS=P2A7;sfr ADC_CONTR = 0xBC; sfr ADC_RES = 0xBD;sfr ADC_LOW2 = 0xBE;sfr P1ASF = 0x
27、9D;sfr AUXR = 0x8e;#define ADC_POWER 0x80#define ADC_FLAG 0x10#define ADC_START 0x08#define ADC_SPEEDLL 0x00#define ADC_SPEEDL 0x20#define ADC_SPEEDH 0x40#define ADC_SPEEDHH 0x60#define LCM_Data P0/ 数据接口void InitUart();void SendData(BYTE dat);void Delay(unsigned int n);void IO_ADinit() ;void ADC_Pow
28、er_On() ;void get_ad_result() ;void ADCONVERT() ;void WriteDataLCM(BYTE WDLCM);void WriteCommandLCM(BYTE WCLCM,BuysC);BYTE ReadDataLCM(void);BYTE ReadStatusLCM(void); unsigned int GetADCResult(BYTE ch); void LCMInit(void);void DisplayOneChar(BYTE X, BYTE Y, BYTE DData);void DisplayListChar(BYTE X, B
29、YTE Y, BYTE code *DData); void Delay5Ms(void);void Delay400Ms(void);void Disp_number(unsigned int num,BYTE n);void ShowResult(BYTE ch); unsigned int GetADCResult(BYTE a);unsigned int data_max = 0;unsigned long data_max1,count =0;unsigned int data_change = 150;/0.7Vunsigned char code VP4=Amp:,Freq5=F
30、req:;unsigned int Counter = 0;unsigned int data_last = 0;BYTE ch = 0;unsigned int Frequency = 0;unsigned int nn =0,flag = 0,flag1 = 0,nn1=0;unsigned int PrintFre5 ;unsigned int Print4;unsigned int number4;unsigned int D;void main()unsigned int n=0;Delay400Ms();启动等待,等LCM讲入工作状态LCMInit();/LCM 初始化Delay5
31、Ms();/ 延时片刻(可不要)ET1 = 1;EA=1;InitUart();TMOD = 0x15;/ 均为 16位计数器TH0 = 0x00;TL0 = 0x00;TH1 = 0x3C;TL1 = 0xAF;TCON = 0x50;/T1,T0 均工作, t1 做定时器, t0 做计数器; while(1)ADCONVERT();n+; if(n10000)data_max=0;n=0;void To_interrupt(void)interrupt 3 using 1int i ,j; unsigned int Change1,Print4;unsigned long int Chan
32、ge2;TH1 = 0x3C;TL1 = 0xAF;Counter = Counter+;if(Counter = 20)Frequency = (TH0=2000)Change1 = (Frequency/100)*92; else if (Frequency=200)Change1 = (Frequency/10)*92)/10; else Change1 = (Frequency*97)/100;for( i=0;i=0;i-) if(i0)DisplayOneChar(4-i,0,PrintFrei+48);elseDisplayOneChar(4-i,0,PrintFrei+48);
33、DisplayListChar(5-i,0,Hz);Change2 = data_max*49;Change2 = Change2/10; for(j=0;j=0;j-)if(j0) DisplayOneChar(10-j,0,Printj+48); else DisplayOneChar(10-j,0,Printj+48);DisplayListChar(11-j,0,mV);TH1 = 0x3C;TL1 = 0xAF;TH0 = 0xFF;TL0 = 0xFC;Counter = 0; void IO_ADinit()ADC_CONTR=OxeO; / 设置 P1.0 为输入 AD转换口_
34、nop_(); /ADC_CONTR 需要四个指令延时 _nop_();_nop_();_nop_();void ADC_Power_On() ADC_CONTR|=0x80;_nop_();_nop_();_nop_();_nop_();void get_ad_result()unsigned int q=0,ad_average_result;ADC_RES=0;ADC_LOW2=0;ADC_CONTR|=0x08; while(!(ADC_FLAG&ADC_CONTR) ;ADC_CONTR&=0xE7; ad_average_result=(ADC_RES2)+ADC_LOW2; if
35、(data_max 0; i-)for(j = 200; j 0; j-) ;void WriteDataLCM(BYTE WDLCM)ReadStatusLCM(); / 检测忙 LCM_Data = WDLCM;LCM_E = 0;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; / 若晶振速度太高可以在这后加小的延时LCM_E = 1;LCM_E = 0;void WriteCommandLCM(BYTE WCLCM,BuysC) /Buys为 0 时忽略忙检测if (BuysC) ReadStatusLCM(); / 根据需要检测忙 LCM_Data = WCLCM;L
36、CM_E = 0;LCM_RS = 0;LCM_RW = 0;LCM_E = 1;LCM_E = 0;BYTE ReadDataLCM(void)LCM_E = 0;LCM_RS = 1;LCM_RW = 1;LCM_E = 1;LCM_E = 0; return(LCM_Data);BYTE ReadStatusLCM(void)LCM_Data = 0xFF;LCM_E = 0;LCM_RS = 0; LCM_RW = 1;LCM_E = 1;LCM_E = 0;while (LCM_Data & 0x80) / 检测忙信号 LCM_E=0;LCM_E=1;return(LCM_Data);void LCMInit(void) /LCM 初始化LCM_Data = 0;WriteCommandLCM(0x38,0); / 三次显示模式设置 , 不检测忙信号 Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,0);Delay5Ms();WriteCommandLCM(0x38,1); / 显示模式设置 , 开始要求每次检测忙信号 WriteCommandLCM(0x08,1); / 关闭显示WriteC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年药品管理法试题
- 绿色信贷对长江经济带碳排放的影响研究
- 轧钢企业经营管理方案
- 滨海文旅小镇一期工程可研及市政专项规划项目招标文件
- 2025至2030年中国生产制造系统行业投资前景及策略咨询报告
- 2025至2030年中国独节竿行业投资前景及策略咨询报告
- 2025至2030年中国点式玻璃幕墙爪行业投资前景及策略咨询报告
- 2025至2030年中国渐近滤光片行业投资前景及策略咨询报告
- 2025至2030年中国涂布干式复合机行业投资前景及策略咨询报告
- 2025至2030年中国汽车用活塞行业投资前景及策略咨询报告
- HG+20231-2014化学工业建设项目试车规范
- HG-T 2006-2022 热固性和热塑性粉末涂料
- 急性胰腺炎护理查房课件
- 肺腺癌:CT征象与病理
- 华盛顿英语介绍课件
- 血标本凝血的应急预案
- MOOC 影视鉴赏-扬州大学 中国大学慕课答案
- 环境保护产品技术要求 工业废气吸附净化装置(HJ-T 386-2007)
- 医院7s现场管理培训
- JGJ125-2016 危险房屋鉴定标准
- 口腔门诊纳入定点后医疗保障基金的预测性分析报告
评论
0/150
提交评论