智能化仪表设计Word格式.docx
- 文档编号:19672469
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:23
- 大小:2.06MB
智能化仪表设计Word格式.docx
《智能化仪表设计Word格式.docx》由会员分享,可在线阅读,更多相关《智能化仪表设计Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
3单元模块设计
3.1各单元模块功能介绍及电路设计
3.1.1A/D转换电路模块
现实世界的物理量都是模拟量,能把模拟量转化成数字量的器件称为模/数转换器(A/D转换器),A/D转换器是单片机数据采集系统的关键接口电路,按照各种A/D芯片的转化原理可分为逐次逼近型,双重积分型等等。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析和显示。
一个n位的逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数和时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用。
图3.1.1A/D转换电路
ADC0808是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,
片内带有锁存功能的8路模拟多路开关,可以对8路0-5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术的长处,所以该芯片非常适应于过程控制,微控制器输入通道的接口电路,智能仪器和机床控制等领域。
ADC0808主要特性:
8路8位A/D转换器,即分辨率8位;
具有锁存控制的8路模拟
开关;
易与各种微控制器接口;
可锁存三态输出,输出与TTL兼容;
转换时间:
128μs;
转换精度:
0.2%;
单个+5V电源供电;
模拟输入电压范围0-+5V,无需外部零点和满度调整;
低功耗,约15mv。
3.1.2AT89C51单片机系统
AT89C51提供以下标准功能:
4KB的Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有工作直到下一个硬件复位。
图3.1.2AT89C51图
P0口:
这组引脚共有8条,P0.0为最低位。
这8个引脚有两种不同的功能,分别适用于不同的情况,第一种情况是89C51不带外存储器,P0口可以为通用I/O口使用,P0.0-P0.7用于传送CPU的输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;
第二种情况是89C51带片外存储器,P0.0-P0.7在CPU访问片外存储器时先传送片外存储器的低8位地址,然后传送CPU对片外存储器的读/写数据。
P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:
这8个引脚和P0口的8个引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O口使用时,P1.0-P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。
P2口:
这组引脚的第一功能与上述两组引脚的第一功能相同即它可以作为通用I/O
口使用,它的第一功能和P0口引脚的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不是像P0口那样传送存储器的读/写数据。
P3口:
这组引脚的第一功能和其余三个端口的第一功能相同,第二功能为控制功能,每个引脚并不完全相同。
Vcc为+5V电源线,Vss接地。
ALE:
地址锁存允许线,配合P0口的第二功能使用,在访问外部存储器时,89C51的CPU在P0.0-P0.7引脚线去传送随后而来的片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率的脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用。
/EA:
片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,
若/EA=1,则允许使用片内ROM,若/EA=0,则只使用片外ROM。
/PSEN:
片外ROM的选通线,在访问片外ROM时,89C51自动在/PSEN线上产生一个负脉冲,作为片外ROM芯片的读选通信号。
RST:
复位线,可以使89C51处于复位(即初始化)工作状态。
通常89C51复位有自动上电复位和人工按键复位两种。
XTAL1和XTAL2:
片内震荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接89C51片内OSC(震荡器)的定时反馈回路。
3.1.3时钟系统
单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。
CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。
MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。
3.1.4复位电路
单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,采用施密特触发输入。
当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位[1]。
复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。
单片机的复位方式有上电自动复位和手动复位两种,图6是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。
图3.1.4复位电路图
3.1.5LED显示电路
LED是发光二极管显示器的缩写。
LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示器件。
在单片机中使用最多的是七段数码显示器。
LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。
图3.1.5LED显示电路
本设计是采用SR420561K共阴极数码管进行设计的,对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O接口控制)显示。
3.2特殊器件的介绍
本设计采用的元器件都是一些常见的,并没有采用特殊的元件。
3.3各单元模块的联接
此电路的工作原理是:
+5V模拟电压信号通过变阻器VR1分压后由ADC08008的IN0通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低电平),经过模/数转换后,产生相应的数字量经过其输出通道D0-D7传送给AT89C51芯片的P1口,AT89C51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给四位LED,同时它还通过其四位I/O口P2.0、P2.1、P2.2、P2.3产生位选信号控制数码管的亮灭。
此外,AT89C51还控制ADC0808的工作。
其中,单片机AT89C51通过定时器中断从P2.4输出方波,接到ADC0808的CLOCK,P1.4发正脉冲启动A/D转换,P1.7检测A/D转换是否完成,
转换完成后,P2.7置高从P1口读取转换结果送给LED显示出来。
图3.3数字电压表原理图
4软件设计
4.1软件设计原理及设计所用工具
图4.1主程序流程图
所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。
ADC0808在进行A/D转换时需要有CLOCK信号,在硬件电路设计中将ADC0808的CLOCK信号接在了AT89C51单片机的P1.4端口上,即通P1.4为ADC0808提供clock信号。
4.2软件设计结构图、说明其功能
N
Y
图4.2A/D转换部分流程图
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元。
显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。
在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器0溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。
4.3画出主要软件设计流程框图
图4.3个十位数据调整子程序流程图
图4.3显示子程序流程图
在本设计中,为了简化硬件设计,主要采用软件定时的方式,即用定时器溢出中断功能实现11μs定时,通过软件延时程序来实现5ms的延时。
主程序如下所示:
LED_0EQU30H;
个位
LED_1EQU31H;
十位
LED_2EQU32H;
百位
LED_3EQU33H;
存放千位段码
ADCEQU35H
CLOCKBITP1.4;
定义0809时钟位
STBITP1.5
EOCBITP1.6
OEBITP1.7
ORG00H
SJMPSTART
ORG0BH
LJMPINT_T0
ORG30H
START:
MOVLED_0,#00H
MOVLED_1,#00H
MOVLED_2,#00H
MOVDPTR,#TABLE;
段码表首地址
MOVTMOD,#02H
MOVTH0,#245
MOVTL0,#00H
MOVIE,#82H
SETBTR0
WAIT:
CLRST
SETBST
CLRST;
启动AD转换
JNBEOC,$;
等待转换结果
SETBOE
MOVADC,P2;
读取AD转换结果
CLROE
MOVA,ADC;
AD转换结果转换成BCD码
MOVR7,A
MOVLED_3,#00H
MOVA,#00H
LOOP1:
ADDA,#20H;
一位二进制码对应20mV电压值
DAA
JNCLOOP2
MOVR4,A
INCLED_2
MOVA,LED_2
CJNEA,#0AH,LOOP4
INCLED_3
LOOP4:
MOVA,R4
LOOP2:
DJNZR7,LOOP1
ACALLBTOD1
LCALLDISP
SJMPWAIT
ORG200H
BTOD1:
MOVR6,A
ANLA,#0F0H
MOVR5,#4
LOOP3:
RRA
DJNZR5,LOOP3
MOVLED_1,A
MOVA,R6
ANLA,#0FH
MOVLED_0,A
RET
INT_T0:
CPLCLOCK;
提供0809时钟信号
RETI
DISP:
MOVA,LED_0;
显示子程序
MOVCA,@A+DPTR
CLRP1.3
MOVP0,A
LCALLDELAY
SETBP1.3
MOVA,LED_1
CLRP1.2
SETBP1.2
CLRP1.1
SETBP1.1
MOVA,LED_3
CLRP1.0
SETBP1.0
RET
DELAY:
MOVR6,#10;
延时5ms
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
TABLE:
DB3FH,06H,5BH,4FH,66H;
共阴数码管7段值
DB6DH,7DH,07H,7FH,6FH
END
5系统调试
软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是隐形的,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。
Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与uVisions3IDE工具软件结合进行编程仿真调试。
本系统的调试主要以软件为主,其中,系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。
5.1误差分析
1.当IN7口输入电压值为0.05V时,显示结果如下图所示,测量误差为0.01V。
图5.1误差分析图
2.当IN0口输入电压值为3.50V时,显示结果如下图所示。
测量误差为0.06V。
图5.1误差分析图
按照上面的方法进行多组数据测试:
电压表实测数据
数字电压表测得数据
误差
0.05
0.51
0.01
1.0
1.01
0.01
2.0
2.02
0.02
3.0
3.03
0.03
3.5
3.56
0.06
4.5
4.50
0.00
由于单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。
这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。
从上表可以看出,简易数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0808的基准电压来解决。
因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。
当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。
6.结论
基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。
在实际应用工作应能好,测量电压准确,精度高。
系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。
本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。
总之这次电路的设计和仿真,基本上达到了设计的功能要求。
在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。
7.总结与体会
通过本次设计,我对单片机这门课有了进一步的了解。
无论是在硬件连接方面还是在软件编程方面。
本次设计采用了AT89C51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。
设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。
通过这次设计,对它的工作原理有了更深的理解。
在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。
在绘制元件库的时候,一定要注意所画元件的外观,外观好看才能给人一种好的感受,最好在绘制前就规划好元器件的封装,在对所画元器件命名时就将封装添加进去,这样就可以免去了在画原理图时,或者说在画PCB时对原理图添加封装。
但这只是个人习惯而已。
在画封装库时,一定要将元器件的实际物理尺寸搞清楚,如果不知道的话可以查手册,只有元器件的实际尺寸和所画的封装相匹配,才能保证在实物中的元器件才能安装到电路板上,同时还有一项值得注意的就是在查手册时,不能直接引用手册中引用引脚数据,要多留出1mm左右,这是因为在将元器件安装到电路板上时,如果焊盘与芯片引脚刚好大小完全相等,那么在焊接时,焊盘上就没有地方放电烙铁了,那将会给焊接带来麻烦,当然,这是针对贴片元件而言的。
在画PCB时,也要注意在原理图上所加的封装要与封装库中所指定的封装的名字要完全相同,如果不相同,就会在编译时系统出现报错的的情况,所以这一点一定要注意。
通过这次实验性设计不仅检验了我所学习的知识,也培养了自己动手设计,调试编程画PCB板等能力。
学会了Proteus,protel99se,keil软件的使用方法。
但是,离熟练运用还是有一定距离的。
所以今后要认真练习,熟练运用。
同时,通过这次实验性设计,使我对C语言有了更进一步的认识与了解,通过实验,我也发现了自己的很多不足之处,首先是自己的执法不行。
经常按错字母,通过练习也有了改进;
再有对C语言的一些标准库函数还是有些不太了解,通过实践,是我在这几个方面的认识上有了提高。
编程其实还贵在多多练习,只有多多练习才能掌握各种库函数。
其次,感谢一起做课程设计的同学们,感谢你们给我的帮助和鼓励,感谢你们在我遇到困难时所给的帮助,正是有了你们的帮助和鼓励,此次课程设计才得以顺利的完成。
8参考文献
[1]郭天祥.《MCS51单片机实践与应用》哈尔滨工业大学出版社出版2013年2月
[2]徐爱钧徐阳.《单片机原理与应用》徐爱钧徐阳.机械工业出版社出版
[3]朱清慧.《proteus教程》清华大学出版社出版2012年8月
[4]蒋慧萍周国雄《基于proteus的单片机系统设计与仿真实例》2009年7月
[5]张毅刚.《单片机原理与应用》高等教育出版社出版
[6]老虎工作室.《protel99se高级应用》人民邮电出版社出版
[7]邓奕.《protel99se原理图与PCB设计》人民邮电出版社出版2013年8月
[8]陈忠平.《51系列单片机设计与仿真》电子工业出版社出版
[9]康华光.《电子技术基础》数字部分,高等教育出版社出版
附录1:
数字电压表原理图
proteus仿真图
PCB图
protel3D效果
未连线实物图
工作状态图
附录2:
元器件清单表
§
数字电压表元件清单
元件及参数
数量
电阻(510)
8
电阻(10K)
4
电阻(1.5K)
电阻(100)
8
电阻(1K)
2
电阻(2.2K)
1
发光二极管
三极管9015
数码管SR420561K
晶振(11.0592MHz)
无极性电容(30pf)
电解电容(2.2uf)
万能板
ADC0809
电位器
杜邦线
24
附录3:
相关设计软件
1.Proteus仿真软件
2.protel99se软件
3.keil软件
4.STISP单片机下载软件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能化 仪表 设计