欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    北工大版电子工程设计温控系统第二次实验报告.docx

    • 资源ID:15975325       资源大小:55.89KB        全文页数:25页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    北工大版电子工程设计温控系统第二次实验报告.docx

    1、北工大版电子工程设计温控系统第二次实验报告电子工程设计报告温度测量系统/闭环温度控制系统设计单片机应用电路 3模数转换电路 5数模转换电路 7显示键盘电路 9温度测量程序设计 11程序设计 H遇到的问题及解决方案 18心得体会 19感谢 20参考文献 20附录:原程序 20一单片机应用电路1设计任务与设计要求片选信号:6个地址信号:4个控制信号:RD.WR,ALE,INT0数据总线:AD0AD7 安装:独立电路板结构2电路设计方案1MCS-51系列单片机有众多性能优异的兼容产品、成熟的开发环境、世界 上最大的单片机客户群、高性价比、畅通的供货渠道,是初学者的首选机型。8051 是MCS-51系

    2、列单片机早期产品之一,内建一次性可编程只读存储器(PROM), 只需要很少的外围元件即可组成最小系统。所以我们选择8051作为我们的单片 机2安装结构3电路选择单片机模块P3 口为数据/地址复用端口,为了得到低8位地址,需要设 计数据/地址分离电路。所以设计电路图如下3原理及功能分析(1)74LS373工作原理当三态允许控制端OE为低电平时,Q0Q7为正常逻辑状态,可用来驱动 负载或总线。当OE为高电平时,Q0Q7呈高阻态,即不驱动总线,也不为 总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平 时,Q随数据D而变。当LE为低电平时,D被锁存在已建立的数据电平。 当LE端施密

    3、特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400m Vo(2) 74LS138 Z作原理当一个选通端(E1)为高电平,另两个选通端(/E2)和/(E3)为低电平时, 可将地址端(AO、Al、A2)的二进制编码在Y0至Y7对应的输出端以低电平 译出。比如:A2A1AO=110时,则Y6输出端输出低电平信号。(3) 电路工作原理C8051的P3 口为数据/地址复用端口,为了得到低8位地址,需要数据/地址分离电路。C8051通过A13、A14、A15三口输出信号给74LS138译码器, 经过芯片译码后输出6个片选信号,当输出相应地址时输出相应片选。译码器的 El、E2 口接低,E3 口接

    4、高,7、9两口制空。C8051接收信号后需要数据At也址分离电路,而74LS373锁存器便充当了 这一功能。373从8051的D0D7 口接收到信号后将信号分离,数据信号从锁存 器的Q0Q3 口输出,地址信号从锁存器的D0D7 口输出。2.模数转换电路1设计任务与设计要求输入信号范围:0V+5V分辨率:8bit精度:1LSB转换时间:lms安装:独立电路板结构2电路设计方案1D/A数字量一模拟量转换电路,常用D/A电路的基本原理有电流开关型和 脉宽调制型,其中电流开关型是用数字切换电流开关,产生与电阻网络权电流对 应的电流“和”脉宽调制型是将数字转换为输出脉冲宽度,用积分器将脉冲宽 度转换为与

    5、之对应的电压输岀。DAC0832是8位乘算型电流输出的典型产品,具 有MCU兼容接口,使用方便,价格低,能满足设计要求。所以我们选择DAC0832。2安装结构3电路选择3原理及功能分析(1) ADC0804工作原理ADC0804采用的是逐次比较的方法,逐次比较转换过程与用天平称物重的 方法类似。其方法是将输入信号的电压与一系列的参考电压相比较。第一次与输 入参考电压5V的一半进行比较(即2.5V),如果大于2.5V,则将置1,并保留 2.5V;如果小于2.5V,贝IJ将置0,并舍去2.5Vo第二次将数入参考电压的四分 之一(即1.25V)加到上一次所剩下的值上,将输入电压与这个值进行比较,如

    6、果大于这个值,则将置1,并保留这个值;如果小于这个值,则将置0,并舍去 这次新加上的1.25V。依此类推,每次新加上的值都是上一次所新加的值的一半, 如此比较8次之后,就被确定下来了,此值就是ADC0804的输出。(2) 电路工作原理将Vin ( + )输入的模拟量通过ADC0804转换为数字量,从11到18管脚输 岀。其中Vin ()、AGND、10脚接地。4脚和19脚之间按图示的方法接10KQ 的电阻和150PF的电容,与内部电路配合构成时钟信号的发生电路。片选CS接 单片机的CS1片选,RD、WR分别接单片机的RD和WR信号。(3) 电路主要参数的计算4脚和19脚之间按图示的方法接10K

    7、Q的电阻和150PF的电容,是根据芯 片手册上给的参考电路所确定的。3.数模转换电路1设计任务与设计要求输入范围:00H0FFH 对应输入:-10V+10V 输出阻抗:1000 响应时间:lms 电源供电:+5V, 12V 安装:独立电路板结构2电路设计方案A/D-模拟量一数字量转换电路,常用A / D电路的基本原理有积分型、 逐次比较型、并行比较型。其中积分型是将电圧转换成脉宽信号或频率,山定时 器/计数器获得数字值。逐次比较型是山比较器和DA转换器通过逐次比较逻辑构 成,经n次比较而输出数字值。并行比较型是用多个比较器,仅作一次比较而实 行转换。压频转换型是将模拟信号转换成频率,然后用计数

    8、器将频率转换成数字 量,从理论上讲其分辨率儿乎可以无限增加。ADC0804是8位逐次比较(逐次 逼近)型典型产品,具有MCU兼容接口,使用方便;分辩率和转换速度都能够 满足设计要求,且价格低廉。安装结构3电路选择3原理及功能分析(1) DAC0832 T作原理DAC0832是8位分辨率的D/A转换集成芯片。与微处理器完全兼容。这个 DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中 得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A 转换电路及转换控制电路构成。它有八个恒流源,每个恒流源之间相差2倍。山 D0D7八个地址口相应输出信号给八个恒流源,当

    9、信号为“1”时开关开,从Ioutl 管脚输出给后面电路,当信号为“0”时,接地。(2) 电路工作原理DAC0832 输岀口 Ioutl、2 分别接 NE5532 的 2、3 口,NE5532 的 5 口接模 拟地,电流转成电压,然后电压放大,最后电压平移。DAC0832的Ioutl和电阻输出一电流信号经过运放的虚短虚断变为05V的电压,之后再通过一个负反馈 电路,电压值=,得到一个020V的电压。+5V的电压经过运放后,得到10V 电压。经过负反馈的020V的电压再经过-10V电压平移最终得到-10V+10V的 电压输出。4.显示键盘电路1设计任务与设计要求显示能力:4位7段数码显示,前三位含

    10、小数点 键盘功能:09数字按键及若干功能按键控制 安装:独立电路版安装结构2电路设计方案1基本显示控制方式有静态和动态两种,静态电路考验的是焊接匸艺,动态 电路考验的是程序编写能力。因为我们组比较擅长于程序编写方面,所以我们选 择了动态电路显示控制方式。其中最主要的部件是CH452芯片,基本功能是采用 动态扫描控制方式,4线同步串行接口编程或2线(fC) $行接口编程。动 态显示电路方案:电路简单,成本低,控制程序复杂,适用于显示位数较多的场 合。矩阵键盘电路方案:按键较多时,成本低,控制程序较直读电路复朵,适用 于显示位数较多的场合。2安装结构设计电路如下:5.温度测量程序设计1设计任务与设

    11、计要求搭建测温硬件环境设il数据数据采集数据处理数据显示程序完成温度测量和显示工作温度测量显示误差:2 设计方案总体功能描述初始化启动A/D转换并读取结果对A/D转换结果进行处理得到 显示温度将显示温度转换为显示段码数据将显示段码数据送显示电路进行显示 延时1秒钟,开始下一次测温过程1、数组table 1=0xC0.0xF9.0xA4.0xB0,0x99.0x92,0x82,0xF8.0x80,0x90;一维数组,显示的段码表,从0到9 table2=0J,2,3:A4,5,6,7B;&9CDTE ;自己设泄的二维数组,用于配合读取键值的程序,使得键盘和输入对应。送到AD转换中的数值从AD转换

    12、中读取的数值送给第一个数码管的数,读取的温度的十位 送给第二个数码管的数,读取的温度的个位送给第三个数码管的数,并初始化2,输入的温度的十位 送给第四个数码管的数,并初始化5,输入的温度的个位 从键盘读取的用于控制的数1全局变量renumber 1r_number2DP_numberlDP_number2DP_numbcr3=2DP_number4=5DP_number5=0DP_number6从键盘读取的用于输入数据的数DP_number7=0从键盘读取的用于检测是否停止控温的数 coop=0 控温监测变量 t=0 输入温度检测变量 一、 子程序主函数1、void main(void)Ini

    13、t_Dcvice();while( 1)INTR5:;Read();displayO;K_intl();if(t= 1)KJnt20;t=0;goto INTR5:if(coop=l)while(l)Read();T_change();displayO;K_int3();if(DP_number7=,D,)DP_number7=0;coop=0; if(coop=0)control=0x80;goto INTR6;INTR6:;主函数,用于实现框图中的功能,按照框图的逻借编写,这里不再赘述2、 void display(void) 显示函数DP l=table 1 DP_number 1;DP

    14、2=table 1 DP_number2;DP3=tablel DP_nuinber3;DP4=tablel DP_number4;即分别把要送给四个数码管的数,通过iablcl表的翻译,送到每个数码管中。3、 void delay(void) 延时函数unsigned int i; for(i=0;iTIMER;卄 i);虽然设置了延时函数,但对其它模块的具体作用不是很淸楚.感觉没有存在必要,但还是对 其进行了保留,其在读取温度值的时候还是有一定的作用的。4、 void KJntl(void) 键盘控制信息输入函数 unsigned char l_val,r_valj_statejempxo

    15、nt,xx;int key;while(l)key=0x0004;for(x=l ;x5;x+,key+)c=XBYTEkey;if(r_state=-c&0xlf)for(cont= 1 ,temp=0x01:cont6;+cont.temp=temp 1) if(r_state&temp)!=0)r_val=cont;Lval=x;DP_number5=tabIe2Lval-1 r_val-1 ;if(DP_numbcr5=,A,)t= 1:goto INTR1; if(DP_number5=,C,) coop= 1 ;goto INTR1;INTR1:;此函数的主体还是釆用了老师给的键盘

    16、调试程序中的方法,完全是复制粘贴过来的。调试程 序中,可以实现读取按键的行值和列值,由此我们想到,可以按照键盘上的数字,设宜一个 二维数组,这样通过读取行值和列值就能对应出输入的数。此模块只有两个跳出办法,一个是按下启动输入控制温度的开始键,一个是按下开始闭环控 制的键。同时,按下键时,分别影响标志变量。在主程序中,通过判断标识变虽是0还是1, 就可进行相应的操作。5、void K_int2(void) 控制温度输入程序(unsigned char l_val,r_val.r_state,temp.cont,x,c;int key;Init_Device();while( 1)key=0x00

    17、04;for(x=l ;x5;x+,key+)c=XBYTEkey;if(r_state=-c&Oxlf)for(cont= 1cmp=0x01:cont6;+cont,temp=temp 1)if(r_state&temp)!=0)r_val=cont;Lval=x;DP_number6=table2Lval-1 r_val-1 ;if(DP_number6=,B,)(goto INTR2;DP_number3=DP_number6;displayO;)INTR2:;while(l)key=0x0004;for(x= 1:xv5;x+、kcy+)c=XBYTEkey;if(r_state=-

    18、c&0xlf)for(cont= 1 ,temp=0x01 ;cont6:+cont.temp=tenip 1)if(r_state&tcmp)!=0)r_val=cont;l_val=x;DP_number6=table2Lval-1 r_val-1 ;if(DP_number6=,E,)goto INTR4;DP_numbcr4=DP_number6;displayO;)INTR4:;当通过KJntl函数影响标识变量后,就判断标识变量,如果A1,就表明进行控制温度输入, 就调用温度控制输入函数。这个模块是花费时间最多的模块,经过与好多人讨论,网上査了一些算法,最终确左了这个 方法。起初,我

    19、们想,输入两个数,不过是调用输入函数两次就能实现。当通过一个死循环 实现的时候,可以实现输入两个数字,但我们要求的是输入两个数字之后便不再输入,转入 询问是否开启闭环控制温度。于是,我们只是调用了像KJntl 一样的循环两次,跳出条件 是有键按下便跳出,两次调用之间调用一泄的延时。在具体的实验中,我们发现,只能输入 温度的个位,十位默认的给岀了一个乱码。经过反复的编写小程序测试,我们发现,只要是 使用有键按下便跳岀的算法实现的都会出现乱码的情况。这种现象与其他小组的采用此算法 的结果,不谋而合。于是,经过网上査找一些算法,我们总结出:如果采用输入一个数然后 必须按下确认键才能输入下一个数,那么

    20、,在按下确认键之前,输入函数始终是个循环,这 样,就与最简单的无限循环输入一样了,肯定能够实现。所以,我们把输入的跳出条件改为 有一个特殊的键按下(可见二维数组中的字母)。为了防止输入第一个数的确认键和输入第 二个数的确认键冲突,我们设宜了两个确认键。由于时间紧急,我们没能来得及去测试如果 使用一个确认键,而调用输入程序两次会不会同样能够实现。这样,K_int2函数就能缩短一 半,程序更加优化。6、void K_int3(void) 询问是否结朿闭环控制函数 unsigned char l_val.r_val,r_state,temp?cont,xx;int key;key=0x0004;fo

    21、r(x= 1 ;x5;x+,kcy+)c=XBYTEkey;if(r_state=c&0x 1 f)for(cont= 1 ,temp=0x01 ;cont=3)control=Oxff;else if(compare=l)control=(number.wish+15)*256/100;else if(-lcompare)control=0x80;else if(-3compare)control=(number_wish-4)*256/100;elsecontrol=OxOO:此函数中,我们设宜了三个变量numbcr_now是从调试台读取的温度number_wish是我们从 键盘输入的温度

    22、compare是两个温度的差值。我们设想的闭环温控是一个循环,这个循环不 断的读取现在的温度值,与要求的温度值作比较,从而进行相应的加温,减温其中,我们 对差值进行了分段处理,我们觉得乒乓算法并不是很好,即使在80度的时候,仍然有降温, 所以我们结合着乒乓算法与PID算法(PID苦涩难懂,而且很长,我们就放弃了),创造了 这样的一个算法。温度差值在3度以外,是全速的升温降温。为什么是3这个数值呢,这是 我们在调试的过程中修改的,初始我们确定的是5,发现,5还是太大,3足够了。然后差 值在13之间,是采取比设沱温度髙15度升温,经过调试,我们发现,在高温区,其实没 什么差别,在中温区,这个算法的

    23、效果就很明显了。因为如果设左温度是80度,那么加上 15度也就是95度,与全速升温没差别。当设立在70度的时候,就有几度的差别,这个影 响着精度。13这个区间的划分以及15度的确定,都是实验的结果。温度差值在-11之间, 是恒温的。温度差值在之间是采取比设泄的温度小4度进行降温。这个在低温区效果 非常明显。同样,4这个数也是通过反复的修改实验确左的。最后总体来说一个这个函数, 在升温的时候,温度是不可能达到设左温度的,会比设左温度低两度左右(只测试了设定 温60度的情况),不存在降温过程,升温速度很快。估计在25度到60度之间,基本上能 够达到设左的温度,而且上下浮动很小。在低温区,降温的情况

    24、下,会有升温出现。但当最 终确迫以小4度降温后,误差不大。此程序的最大优点就是浮动小,比较精确。七.遇到的问题及解决方案1、 单片机板由于上学期学习了微机原理,所以单片机板的基本原理我们比较淸楚,知道每一个 器件起到的作用。在焊接是,我们组采取了数据线路、地址线路、控制线路分别连 接的方法。这样,避免了复杂的线路的漏接,错接。经过较认真的焊接,单片机板 在调试的时候,没有出现什么问题。一直到后而,单片机板一直稳定工作。2、 AD转换板这个电路板非常简单,连接线路少,布局也很随意,经过修改老师给的调试程序, 加上变送器板,能够实现读取调试台上的温度值,通过监视器看到,当温度在50 摄氏度的时候,

    25、读取的数值是129,还不错。3、 显示板1焊接过程:这块板是我们这个学期碰到的工程量最大的一块板,出的问题也最多。在焊接时,最困难的就是数据线的连接。起初,没开始焊板之前,我们计划着在板 上单独焊出来一块数据总线排线,这样,所有的273的数拯线都接到数据总线上, 在理论上就解决了焊点太复杂的问题。总线排线可以用电阻两端的铁线实现。但当 我们真正焊起来的时候,却发现,数据总线排线焊的过密,当若干数据线接入时, 想要再接上一根数据线变的非常困难,线路非常凌乱。以至于工作没法继续下去, 所以只好放弃了数据排线总线的方法,还是采用最直接的下一个273数据线接到上 一个273数据线上。由于起初想做数据排

    26、线总线的时候,导线都已经剪好了,这样,导致接法只好,线 路比较长,本着节约材料的原则,只好继续用,只是影响了美观。在焊板的过程中,还犯了一个错误。由于焊板前计划不足,考虑不周,过于着急去 完成。导致讲138, 244和或非门位置记错了,本来该接在138上的线,接在了 244 上,幸亏在焊接了一半的时候发现了这个问题,因为焊着焊着,发现管脚不够用了。 这个我们总结了教训:焊板之前,一立要规划好元器件的位置,考虑好布局,不能 急着下手。2调试査错过程:在调试过程中,当我们运行显示调试程序的时候,发现数码管的显示是乱码。我们 推断,很可能是因为导线过长,在将板插在调试台上的时候,导线会受到挤压,焊

    27、接不牢固就会掉下来,所以,我们开始查线。由于线路太复杂,用肉眼查线太麻烦, 效率不高,而且不容易分辨,所以我们想了个办法:从调试台引岀+12V的电压,调 试台地线接上欧姆表的负极,将+12v电压的导线分别与8根数据线的每一根数据线 连接,同时检测每一个器件的对应的数据线上是否有+12V的电压。很快,我们便找 到了好几根掉下来的线,经过反复检査,焊接牢固。在解决了数据线之后,我们仍然得不到想要的结果,还有乱码,但我们发现,乱的 很有规律。当发送2、3、7、8等数字的时候,显示是正确的。当发送1、4等数字 的时候,数码管的上而一段和右上角一段总是不对,如果两者交换就能显示正确。经过查看数码管的内部

    28、线路和对应的数据线,我们发现,dO和dl正好倒了,但当 我们去查线的时候,我们发现,线路是完全按照标准电路图连接的,理论上不会出 现两个数据线颠倒的情况。但我们想,既然结果显示两个数据线颠倒了,我们觉得 换过来试一试。换过来之后,我们发现显示正常了,但为什么两个数据线颠倒了, 我们还是没有明白,不过实验结果岀来了。这个具体问题,等到有时间再研究了。键盘模块的调试相对显示模块的调试,要轻松的多。起初,我们运行键盘程序,发 现不能得到想要的结果,经过反复检査,我们发现单片机根本就没从244里而读数。 这时,我们就去查与244有关的线路,最终发现,读信号没有连接到244的控制端。 连接后,键盘模块也调试完毕。4、DA转换板DA转换板也叫简单,一遍就成功,所以没什么可


    注意事项

    本文(北工大版电子工程设计温控系统第二次实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开