单片机原理及应用期末课程设计.docx

上传人:b****6 文档编号:15715335 上传时间:2023-07-07 格式:DOCX 页数:31 大小:592.11KB
下载 相关 举报
单片机原理及应用期末课程设计.docx_第1页
第1页 / 共31页
单片机原理及应用期末课程设计.docx_第2页
第2页 / 共31页
单片机原理及应用期末课程设计.docx_第3页
第3页 / 共31页
单片机原理及应用期末课程设计.docx_第4页
第4页 / 共31页
单片机原理及应用期末课程设计.docx_第5页
第5页 / 共31页
单片机原理及应用期末课程设计.docx_第6页
第6页 / 共31页
单片机原理及应用期末课程设计.docx_第7页
第7页 / 共31页
单片机原理及应用期末课程设计.docx_第8页
第8页 / 共31页
单片机原理及应用期末课程设计.docx_第9页
第9页 / 共31页
单片机原理及应用期末课程设计.docx_第10页
第10页 / 共31页
单片机原理及应用期末课程设计.docx_第11页
第11页 / 共31页
单片机原理及应用期末课程设计.docx_第12页
第12页 / 共31页
单片机原理及应用期末课程设计.docx_第13页
第13页 / 共31页
单片机原理及应用期末课程设计.docx_第14页
第14页 / 共31页
单片机原理及应用期末课程设计.docx_第15页
第15页 / 共31页
单片机原理及应用期末课程设计.docx_第16页
第16页 / 共31页
单片机原理及应用期末课程设计.docx_第17页
第17页 / 共31页
单片机原理及应用期末课程设计.docx_第18页
第18页 / 共31页
单片机原理及应用期末课程设计.docx_第19页
第19页 / 共31页
单片机原理及应用期末课程设计.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机原理及应用期末课程设计.docx

《单片机原理及应用期末课程设计.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用期末课程设计.docx(31页珍藏版)》请在冰点文库上搜索。

单片机原理及应用期末课程设计.docx

单片机原理及应用期末课程设计

 

数理与信息工程学院

《单片机原理及应用》期末课程设计

题目:

基于单片机的便携远程多路数据采集系统

专业:

电子信息工程

班级:

电子信息工程061

姓名:

冯珊珊

学号:

06220302

指导老师:

余水宝

成绩:

()

第1节引言………………………………………………………………………………3

多路数据采集系统的概述………………………………………………………3

本设计任务和主要内容…………………………………………………………4

第2节系统主要硬件电路的设计………………………………………………………5

单片机采集系统原理……………………………………………………………5

单片机主机系统电路…………………………………………………………5

2.2.1单片机总系统原理路…………………………………………………6

2.2.2CPU处理核心模块………………………………………………………6

2.2.3时钟电路…………………………………………………………………9

2.2.4复位电路…………………………………………………………………9

数据采集处理电路………………………………………………………………9

2.4A/D转换器………………………………………………………………………10

超限报警电路…………………………………………………………………10

液晶显示电路设计……………………………………………………………11

方法论证和比较………………………………………………………………13

2.7.1方案一…………………………………………………………………13

2.7.2方案二…………………………………………………………………14

第3节系统软件设计…………………………………………………………………15

系统主程序设计…………………………………………………………………15

3.1.1单路采集程序…………………………………………………………15

3.1.2循环采集程序………………………………………………………16

3.1.3A/D转换程序………………………………………………………18

数据处理………………………………………………………………………18

3.2.1调整电路设计…………………………………………………………18

3.2.2标度变换………………………………………………………………19

3.2.3BCD转换……………………………………………………………21

第4节结束语…………………………………………………………………………23

参考文献…………………………………………………………………………24

 

基于单片机的便携远程多路数据采集系统

数理与信息工程学院06电子信息工程冯珊珊

指导教师:

余水宝

第1节引言

尽管是科技高度发达的今天,在很多地方,即使是实现了磁卡登记用电情况的地区,仍无法缺少电表登记人员定时前往各户,进行用电度数的统计和偷电、漏电的定期查看,虽然这种措施在一定程度上起到了敦促作用,但仍无法及时获知并处理类似情况。

为了实现农村家庭用电及时登记,减轻查表人员的工作负担,特设计开发了可进行多路远程数据采集的便携式远程多路数据采集系统。

本远(近)程数据采集系统,结构紧凑,采用了AT89C52单片机作为中心控制单元,以12位高精度并行A/D转换芯片AD574和8通道故障保护模拟开关MAX354实现8路数据采集;利用RS-485串行通讯进行数据传输,传输距离可达1.2km;接收端再将信号转换为RS-232电平,使用便携式手提电脑的串口接收数据,将采样数据存储在PC机中,便于数据的实时处理和分析。

多路数据采集系统原理简述

数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号,送到上位机中进行分析、处理。

数据采集卡,即实现数据采集(DAQ)功能的计算机扩展卡,可以通过USB、PXI、PCI、PCIExpress、火线(1394)、PCMCIA、ISA、CompactFlash等总线接入个人计算机。

数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。

通常,必须在数据采集设备采集之前调制传感器信号,包括对其进行增益或衰减和隔离,放大,滤波等.对待某些传感器,还需要提供激励信号。

 

1.2本设计任务和主要内容

本设计主要研究单片机控制的多路数据采集系统,分别对系统采集的家用电数据和人工采集之间误差关系的分析、数据采集控制技术及系统设备的软、硬件各个部分进行了初步研究。

主要内容如下:

①根据农村家庭分布远近不一,呈中心辐射状的特点,进行家用电表数据采集系统的整体研究与设计。

②针对家庭用电情况和偷电、漏电等现象不定期抽查,提高安全系数,保障用电的规范性。

③LED显示同一用户在采集期的用电度数,在采集期间可以倒计时的方式显示采集剩余时间,提醒工作人员注意,时间以单位“天”计。

④当用户平均用电低于设定的最低值时,系统可自动报警,告知统计人员,并同时通过短信询问用户。

 

第2节系统主要硬件电路设计

2.1单片机采集系统原理

整个采集系统分为数据采集发送端和数据接收端。

数据采集发送端主要由AT89C52单片机、AD574AA/D采样芯片、MAX354故障保护模拟开关和MAX485芯片构成,完成多路信号的采集和串行数据的发送功能。

数据接收端由一个RS-485电平转RS-232C电平的电路,以及一台便携式手提电脑构成。

数据采集端和发送端通过一条屏蔽的双绞线电缆连接。

 

 

2.2单片机主机系统电路

2.2.1单片机总电路原理图

数据采集系统的主要分为以下几个模块:

数据采集转换模块、数据存储模块、键盘控制模块、时钟模块、液晶显示模块、串口通信模块。

其中数据采集模块包括AD电压信号量采集和系统工作温度采集。

图2-2系统总原理图

2.CPU处理核心模块

AT89C52是一个低功耗,高性能CMOS8位单片机,片内含8kBytes的可反复擦写1000次的Flash只读程序存储器。

器件采用ATMEL公司的高密度、非易失性存储技术制造。

AT89C52有128bytes的On-Chip随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,1个6向量两级中断结构,3个16位可编程定时计数器,1个全双工串行通信口,片内时钟振荡器。

此外,AT89C52还设计和配置了振荡频率可为0Hz并可通过软件设置的省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器、串行口、外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

 因此,AT89C52构成的单片机系统是具有结构简单、效率高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。

 

图2-389C52芯片内部原理图

引脚说明:

·VCC:

电源电压

·GND:

·P0口:

P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。

当对0端口写入1时,可以作为高阻抗输入端使用。

当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。

在这种模式下,P0口具有内部上拉电阻。

在Flash编程时,P0口接收指令字节,同时输出指令字节在程序校验时。

程序校验时需要外接上拉电阻。

·P1口:

P1口是一带有内部上拉电阻的8位双向I/O口。

P1口的输出缓冲能接受或输出4个TTL逻辑门电路。

当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。

当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。

·P2口:

P2是一带有内部上拉电阻的8位双向的I/O端口。

P2口的输出缓冲能驱动4个TTL逻辑门电路。

当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。

在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。

当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。

当Flash编程或校验时,P2口同时接收高8位地址和一些控制信号。

·P3口:

P3是一带有内部上拉电阻的8位双向的I/O端口。

P3口的输出缓冲能驱动4个TTL逻辑门电路。

当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。

作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。

P3口同时具有AT89C51的多种特殊功能,具体如下表2-1所示。

 

表2-1P3口的第二功能

端口引脚

第二功能

RXD(串行输入口)

TXD(串行输出口)

(外部中断0)

(外部中断1)

T0(定时器0)

T1(定时器1)

(外部数据存储器写选通)

(外部数据存储器都选通)

·RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。

·ALE/

:

当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址低8位字节。

当在Flash编程时还可以作为编程脉冲输出(

)。

一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。

但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。

·

程序存储允许时外部程序存储器的读选通信号。

当AT89C52执行外部程序存储器的指令时,每个机器周期

两次有效,除了当访问外部数据存储器时,

将跳过两个信号。

·

/VPP:

外部访问允许。

为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,

必须同GND相连接。

需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。

当执行内部编程指令时,

应该接到VCC端。

·XTAL1:

振荡器反相放大器以及内部时钟电路的输入端。

·XTAL2:

振荡器反相放大器的输出端。

本系统中,采用AT89C52作为CPU处理器,充分利用其硬件资源,结合74ls373锁存器,7404、7402、74138等数字处理芯片,连接了各个硬件模块。

地址分配如下:

AD574是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型A/D转换器,内置双极性电路构成的混合集成转换芯片,具有外接元件少,功耗低,精度高等特点,并具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的A/D转换器,其模拟电压输人范围有四种:

0-10V、0-20V,0±5V、0-±10V,数据输出格式为12位和8位可选,本设计采用12位数据格式,这样可以提高数据

的精度。

 

图2-4AD574A芯片内部原理图

MAX485接口芯片是MAXIM公司的一种RS-485芯片,它完成将TTL电平转换为RS-485电平的功能。

采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式,数据传输率高达。

在一条RS-485总线上可以挂接最多32个MAX485收发器。

这样可以通过编程利用一台手提电脑通过RS-485总线同时对多套该系统进行数据采集。

 

表2-1RS232引脚功能

引脚序号

信号名称

符号

流向

功能

2

发送数据

TXD

DTE→DCEDTE

发送串行数据

3

接收数据

RXD

DTE←DCEDTE

接收串行数据

4

请求发送

RTS

DTE→DCEDTE

线路切到发送方式

5

允许发送

CTS

DTE←DCEDCE

线路已通可发送数据

6

数据设备准备好

DSR

DTE←DCEDCE

准备好

7

信号地信号

GND

公共地

8

载波检测

DCD

DTE←DCE

DCE接到远程载波

20

数据终端准备好

DTR

DTE→DCEDE

准备好

22

振铃指示

RI

DTE←DCE

DCE线路通,现振铃

2.2.3时钟电路

单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:

内部振荡和外部振荡。

MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。

外接晶体以及电容C2和C1构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30P左右,晶振频率选6MHz。

2.2.4复位电路

为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位

后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。

单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。

复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。

复位操作有两种情况,即上电复位和手动(开关)复位。

本系统采用上电复位方式。

数据采集处理电路

采样电路由AD574和MAX354组成,在一个采样周期内,连续对8路输入数据按顺序进行一轮采样,采样

电路与单片机的连接如图2-5所示。

 

图2-5数据采集原理图

AD574内部具有三态数据锁存器,可以和89C52单片机的P0数据口直接相连,它内部具有参考电压和时钟电路,因此无需任何元器件即可独立完成A/D转换。

A/D转换结束后,AD574向89C52的中断INT0发出中断申请,然后系统对转换后的数据进行处理。

AD574的12/8端子固定接地,A0端口与89C52的地址线A7相连,这样在地址线A7的控制下分两次通过8位数据总线来读取l2位的转换结果。

2.4A/D转换器

在微机化测控系统中,经A/D转换器接口送入微机的数据,是对被测量进行测量得到的原始数据。

这些原始数据送入微机后通常要先进行一定的处理,然后才能输出作为显示器的显示数据。

例如当用户用电为100KWH,经热电偶转换成热电势,再经放大和A/D转换得到的数字是1,这个A/D转换结果1虽然与100KWH是对应的,但数字上并不是相等的。

因此,不能当作电压读数去显示或打印,必须把A/D转换结果1变换成供显示或打印的电压度数100,这个变换就是数字显示的标度变换。

 

 

图2-6线性关系

在该系统中,湿度传感器和A/D相连,A/D转换器和单片机相连,其中不包

括任何非线性的数字化测量通道,因此被测量的值N,与A/D转换结果D,存在如

图3-2所示线性关系。

在该系统中,农村用户用电测量范围100%对应的输出电压范围为0-5V,ADC0809为8位A./D转换器,转换输出的数码为0255。

即根据上面公式,DL=0lDH=255,NL=0,NH=100.

超限报警电路

为了在某些紧急状态或反常状态下,能使操作人员不致忽视,以便及时处理,往往需要有某种更能引起人们注意提起警觉的报警信号产生,这种报警信号通常有三种类型:

闪光报警、鸣音报警、语音报警,本系统采用简单易行的声光报警电路。

如图2-8所示报警电路,报警设备选用压电式蜂鸣器,它约需要10mA的驱动电流,只需在其两条引线上加3一15V的直流电压,即可产生3KHz左右的蜂鸣声音,图中蜂鸣器的一端接在高电平+SV,另一端接,在初态始终输出高电平1,当需要报警时,程序对其端口清零即可,声音的长短可用延时程序控制实现。

图中接入的发光二极管LED为超高线报警器,当端输出为低电平“0”时,二极管通,灯亮发出报警信号。

图2-7报警电路

2.6液晶显示电路设计

本系统的显示部分采用RT1602c字符显示模块,与采用数码管相比,硬件连接和软件调试上都由优势。

只要把要显示的内容放进液晶模块的显示存储器里面就可以直观的显示出指定的内容,操作方便。

1602采用标准的14脚接口,其中:

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

V0为液晶显示器对比度调整端。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15~16脚:

空脚

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表3-3所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母“A”

它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:

1为高电平、0为低电平),指令表见表2-3。

表2-31602字符模块指令表

指令1:

清显示,指令码01H,光标复位到地址00H位置

指令2:

光标复位,光标返回到地址00H

指令3:

光标和显示模式设置I/D:

光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效

指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标是否闪烁,高电平闪烁,低电平不闪烁

指令5:

光标或显示移位S/C:

高电平时移动显示的文字,低电平时移动光标

指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符

指令7:

字符发生器RAM地址设置

指令8:

DDRAM地址设置

指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:

写数据

指令11:

读数据

 

图2-8液晶显示原理图

该模块的硬件原理图如图2-8所示。

1602C的数据口接单片机的P0口,使能端E接,液晶的RS端接,读写端RW接。

2.7方案论证和比较

2.7.1方案一

它能完成所要求的功能,但是存在不足之处是:

编程不方便,主要是A/D接口和RS485接口编程不方便。

 

2.7.2方案二

将方案一中的主CPU变成89C52并增加报警电路和区域网等连接,增加整形电路。

此方案可以免去外接扩展电路,使编程容易、简单,但本电路在经济上,可能耗费较多,本电路设计的实用性在一定程度上可以体现物有所值的概念。

 

第3节系统的软件设计

软件设计包括两方面:

笔记本电脑的主机程序和单片机数据采集和发送的固件程序。

其中,主机程序的编写可以利用VB语言编写,串口通信是通过Microsoft Visual Basic的通信编程控件MSComm实现的。

在读取完串口数据后,需要将每通道10次采集的数据进行数学平均计算,这样可以在一定程度上减小干扰数据的影响。

89C52的串行通讯采用工作方式1,波特率是9600bit/s,发送数据采用定时查询方式,可以根据需要适当调节发送数据的时间,定时周期性地读取存储的采样数据,以串行方式通过RS-485接口发送到上位机。

程序采用可读性较强的C51语言编写,程序流程图见固件流程图-4。

在编写89C52的程序时,需要对采样数据进行处理。

由于采集的油温、油压、井口压力等数据与信号电压是线性关系,通过给定标准信号电压测量一个最大值和一个最小值,就能得出各种数据的信号电压与测量数据之间的比例关系。

数据处理程序是根据线性比例关系,先将A/D转换器AD574采集到的12位二进制数据转换成实际测量值,并将此值按照ANSI/IEEE标准转换成32位浮点数,保存在设定的存储区,总共有8组数据,需要32字节的空间来存储采样数据。

一个标准浮点数占用一个双字(32位)。

最高位(第31位)位浮点数的符号位,最高位为“0”是为正数,位“1”时为负数;8位指数占23-30位;因为规定尾数的正数部分总是为“1”,只保留的尾数的小数部分(0~22位)。

浮点数的优点是利用很小的存储空间(4B)可以表示出精确度很高的非常大和非常小的数,在进行数据处理和运算时提高了精确度。

系统软件程序设计主要包括:

主程序设计,采样子程序设计,数据处理程序,显示子程序,串口通信程序等。

各芯片地址编码为:

RAM6116:

OFOOOH-OF7FFH81551/0口:

7FF8H-7FFDH

ADC0809:

OBFF8H-OBFFFH

3.1系统主程序设计

3.1.1单路采集程序:

MOVDPTR,#0F8FFH

    MOVR0,#00H;将存储器的首地址存在R0,R1两个寄存器中

    MOVR1,#00H

    MOVR2,#200D;设置循环

    MOVR3,#4

    MOVR4,#8D

MAIN:

    CLR;选中ADC0809

    PUSHDPL;DPTR入栈

    PUSHDPH

    MOVX@DPTR,A;启动AD转换

    ACALLDELAY;延时5ms保证采集数据频率为200HZ

    MOVXA,@DPTR;读数据

    SETB;选中存储器

    MOVDPL,R0;将存储器的地址给DPTR

    MOVDPH,R1    

    MOVX@DPTR,A;存数据

    INCDPTR;指向下一存储单元

    MOVR0,DPL;将该单元地址重新存入寄存器中

    MOVR1,DPH

    POPDPH;DPTR出栈

    POPDPL

    

    DJNZR2,MAIN

    DJNZR3,MAIN

    DJNZR4,MAIN

    SJMP$

    

DELAY:

;延时程序延时5ms          

    MOVR5,#100D

    MOVR6,#24D

LA:

DJNZR5,$

    DJNZR6,LA

    RET

    

    END

3.1.2循环采集程序:

MOV30H,#00H;将存储器首地址分存在30-3F存储单元

      MOV31H,#00H

     

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2