测控系统原理课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要
本系统以AT89C52为核心器件,设计一种函数信号发生器,AT89C52是一个低电压高性能CMOS 8位单片机,片内含8k bytes的课反复擦写的Flash只读存储器和256 bytes 的随机存取数据存储器(RAM)。
本系统大致可分为四个模块,单片机控制模块(AT89C52),波形输出模块(DAC0832、UA741),显示模块(数码管、电阻),按键模块。
可以输出三角波、正向锯齿波、负向锯齿波和方波,波形清晰,系统采用按键输入,利用数码管显示电路输出数字显示的方案,其中:0为方波、1为正向锯齿波、2为负向锯齿波、3 为三角波。
目录
第一章设计内容及要求 (2)
第二章需求分析与设计思路 (2)
第三章总体方案设计 (3)
硬件设计 (3)
硬件设计系统总体框图 (3)
单片机控制系统电路 (3)
波形输出模块电路 (3)
显示模块 (3)
按键模块 (3)
软件设计 (4)
第四章详细设计 (4)
硬件电路原理图 (4)
元件清单并说明元件选择及参数选择的依据 (5)
仿真运行结果 (6)
单片机片内资源分配图 (7)
软件流程图 (8)
程序清单及注释 (8)
第五章使用说明 (9)
性能和功能介绍 (9)
各操作开关、按钮、指示灯、显示器等的作用介绍 (9)
使用操作步骤 (9)
故障处理 (9)
第六章设计体会 (9)
第七章参考文献 (10)
附录 (10)
第一章设计的内容及要求
运用所学单片机、模拟和数字电路、以及测控系统原理与设计等方面的知识,设计出一台以AT89C52为核心的函数发生器,能分别产生三角波、正向锯齿波、负向锯齿波和方波,完成输出信号的产生、显示及键盘接口电路等部分的软、硬件设计,要求采用DAC0832 实现D/A转换,利用按键(自行定义)进行输出波形选择,同时将当前输出波形代号显示在LED上:0为方波、1为正向锯齿波、2为负向锯齿波、3 为三角波。
要求:
1、设计接口电路,将这些外设构成一个简单的单片机应用系统。
2、函数发生器要求如下:
1)1位数码显示
2)输出信号:0~5V。
3)按键切换输出波形。
第二章需求分析与设计思路
本次设计要求设计一台以AT89C52为核心函数信号发生器,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和转换,系统采用按键输入,利用数码管显示电路输出数字显示的方案。
故将设计分解为四个模块,单片机控制模块(AT89C52),数模转换放大(DAC0832、UA741),显示模块(数码管、电阻),按键模块。
波形的产生是通过AT89C52 执行某一波形发生程序,向D/A转换器的输入端按一定的规律发生数据,从而在D/A转换电路的输出端得到相应的电压波形。
在AT89C52的P1口接4个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有口管脚接七段数码管芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。
其中单片机控制电路主要是形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D/A接口电路和显示驱动电路。
显示电路则驱动1位七段数码管显示,扫描按钮。
波形转换电路将波形样值的编码转换成模拟值,完成单极性的波形输出。
单片机向0832发送数字编码,产生不同的输出。
先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过D/A转换后输出就可以得到波形。
利用按键进行输出波形选择,同时将当前输出波形代号显示在LED上:0为方波、1为正向锯齿波、2为负向锯齿波、3 为三角波。
第三章总体方案设计
硬件设计
系统硬件总体框图如下:
单片机控制系统电路
AT89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单、可靠。
其主要功能是形成扫描码,键值识别、键处理、参数设置;形成显示段码;产生定时中断;形成波形的数字编码,并输出到D/A接口电路和显示驱动电路。
波形输出模块电路
由于单片机采用编程方法产生四种波形、通过D/A转换模块DAC0832转换成模拟量在经过UA741进行放大之后输出。
DAC0832芯片是一种具有两个输入数据寄存器的8位DAC,它能直接与MCS51单片机接口。
目前生产的DAC芯片分为两类,一类芯片内部设子有数据寄存器,不需要外加电路就可以直接与微型计算机接口。
另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,必须通过并口接口与微型计算机接口。
DAC0832是具有20条引线的双列直插式CMOS器件,它内部具有两级数据寄存器,完成8位电流D/A转换,故不需外加电路。
单片机向0832发送数字编码,产生不同的输出。
先利用采样定理对各波形进行抽样,然后把各采样值进行编码。
显示模块
功能:驱动LED,数码管显示数。
数码管为共阴极,没有译码器再加上单片机电流不是很大,我们不接电阻让数码管最亮。
按键模块
需要选择四种波,所以选用四个按键。
选用独立式键盘连接方式,各按键相互独立,每个按键的“接零端”均接地,每个按键的“测试端”分别接入AT89C51的一根输入线,即接方波输入,接正向锯齿波,接负向锯齿波,接三角波。
软件设计
软件由主程序和产生波形的子程序组成,主要是产生各种波形的子程序的编程,通过编程可得到各种波形。
周期的改变可采用插入延时子程序的方法来实现。
并且,我们要选中DAC0832,对它进行清零。
利用按键来控制来控制不同波形的输出。
软件结构框图如下
第四章详细设计4.1硬件电路原理图
①硬件电路原理图如下所示
. ②连线步骤:
(1) 将AT89C52的—口分别于四个控制不同波形输出的开关相连。
(2)把D/A区0832片选CS信号线与XFER接至。
(3)—与七段数码管相连
(4)将D/A区WR插孔连到CPU的WR。
(5)将电位器W2的输出Vref连到D/A区的Vref上,电位器W2的输入VIN连到+12V
插孔,调节W2使Vref为+5V。
(6) 用8芯排线将D/A区D0—D7与BUS2区XD0 -- XD7相连。
(7) 将0832的IOUT1与示波器的探头相连另一极接地。
(8)运算放大器U3的输出端VOUT直接反馈到Rfb端,产生单极性的模拟输出电压。
4.2元件清单并说明元件选择及参数选择的依据
(1)元件清单如下所示:
AT89C521片BUTTON4个
7SEG-COM-CAT-GRN1个POT1个DAC08321片RES1个
UA7411个OSCILLOSCOPE1个
(2)参数选择的依据:
该函数发生器采用AT89C52单片机作为控制核心,外围采用模拟/数字转换电路(DAC0832)、运放电路(UA741),按键和LED显示电路。
其价格低、性能好、操作方便、体积小等优点。
由于采用了UA741运算放大器,使其电路更加具有较高的稳定性、性能比高。
此电路清晰,出现故障容易查找错误,操作简单、方便。
DAC0832是8分辨率的D/A转换集成芯片。
与微处理器完全兼容。
这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。
4.3仿真运行结果
①数码管显示为0时输出方波
②数码管显示为1时输出正向锯齿波
③数码管显示为2时输出负向锯齿波
④数码管显示为3时输出为三角波
单片机片内资源分配表
端口用途端口用途
~按键输入~、数码管显示 P0、P2地址总线线P0数据总线
写控制线
软件流程图
程序清单及注释(见附录)
第五章使用说明
性能和功能介绍
该函数发生器具有价格低、性能好、操作方便、体积小等优点。
由于采用了UA741运算放大器,使其电路更加具有较高的稳定性、性能比高。
此电路清晰,出现故障容易查找错误,操作简单、方便。
各操作开关、按钮、指示灯、显示器等的作用介绍
按钮的作用就是对输出波形进行选择,四个按钮相互独立,显示器的作用就是输出波形代号:0为方波、1为正向锯齿波、2为负向锯齿波、3 为三角波。
使用操作步骤
故障处理
在软件设计时,开始不能实现各个波之间的切换,或者无法出现波形,后来得知切换时需要先松开上次按下的键,确保每个按键的独立性。
第六章设计体会
通过这次设计,我的理论知识掌握的更扎实,动手能力明显提高。
同时,通过网上搜索等多方面的查询资料,我学到了许多书本上没有的知识。
本次设计要求设计一台以AT89C52为核心函数信号发生器,采用DAC0832 实现D/A转换,因此我复习了DAC0832与AT89C51的接口电路,对DAC0832的各引脚及其工作方式有了深入的理解,特别是其单缓冲双极性电压输出的工作方式。
还复习了按键及LED的显示。
无论在程序设计方面还是实践动手能力都得到了一个非常大的锻炼,并对硬件知识的了解以及安装调试能力也得到了一个很大的提升。
第七章参考文献
1.《单片微机测控系统设计大全》王福瑞等北京航空航天大学出版社,1999 2.《现代测控技术与系统》韩九强清华大学出版社
3.《智能仪器》程德福,林君主编机械工业出版社 2005年2月
4.《测控仪器设计》浦昭邦,王宝光主编机械工业出版社 2001
5.《MCS-51单片机应用系统设计》何立民北京:北京航空航天大学出版社,1990.
6.《单片机原理及应用[M]》张毅刚,彭喜元等北京:高等教育出版社,2004.
7.《单片机原理实验指导书》南昌: 华东交通大学出版社,2004
C51帮助文档.
附录
程序清单及注释:
ORG 0000H
LJMP 1000H
ORG 1000H
xuanze:
JNB , SJ //选择不同的波形输出并跳到相应的函数
JNB , JCB
JNB , JCB2
JNB , FB
MOV P3,#0C0H //未按键时,数码管不显示
CLR
SJMP xuanze
SJ: JB , ENDSJ //三角波函数
START: MOV DPTR, #7FFFH //将D/A转换器的端口地址给了DPTR
MOV A, #00H
MOV P3,#0CFH //数码管显示3
SETB
UP: MOVX @DPTR, A //上升沿函数;将00H给了D/A转换器 INC A
JB , ENDSJ //判断是否结束三角波的输出
JNZ UP
DOWN: DEC A //下降沿函数
MOVX @DPTR, A
JB , ENDSJ
JNZ DOWN
SJMP UP //重复输出三角波
ENDSJ: LJMP xuanze //结束三角波函数并返回到xuanze函数
JCB: JB , ENDJCB //正向锯齿波函数
START1: MOV DPTR, #7FFFH //初始化
MOV A, #00H
MOV P3,#0C6H //数码管显示1
CLR
LOOP: MOVX @DPTR,A
INC A
JB , ENDJCB
SJMP LOOP
ENDJCB: LJMP xuanze //结束正向锯齿波函数并返回到xuanze函数
JCB2: JB , ENDJCB2 //负向锯齿波函数
START2: MOV DPTR, #7FFFH //初始化
MOV A, #00H
MOV P3,#0DBH //数码管显示2
SETB
LOOP2: MOVX @DPTR, A
DEC A
JB , ENDJCB2
SJMP LOOP2
ENDJCB2: LJMP xuanze //结束负向锯齿波函数并返回到xuanze函数
FB: JB , ENDFB //方波函数
MOV P3,#0FFH //数码管显示为0
CLR
LOOP3: MOV A,#00H //低电平
MOV DPTR,#7FFFH
MOVX @DPTR,A
ACALL DELAY1
MOV A,#0FFH //高电平
MOVX @DPTR,A
ACALL DELAY1
JB ,ENDFB
SJMP LOOP3。