基于C8051F单片机的恒流源的设计.docx
- 文档编号:15579960
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:16
- 大小:260.74KB
基于C8051F单片机的恒流源的设计.docx
《基于C8051F单片机的恒流源的设计.docx》由会员分享,可在线阅读,更多相关《基于C8051F单片机的恒流源的设计.docx(16页珍藏版)》请在冰点文库上搜索。
基于C8051F单片机的恒流源的设计
基于C8051F单片机的恒流源的设计
摘要
由于恒流源的设计多种多样,通常采用AT89C52单片机和AD来实现,要实现其高分辨率,电路设计又趋于复杂,所以本设计采用LM358运放和C8051F设计,其性能稳定`,分辨率高,电路简单的特点。
关键词:
电流源恒流源数控电源电源技术
Ⅰ
Abstract
Sincethedesignofavarietyofcurrentsource,usuallyachievedAT89C52microcontrollerandAD,toachieveitshighresolution,circuitdesignhasbecomemorecomplex,sothedesignusesaLM358opampandC8051Fdesign,itsperformanceisstable`,resolutionrate,thecharacteristicsofthecircuitissimple.
Keywords:
LM358C8051FLCD1602AD/DA
Ⅱ
摘要I
AbstractⅡ
1、设计指标1
2、方案设计1
恒流源的设计1
、C8051F的选择2
显示方案的设计3
2.3.1液晶16023
3、系统的电路图4
4、系统框图4
5、经验体会5
参考文献5
1、设计指标
(1).输出:
电流输出:
0~20mA;
(2).全量程分辨率:
电流:
;
(3).精确度:
电流输出:
满量程的%;
(4).输出显示:
液晶或LED显示;
(5).输出控制:
采用上,下键调节输出;
2、方案的设计
恒流源设计
(1)、LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。
它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。
(2)、LM358电路是电流负反馈,给后面三极管的发射极一个恒定的电压,及Ue点的电压等于Vin,而Ie=Ve/R2,所以其发射极电流Ie=Vin/R2,由于三极管集工作在放大状态,及电流Ic=Ie,所以其电流Iout=Ic也是恒定的,即构成了恒流源,随着输入端电压的改变电流也随着改变。
公式:
Iout=Vin/R2
出于本设计I电流的分辨率是,所以Vin采用的是C8051F的12位AD提供的电压,其电压变化范围在0~之间,为了方便计算这里采用是0~3V,由于Iout=Vin/R1,输出电流范围0~20mA,这里的三极管采用的是C9014其,β=50,Ie=(1+β)Ib,所以
Ib=Ie/(1+β)
Vout=Ue++Ib*R2,且Vout 假设输入Vin=3V,电流Iout=20mA, R1=3*1000/20=150Ω, Ib=Ie(1+β)=20/51= 1 Vout=3++*R2<5V R2<=Ω 这里取R2=3KΩ 电阻R3的计算: 因为R3=U3/Ic,当Uc点电压最小时U3电压最大,当三极管NPN饱和时Uce两端的压差最小为,所以 Uc=Ue+=3+= 所以U3=Vcc-Uc=,R3<=85Ω. R3阻值在0~85Ω 图1 、C8051F芯片的介绍 (1)、C8051F020是混合信号型单片机,在片内集成了一个100Ksps、12位分辨率的逐次逼近寄存器型ADC。 ADC0的最高转换速度为100ksps,其转换时钟来源于系统时钟的分频,分频值保存在寄存器ADC0CF的ADCSC位。 其包含了9个输入通道,一个可编程增益放大器(PGA0)和一个100Ksps、12位分辨率的逐次逼近寄存器型ADC,其中集成了跟踪保持电路和可编程窗口检测器。 其基 2 准点电压源来自于C8051F020的内部VREF端口提供的,保证了其ADC的基准电压,位AD的准确转换提供了保障。 (2)、C8051F020内部有两个12位电压方式数/模转换器(DAC)。 其输出摆幅均为0V到(VREF-1LSB),对应输入码范围是0X000~0XFFF。 对寄存器DAC0CN和DAC1CN控制使能或禁止DAC0和DAC1。 每个DAC的电压基准由VREF引脚提供。 保证了DAC工作的稳定性。 、显示方案的设计 2.3.1液晶1602 (1)液晶原理: 是利用液晶的物理特性,通过电压对显示区域进行控制,有电就有显示,这样既可以显示图形。 液晶具有厚度薄,适合于大规模集成电路直接驱动,易于实现全彩色显示的特点,目前被广泛应用在电脑、数码相机、PDA移动通信等领域。 (2)1602可以显示内部常用字符(包括阿拉伯数字,英文字母大小写,常用符号和日文假名等),也可以显示自定义字符(单或多个字符组成的简单汉字,符号,图案等,最多可以产生8个自定义字符) 图2 (3)引脚接口说明表: 第1脚: VSS为地电源。 第2脚: VDD接5V正电源。 3 第3脚: VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚: RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚: R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。 当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚: E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚: D0~D7为8位双向数据线。 第15脚: 背光源正极。 第16脚: 背光源负极。 (4)由于用数码管显示电路较复杂,而1602液晶比较简单,所以选用液晶1602; 3、系统框图 如附件A 4、系统框图 图3 本设计CPU采用的是C8051F020单片机,由于电流的分辨率为,所以A/D 4 和D/A采用的均为12位的。 电源采用5V电压供电,而单片机需要的电压,用LM1117来降压,为其提供稳定的工作电压。 如果按一下按键加,CPU会得到信号,使D/A输出的电压增加△U,通过恒流源电路使其电流增加△I,因为△I=,所以 △Vin=3/(20/)= 用A/D进行采样,再通过CPU处理,使增加的电流在LCD上显示,如果按键减按下,会使电流减少△I,并在液晶上显示。 5、经验体会: 1)、在此次的恒流源设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯片的工作原理和其具体的使用方法,还有程序编程及调试都有很大的提高。 2)、在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如仿真的连接示意图中,往往没有接高电平的管脚以及接低电平的管脚,因此在实际的电路连接中往往容易遗漏 4)、在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的,也应注重软硬件的结合。 5 【参考文献】 [1]数字电子技术基础简明教程(第三版) ·清华大学电子学教育组-编 ·余孟尝-主编 [2]模拟电子技术基础简明教程(第三版) ·清华大学电子学教研组-编 ·杨素行-主编 [3]电子线路CAD使用教程(第三版) ·潘永雄沙河-编著 [4]C8051F单片机原理及应用 ·鲍可进-主编 A附录: 系统电路原理图 5 图4 B附录: C语言程序流程图 6 7 #include<8051f> #include<> #defineucharunsignedchar #defineuintunsignedint sfr16ADC0=0xbe; sfr16DAC0=0xd2; bitINTBIT; uintkey,tempI; sbitrs=P3^0; sbitlcden=P3^1; uintshiwei,gewei,fenwei,baifen; //voidAD_isr(); ucharstr0[]={"I: "}; uchartongdao[3]={0x00,0x01,0x02}; voidchangeI(uinttemp); voiddelay(unsignedintz) { unsignedintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } voidDA_init() { REF0CN=0X03; DAC0CN|=0X80; } voidwrite_date(uchardate) { //rw=0; rs=1; lcden=0; P5=date; delay (1); lcden=1; delay (1); lcden=0; } //向1602写指令 voidwrite_com(ucharcom) { //rw=0; rs=0; lcden=0; P5=com; delay (1); lcden=1; delay (1); lcden=0; } voidwrite_mxc(ucharhang,uchar*icc,ucharnum) { uinti; write_com(128+3+hang*64); for(i=0;i {write_date(*icc); icc++; delay (2); } delay(6); } voidLCDinit() { write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_mxc(0,str0,9); } voidAD_init() { ADC0CN=0X84; REF0CN=0X03; ADC0CF=0X50; AMX0CF=0X00; EIE2=0X02; } voidtimer3_init() { TMR3CN=0X00; TMR3RLH=0X12; TMR3RLL=0X34; TMR3H=0XFF; TMR3L=0XFF; TMR3CN=0X04; } voidinit() { WDTCN=0XDE; WDTCN=0XAD; XBR2=0X40; P74OUT=0XFF; P1MDIN=0XFF; EA=1; AD_init(); DA_init(); timer3_init(); } voidmain() { //unsignedchari; init(); LCDinit(); DAC0=1; delay(6000); while (1) { AMX0SL=tongdao[0];//选择通道0 if(INTBIT==1) { TMR3CN=0XFB; tempI=ADC0; P6=ADC0H; P7=ADC0L; changeI(tempI/2); INTBIT=0; } if(P1==0xfe) { delay(10); if(P1==0XFE) //P5=0XAA; key=key+9; if(key>=3200) key=1; DAC0=key; //DAC0L=DAC0L; //DAC0H=DAC0H; while(P1==0XFE); delay(10); } if(P1==0xfd) { delay(10); if(P1==0xfd) //P5=0XFA; key=key-9; if(key<9) key=3200; DAC0=key; //DAC0L=DAC0L; //DAC0H=DAC0H; while(P1==0XFD); delay(10); } TMR3CN=0X04; delay(100); } } voidAD_isr()interrupt15 { AD0INT=0; INTBIT=1; } voidchangeI(uinttemp) { shiwei=temp/1000; gewei=(temp%1000)/100; fenwei=(temp%100)/10; baifen=temp%10; str0[2]=shiwei+'0'; str0[3]=gewei+'0'; str0[5]=fenwei+'0'; str0[6]=baifen+'0'; //write_com(0x38); //write_com(0x01); //write_mxc(0,str0,9); LCDinit(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 C8051F 单片机 恒流源 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)