完整版《单片机原理及应用》期末毕业课程设计.docx
- 文档编号:27239897
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:25
- 大小:44.37KB
完整版《单片机原理及应用》期末毕业课程设计.docx
《完整版《单片机原理及应用》期末毕业课程设计.docx》由会员分享,可在线阅读,更多相关《完整版《单片机原理及应用》期末毕业课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
完整版《单片机原理及应用》期末毕业课程设计
数理与信息工程学院
《单片机原理及应用》期末课程设计
题目:
基于单片机的便携远程多路数据采集系统
专业:
电子信息工程
班级:
电子信息工程061
姓名:
冯珊珊
学号:
指导老师:
余水宝
成绩:
(2008.12)
第1节引言………………………………………………………………………………3
1.1多路数据采集系统的概述………………………………………………………3
1.2本设计任务和主要内容…………………………………………………………4
第2节系统主要硬件电路的设计………………………………………………………5
2.1单片机采集系统原理……………………………………………………………5
2.2单片机主机系统电路…………………………………………………………5
2.2.1单片机总系统原理路…………………………………………………6
2.2.2CPU处理核心模块………………………………………………………6
2.2.3时钟电路…………………………………………………………………9
2.2.4复位电路…………………………………………………………………9
2.3数据采集处理电路………………………………………………………………9
2.4AD转换器………………………………………………………………………10
2.5超限报警电路…………………………………………………………………10
2.6液晶显示电路设计……………………………………………………………11
2.7方法论证和比较………………………………………………………………13
2.7.1方案一…………………………………………………………………13
2.7.2方案二…………………………………………………………………14
第3节系统软件设计…………………………………………………………………15
3.1系统主程序设计…………………………………………………………………15
3.1.1单路采集程序…………………………………………………………15
3.1.2循环采集程序………………………………………………………16
3.1.3AD转换程序………………………………………………………18
3.2数据处理………………………………………………………………………18
3.2.1调整电路设计…………………………………………………………18
3.2.2标度变换………………………………………………………………19
3.2.3BCD转换……………………………………………………………21
第4节结束语…………………………………………………………………………23
参考文献…………………………………………………………………………24
基于单片机的便携远程多路数据采集系统
数理与信息工程学院06电子信息工程冯珊珊
指导教师:
余水宝
第1节引言
尽管是科技高度发达的今天,在很多地方,即使是实现了磁卡登记用电情况的地区,仍无法缺少电表登记人员定时前往各户,进行用电度数的统计和偷电、漏电的定期查看,虽然这种措施在一定程度上起到了敦促作用,但仍无法及时获知并处理类似情况。
为了实现农村家庭用电及时登记,减轻查表人员的工作负担,特设计开发了可进行多路远程数据采集的便携式远程多路数据采集系统。
本远(近)程数据采集系统,结构紧凑,采用了AT89C52单片机作为中心控制单元,以12位高精度并行AD转换芯片AD574和8通道故障保护模拟开关MAX354实现8路数据采集;利用RS-485串行通讯进行数据传输,传输距离可达1.2km;接收端再将信号转换为RS-232电平,使用便携式手提电脑的串口接收数据,将采样数据存储在PC机中,便于数据的实时处理和分析。
1.1多路数据采集系统原理简述
数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采非电量或者电量信号,送到上位机中进行分析、处理。
数据采集卡,即实现数据采集(DAQ)功能的计算机扩展卡,可以通过USB、PXI、PCI、PCIExpress、火线(1394)、PCMCIA、ISA、CompactFlash等总线接入个人计算机。
数据采集系统是结合基于计算机或者其他专用测试平台的测量软硬件产品来实现灵活的、用户自定义的测量系统。
通常,必须在数据采集设备采集之前调制传感器信号,包括对其进行增益或衰减和隔离,放大,滤波等.对待某些传感器,还需要提供激励信号。
1.2本设计任务和主要内容
本设计主要研究单片机控制的多路数据采集系统,分别对系统采集的家用电数据和人工采集之间误差关系的分析、数据采集控制技术及系统设备的软、硬件各个部分进行了初步研究。
主要内容如下:
①根据农村家庭分布远近不一,呈中心辐射状的特点,进行家用电表数据采集系统的整体研究与设计。
②针对家庭用电情况和偷电、漏电等现象不定期抽查,提高安全系数,保障用电的规范性。
③LED显示同一用户在采集期的用电度数,在采集期间可以倒计时的方式显示采集剩余时间,提醒工作人员注意,时间以单位“天”计。
④当用户平均用电低于设定的最低值时,系统可自动报警,告知统计人员,并同时通过短信询问用户。
第2节系统主要硬件电路设计
2.1单片机采集系统原理
整个采集系统分为数据采集发送端和数据接收端。
数据采集发送端主要由AT89C52单片机、AD574AAD采样芯片、MAX354故障保护模拟开关和MAX485芯片构成,完成多路信号的采集和串行数据的发送功能。
数据接收端由一个RS-485电平转RS-232C电平的电路,以及一台便携式手提电脑构成。
数据采集端和发送端通过一条屏蔽的双绞线电缆连接。
2.2单片机主机系统电路
2.2.1单片机总电路原理图
数据采集系统的主要分为以下几个模块:
数据采集转换模块、数据存储模块、键盘控制模块、时钟模块、液晶显示模块、串口通信模块。
其中数据采集模块包括AD电压信号量采集和系统工作温度采集。
图2-2系统总原理图
2.2.2CPU处理核心模块
AT89C52是一个低功耗,高性能CMOS8位单片机,片内含8kBytes的可反复擦写1000次的Flash只读程序存储器。
器件采用ATMEL公司的高密度、非易失性存储技术制造。
AT89C52有128bytes的On-Chip随机存取数据存储器(RAM),32个外部双向输入输出(IO)口,1个6向量两级中断结构,3个16位可编程定时计数器,1个全双工串行通信口,片内时钟振荡器。
此外,AT89C52还设计和配置了振荡频率可为0Hz并可通过软件设置的省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器、串行口、外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
因此,AT89C52构成的单片机系统是具有结构简单、效率高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
图2-389C52芯片内部原理图
引脚说明:
·VCC:
电源电压
·GND:
地
·P0口:
P0口是一组8位漏极开路型双向IO口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。
当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。
在这种模式下,P0口具有内部上拉电阻。
在Flash编程时,P0口接收指令字节,同时输出指令字节在程序校验时。
程序校验时需要外接上拉电阻。
·P1口:
P1口是一带有内部上拉电阻的8位双向IO口。
P1口的输出缓冲能接受或输出4个TTL逻辑门电路。
当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。
当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
·P2口:
P2是一带有内部上拉电阻的8位双向的IO端口。
P2口的输出缓冲能驱动4个TTL逻辑门电路。
当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX@DPTR)时,P2口送出高8位地址数据。
在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。
当利用8位地址线访问外部数据存储器时(例MOVX@R1),P2口输出特殊功能寄存器的内容。
当Flash编程或校验时,P2口同时接收高8位地址和一些控制信号。
·P3口:
P3是一带有内部上拉电阻的8位双向的IO端口。
P3口的输出缓冲能驱动4个TTL逻辑门电路。
当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。
作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P3口同时具有AT89C51的多种特殊功能,具体如下表2-1所示。
表2-1P3口的第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0)
P3.5
T1(定时器1)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器都选通)
·RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。
·ALE:
当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址低8位字节。
当在Flash编程时还可以作为编程脉冲输出()。
一般情况下,ALE是以晶振频率的16输出,可以用作外部时钟或定时目的。
但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。
·:
程序存储允许时外部程序存储器的读选通信号。
当AT89C52执行外部程序存储器的指令时,每个机器周期两次有效,除了当访问外部数据存储器时,将跳过两个信号。
·VPP:
外部访问允许。
为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。
需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。
当执行内部编程指令时,应该接到VCC端。
·XTAL1:
振荡器反相放大器以及内部时钟电路的输入端。
·XTAL2:
振荡器反相放大器的输出端。
本系统中,采用AT89C52作为CPU处理器,充分利用其硬件资源,结合74ls373锁存器,7404、7402、74138等数字处理芯片,连接了各个硬件模块。
地址分配如下:
AD574是美国模拟数字公司(Analog)推出的单片高速12位逐次比较型AD转换器,内置双极性电路构成的混合集成转换芯片,具有外接元件少,功耗低,精度高等特点,并具有自动校零和自动极性转换功能,只需外接少量的阻容件即可构成一个完整的AD转换器,其模拟电压输人范围有四种:
0-10V、0-20V,0±5V、0-±10V,数据输出格式为12位和8位可选,本设计采用12位数据格式,这样可以提高数据
的精度。
图2-4AD574A芯片内部原理图
MAX485接口芯片是MAXIM公司的一种RS-485芯片,它完成将TTL电平转换为RS-485电平的功能。
采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式,数据传输率高达2.5Mbps。
在一条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引脚上持续为高电平,单片机就处于循环复位状态。
复位后系统将输入输出(10)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。
复位操作有两种情况,即上电复位和手动(开关)复位。
本系统采用上电复位方式。
2.3数据采集处理电路
采样电路由AD574和MAX354组成,在一个采样周期内,连续对8路输入数据按顺序进行一轮采样,采样电路与单片机的连接如图2-5所示。
图2-5数据采集原理图
AD574内部具有三态数据锁存器,可以和89C52单片机的P0数据口直接相连,它内部具有参考电压和时钟电路,因此无需任何元器件即可独立完成AD转换。
AD转换结束后,AD574向89C52的中断INT0发出中断申请,然后系统对转换后的数据进行处理。
AD574的128端子固定接地,A0端口与89C52的地址线A7相连,这样在地址线A7的控制下分两次通过8位数据总线来读取l2位的转换结果。
2.4AD转换器
在微机化测控系统中,经AD转换器接口送入微机的数据,是对被测量进行测量得到的原始数据。
这些原始数据送入微机后通常要先进行一定的处理,然后才能输出作为显示器的显示数据。
例如当用户用电为100KWH,经热电偶转换成热电势,再经放大和AD转换得到的数字是1,这个AD转换结果1虽然与100KWH是对应的,但数字上并不是相等的。
因此,不能当作电压读数去显示或打印,必须把AD转换结果1变换成供显示或打印的电压度数100,这个变换就是数字显示的标度变换。
图2-6线性关系
在该系统中,湿度传感器和AD相连,AD转换器和单片机相连,其中不包
括任何非线性的数字化测量通道,因此被测量的值N,与AD转换结果D,存在如
图3-2所示线性关系。
在该系统中,农村用户用电测量范围100%对应的输出电压范围为0-5V,ADC0809为8位A.D转换器,转换输出的数码为0255。
即根据上面公式,DL=0lDH=255,NL=0,NH=100.
2.5超限报警电路
为了在某些紧急状态或反常状态下,能使操作人员不致忽视,以便及时处理,往往需要有某种更能引起人们注意提起警觉的报警信号产生,这种报警信号通常有三种类型:
闪光报警、鸣音报警、语音报警,本系统采用简单易行的声光报警电路。
如图2-8所示报警电路,报警设备选用压电式蜂鸣器,它约需要10mA的驱动电流,只需在其两条引线上加3一15V的直流电压,即可产生3KHz左右的蜂鸣声音,图中蜂鸣器的一端接在高电平+SV,另一端接Pl.0,在初态Pl.0始终输出高电平1,当需要报警时,程序对其端口清零即可,声音的长短可用延时程序控制实现。
图中接入的发光二极管LED为超高线报警器,当P1.1端输出为低电平“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”的代码是B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母“A”
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平),指令表见表2-3。
表2-31602字符模块指令表
指令1:
清显示,指令码01H,光标复位到地址00H位置
指令2:
光标复位,光标返回到地址00H
指令3:
光标和显示模式设置ID:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁
指令5:
光标或显示移位SC:
高电平时移动显示的文字,低电平时移动光标
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符
指令7:
字符发生器RAM地址设置
指令8:
DDRAM地址设置
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据
指令11:
读数据
图2-8液晶显示原理图
该模块的硬件原理图如图2-8所示。
1602C的数据口接单片机的P0口,使能端E接P2.5,液晶的RS端接P2.3,读写端RW接P2.4。
2.7方案论证和比较
2.7.1方案一
它能完成所要求的功能,但是存在不足之处是:
编程不方便,主要是AD接口和RS485接口编程不方便。
2.7.2方案二
将方案一中的主CPU变成89C52并增加报警电路和区域网等连接,增加整形电路。
此方案可以免去外接扩展电路,使编程容易、简单,但本电路在经济上,可能耗费较多,本电路设计的实用性在一定程度上可以体现物有所值的概念。
第3节系统的软件设计
软件设计包括两方面:
笔记本电脑的主机程序和单片机数据采集和发送的固件程序。
其中,主机程序的编写可以利用VB语言编写,串口通信是通过Microsoft Visual Basic的通信编程控件MSComm实现的。
在读取完串口数据后,需要将每通道10次采集的数据进行数学平均计算,这样可以在一定程度上减小干扰数据的影响。
89C52的串行通讯采用工作方式1,波特率是9600bits,发送数据采用定时查询方式,可以根据需要适当调节发送数据的时间,定时周期性地读取存储的采样数据,以串行方式通过RS-485接口发送到上位机。
程序采用可读性较强的C51语言编写,程序流程图见固件流程图-4。
在编写89C52的程序时,需要对采样数据进行处理。
由于采集的油温、油压、井口压力等数据与信号电压是线性关系,通过给定标准信号电压测量一个最大值和一个最小值,就能得出各种数据的信号电压与测量数据之间的比例关系。
数据处理程序是根据线性比例关系,先将AD转换器AD574采集到的12位二进制数据转换成实际测量值,并将此值按照ANSIIEEE标准转换成32位浮点数,保存在设定的存储区,总共有8组数据,需要32字节的空间来存储采样数据。
一个标准浮点数占用一个双字(32位)。
最高位(第31位)位浮点数的符号位,最高位为“0”是为正数,位“1”时为负数;8位指数占23-30位;因为规定尾数的正数部分总是为“1”,只保留的尾数的小数部分(0~22位)。
浮点数的优点是利用很小的存储空间(4B)可以表示出精确度很高的非常大和非常小的数,在进行数据处理和运算时提高了精确度。
系统软件程序设计主要包括:
主程序设计,采样子程序设计,数据处理程序,显示子程序,串口通信程序等。
各芯片地址编码为:
RAM6116:
OFOOOH-OF7FFH815510口:
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:
CLRP1.1;选中ADC0809
PUSHDPL;DPTR入栈
PUSHDPH
MOVX@DPTR,A;启动AD转换
ACALLDELAY;延时5ms保证采集数据频率为200HZ
MOVX;读数据
SETBP1.1;选中存储器
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
MOV32H,#00H
MOV33H,#20H
MOV30H,#00H;将存储器首地址分存共1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 完整版 单片机 原理 应用 期末 毕业 课程设计