1、基于单片机的具有AD和DA功能的信号测控装置1 题目背景与意义 12 设计题目介绍 22.1 设计题目 22.2 题目要求 23 系统总体框架 34 系统硬件设计 34.1 主控制芯片8051 34.1.1 8051引脚说明 44.1.2 单片机最小系统 54.2 A/D转换电路 64.2.1 AD574 74.3 D/A转换电路 94.3.1 数模转换器DAC0832 94.3.2 外接运放5G24 114.4 调理电路 124.5 稳压电源 134.6 键盘模块 144.7 LED显示电路 144.8 声光报警电路 154.9 整体硬件设计图 165 系统软件设计 175.1主程序框图 1
2、75.2键盘控制程序框图 185.3数据转换程序框图 195.4显示子程序框图 205.5 基本程序 216 结论 23参考文献 241 题目背景与意义本课程设计以计算机控制系统课程理论为基础,以其他电子类、计算机及接口类相关课程内容为辅助,在实践中锻炼学生的系统设计能力、理论应用能力、总结归纳能力以及自我学习能力,提高其实践能力、创新意识与创业精神。2 设计题目介绍2.1 设计题目设计一个基于单片机的具有A/D和D/A功能的信号测控装置。要求该信号测控装置能够接入典型传感器、变送器信号,同时可输出标准电压/电流信号。并满足抗干扰、通用性、安全性、性价比等原则性要求。标准电压/电流信号此处定为
3、:05V/420mA (020mA)2.2 题目要求1. 基本要求:1) 充分理解题目要求,确定方案。2) 合理选择器件型号。3) 用1号图纸1张或者采用Protel软件画出电原理图。4) 用1号图纸1张画出软件结构框图。5) 写出设计报告,对课程设计成品的功能进行介绍及主要部分进行分析与说明。6) 每天写出工作日记。2. 发挥部分:1) 可将系统扩展为多路。可在此系统中扩展键盘、显示(LCD/LED)、与上位机通讯功能。2) 完成以上基本设计部分之后,可以运用Protues仿真软件对设计结果进行相应的编程和仿真,调试测控系统并观察其运行结果(可以分部分完成)。3 系统总体框架图1 总体设计方
4、案此控制系统的硬件设计框图如图1所示。被控对象经传感器,变送器输入电压信号或电流信号,经模数转换模块中调理电路送入A/D转换器,通过采样和模数转换,所检测到的电压信号和送入单片机进行比较,以显示模块显示结果,声光报警判断是否正常工作。由键盘模块设定报警上下限值。稳压电源提供稳定电压。数模转换输出模拟量进行控制。4 系统硬件设计4.1 主控制芯片8051本设计的主控制芯片我们选择性价比高的8051单片机,8051单片机是一款8位的CPU,与通用的微处理器基本相同。片内有128个字节RAM,片外最多可以外扩到64k。8051有4k字节的ROM;具有5个中断源,2个优先权;3个8位的并行I/O口、一
5、个全双工的串行口,2个16为的定时器/计数器,基于从经济出发,本设计我们选择8051单片机完全能实现控制的要求。原理图如图2。图2 单片机最小系统4.1.1 8051引脚说明图3 8051引脚图8051共有4个I/O端口,为P0、P1、P2、P3,四个I/O口都是双向的,且每个口都具有锁存器。每个口有8条线,共计32条I/O线。各端口的功能叙述如下:1、P0口 有三个功能:(1)外部扩充存储器时,当作数据总线(D0D7)。(2)外部扩充存储器时,当作地址总线(A1A7)。(3)不扩充时,可做一般I/O口使用,但内部没有上拉电阻,作为输入或输出时应在外部接上拉电阻。2、P1口 只做I/O口使用,
6、其内部有上拉电阻。3、P2口 有两个功能:(1)扩充外部存储器时,当作地址总线(A8A15)使用。(2)做一般I/O口使用,其内部有上拉电阻。4、P3口 有两中功能除了作为I/O口使用外(内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。P30RXD(串行输入口)P31TXD(串行输出口)P32/INT0(外部中断)P33/INT1(外部中断)P34T0(TIMER0的外部输入脚)P35T1(TIMER1的外部输入脚)P36/WR(外部数据存储器的写入控制信号)P37/RD(外部数据存储器的读取控制信号)端口1、2、3有内部上拉电阻,当作为输入时,其电位被拉高,若输入为低电平可提供电流源
7、;其作为输出时可驱动4个LS TTL。而端口0作为输入时,处在高阻抗的状态,其输出缓冲器可驱动8个LS TTL(需要外部的上拉电阻)。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的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。2)51单片机
8、最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。3)51单片机最小系统起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好。4)在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两端的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电量。随着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这个时候10K电阻两端的电压为3.5V,甚至更大,所以R
9、ST引脚又接收到高电平。单片机系统自动复位。5)设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,
10、即计数脉冲的周期要大于2 ms。 4.2 A/D转换电路本系统的设计对AD的要求比较高,因此,我采用的是12位的高精度的AD转换器。转换时间25us,转换精度为0.05%,完全满足本设计。我们采用的AD转换电路是双极性输入的,可以实现输入信号-5v+5v、-10v+10v转换。由于AD574片内含有高精度的基准电压源和时钟电路,从而使AD574不需要任何的外加电路和时钟信号完成A/D转换。图4 A/D转换模块电路图4.2.1 AD574 AD574A是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换显片,具有外接元件少,功耗低,精度高
11、等特点,并且具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其主要功能特性如下:分辨率:12位非线性误差:小于1/2LBS或1LBS转换速率:25us模拟电压输入范围:010V和020V,05V和010V两档四种电源电压:15V和5V数据输出格式:12位/8位芯片工作模式:全速工作模式和单一工作模式1)AD574引脚功能1. Pin1(+V)+5V电源输入端。2. Pin2( )数据模式选择端,通过此引脚可选择数据纵线是12位或8位输出。3. Pin3( )片选端。4. Pin4(A0)字节地址短周期控制端。与 端用来控制启动转换的方式和数据输出格式。须注意
12、的是, 端TTL电平不能直接+5V或0V连接。5. Pin5( )读转换数据控制端。6. Pin6(CE)使能端。7. Pin7(V+)正电源输入端,输入+15V电源。8. Pin8(REF OUT)10V基准电源电压输出端。9. Pin9(AGND)模拟地端。10. Pin10(REF IN)基准电源电压输入端。11. Pin(V-)负电源输入端,输入-15V电源。12. Pin1(V+)正电源输入端,输入+15V电源。13. Pin13(10V IN)10V量程模拟电压输入端。14. Pin14(20V IN)20V量程模拟电压输入端。 15. Pin15(DGND)数字地端。16. Pi
13、n16Pin27(DB0DB11)12条数据总线。通过这12条数据总线向外输出A/D转换数据。 17. Pin28(STS)工作状态指示信号端,当STS=1时,表示转换器正处于转换状态,当STS=0时,声明A/D转换结束,通过此信号可以判别A/D转换器的工作状态,作为单片机的中断或查询信号之用。图5 AD574A引脚图2)工作方式AD574A的CE、和A0对其工作状态的控制过程:在CE=1、 =0同时满足时,AD574A才会正常工作,在AD574处于工作状态时,当 =0时A/D转换,当 =1是进行数据读出。 和A0端用来控制启动转换的方式和数据输出格式。A0-0时,启动的是按完整12位数据方式
14、进行的。当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,即可从数据
15、端读取数据。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的写控制
16、线和读控制线通过与非门74LS00与AD574A的使能端CE相连。4.3 D/A转换电路D/A转换电路采用DAC0832进行数模转换。由于DAC0832是单路转换,为了使系统能有更好的控制性,我加了个多路开关CD4051,从而实现系统的多路控制。图6 D/A转换电路4.3.1 数模转换器DAC0832DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构。1)0832引脚功能DAC0832是20引脚的双列直插式芯片。各引脚的特性如下: CS片选信号,和允许锁存信号ILE组合来决定 是否起作用。 ILE允许锁存信号。 WR1写信号1,作为第一级锁存信号,将输入资料锁存到输
17、入寄存器(此时, 必须和 、ILE同时有效)。 WR2写信号2,将锁存在输入寄存器中的资料送到DAC寄存器中进行锁存(此时,传输控制信号 必须有效)。 XFER传输控制信号,用来控制 。 DI7DI08位数据输入端。 IOUT1模拟电流输出端1。当DAC寄存器中全为1时,输出电流最大,当DAC寄存器中全为0时,输出电流为0。 IOUT2模拟电流输出端2。IOUT1+IOUT2=常数。 RFB反馈电阻引出端。DAC0832内部已经有反馈电阻,所以,RFB端可以直接接到外部运算放大器的输出端。相当于将反馈电阻接在运算放大器的输入端和输出端之间。 VREF参考电压输入端。可接电压范围为10V。外部标
18、准电压通过VREF与T型电阻网络相连。 VCC芯片供电电压端。范围为+5V+15V,最佳工作状态是+15V。 AGND模拟地,即模拟电路接地端。 DGND数字地,即数字电路接地端。图7 DAC0832引脚图2)0832工作方式DAC0832进行D/A转换,可以采用两种方法对数据进行锁存。 第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在直通状态。具体地说,就是使 和 都为低电平,DAC寄存器的锁存选通端得不到有效电平而直通;此外,使输入寄存器的控制信号ILE处于高电平、 处于低电平,这样,当 端来一个负脉冲时,就可以完成1次转换。 第二种方法是使输入寄存器工作在直通状态,而DAC寄
19、存器工作在锁存状态。就是使 和 为低电平,ILE为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通;当 和 端输入1个负脉冲时,使得DAC寄存器工作在锁存状态,提供锁存数据进行转换。 根据上述对DAC0832的输入寄存器和DAC寄存器不同的控制方法,DAC0832有如下3种工作方式: 单缓冲方式。单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。 双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC寄存器,即分两次锁存输入资料。此方式适用于多个D/A
20、转换同步输出的情节。 直通方式。直通方式是资料不经两级锁存器锁存,即 CS*,XFER* ,WR1* ,WR2* 均接地,ILE接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。4.3.2 外接运放5G24由于D/A转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。运算放大器有三个特点:开环放大倍数非常高,一般为几千,甚至可高达10万。在正
21、常情况下,运算放大器所需要的输入电压非常小。 输入阻抗非常大。运算放大器工作时,输入端相当于一个很小的电压加在一个很大的输入阻抗上,所需要的输入电流也极小。 输出阻抗很小,所以,它的驱动能力非常大。 本设计采用实际较为常用的5G24型放大器。表1 5G24引脚功能表4.4 调理电路在工业控制中各类传感器常输出标准电流信号420mA,为此,常要先将其转换成10V的标准电压信号,以便送给各类设备进行处理。这种转换电路以4mA为满量程的0%对应-10V;12mA为50%对应0V;20mA为100%对应5V。参考电路见图9所示。图9 4-20MA电流转电压电路在与电流输出的传感器接口的时候,为了把传感
22、器(变送器)输出的1-10mA或者4-20mA电流信号转换成为电压信号,往往都会在后级电路的最前端配置一个I/V转换电路。单片机前可配置一个由运算放大器组成的缓冲处理电路,增加这级运算放大器可以起到对零点的处理会变得更加方便,无需耗用单片机的内部资源,尤其单片机是采用AD接口来接受这种零点信号不为零电压的输入时,可以保证A/D转换位数的资源能够全部应用于有用信号上。以420mA 例,图中的RA0是电流取样电阻,其值的大小主要受传感变送器供电电压的制约,当前级采用24V供电时,RA0经常会使用500的阻值,对应20mA 的时候,转换电压为10V,如果仅仅需要最大转换电压为5V,可以取RA0=25
23、0,这时候,传感变送器的供电只要12V就够用了。因为即使传送距离达到1000米,RA0最多也就几百而已。同时,线路输入与主电路的隔离作用,尤其是主电路为单片机系统的时候,这个隔离级还可以起到保护单片机系统的作用。图采用的是廉价运放1458,其对零点的处理是在反相输入端上加入一个调整电压,其大小恰好为输入4mA时在RAO上的压降。有了运算放大器,还使得 RAO的取值可以更加小,因为这时信号电压不够大的部分可以通过配置运放的放大倍数来补足。这样,就可以真正把420mA电流转换成为05V电压了。经电路分析,可知流过反馈电阻Rf的电流为(Vo-VN)/Rf与VN/R1(VN-Vf)/R5相等,由此,可
24、推出输出电压Vo的表达式:Vo=(1+Rf/R1+Rf/R5)VN-(R4/R5)Vf。由于VNVpIiR4,上式中的VN即可用IiR4替换,若R4200,R118k,Rf7.14k,R543k,并调整Vf7.53V,输出电压Vo的表达式可写成如下的形式:?当输入420mA电流信号时,对应输出05V的电压信号。4.5 稳压电源为了使单片机能更稳定的工作,必须保证有一个稳定的电压输入。所以接入一个+5V稳压电源。7805为典型三端IC稳压集成电路。图9 稳压电源模块4.6 键盘模块加入键盘是为了便于人机互动,方便工作人员即时调整工况,调节系统的允许工作范围。由P1.0-P1.3口控制。其中,S2
25、是用于进入键盘调节模式和退出键盘调节模式;S3是用于增加上限值;S4用于减小上限值;S5用于增加下限值;S6用于减小下限值。图10 键盘电路4.7 LED显示电路加入LED显示是为了便于人机互动,方便工作人员及时了解此时工况。采用74LS164驱动数码管。图11 LED显示电路74HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输
26、入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。 主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。4.8 声光报警电路当系统正常运行时,绿灯亮。当传感器所采集的信息通过单片机处理,如果超过设置的上限值或低于下限值时,蜂鸣器进行报警,红灯亮起。其电路图如图12所示。图12 声光报警电路4.9 整体硬件设计图图 13 整体设计电路图5 系统软件设计5.1主
27、程序框图图14 主程序框图5.2键盘控制程序框图图15 键盘控制程序框图5.3数据转换程序框图图16 数据转换程序框图5.4显示子程序框图图17 显示子程序框图.5.5 基本程序程序:org 0000hajmp startorg 0003hajmp wb0org 0013hajmp wb1start:SETB EA SETB EX0 setb ex1 setb p2.3 ;设置报警电路为正常 CLR P2.4 mov 54h,#0c8h ;设置上下限值 mov 55h,#32h MOV DPTR,#7F00H MOVX DPTR,A ;启动A/D和D/A转换 AJMP $wb1: clr EA
28、 ;键盘控制程序 clr ex0 LCALL DELLAY LCALL DELLAY LCALL DELLAY CLR P2.3 CLR P2.4key: jnb p1.0,key0 ;查询 jnb p1.1,key1 jnb p1.2,key2 jnb p1.3,key3 jnb p3.3,key4 ajmp keykey0: INC 54H ;增加上限 LCALL DELLAY LCALL DELLAY RETkey1:dec 54h ;减小上限 LCALL DELLAY LCALL DELLAY RETkey2:inc 55h ;增加下限 LCALL DELLAY LCALL DELLA
29、Y RETkey3:dec 55h ;减小下限 LCALL DELLAY LCALL DELLAY RETkey4: setb EA ;退出键盘调节模式 setb ex0 setb p2.3 clr p2.4 LCALL DELLAY LCALL DELLAY retiwb0: CLR EX0 NOP NOP MOV DPTR,#7F00H ;读取A/D转换结果 MOVX A,DPTR cjne a,54h,next1 ;判断系统是否异常next1:jc next2cpl P2.4cpl P2.3LCALL XIANSHIretinext2:cjne a,55h,next3next3:jnc
30、next4cpl P2.4cpl P2.3LCALL XIANSHIretinext4:LCALL XIANSHIMOV DPTR,#07F00HMOVX DPTR,AnopnopSETB EX0RETIXIANSHI:MOV B,#100 ;LED显示程序 DIV AB MOV 50H,a mov a,b mov b,#10 div ab mov 51h,a mov 52h,bDISP: MOV R0,#52H MOV R7,#03H NEXT: MOV A,R0 MOV DPTR,#DDSEG MOVC A,A+DPTR MOV SBUF,A JNB TI,$ CLR TI deC R0 DJNZ R7,NEXTDELLAY: MOV R4,#255NEXT12: MOV R5,#255NEXT11: NOP NOP NOP DJNZ R5,NEXT11 DJNZ R4,NEXT12 RETDDSEG: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H6 结论本设计能在广泛的领域运用并取得了良好的效果. 实践
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1