毕业设计(论文)基于单片机的多路数据采集系统的设计.doc

上传人:laozhun 文档编号:3980323 上传时间:2023-03-30 格式:DOC 页数:41 大小:731KB
返回 下载 相关 举报
毕业设计(论文)基于单片机的多路数据采集系统的设计.doc_第1页
第1页 / 共41页
毕业设计(论文)基于单片机的多路数据采集系统的设计.doc_第2页
第2页 / 共41页
毕业设计(论文)基于单片机的多路数据采集系统的设计.doc_第3页
第3页 / 共41页
毕业设计(论文)基于单片机的多路数据采集系统的设计.doc_第4页
第4页 / 共41页
毕业设计(论文)基于单片机的多路数据采集系统的设计.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《毕业设计(论文)基于单片机的多路数据采集系统的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机的多路数据采集系统的设计.doc(41页珍藏版)》请在三一办公上搜索。

1、多路数据采集系统的设计摘 要多路数据采集系统在现代工业中是必不可少的。基于单片机的多路数据采集系统是一种对单片机性能要求中等,结构简单,实用性较强的低端电子产品,单片机作为核心器件,以其体积小、成本低、速度快、升级容易等优点具有很好的现实意义。单片机实现的数据采集系统的应用越来越多的被采用。本文介绍了一种基于单片机的多路数据采集系统。系统的硬件部分主要包括单片机控制模块、模拟量采集接口模块、开关量采集接口模块、键盘输入模块、LCD显示模块、电源模块。单片机控制模块用于控制和协调系统各个模块工作。模拟量采集接口模块用于对模拟量进行预处理,使其转化为单片机能够处理的模拟量。开关量采集接口模块用于对

2、数字量进行预处理,使其转化为单片机能够处理的数字量。电源模块为整个系统提供工作电源。键盘输入模块和LCD显示模块为系统提供了人机交互的通道,便于用户对应用系统进行干预。本设计采用具有AD转换功能的STC12C5A60S2单片机作为系统的控制中心,可以实现对4路模拟电压信号、4路开关量的采集,具有处理能力强、精度高、通用性强等优点。关键词:多路数据采集,单片机,模拟量,开关量DESIGN OF MULTI-CHANNEL DATA ACQUISITION SYSTEMABSTRACTMultiple data acquisition system in modern industry has b

3、ecome indispensable. Based on SCM multiplexed multi-channel data acquisition system is a kind of single-chip processor performance requirements medium, the structure is simple, practical stronger low-end electronic product, the single chip microcomputer as the core device, with its small size, low c

4、ost, speed, upgrade easily and so on , have good practical significance. Adopts microcomputer application of data acquisition system is more and more. This paper introduces a microcomputer-based multi-channel data acquisition system. The hardware part of the control module includes microcontroller,

5、analog capture interface module, switch acquisition interface module, power module, the keyboard input module, LCD display module. MCU control module for controlling and coordinating the work of each module system. Analog capture analog interface module is used to preprocess it into a single chip to

6、 handle the analog. Switching capacity acquisition interface module for preprocessing digital content to make it into a single chip to handle the digital. Power modules to provide energy source for the entire system. Keyboard input module and LCD display module for the system to provide a human-comp

7、uter interaction channel, user-friendly intervention of the application. This design uses a single chip AD conversion function STC12C5A60S2 control center as the system can achieve 4-way analog voltage signal, 4-way switch volume collection, with processing power and high accuracy, versatility, etc.

8、 advantages. KEY WORDS:multi-channel data acquisition,scm,analog,switching capacity目录前言1第1章 绪 论21.1 设计背景21.2 性能指标21.3 硬件设计方案21.4 软件设计方案3第2章 多路数据采集系统的硬件设计52.1 单片机控制模块52.2 模拟电压采集接口模块102.3 LCD显示模块112.4 电源模块12第3章 多路数据采集系统的软件设计153.1 主程序流程的设计153.1.1 开关量检测的软件设计163.1.2 LCD显示的软件设计173.2 定时中断的软件设计183.2.1 AD转换的

9、软件设计213.2.2 键盘扫描的软件设计25结论26参考文献27致谢28附录29前言随着计算机技术及大规模集成电路的发展,特别是微处理器及高速A/D转换器的出现,数据采集系统结构发生了重大变革。原来由小规模集成的数字逻辑电路及硬件程序控制器组成的采集系统被微处理器控制的采集系统所代替。因为由微处理器去完成程序控制,数据处理及大部分逻辑操作,使系统的灵活性和可靠性大大的提高,系统的硬件成本和系统的重建费用大大的降低。而采用单片机实现的数据采集系统具有自动化和智能化等特点,使得它们在许多应用场合得到了广泛的应用。基于单片机的多路多路数据采集系统是一种对单片机性能要求中等,结构简单,实用性较强的低

10、端电子产品,单片机作为核心器件,以其体积小、成本低、速度快、升级容易等优点具有很好的现实意义。本文介绍一种基于单片机的多路数据采集系统的设计。文中第一章简要介绍了该通用型多路数据采集系统的设计背景和总体方案。第二章介绍该多路数据采集系统的硬件设计,主要包括单片机控制模块、电源模块、模拟量采集接口模块、开关量采集接口模块、键盘输入模块和LCD显示模块。第三章介绍该多路数据采集系统的软件设计,主要包括主程序和定时中断服务程序的设计流程,以及AD转换、键盘扫描、LCD显示等底层程序的设计。本系统的控制中心是具有AD转换功能的STC12C5A60S2单片机,所以系统具有性价比高,处理能力强的优点。该系

11、统不仅可以对4路模拟电压信号进行采集,还可以对4路开关量进行检测,并实现LCD显示,具有很好的通用性。由于时间的限制及其本人的水平有限,设计中难免出现不妥或错误,恳请各位老师给予批评指教。第1章 绪 论1.1 设计背景采用单片机实现的数据采集系统具有自动化和智能化,接口简单灵活且有较高的数据传输率, 能够对实时数据做出快速响应并及时进行分析和处理等特点,使得它们在许多应用场合得到了广泛的应用。工业领域的现场信息是各种各样的,既有模拟量,也有数字量、开关量。所以设计一种能够采集多种信息的数据采集系统具有很重要的意义和价值。可以提高获取大量动态信息的能力,从而为提高产品质量,降低成本提供信息和手段

12、。1.2 性能指标随着工业自动化、智能化的提高,人们对数据采集系统功能和性能都提出了越来越高的要求。为了较好的满足这些需求,本设计的多路数据采集系统通过单片机的A/D和I/O口,实现对多路模拟信号和数字信号的采集,具有以下的功能和性能指标:(1)能够实现对4路模拟电压信号的采集;(2)能够实现对4路开关量的采集; (3)能数字显示采集结果。1.3 硬件设计方案根据多路数据采集系统具有的功能和性能指标,设计出来的多路数据采集系统的方案设计的硬件部分主要分为以下几个模块:单片机控制模块是整个系统的控制核心。它负责采集经处理过的电压,开关量信息,并送到LCD进行显示,控制和协调系统各模块的工作。模拟

13、量采集接口模块用于对模拟量进行预处理,使其转化为单片机能够处理的数字量。开关量采集接口模块用于对数字量进行预处理,使其转化为单片机能够处理的数字量。例如,单片机处理电压信号范围为0V5V,所以开关量的高电平状态的电平值要先转化为5V以下。键盘输入模块用于输入用户命令,如改变开关量状态,显示开关量等。LCD显示模块用来显示待采集的信号的数值或状态以及相关的提示信息。电源模块为各个模块提供工作电源。多路数据采集系统硬件部分的总框图如图1-1所示:图1-1 系统硬件的总框图1.4 软件设计方案根据方案要求多路数据采集系统软件部分采用结构化程序设计。采用结构化程序设计可以使程序结构清晰,层次分明,易于

14、编写与调试。本软件系统主程序的总框图见图1-2。图1-2 主程序的总框图主程序扫描键盘,显示相应的开关量状态。主程序和定时中断服务程序通过全局变量进行数据传递。定时中断服务程序向主程序递AD转换结果,供主程序计算模拟电压值。LCD显示程序接收数据,显示模拟电压值和开关量状态。第2章 多路数据采集系统的硬件设计在硬件的设计前期,根据框图对系统中可能出现的电路,进行了模拟实验,并根据实验结果对后期的硬件设计进行了合理化的修改完善。在第一章中已分析了系统并绘制了框图,多路数据采集系统硬件设计部分采用模块化的设计思想,将整个系统分成几大模块:单片机控制模块、模拟量采集接口模块、开关量采集接口模块、LC

15、D显示模块和电源模块。通过模块化的方法先焊接和调试各个单元模块,最后进行组装和测试,从而使复杂的问题简单化,提高了系统设计的效率。第2章 2.1 单片机控制模块单片机控制模块是整个系统的核心。本系统采用STC12C5A60S2单片机为核心元件。单片机正常工作还需时钟电路、复位电路、串口通讯等辅助电路。1. 单片机电路STC12C5A60S2单片机的电路原理图见图2-1。图2-1 STC12C5A60S2单片机电路STC12C5A60S2单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部

16、集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25􀐷万次/秒),针对电机控制,强干扰场合。1. 增强型 8051 CPU,1T,单时钟/机器周期,指令代码完全兼容传统80512. 工作电压:STC12C5A60S2 系列工作电压: 5.5V - 3.3V(5V单片机)STC12LE5A60S2 系列工作电压: 3.6V - 2.2V(3V单片机)3. 工作频率范围:035MHz,相当于普通8051的 0420MHz4. 用户应用程序空间 8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K 字

17、节.5. 片上集成1280字节 RAM6. 通用I/O口(36/40/44个),复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置成四种模式:准双向口/弱上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过120mA7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片8. 有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)9. 看门狗10.内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1

18、K电阻到地)11. 外部掉电检测电路: 在P4.6口有一个低压门槛比较器5V单片机为1.33V,误差为5%,3.3V 单片机为1.31V,误差为3%12. 时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为5% 到10% 以内)用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟,常温下内部R/C振荡器频率为:5.0V 单片机为: 11MHz 15.5MHz3.3V 单片机为: 8MHz 12MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准。13. 共4个16位定时器。两个与传统8051兼容的定时器/计数器,16位定时器T0 和T1,没有

19、定时器2,但有独立波特率发生器做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器14. 2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟15. 外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,Power Down模式可由外部中断唤醒,INT1/P3.3,T0/P3.4, T1/P3.5, RXD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2), CCP1/P1.4(也可通过寄存器设置到P4.3)16. PWM(2路)/PCA(可编程计数器阵列,2路)- 也可用来当2路D/A

20、使用- 也可用来再实现2个定时器- 也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)17. A/D转换, 10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)18. 通用全双工异步串行口(UART),由于STC12系列是高速的8051可再用定时器或PCA软件实现多串口19. STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)20. 工作温度范围:-40 +85(工业级) / 0 75(商业级)21. 封装:LQFP-48, LQFP-44, P

21、DIP-40, PLCC-44, QFN-40I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。2. 时钟电路单片机的定时控制功能是用片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:内部时钟方式和外部时钟方式。采用内部时钟方式时,片内高增益反向放大器通过XTAL1、XTAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路构成一个自激振荡器向内部时钟电路提供震荡时钟。振荡器的频率主要取决于晶体的振荡频率,一般晶体可在1.2-12MHz之间任选。电

22、容的值有微调作用,通常取30pF左右。在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。起振电容C7、C8一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好。图2-2 时钟电路3. 复位电路为确保单片机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般单片机电路正常工作需要供电电源为5V5%,即4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,单片机电

23、路开始正常工作。手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。VCC上电时,C充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C充满,10K电阻上电流降为0,电压也为0,使得单片机进入工作状态。工作期间,按下S,C放电。S松手,C又充电,在10K电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。图2-3 复位电路4. 串口通讯电路STC12C5A60S2单片机有一个全双工

24、的串行通讯口,所以可以方便地进行单片机和电脑之间的串口通讯,可以同时接收或传送外部送来的数据。但是进行串行通讯时要满足一定的条件,例如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,也可以用几个三极管进行模拟转换,但都不如专用芯片更简单可靠。标准的RS232电平与STC12C5A60S2单片机的串口电平并不相兼容,须加上转换IC,方可与RS232电平直接相连。单片机内部已集成通信接口URT,只需扩展一片MAX232芯片将输出信号转换成RS-232协议规定的电平标准,MAX232 是一种双组驱动器/接收器,每个接

25、收器将EIA/TIA-232-E电平输入转换为5V TTL/CMOS电平。这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接收30V的输入。 每个驱动器将TTL/CMOS输入电平转换 为 EIA/TIA-232-E电平。即EIA接口,就是把5V转换为-8V到-15V电位0V转换为8V到15V再经RXD输出,接收时由RXD输入,把-8V到-15V电位转换为5V,8V到15V转换为0V。MAX232的工作电压只需5V,内部有振荡电路产生正负9V电位。该电路的数据传输过程如下:MAX232的11脚接单片机TXD端P3.1,TTL电平从单片机的TXD端发出,经过MAX232转换为RS-

26、232电平后从MAX232的14脚发出,再连接到实验班上串口座的第3脚,再经过随板配送的交叉串口线后,连接至PC机的串口座的第2脚RXD端,至此计算机接收到数据。PC机发送数据时从PC机串口座第3脚TXD端发出数据,再逆向流向单片机的RXD端接收数据。图2-4 串口通讯电路2.2 模拟电压采集接口模块 本系统采集4路电压模拟信号,4路电压信号的采集接口模块是相同的。 模拟电压首先经过如图2-5所示的差分比例运算电路减小到原来的。差分比例运算电路是由加减运算电路改进而来的,由比例运算电路分析可知,输出电压和同相输入端信号电压极性相同,与反向输入端信号电压极性相反,因而如果有多个信号同时作用于两个

27、输入端时,就可以实现加减法运算。当加减法运算电路只有两个输入,且参数对称,如图2-5所示,则电路实现了对输入差模信号的比例运算。之后,电压信号再经分压倍数可调的分压电路,转化为0V5V的电压,再接入单片机的AD转换口。模拟电压采集接口电路见图2-6。图2-5 差分比例运算电路图2-6 模拟电压采集接口电路2.3 LCD显示模块本设计采用LCD显示模块选用的硬件器件是液晶显示器DMT32240T035_01WN。它是便携式电子设备常用的芯片,也比较容易操作。类似于平常用的数码管LED显示。LCD显示模块用于显示采集到的模拟电压和开关量的状态等数据以及相关提示信息。该显示器采用M600通用液晶显示

28、驱动。驱动模组提供的是RS232串口方式,通过协议来控制屏的显示,内置128M flash,界面不需要编程序来做,直接图片操作,串口下发指令实现文本图形、曲线、清屏、反色、环移等功能。操作起来特别简单,界面部分由美工设计人员通过计算机设计图片便可以,而且以后产品升级起来特别方便,下位机的控制板可以不用变化,液晶部分都是通过串口控制的,一般程序都不用修改或稍作修改便可将产品的有小显示尺寸升级到大显示尺寸,因为现在TFT面板的价格下调,已经和单色的成本差不太多了,但显示效果和产品档次却大大的提高了。工作电压4.55.5V,工作电流为200mA。控制方式简单,与单片机只需连4根线:电源线、地线、接收

29、信号线、发送信号线。LCD显示模块接口电路如图2-7。图2-7 LCD显示模块接口电路2.4 电源模块电源模块为整个系统提供电源。系统需要的有DC5V和DC9V两种电压电源,设计时采用输出电压为DC9V的电源作为整个系统的电源。之后通过三端稳压7809和7805分别产生DC9V和DC5V的电源供系统的相应模块使用。电路设计时三端稳压7809和7805的输入和输出端要加上滤波和去高频的电容。因AD转换的参考电压是由稳压器7805的输出电压,存在一定的波动,影响AD转换的精确度。所以,又设计了单片机电源电路。单片机电源电路主要由MC1403电路和带扩流功能的同相比例运算电路组成。MC1403是一款

30、低压基准芯片,是由美国摩托罗拉公司生产的高精确度、低温漂、采用激光修正的带隙基准电压源。一般用作812bit的A/D芯片的基准电压等一些需要基本精准的基准电压的场合。输出电压为2.5V(典型值),输入电压范围是4.5V40V,输出电流为10 mA。当输入电压从10V降至4.5V时,输出电压只变化0.0001V,变化率仅为0.0018。因为输出是固定的,所以电路很简单。就是Vin接电源输入,GND接底,Vout加一个0.1uf-1uf的电容就可以了。该芯片为DIP4封装,除了Vin、GND、Vout外,还专门设置了5个空脚,应用时可以将其接地。带扩流功能的同相比例运算电路主要有运放LM324和三

31、极管8050组成。LM324是四运放集成电路,它采用14脚双列直插塑料封装。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。每一组运算放大器可用图2-8所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。如图2-9所示,利用LM324组成同相比例运算电路,需引入电压串联负反馈,故可以认为电阻为无穷大,输出电阻为零。即使考虑集成运放参数的影响,

32、输入电阻也很大。根据“虚段”和“虚断”的概念,集成运放的净输入电压为零,即净输入电流为零,因而,即得图2-8 同相比例运算电路图2-9 单片机电源电路第3章 多路数据采集系统的软件设计本章介绍了该设计的软件方面,软件采用模块化方式进行编程,用到该模块时可直接调用,为了更好地理解程序模块的功能,每个模块都给出了相应的流程图。第3章 3.1 主程序流程的设计图3-1 主程序流程图主程序开始后,进行系统初始化,初始化过程包括设置堆栈、定时器0初始化、定时器1初始化、ADC初始化、串口初始化和开启中断等。之后进入循环,在循环中读取用户按键值,根据用户按键值,计算和显示相应的数据。3.1.1 开关量检测

33、的软件设计根据第二章的开关量采集接口的介绍可以看出开关量的检测(以key1为例)过程如下:先读取P2.0的值,根据P2.0的值判断key1的开关量状态。具体流程图如下:图3-2 开关量检测流程图3.1.2 LCD显示的软件设计本设计采用LCD显示模块选用的硬件器件是液晶显示器DMT32240T035_01WN。它是便携式电子设备常用的芯片。软件设计也不难。类似于平常用的数码管LED显示。LCD显示的主要是开关量和在负载上采集的电压值。具体方法是,把数字值的每位都分离出来,转化为数组元素,再调用发送数据子程序进行发送显示,最后显示设计要求的电压。LCD模块采用串行口控制的方法,LCD模块与单片机

34、的串行口P3.0和P3.1口相连。单片机通过串行口向LCD发送命令,LCD接收到命令后完成相应的动作。例如:要在LCD屏幕上(128,48)处开始显示字符串“Hello!”。则需编程控制单片机通过串行口向LCD发送如下命令(16进制):AA 55 00 80 00 30 48 65 6C 6C 6F A3 A1 CC 33 C3 3C ,共17个字节。 其中,AA是帧头,CC 33 C3 3C是帧尾,这两部分是固定不变的。55是命令字,表示该命令是用来在相应位置显示字符串。00 80 00 30是字符串显示的位置(128,48)的16进制表示。48 65 6C 6C 6F A3 A1是字符串“

35、hello!”的编码。48是“H”在ASCII码表中的码值,65是“e”在ASCII码表中的码值,依次类推,这部分可以看为命令的参数。还有很多的命令,如显示文字,图形,图象等命令,组合使用这些命令,就会显示出丰富多彩的界面。不管什么命令,单片机控制其显示的流程都是一样的,如下图所示。图3-3 LCD显示程序流程图3.2 定时中断的软件设计图3-4 定时中断服务程序流程图进入定时中断服务程序后,首先进行保护现场。51单片机相应中断后,只保护断点而不保护现场信息,如累加器A、工作寄存器、程序状态字PSW等。所以,在编制中断服务程序时应手动保护现场。之后,切换工作寄存器组,单片机共有4组工作寄存器组

36、,主程序默认用寄存器组0,进入中断服务程序后要进行工作寄存器的切换,否则主程序中工作寄存器里保存的值可能被中断程序破坏。然后调用AD转换程序和键盘扫描程序。最后,恢复现场,返回主程序。STC12C5A60S2系列单片机CPU对中断源的开放或屏蔽,每一个中断源是否被允许中断,是由内部的中断允许寄存器IE(IE为特殊功能寄存器,它的字节地址为A8H)控制的,其格式如下:IE : 中断允许寄存器(可位寻址)表3-1 IE寄存器SFR nameAddressBitB7B6B5B4B3B2B1B0IEA8HnameEAELVDEADCESET1EX1ET0EX0EA : CPU的总中断允许控制位,EA=

37、1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。EA的作用是使中断允许形成两级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制。ELVD :低压检测中断允许位。ELVD=1,允许低压检测中断;ELVD=0禁止低压检测中断。EADC : A/D转换中断允许位。EADC=1,允许A/D转换中断;EADC=0,禁止A/D转换中断。ES : 串行口1中断允许位。ES=1,允许串行口1中断;ES=0,禁止串行口1中断。ET1 : 定时/计数器T1的溢出中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。EX1 : 外部中断1中断允许位。EX1=1,允许外部中断

38、1中断;EX1=0,禁止外部中断1中断。ET0 : T0的溢出中断允许位。ET0=1,允许T0中断;ET0=0禁止T0中断。EX0 : 外部中断0中断允许位。EX0=1,允许中断;EX0=0禁止中断。STC12C5A60S2系列单片机复位以后,IE被清0,由用户程序置“1”或清“0”IE相应的位,实现允许或禁止各中断源的中断申请,若使某一个中断源允许中断必须同时使CPU开放中断。更新IE的内容可由位操作指令来实现(SETB BIT;CLR BIT),也可用字节操作指令实现(即MOV IE,#DATA,ANL IE,#DATA;ORL IE,#DATA;MOV IE,A等)。传统8051单片机具

39、有两个中断优先级,即高优先级和低优先级,可以实现两级中断嵌套 。STC12C5A60S2系列单片机通过设置新增加的特殊功能寄存器(IPH和IP2H)中的相应位,可将中断优先级设置为4个中断优先级;如果只设置IP和IP2,那么中断优先级只有两级,与传统8051单片机两级中断优先级完全兼容。中断优先级控制寄存器IP、IP2、IPH和IP2H的各位都由可用户程序置“1”和清“0”。但IP寄存器可位操作,所以可用位操作指令或字节操作指令更新IP的内容。而IP2、IPH和IP2H寄存器的内容只能用字节操作指令来更新。STC12C5A60S2系列单片机复位后IP、IP2、IPH和IP2H均为00H,各个中

40、断源均为低优先级中断。TCON为定时器/计数器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源等,TCON格式如下:TCON : 定时器/计数器中断控制寄存器 (可位寻址)表3-2 TCON寄存器SFR nameAddressBitB7B6B5B4B3B2B1B0TCON88HnameTF1TR1TF0TR0IE1IT1IE0IT0TF1: T1溢出中断标志。T1被允许计数以后,从初值开始加1计数。当产生溢出时由硬件置“1”TF1,向CPU请求中断,一直保持到CPU响应中断时,才由硬件清“0”(也可由查询软件清“0”)。TR1: 定时器1的运行控制位。TF0:T0溢出中断

41、标志。T0被允许计数以后,从初值开始加1计数,当产生溢出时,由硬件置“1”TF0,向CPU请求中断,一直保持CPU响应该中断时,才由硬件清0(也可由查询软件清0)。TR0: 定时器0的运行控制位。IE1:外部中断1请求源(INT1/P3.3)标志。IE1=1,外部中断向CPU请求中断,当CPU响应该中断时由硬件清“0”IE1。IT1:外部中断1中断源类型选择位。IT1=0,INT1/P3.3引脚上的低电平信号可触发外部中断1。IT1=1,外部中断1为下降沿触发方式。IE0:外部中断0请求源(INT0/P3.2)标志。IE0=1外部中断0向CPU请求中断,当CPU响应外部中断时,由硬件清“0”I

42、E0(边沿触发方式)。IT0:外部中断0中断源类型选择位。IT0=0,INT0/P3.2引脚上的低电平可触发外部中断0。IT0=1,外部中断0为下降沿触发方式。3.2.1 AD转换的软件设计本设计采用的STC12C60S2单片机具有输出八路A/D转换的功能,可任选其一。本设计用第一路A/D到第四路A/D,分别用来采集4路电压信号。作为A/D转换的口需先将其设置为高阻输入或开漏模式,在P1M0和P1M1中对相应的位进行设置。A/D转换正常工作还需对一些特殊功能寄存器进行设置,和A/D转换有关的特殊功能寄存器包含:ADC_CONTR,ADC_DATA和ADC_LOW2。(1) P1M0和P1M1的

43、设置P1M0和P1M1的地址分别是:91H和92H。P1M0设置为1,P1M1设置为1或0均可(0为高阻输入模式,1为开漏模式)。(2) 表3-3是ADC_CONTR寄存器表3-3 ADC_CONTR寄存器SFR nameAddressBitB7B6B5B4B3B2B1B0ADC_CONTRBCHnameADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS0ADC_POWER: ADC电源控制位。当ADC_POWER=0时,关闭ADC电源; 当ADC_PWOER=1时,打开ADC电源。 ADC_FLAG: ADC转换结束标志位,可用于请求A/D转换

44、的中断。当A/D转换完成后,ADC_FLAG=1,要用软件清0。不管是A/D转换完成后由该位申请产生中断,还是由软件查询该标志位A/D转换是否结束,当A/D转换完成后,ADC_FLAG=1,一定要软件清0。ADC_START: ADC转换启动控制位,设置为“1”时,开始转换,转换结束为0。表3-4 模拟输入通道选择CHS2CHS1CHS0模拟输入通道选择000选择P1.0作为A/D输入001选择P1.1作为A/D输入010选择P1.2作为A/D输入011选择P1.3作为A/D输入100选择P1.4作为A/D输入101选择P1.5作为A/D输入110选择P1.6作为A/D输入111选择P1.7作

45、为A/D输入表3-5 A/D转换速度控制位SPEED1SPEED0A/D转换一次所需时间00840个时钟周期01630个时钟周期10420个时钟周期11210个时钟周期,A/D转换速度约为100KHz(3) ADC_DATA是A/D转换结果寄存器(地址:C6H)八位全有效。A/D转换精度是十位时,为A/D转换结果高八位(4) ADC_LOW2是A/D转换结果寄存器(地址:BEH)只有低二位有效。A/D转换精度是十位时存A/D转换结果低二位A/D转换程序的基本流程如图3-5所示。图3-5 A/D转换程序的基本流程图当处理多路数据时,ADC的初始化一般放在主程序开始处,第一次进入定时中断转换服务程

46、序之前。每次进入定时中断转换服务程序时,只转换一路数据,转换完成后,切换AD转换通道。等下次进入中断程序时再进行转换,并切换AD转换通道。只要保证最后一次转换完毕后,AD转换通道切换为第一次转换的通道就能形成一个AD转换的循环,从而实现多路数据采集。多路AD转换的流程图如下:图3-6 多路AD转换程序流程图3.2.2 键盘扫描的软件设计图3-7 键盘扫描程序流程图键盘扫描的工作过程:当调用键盘扫描子程序时先判断是否有键按下,没有则返回,当有键按下先判断是否延时结束,相当于调用延时程序去抖动,再判断是否有键按下,没有则返回,当有键按下时,查键号保存键值。键值保存在全局变量中,因键盘扫描程序的调用时间间隔为定时中断的时间,间隔时间非常短,所以,保存键值的全局变量总是保存着最新的按键值。主程序可以根据该按键值,判断开关量状态和执行相应的程序。结论本多路数据采集系统实用性强,能够很好地巡回采集测量控制多路数字信号和模拟信号,结构较为简单,成本低,外接元件少。在实际应用中工作性能稳定,测量电压准确,精度较高。而且从单片机主芯片串行口连接RS232转换芯片MAX232与PC机相连,完成电压实时数据的传递和其他控制工作。并通过串口和LCD显示端连接,拥有较好的人机界面。适用范围广泛,可以单独使用作为监控仪,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号