智能仪表综合训练课程设计报告2.docx

上传人:b****6 文档编号:6448450 上传时间:2023-01-06 格式:DOCX 页数:21 大小:241.92KB
下载 相关 举报
智能仪表综合训练课程设计报告2.docx_第1页
第1页 / 共21页
智能仪表综合训练课程设计报告2.docx_第2页
第2页 / 共21页
智能仪表综合训练课程设计报告2.docx_第3页
第3页 / 共21页
智能仪表综合训练课程设计报告2.docx_第4页
第4页 / 共21页
智能仪表综合训练课程设计报告2.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

智能仪表综合训练课程设计报告2.docx

《智能仪表综合训练课程设计报告2.docx》由会员分享,可在线阅读,更多相关《智能仪表综合训练课程设计报告2.docx(21页珍藏版)》请在冰豆网上搜索。

智能仪表综合训练课程设计报告2.docx

智能仪表综合训练课程设计报告2

内蒙古科技大学

智能仪表综合训练课程设计报告

 

题目:

学生姓名:

学号:

专业:

测控技术与仪器

班级:

指导教师:

目录

1.1设计意义2

1.2设计目的3

1.3设计内容3

2.1功能的实现3

2.2方案论证3

2.2.1单片机的选择4

2.2.2A/D模数转换器选择4

2.2.3串行口的选择4

2.2.4显示单元选择4

3.1硬件系统原理5

3.2电路设计6

3.2.1单片机选型6

3.2.2模数转换电路6

3.2.3显示电路7

3.2.4串口电路7

3.2.5晶振电路8

3.2.6硬件原理图仿真9

4.1Keil4简介9

4.2程序设计9

4.2.1主程序设计10

4.2.2A/D转换程序设计10

4.2.3LCD显示程序设计10

5.1程序调试11

5.1.1硬件调试11

5.1.2软件调试11

5.2程序下载11

5.3总结12

第一章概述

1.1设计意义

随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用。

在生产过程中,应用这一系统可对生产现场的工艺参数进行采集,监视和记录,为提高产品质量,降低成本提供信息和手段。

在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。

总之,不论在哪个应用领域中,数据采集与处理越及时,工作效率就越高,取得的经济效益也越高。

    电子计算机的发展对通信起了巨大的推动作用.计算机和通信紧密结合可以构成灵活多样的通信控制系统也可以构成强有力的信息处理系统,这样对社会的发展产生深刻的影响.数据通信是电子计算机广泛应用的必然产物.计算机与它的终端之间需要数据通信,计算机与计算机之间更需要数据通信.此处在遥测,遥感,雷达,自动控制等系统中都要用到计算机,因而都需要数据通信. 

数据采集系统,从严格的意义上来说,应该是用计算机控制的多路数据自动检测或巡回检测,并且能够对数据实行存储、处理、分析计算以及检测的数据中提取可用的信息,供显示、记录、打印或描绘的系统。

 数据采集系统一般由数据输入系统,数据存储与管理,数据处理,数据输出及显示这四个部分组成。

输入通道要实现对被测对象的检测,采样和信号转换工作。

数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,并进行管理和调用。

数据处理就是从采集到的原始数据中,删除有关干扰噪声,无关信息和必要的信息,提取出反映被测对象特征的重要信息。

另外,就是对数据进行统计分析,以便于检索;或者把数据恢复成原来的物理量形式,以可输出的形态在输出设备上输出,例如打印,显示,绘图等。

数据输出及显示就是把数据以适当的形式进行输出和显示。

数据采集对可调电位器的模拟信号进行测量和处理,以微型计算机技术为基础而形成的一门综合应用技术。

数据采集也是从一个或多个信号获取对象信息的过程。

随着微型计算机技术的飞速发展及普及,数据采集检测已成为日益重要的检测技术,广泛应用与工农也等需要同时检测温度、湿度和压力的场合。

数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可或缺的部分,数据采集的性能特点直接影响到整个系统。

1.2设计目的

本设计的主要目的是实现单片机的数据采集,显示功能及上位机通讯。

为实现这些功能,进行了有关的硬件电路原理图设计与软件编程设计。

硬件电路设计中,运用PROTEL99SE,在已给实验板和实验原理图的基础上,选择实验板上所用于本设计的器件,并进行了涉及硬件原理图的设计以及实验的硬件连接。

软件编程设计中,运用KEIL4编程环境,对设计要实现的功能进行编程,整体程序可分为一个主程序和多个子程序,子程序有基于ADC0832的A/D转换程序、基于AT89C51的标度转换程序和基于LCD1602的液晶显示程序。

通过四个人完成的设计,让我们对数据采集有了清晰的认识,对单片机数据采集及处理数据的原理有了更深的了解,达到学习和实践相结合,学以致用的目的。

1.3设计内容

本设计运用单片机STC89C52进行数据采集的设计,让电压模拟量(0-5V)通过模拟量/数字量转换芯片(ADC0832),送入单片机,进行数据处理之后,通过移位寄存器(74LS164),并在LCD1602上显示。

实验的模拟量数据是通过一个可调电位器输出0-5V的模拟量,显示的是温度。

 

第二章总体方案设计

2.1功能的实现

本系统采用A/D转换器送入模拟信号,而单片机扶着处理接受过来的数字量的处理和显示电脑和单片机之间用RS-232进行通信。

这样就可以在计算机上编程序,然后下载到单片机内部进行处理。

系统框图如图2.1所示。

图2.1系统框图

2.2方案论证

2.2.1单片机的选择

单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。

此系统是有CPU、随机存取数据存储器、只读程序存储器。

输入输出电路(I/O口),还包括串行通信口、显示驱动电路(LCD驱动电路)、脉宽调制电路、模拟多路转换器及A/D转换器等集成到一个单块芯片上,构成一个最小但完善的计算机系统。

单片机要使用特定的组译和编译软件编译程序,再用KEIL4把程序下载到单片机内部。

而本设计选用的是STC89C42。

2.2.2A/D模数转换器选择

A/D转换器是将模拟量转换成数字量的器件,A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。

位数越高其分辨率就越高,价格就越贵。

A/D转换器的型号很多,而其转换时间和转换误差也各不相同。

⑴逐渐逼近式A/D转换器:

它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。

 

⑵双积分A/D转换器:

它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。

 

(3)并行式A/D转换器:

它又被称为flash(快速)型,它的转换数度很高,但她采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域。

 

鉴于上面三种方案,在价格、转换速度等多种标准下,在本设计选用的是逐渐逼近式A/D转换器——ADC0832。

2.2.3串行口的选择

该串行口选用了标准RS-232接口,常用的芯片是MAX232,MAX232的优点是:

⑴一片芯片可以完成发送和接受功能

(1)单一电源+5V供电

(2)它的电路设计与连接比较简单而且功能齐全

2.2.4显示单元选择

液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。

本实验采用的是2行16字的LCD1602液晶显示模块。

2.2.5按键的选择

键盘是一种常见的输入设备,用户可以向计算机输入数据或命令。

根据按键的识别方法分类,有编码键盘和非编码键盘两种。

通过硬件识别的键盘称编码键盘;通过软件识别的键盘称为非编码键盘。

非编码键盘有两种接口方法:

一种是独立按键接口;另一种是矩阵式按键接口。

在单片机中,如果所需的按键较少,可采用独立式键盘。

每只按键接单片机的一条I/O线,通过对线的查询,即可识别各按键的状态。

如图3-7所示。

4只按键分别接单片机的P1.4~P1.7I/O线上。

无按键按下时,P1.4~P1.7线上均输入高电平。

当某按键按下时,与其相连的I/O线将得到低电平输入。

本设计采用的是独立键盘。

独立按键接口

第三章硬件设计与仿真

3.1硬件系统原理

该系统主要原理如下图所示,它有STC89C52、RS232、LCD1602等组成。

图3.1硬件原理图

3.2电路设计

3.2.1单片机选型

该系统所用单片机型号为STC89C52,该芯片由8位通用CPU、程序存储器、随机读写数据存储器及常用外设电路组成。

在芯片中,P0、P2口可作为一般的I/O口使用,当需要再扩展外部存储器时,P0口将作为低8位地址总线或数据总线使用,P2口作为高8位地址总线使用。

由于定时/计数器、串行通信、中断控制器等外围电路集成在CPU芯片内,因而STC89C52的芯片内部也包含了这些外围电路的控制寄存器、状态寄存器以及数据输入/输出寄存器,这些外围电路的接口寄存器构成了STC89C52的特殊功能寄存器。

在本设计中,ADC0832的片选端接单片机的P1.0口,时钟脉冲端接单片机的P1.7端。

其他端则是数据输入和输出端。

3.2.1单片机芯片

3.2.2模数转换电路

ADC0832的输入通道是CH0和CH1,本设计模拟信号从CH0通道送入,所以CH0和CH1短接在一起连到电位器;CS为片选使能,低电平芯片使能,连接STC89C52的P1.0;CLK芯片时钟输入,DI数据信号输入端,DO数据信号输出端,但由于DO端和DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时将DO和DI并联在一根数据线上使用。

模数转换电路如下图所示:

3.2.2模数转换电路

3.2.3显示电路

因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,同时在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的,可以发射光线,其作用主要是提供均匀的背景光源。

在这里,背光板发出的光线在穿过第一层偏振过滤层(也就是上文中提到的夹层)之后进入包含成千上万水晶液滴的液晶层,液晶层中的水晶液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕上的一个像素,而这些像素可以是亮的,也可以是不亮的,大量排列整齐的像素中亮与不亮便形成了单色的图像。

本设计采用的是LCD1602液晶显示屏。

原理图如下图所示:

3.2.3显示电路

3.2.4串口电路

计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯两种方式。

由于串行通讯具有线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛使用。

在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯.,RS232接口是目前最常用的一种串行通讯接口。

由于PC机RS232C串行通信接口和AT89S52单片机的信号电平不一致,所以在PC机RS-232C串口和单片机串口应具有1个电平转换装置,而MAX232就可以完成这一功能,因此采用3线制双工通信连接方式,即单片机串行口的TXD、RXD和GND经电平转换分别与PC机的RXD、TXD和SG相连。

此方式省去了9线的连接,这种方式完全可以进行数据的传输。

3.2.4串口电路

3.2.5晶振电路

当使用片内振荡电路时,X1、X2与晶振及电容C1、C2的连接方式构成晶振电路。

在该电路中,晶振、电容C1、C2以及片内与非门构成了电容三点式振荡器。

振荡电容C1和C2的取值范围与晶振的种类和频率有关。

为了减少寄生电容对振荡频率的影响,在印制板上电容C1、C2应尽可能靠近CPU芯片的X1和X2引脚,必要时可以采用温度系数较小的NPO电容。

3.2.5晶振电路

3.2.6硬件原理图仿真

仿真结果如下图所示:

3.2.6硬件原理仿真图

第4章软件设计

4.1Keil4简介

Keil4提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起。

 

Keil4有以下几个特点:

 1、 全功能的源代码编辑器; 2、 器件库用来配置开发工具设置; 3、 项目管理器用来创建和维护用户的项目; 4、 集成的MAKE工具可以汇编、编译和连接用户嵌入式应用; 5、 所有开发工具的设置都是对话框形式的; 6、 真正的源代码级的对CPU和外围器件的调试器; 7、 高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信。

4.2程序设计

整个程序设计分为三大块,A/D转换程序、LCD1602显示程序、主程序。

按设计方法的思路将A/D转换程序以子程序调用的形式出现,LCD显示程序设为库文件,然后由主程序调用子程序和头文件完成设计功能。

4.2.1主程序设计

主程序只做调用别的程序作用,其流程图如下图所示。

主程序一开始就进入循环状态,首先调用A/D转换程序,接收转换数字信号,进行数据处理,然后调用LCD初始化程序。

图4.2.1主程序流程图

4.2.2A/D转换程序设计

A/D转换程序的功能是:

当通过电位器将模拟信号送入ADC0832后,ADC0832将模拟信号转换为数字信号,通过程序将得到的数字信号返回,以便主程序调用。

在程序中应依照ADC0832芯片的管脚功能以及单片机对它的控制原理,使能芯片产生时钟信号,设置好通道选择,以便芯片正确转换数据,流程图如图4.2所示:

4.2.2A/D转换流程图

4.2.3LCD显示程序设计

LCD显示程序功能是将经过单片机处理过的信号实时显示出来,程序流程图如图4.3所示:

图4.3LCD显示流程图

第五章调试与总结

5.1程序调试

5.1.1硬件调试

硬件调试的主要任务是排除硬件故障,其中包括设计的错误和工艺性故障等。

检查所设计的硬件电路板所有的引脚是否正确,尤其是电源的连接是否正确;检查各总线是否有短路的故障。

检查开关/按键是否正常,是否连接正确,为了保护芯片,应先对各IC座电位进行检查,确认无误后再插入芯片。

将芯片的仿真插头插入单片机插座进行调试,检查各接口是否满足设计要求,用正常的程序测试硬件电路的好坏。

5.1.2软件调试

软件调试的任务是利用开发工具进行在线仿真调试,发现和纠结程序的错误,同时也能发现硬件故障。

软件调试是每个模块进行的。

首先单独调试各子程序是否能达到预期的功能,接口电路的控制是否正常。

尤其是注意各模块间能否正确的传递参数。

5.2程序下载

启动程序STC-ISP后,第一步就是选择器件。

软件支持STC全系列的51单片机芯片,因此,第一步必须选择相对应的型号。

第二步就应该选择将要被烧写的HEX文件。

HEX文件由单片机开发环境输入、编辑代码、最后编译产生。

选好了文件后,可以发现“文件校验”中的数据发生了变化。

可以通过留意这个数据是否变化来确定打开文件是否成功。

第三步就是设置串口。

选择适当的串口参数后就是下载,如图5.3所示:

第四步就是下载观察现象是否正确。

5.3总结

经过这次毕业设计,我在用专业知识、专业技能分析和解决问题的能力得到全面系统的锻炼。

而且在单片机应用系统开发过程、单片机的基本原理,以及常用编程设计思路技巧方面都向前迈了一大步,为以后成为合格的人才打下坚实的基础。

同时,我也发现了很多不足之处,这需要在实践中进一步完善。

在此次设计的整体过程中,我始终保持积极态度和韧性。

其中在硬件电路设计的时候碰到了很大的阻力,通过耐心并且细致的深入的研究,找出了许多问题的出处,虽然最终没有完全尽善尽美,但是这样的一个过程,同样使我得到了很多的磨练,受益良多。

参考文献

[1]阎石.数字电子技术基础.高等教育出版社

[2]徐爱均.智能化测量控制仪表原理与设计.北京航空航天大学出版社

[3]张友德.单片微型机原理、应用与实验.复旦大学出版社

[4]杨记文.汇编语言程序设计教程.清华大学出版社

 

附录A:

基于LCD的数据采集系统原理图

 

附录B:

源程序

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeL0[]={"0123456789-"};

ucharcodeL1[]={"WENDU:

"};

ucharcodeL2[]={"."};

ucharcodeL3[]={"cent"};

ucharcodeL4[]={"pleasekeyin"};

ucharcodeL5[]={"password"};

ucharKeyCtl[4];

sbitRS=P1^0;

sbitRW=P1^1;

sbitE=P1^2;

sbitBF=P0^7;

sbitcs=P2^0;

sbitclk=P3^6;

sbitdodi=P3^7;

sbitkey1=P1^4;

sbitkey2=P1^5;

sbitkey3=P1^6;

sbitkey4=P1^7;

ucharflag;

voiddelay(ucharx){

uinti,j;

for(i=100;i>0;i--)

for(j=x;j>0;j--);

}

bitcmxh(void){

bitmxh;

RS=0;

RW=1;

E=1;

_nop_();

_nop_();

_nop_();

_nop_();

mxh=BF;

_nop_();

_nop_();

_nop_();

_nop_();

E=0;

returnmxh;

}

voidwrite_zl(ucharx)

{

while(cmxh()==1);

RS=0;

RW=0;

E=0;

_nop_();

_nop_();

_nop_();

_nop_();

P0=x;

_nop_();

_nop_();

_nop_();

_nop_();

E=1;

_nop_();

_nop_();

_nop_();

_nop_();

E=0;

}

voidwrite_date(uchary)

{

while(cmxh()==1);

RS=1;

RW=0;

E=0;

_nop_();

_nop_();

_nop_();

_nop_();

P0=y;

_nop_();

_nop_();

_nop_();

_nop_();

E=1;

_nop_();

_nop_();

_nop_();

_nop_();

E=0;

}

voidwriteAdress(ucharAd)

{

write_zl(Ad|0x80);

}

voidLCDINT()

{

delay(15);

write_zl(0x38);

delay(5);

write_zl(0x38);

delay(5);

write_zl(0x38);

delay(5);

write_zl(0x0c);

delay(5);

write_zl(0x06);

delay(5);

write_zl(0x01);

delay(5);

}

ucharreadadc0832(bitch)

{

uchari,data1=0,data2=0;

clk=0;

dodi=1;

cs=0;

clk=1;

clk=0;

dodi=1;

clk=1;

clk=0;

dodi=ch;

clk=1;

clk=0;dodi=1;

for(i=0;i<8;i++)

{

clk=1;

clk=0;

if(dodi)data1|=0x80>>i;

}

for(i=0;i<8;i++)

{

if(dodi)data2|=0x01<

clk=1;

clk=0;

}

cs=1;

dodi=1;

clk=1;

if(data1==data2)return(data1);

}

voidxsL1()

{

uchari;

delay(5);

writeAdress(0x00);

i=0;

while(L1[i]!

='\0')

{

write_date(L1[i]);

i++;

delay(200);

}

}

voidxsL2()

{

uchari;

delay(5);

writeAdress(0x09);

i=0;

while(L3[i]!

='\0')

{

write_date(L3[i]);

i++;

delay(200);

}

}

voidxsL3()//

{

writeAdress(0x49);

write_date('.');

delay(200);

}

voidxsL4()//

{

uchari;

delay(5);

writeAdress(0x00);

i=0;

while(L4[i]!

='\0')

{

write_date(L4[i]);

i++;

delay(200);

}

}

voidxsL5()//

{

uchari;

delay(5);

writeAdress(0x40);

i=0;

while(L5[i]!

='\0')

{

write_date(L5[i]);

i++;

delay(200);

}

}

voiddeplay_templ1(uintx)

{

uintj,k,l;

j=x/100;

k=(x%100)/10;

l=x%10;

writeAdress(0x06);

if(flag==1)

{

write_date(L0[10]);

}

else

{

write_date(L0[j]);

delay(700);

}

write_date(L0[k]);

write_date(L0[l]);

delay(50);

}

voiddeplay_templ2(ucharx)

{

writeAdress(0x4a);

write_date(L0[x]);

delay(50);

}

voidInit_Uart()

{

TMOD=0x20;

TH1=TL1=0xFD;

SCON=0x50;

PCON=0x00;

TR1=1;

}

voidsend_char(unsignedchartxd)

{

SBUF=txd;

while(!

TI);

TI=0;

}

voidmain()

{

uinttemp,Data,shu=3;

ucharKeyZhi=0,count=0,i;

while

(1)

{

if((KeyCtl[0]==0x01)&(KeyCtl[1]==0x02)&(KeyCtl[2]==0x03)&(KeyCtl[3]==0x03))

{

xsL1();

xsL2();

deplay_templ1(Data);

}

}

}

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1