基于单片机的具有AD和DA功能的信号测控装置.docx
- 文档编号:8271234
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:18
- 大小:128.54KB
基于单片机的具有AD和DA功能的信号测控装置.docx
《基于单片机的具有AD和DA功能的信号测控装置.docx》由会员分享,可在线阅读,更多相关《基于单片机的具有AD和DA功能的信号测控装置.docx(18页珍藏版)》请在冰豆网上搜索。
基于单片机的具有AD和DA功能的信号测控装置
1题目背景与意义1
2设计题目介绍2
2.1设计题目2
2.2题目要求2
3系统总体框架3
4系统硬件设计3
4.1主控制芯片80513
4.1.18051引脚说明4
4.1.2单片机最小系统5
4.2A/D转换电路6
4.2.1AD5747
4.3D/A转换电路9
4.3.1数模转换器DAC08329
4.3.2外接运放5G2411
4.4调理电路12
4.5稳压电源13
4.6键盘模块14
4.7LED显示电路14
4.8声光报警电路15
4.9整体硬件设计图16
5系统软件设计17
5.1主程序框图17
5.2键盘控制程序框图18
5.3数据转换程序框图19
5.4显示子程序框图20
5.5基本程序21
6结论23
参考文献24
1题目背景与意义
本课程设计以《计算机控制系统》课程理论为基础,以其他电子类、计算机及接口类相关课程内容为辅助,在实践中锻炼学生的系统设计能力、理论应用能力、总结归纳能力以及自我学习能力,提高其实践能力、创新意识与创业精神。
2设计题目介绍
2.1设计题目
设计一个基于单片机的具有A/D和D/A功能的信号测控装置。
要求该信号测控装置能够接入典型传感器、变送器信号,同时可输出标准电压/电流信号。
并满足抗干扰、通用性、安全性、性价比等原则性要求。
标准电压/电流信号此处定为:
0~5V/4~20mA(0~20mA)
2.2题目要求
1.基本要求:
1)充分理解题目要求,确定方案。
2)合理选择器件型号。
3)用1号图纸1张或者采用Protel软件画出电原理图。
4)用1号图纸1张画出软件结构框图。
5)写出设计报告,对课程设计成品的功能进行介绍及主要部分进行分析与说明。
6)每天写出工作日记。
2.发挥部分:
1)可将系统扩展为多路。
可在此系统中扩展键盘、显示(LCD/LED)、与上位机通讯功能。
2)完成以上基本设计部分之后,可以运用Protues仿真软件对设计结果进行相应的编程和仿真,调试测控系统并观察其运行结果(可以分部分完成)。
3系统总体框架
图1总体设计方案
此控制系统的硬件设计框图如图1所示。
被控对象经传感器,变送器输入电压信号或电流信号,经模数转换模块中调理电路送入A/D转换器,通过采样和模数转换,所检测到的电压信号和送入单片机进行比较,以显示模块显示结果,声光报警判断是否正常工作。
由键盘模块设定报警上下限值。
稳压电源提供稳定电压。
数模转换输出模拟量进行控制。
4系统硬件设计
4.1主控制芯片8051
本设计的主控制芯片我们选择性价比高的8051单片机,8051单片机是一款8位的CPU,与通用的微处理器基本相同。
片内有128个字节RAM,片外最多可以外扩到64k。
8051有4k字节的ROM;具有5个中断源,2个优先权;3个8位的并行I/O口、一个全双工的串行口,2个16为的定时器/计数器,基于从经济出发,本设计我们选择8051单片机完全能实现控制的要求。
原理图如图2。
图2单片机最小系统
4.1.18051引脚说明
图38051引脚图
8051共有4个I/O端口,为P0、P1、P2、P3,四个I/O口都是双向的,且每个口都具有锁存器。
每个口有8条线,共计32条I/O线。
各端口的功能叙述如下:
1、P0口有三个功能:
(1)外部扩充存储器时,当作数据总线(D0~D7)。
(2)外部扩充存储器时,当作地址总线(A1~A7)。
(3)不扩充时,可做一般I/O口使用,但内部没有上拉电阻,作为输入或输出时应在外部接上拉电阻。
2、P1口只做I/O口使用,其内部有上拉电阻。
3、P2口有两个功能:
(1)扩充外部存储器时,当作地址总线(A8~A15)使用。
(2)做一般I/O口使用,其内部有上拉电阻。
4、P3口有两中功能
除了作为I/O口使用外(内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。
P30……RXD(串行输入口)
P31……TXD(串行输出口)
P32……/INT0(外部中断)
P33……/INT1(外部中断)
P34……T0(TIMER0的外部输入脚)
P35……T1(TIMER1的外部输入脚)
P36……/WR(外部数据存储器的写入控制信号)
P37……/RD(外部数据存储器的读取控制信号)
端口1、2、3有内部上拉电阻,当作为输入时,其电位被拉高,若输入为低电平可提供电流源;其作为输出时可驱动4个LSTTL。
而端口0作为输入时,处在高阻抗的状态,其输出缓冲器可驱动8个LSTTL(需要外部的上拉电阻)。
5、EA/VPP
(1)接高电平时:
a、CPU读取内部程序存储器(ROM),如8051/8052。
b、扩充外部ROM:
当读取内部程序存储器超过0FFFH(8051)、1FFFH(8052)时,自动读取外部ROM。
(2)接低电平时:
CPU读取外部程序存储器(ROM),如8031/8032。
4.1.2单片机最小系统
1)单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
2)51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
3)51单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好。
4)在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。
当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。
随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。
根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。
单片机系统自动复位。
5)设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2ms。
4.2A/D转换电路
本系统的设计对AD的要求比较高,因此,我采用的是12位的高精度的AD转换器。
转换时间25us,转换精度为0.05%,完全满足本设计。
我们采用的AD转换电路是双极性输入的,可以实现输入信号-5v~+5v、-10v~+10v转换。
由于AD574片内含有高精度的基准电压源和时钟电路,从而使AD574不需要任何的外加电路和时钟信号完成A/D转换。
图4A/D转换模块电路图
4.2.1AD574
AD574A是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其主要功能特性如下:
·分辨率:
12位
·非线性误差:
小于±1/2LBS或±1LBS
·转换速率:
25us
·模拟电压输入范围:
0—10V和0—20V,0—±5V和0—±10V两档四种
·电源电压:
±15V和5V
·数据输出格式:
12位/8位
·芯片工作模式:
全速工作模式和单一工作模式
1)AD574引脚功能
[1].Pin1(+V)——+5V电源输入端。
[2].Pin2()——数据模式选择端,通过此引脚可选择数据纵线是12位或8位输出。
[3].Pin3()——片选端。
[4].Pin4(A0)——字节地址短周期控制端。
与端用来控制启动转换的方式和数据输出格式。
须注意的是,端TTL电平不能直接+5V或0V连接。
[5].Pin5()——读转换数据控制端。
[6].Pin6(CE)——使能端。
[7].Pin7(V+)——正电源输入端,输入+15V电源。
[8].Pin8(REFOUT)——10V基准电源电压输出端。
[9].Pin9(AGND)——模拟地端。
[10].Pin10(REFIN)——基准电源电压输入端。
[11].Pin(V-)——负电源输入端,输入-15V电源。
[12].Pin1(V+)——正电源输入端,输入+15V电源。
[13].Pin13(10VIN)——10V量程模拟电压输入端。
[14].Pin14(20VIN)——20V量程模拟电压输入端。
[15].Pin15(DGND)——数字地端。
[16].Pin16—Pin27(DB0—DB11)——12条数据总线。
通过这12条数据总线向外输出A/D转换数据。
[17].Pin28(STS)——工作状态指示信号端,当STS=1时,表示转换器正处于转换状态,当STS=0时,声明A/D转换结束,通过此信号可以判别A/D转换器的工作状态,作为单片机的中断或查询信号之用。
图5AD574A引脚图
2)工作方式
AD574A的CE、
、
、
和A0对其工作状态的控制过程:
在CE=1、=0同时满足时,AD574A才会正常工作,在AD574处于工作状态时,当=0时A/D转换,当=1是进行数据读出。
和A0端用来控制启动转换的方式和数据输出格式。
A0-0时,启动的是按完整12位数据方式进行的。
当A0=1时,按8位A/D转换方式进行。
当=1,也即当AD574A处于数据状态时,A0和控制数据输出状态的格式。
当=1时,数据以12位并行输出,当=0时,数据以8位分两次输出。
而当A0=0时,输出转换数据的高8位,A0=1时输出A/D转换数据的低4位,这四位占一个字节的高半字节,低半字节补零。
AD574A的工作模式:
以上我们所述的是AD574A的全控状态,如果需AD574A工作于单一模式,只需将CE、端接至+5V电源端,和A0接至0V,仅用端来控制A/D转换的启动和数据输出。
当=0时,启动A/D转换器,经25us后STS=1,表明A/D转换结束,此时将置1,即可从数据端读取数据。
8051单片机与AD574A的接口电路:
其中还使用了三态锁存器74LS373和74LS00与非门电路,逻辑控制信号由(
、
和A0)有8051的数据口P0发出,并由三态锁存器74LS373锁存到输出端Q0、Q1和Q2上,用于控制AD574A的工作过程。
AD转换器的数据输出也通过P0数据总线连至8051,由于我们只使用了8位数据口,12位数据分两次读进8051,所以
接地。
当8051的p3.0查询到STS端转换结束信号后,先将转换后的12位A/D数据的高8位读进8051,然后再将低4位读进8051。
这里不管AD574A是处在启动、转换和输出结果,使能端CE都必须为1,因此将8051的写控制线
和读控制线
通过与非门74LS00与AD574A的使能端CE相连。
4.3D/A转换电路
D/A转换电路采用DAC0832进行数模转换。
由于DAC0832是单路转换,为了使系统能有更好的控制性,我加了个多路开关CD4051,从而实现系统的多路控制。
图6D/A转换电路
4.3.1数模转换器DAC0832
DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构。
1)0832引脚功能
DAC0832是20引脚的双列直插式芯片。
各引脚的特性如下:
CS——片选信号,和允许锁存信号ILE组合来决定是否起作用。
ILE——允许锁存信号。
WR1——写信号1,作为第一级锁存信号,将输入资料锁存到输入寄存器(此时,必须和、ILE同时有效)。
WR2——写信号2,将锁存在输入寄存器中的资料送到DAC寄存器中进行锁存(此时,传输控制信号必须有效)。
XFER——传输控制信号,用来控制。
DI7~DI0——8位数据输入端。
IOUT1——模拟电流输出端1。
当DAC寄存器中全为1时,输出电流最大,当DAC寄存器中全为0时,输出电流为0。
IOUT2——模拟电流输出端2。
IOUT1+IOUT2=常数。
RFB——反馈电阻引出端。
DAC0832内部已经有反馈电阻,所以,RFB端可以直接接到外部运算放大器的输出端。
相当于将反馈电阻接在运算放大器的输入端和输出端之间。
VREF——参考电压输入端。
可接电压范围为±10V。
外部标准电压通过VREF与T型电阻网络相连。
VCC——芯片供电电压端。
范围为+5V~+15V,最佳工作状态是+15V。
AGND——模拟地,即模拟电路接地端。
DGND——数字地,即数字电路接地端。
图7DAC0832引脚图
2)0832工作方式
DAC0832进行D/A转换,可以采用两种方法对数据进行锁存。
第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在直通状态。
具体地说,就是使和都为低电平,DAC寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE处于高电平、处于低电平,这样,当端来一个负脉冲时,就可以完成1次转换。
第二种方法是使输入寄存器工作在直通状态,而DAC寄存器工作在锁存状态。
就是使和为低电平,ILE为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当和端输入1个负脉冲时,使得DAC寄存器工作在锁存状态,提供锁存数据进行转换。
根据上述对DAC0832的输入寄存器和DAC寄存器不同的控制方法,DAC0832有如下3种工作方式:
①单缓冲方式。
单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。
此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。
②双缓冲方式。
双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。
此方式适用于多个D/A转换同步输出的情节。
③直通方式。
直通方式是资料不经两级锁存器锁存,即CS*,XFER*,WR1*,WR2*均接地,ILE接高电平。
此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。
4.3.2外接运放5G24
由于D/A转换结果采用电流形式输出。
若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。
运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。
DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
运算放大器有三个特点:
⑴开环放大倍数非常高,一般为几千,甚至可高达10万。
在正常情况下,运算放大器所需要的输入电压非常小。
⑵输入阻抗非常大。
运算放大器工作时,输入端相当于一个很小的电压加在一个很大的输入阻抗上,所需要的输入电流也极小。
⑶输出阻抗很小,所以,它的驱动能力非常大。
本设计采用实际较为常用的5G24型放大器。
表15G24引脚功能表
4.4调理电路
在工业控制中各类传感器常输出标准电流信号4~20mA,为此,常要先将其转换成±10V的标准电压信号,以便送给各类设备进行处理。
这种转换电路以4mA为满量程的0%对应-10V;12mA为50%对应0V;20mA为100%对应5V。
参考电路见图9所示。
图94-20MA电流转电压电路
在与电流输出的传感器接口的时候,为了把传感器(变送器)输出的1-10mA或者4-20mA电流信号转换成为电压信号,往往都会在后级电路的最前端配置一个I/V转换电路。
单片机前可配置一个由运算放大器组成的缓冲处理电路,增加这级运算放大器可以起到对零点的处理会变得更加方便,无需耗用单片机的内部资源,尤其单片机是采用A/D接口来接受这种零点信号不为零电压的输入时,可以保证A/D转换位数的资源能够全部应用于有用信号上。
以4~20mA例,图中的RA0是电流取样电阻,其值的大小主要受传感变送器供电电压的制约,当前级采用24V供电时,RA0经常会使用500Ω的阻值,对应20mA的时候,转换电压为10V,如果仅仅需要最大转换电压为5V,可以取RA0=250Ω,这时候,传感变送器的供电只要12V就够用了。
因为即使传送距离达到1000米,RA0最多也就几百Ω而已。
同时,线路输入与主电路的隔离作用,尤其是主电路为单片机系统的时候,这个隔离级还可以起到保护单片机系统的作用。
图采用的是廉价运放1458,其对零点的处理是在反相输入端上加入一个调整电压,其大小恰好为输入4mA时在RAO上的压降。
有了运算放大器,还使得RAO的取值可以更加小,因为这时信号电压不够大的部分可以通过配置运放的放大倍数来补足。
这样,就可以真正把4~20mA电流转换成为0~5V电压了。
经电路分析,可知流过反馈电阻Rf的电流为(Vo-VN)/Rf与VN/R1+(VN-Vf)/R5相等,由此,可推出输出电压Vo的表达式:
Vo=(1+Rf/R1+Rf/R5)×VN-(R4/R5)×Vf。
由于VN≈Vp=Ii×R4,上式中的VN即可用Ii×R4替换,若R4=200Ω,R1=18kΩ,Rf=7.14kΩ,R5=43kΩ,并调整Vf≈7.53V,输出电压Vo的表达式可写成如下的形式:
?
当输入4-20mA电流信号时,对应输出0-5V的电压信号。
4.5稳压电源
为了使单片机能更稳定的工作,必须保证有一个稳定的电压输入。
所以接入一个+5V稳压电源。
7805为典型三端IC稳压集成电路。
图9稳压电源模块
4.6键盘模块
加入键盘是为了便于人机互动,方便工作人员即时调整工况,调节系统的允许工作范围。
由P1.0-P1.3口控制。
其中,S2是用于进入键盘调节模式和退出键盘调节模式;S3是用于增加上限值;S4用于减小上限值;S5用于增加下限值;S6用于减小下限值。
图10键盘电路
4.7LED显示电路
加入LED显示是为了便于人机互动,方便工作人员及时了解此时工况。
采用74LS164驱动数码管。
图11LED显示电路
74HC164、74HCT164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。
74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。
数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。
两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。
4.8声光报警电路
当系统正常运行时,绿灯亮。
当传感器所采集的信息通过单片机处理,如果超过设置的上限值或低于下限值时,蜂鸣器进行报警,红灯亮起。
其电路图如图12所示。
图12声光报警电路
4.9整体硬件设计图
图13整体设计电路图
5系统软件设计
5.1主程序框图
图14主程序框图
5.2键盘控制程序框图
图15键盘控制程序框图
5.3数据转换程序框图
图16数据转换程序框图
5.4显示子程序框图
图17显示子程序框图
.
5.5基本程序
程序:
org0000h
ajmpstart
org0003h
ajmpwb0
org0013h
ajmpwb1
start:
SETBEA
SETBEX0
setbex1
setbp2.3;设置报警电路为正常
CLRP2.4
mov54h,#0c8h;设置上下限值
mov55h,#32h
MOVDPTR,#7F00H
MOVX@DPTR,A;启动A/D和D/A转换
AJMP$
wb1:
clrEA;键盘控制程序
clrex0
LCALLDELLAY
LCALLDELLAY
LCALLDELLAY
CLRP2.3
CLRP2.4
key:
jnbp1.0,key0;查询
jnbp1.1,key1
jnbp1.2,key2
jnbp1.3,key3
jnbp3.3,key4
ajmpkey
key0:
INC54H;增加上限
LCALLDELLAY
LCALLDELLAY
RET
key1:
dec54h;减小上限
LCALLDELLAY
LCALLDELLAY
RET
key2:
inc55h;增加下限
LCALLDELLAY
LCALLDELLAY
RET
key3:
dec55h;减小下限
LCALLDELLAY
LCALLDELLAY
RET
key4:
setbEA;退出键盘调节模式
setbex0
setbp2.3
clrp2.4
LCALLDELLAY
LCALLDELLAY
reti
wb0:
CLREX0
NOP
NOP
MOVDPTR,#7F00H;读取A/D转换结果
MOVXA,@DPTR
cjnea,54h,next1;判断系统是否异常
next1:
jcnext2
cplP2.4
cplP2.3
LCALLXIANSHI
reti
next2:
cjnea,55h,next3
next3:
jncnext4
cplP2.4
cplP2.3
LCALLXIANSHI
reti
next4:
LCALLXIANSHI
MOVDPTR,#07F00H
MOVX@DPTR,A
nop
nop
SETBEX0
RETI
XIANSHI:
MOVB,#100;LED显示程序
DIVAB
MOV50H,a
mova,b
movb,#10
divab
mov51h,a
mov52h,b
DISP:
MOVR0,#52H
MOVR7,#03H
NEXT:
MOVA,@R0
MOVDPTR,#DDSEG
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
deCR0
DJNZR7,NEXT
DELLAY:
MOVR4,#255
NEXT12:
MOVR5,#255
NEXT11:
NOP
NOP
NOP
DJNZR5,NEXT11
DJNZR4,NEXT12
RET
DDSEG:
DB03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H
6结论
本设计能在广泛的领域运用并取得了良好的效果.实践
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 具有 AD DA 功能 信号 测控 装置