多路数据采集Word文档格式.docx
- 文档编号:809314
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:23
- 大小:496.76KB
多路数据采集Word文档格式.docx
《多路数据采集Word文档格式.docx》由会员分享,可在线阅读,更多相关《多路数据采集Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
A/D
转
换
单
片机系
统
显
示模
块
中
断控制模
2.4系统工作原理
以单片机为核心,通过各种控制电路进行控制。
在外设电路中,设置了时钟电路和复位电路。
外围电路将采集到的数据经过A/D转换后,送给单片机P0口。
单片机将P0口中接收到的数据进行存储,整理、变换后,从P1口送出。
送出的数据经过锁存芯片进行锁存,最后由LED显示。
LED至少需要4个。
切换通道的实现是根据外部中断源来实现的。
本课题采用的是中断源
INT1。
中断信号的产生,是通过按纽开关开关来做的。
将八路开关通过一个或非门,再与中断源INT1相连。
检测中断信号是通过软件来实现的。
一旦出现了中断信号,程序就会优先执行中断相关的程序。
第3章系统的硬件设计
3.1单片机的选择
根据初步确定的方案,和满足设计的要求,本课题选用Inter公司生产的MCS—8051单片机。
它与其他单片机对比主要有如下优点:
1、片内程序存储器采用闪速存储器,使得程序写入更加方便;
2、它的体积小,会使整个硬件体积变小;
3、良好的性能保证了设计的成功。
3.2MCS—51单片机的管脚及其功能
1
2
3
4
5
6
7
8
10
11
12
13
14
15
16
17
18
19
20
RXDP3.08
TXDP3.1
INT0P3.2
INT1P3.31
T0P3.4 0
T1P3.5WRP3.6RDP3.7XTAL2XTAL1VSS
EA/VPPALE/PROG
PSEN
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
MCS单片机都采用40引脚的双列直插封装方式。
图3—1为引脚排列图,40条引脚说明如下:
P1.0
VCC
P1.1
P0.0
P1.2
P0.1
P1.3
P0.2
P1.4
P0.3
P1.5
P0.4
P1.6
P0.5
P1.7
P0.6
RST/VPD
P0.7
1、主电源引脚Vss和Vcc
①Vss接地
②Vcc正常操作时为+5伏电源
2、外接晶振引脚XTAL1和XTAL2
①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。
当采用外部振荡器时,此引脚接地。
②XTAL2内部振荡电路反相放
大器的输出端。
是外接晶体的另一端。
当采用外部振荡器时,此引脚接外部振荡源。
3、控制或与其它电源复用引脚
RST/VPD,ALE/
EA/Vpp
PROG
,PSEN和
①RST/VPD当振荡器运行时,在此引脚上出现两个机器周期的高电平
(由低到高跳变),将使单片机复位
在Vcc掉电期间,此引脚可接 图3—18051引脚排列图
上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。
②ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE引脚以不变的频率(振荡器频率的
1)周期性地发出正脉冲信号。
因此,它可用作对外输出的时钟,或用于
定时目的。
但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,
ALE端可以驱动(吸收或输出电流)八个LSTTL电路。
对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(PROG功能)。
③PSEN 外部程序存储器读选通信号输出端,在从外部程序存储取
指令(或数据)期间,PSEN在每个机器周期内两次有效。
PSEN同样可以驱动八LSTTL输入。
④EA/Vpp、EA/Vpp为内部程序存储器和外部程序存储器选择
端。
当EA/Vpp为高电平时,访问内部程序存储器,当EA/Vpp为低电平时,则访问外部程序存储器。
对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM
编程电源(Vpp)。
4、输入/输出引脚P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0
-P3.7。
①P0口(P0.0-P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。
②P1口(P1.0-P1.7)是一个带有内部提升电阻的8位准双向I/O
口。
能驱动(吸收或输出电流)四个LSTTL负载。
。
③P2口(P2.0-P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。
P2口可以驱动(吸收或输出电流)四个LSTTL负载。
④P3口(P3.0-P3.7)是一个带有内部提升电阻的8位准双向I/O口。
P3口还用于第二功能请参看表2-1
表3-1P3口的第二功能
端口功能
P3.0P3.1P3.2P3.3P3.4P3.5P3.6
P3.7
第二功能
RXD---串行输入(数据接收)口TXD---串行输出(数据发送)口INT0---外部中断0输入线
INT1---外部中断1输入线
T0 定时器0外部输入
T1 定时器1外部输入
WR 外部数据存储器写选通信号输出
RD 外部数据存储器读选通信号输入
3.3单片机端口的分配
I/O端口分配
作
用
方
式
表3—2 单片机端口的分配
P0.0~~P0.7
接收A/D转换的数据
输入
P1.0~~P1.7
送数据到锁存器中
输出
P2.0
控制LED1的位选端
P2.1
控制LED2的位选端
P2.2
控制LED3的位选端
P2.4
控制LED4的位选端
P3.3
接收外部中断信号
P3.6
WR---外部数据存储器写选通信号输出
RD---外部数据存储器读选通信号输入
3.4时钟电路设计
单片机工作的时间基准是由时钟电路提供的。
在单片机XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。
电路中,电容器C1和电容器C2对振荡频率有微调的作用。
他们的值通常取30PF。
石英晶体取12MHZ。
其中的电路图如图3—2所示。
3.5复位电路的设计
图3—2 时钟电路
单片机的RST管脚为主机提供了一个外部复位信号输入端口。
复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。
单片机的复位方式由上电自动复位和手动复位两种。
电阻、电容器件的参考值为:
R1=200欧R2=1000欧C3=22UF
如图3—3
图3—3 复位电路图
3.6数据采集电路的设计
数据采集电路由A/D0809模数转换器、74LS373缓冲器、两个JK触发器组成。
模拟信号的采集是由A/D0809转换来负责的。
当他采集完数据之后向单片机发出信号,当单片机接收到该信号之后,就从A/D0809中获取。
具体采集的方式有三种:
一是查询,二是中断,三是延时等待。
本次采用延时等待。
具体的语句为:
MOV@DPTR,A
MOVA,@DPTR
3.7显示电路的设计
3.7.1LED 介绍
单片机应用系统中,通常都需要进行人机对话。
这
包括人对应用系统的状态干预与数据输入,以及应用
系统向人们显示运行状态与运行结果等。
显示器、键盘电路就是用于完成人机对话活动的人机通道。
常用的LED数码管显示器由7个发光二极管组
成7段LED显示器,其排列形状如图3—4所示。
此外Dp用于显示小数点。
通过7个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其他
符号。
图3—4LED图
LED共有两种接法。
一种是共阴极;
一种是共阳极。
3.7.2 LED的驱动电路
驱动电路有四个LED显示器、74LS244锁存器、8051单片机组成。
显示采用动态显示。
其中显示信号从8051单片机的P1口输出,经过74LS244锁存。
74LS的输入端口是与8051的P1口相连的。
它的输出端口是与4个LED显示器的段控位相连接的。
也就是说它控制着四个显示器的段码。
那么LED的位控制是由哪个端口控制的呢?
在设计中我采用的是用P2口的前四位来进行输出控制的。
图3—7显示电路
3.7.3 字型码的定义
由于系统LED显示使用的是共阴极的显示器,而显示器不能直接识别十进制和别的进制。
因此需要将数据转换为与十进制对应的数据来进行显示,如表3—3。
显示字符
表3—3 LED显示器十六进制数的字形代码
共阴极段 共阳极段 显示字符 共阴极段
共极段码
码 码 码
3FH C0H 8 7FH
80H
06H F9H 9 6FH
90H
5BH A4H A 77H
88H
4FH B0H b 7CH
83H
66H 99H C 39H
C6H
6DH 92H d 5EH
A1H
7DH 82H E 79H
86H
07H F8H F 71H
8EH
在本课题中,它的对应码为:
3FH、06H5BH4FH66H6DH7DH07H7FH6FH
3.8通道切换电路的设计
人们切换是通过按键来确定的,选择自己所要显示的通道。
选择信号的检查是通过8051的外部中断INT1来确定的。
其中八个按键与一个与非门相连,由与非门产生逻辑信号,送给INT1位置。
图形如下:
图3—8 通道切换电路图
第4章系统的软件设计
4.1总程序流程图
4.2各子程序设计
4.2.1A/D 转换子程序
TEST:
MOVR0,#70H ;
定义采集数据存储器位置
MOVR5,#08 ;
通道循环参数
MOVDPTR,#0CFA0H ;
数据指向端口地址
LOOP:
MOVX@DPTR,A
MOV
R4,#8FH
LOOP11:
DJNZ
R4,LOOP11
R4,#0FH
LOOP22:
R4,LOOP22
;
延时子程序
MOVXA,@DPTR
MOV@R0,A ;
把采集数据送到指定位置
INCR0 ;
移动存储位置
INCDPTR ;
移动指针
MOV7BH,R5
DJNZR5,LOOP ;
判定采集八通道
4.2.2八路开关选择控制子程序
LPP:
MOVA,P3
MOVR2,#0FFH
;
采集开关信号
初始化
PP:
RLA
RRA
右移
INCR2
ANLA,#0EFH ;
信号位置判定
CJNEA,#0,PP ;
转移判定
MOVA,R2
MOV7BH,A ;
数据采集通道号存储
ADDA,#70H ;
数据地址传送
MOVR1,A
4.2.3二进制转换BCD码子程序
TUNBCD:
MOV A,@R1 ;
255/51=5.0MOV B,#51
DIV AB
MOV 7AH,A ;
个位数存储
MOV A,
CLR F0SUBB A,#10MUL ABMOV B,#51DIV AB
JB F0,LOOP2ADD A,#5
LOOP2:
MOV 79H,A ;
小数点后第一位
MOV A,B
CLR F0
SUBB A,#1AHMOV F0,CMOV A,#10MUL ABMOV B,#51DIV AB
JB F0,LOOP3ADD A,#5
LOOP3:
MOV 78H,A ;
小数点后第二位
RET
4.2.4单路显示控制子程序
DISP1:
MOV SP,#60H
LP:
MOVR5,#50H ;
设置调用显示次数,使显示稳定
ACALL DIS ;
调用显示模块
DJNZR5,LP
4.2.5八路循环显示控制子程序
DISP2:
MOV SP,#60H
MOVR5,#50 ;
设置调用显示次数,使显示稳定
调用显示模块
MOV R6,#0F4H ;
延时
DL1:
MOV R7,#0A9HDL2:
DJNZ R7,DL2
DJNZ R6,DL1INCR1
INC7BH ;
通道信号送入寄存器
DJNZR3,XUNHUAN ;
循环调用
4.2.6显示子程序
DIS:
MOVR0,#78H ;
送入数据存储地址
MOVR4,#0FEH ;
位扫描信号
MOVR2,#04H ;
数据位数送入
DIS2:
MOVDPTR,#TAB ;
数码管表首地址
MOVA,@R0
MOVCA,@A+DPTR ;
对应字符调用
CJNER2,#2,QQ ;
小数点处理
ADD A,#80H
QQ:
MOV DPTR,#0CFA8H ;
采集数据地址
MOVX@DPTR,A
MOVA,R4 ;
采集位信号
MOVP1,A
LCALL DAY ;
延时调用
INC R0 ;
地址移位
RL A ;
位信号移位
MOVR4,A
DJNZR2,DIS2 ;
判断结束
4.2.7延时子程序
DAY:
MOVR6,#04HD1;
MOVR7,#248
D2:
NOP
NOP
DJNZR7,D2DJNZR6,D1RET
第5章运行与调试
系统的调试和运行,先将编写好的程序写成源程序文件,然后经过汇编后生成目标文件,用仿真实验台进行调试。
(1)系统启动后,显示器处于数据循环采集状态。
从0通道到7通道循环显示数据。
具体显示数据结果如下:
04.58,10.26,23.58,34.58,45.00,52.65,64.96,71.95
(2)当切换按纽按下时,系统就响应相应的中断程序,显示出该单通道的数据。
如按下0按纽,就立即出现04.58
(3)当复位按键SA按下时,系统返回到初始状态。
第6章总结
经过将近两周的单片机课程设计,终于完成了我的多路数据采集系统的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟从这次设计中学到了不少的知识,高兴之余不得不深思呀!
在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。
在本次设计中,我认识最深的是硬件的作用和单片机在我们生活中的作用感。
其中对A/D0809的认识,7LS244的认识、单片机接口的认识。
在设计中,我翻阅了各方面的资料,从多方面查询他们的功能。
从其中我学到单片机接口的知识,和它对各类事情的控制。
同时也被它强大的微处理能力所震撼。
我想,随着社会的发展,单片机必将成为人类社会不可缺少的重要科技之一。
我们应该努力学习单片机知识,为社会作出贡献。
最后我要感谢含辛茹苦、默默支持我的指导老师们,特别要感谢周向红老师。
这两周以来,她不持辛苦,时时刻刻监督、指导着我,让我从其中学到了许多的知识。
真的很感谢她。
我今天的成功离不开老师的功劳。
我一定要在今后认真的学习来报答老师的栽培。
参考文献
1、 《单片机应用系统设计》何立民编北航出版社
2、 《单片机原理及应用》王迎旭主编机械工业出版社
3、 《51系列单片机设计实例》楼然苗等编 北航出版社
4、 《51单片机应用系统开发典型实例》戴家等编中国电力出版社
5、 《单片微型计算机原理及接口技术》陈光东等编
附 录
A、 系统原理图
B、程序清单
ORG0000H ;
程序存放地址
MAIN:
MOVA,P2
JZMAIN1 ;
跳至MAIN1MAIN2
MAIN1:
LCALLTEST ;
调用子程序TESTMOVP3,#0FFH ;
给P3口输入“1”
LCALLLPP ;
调用子程序LPP
LCALLTUNBCD ;
调用子程序TUNBCD
LCALLDISP1 ;
调用子程序DISP1
LJMPMAIN1 ;
跳转至MAIN1MAIN2:
LCALLTEST
MOVR3,#08HMOV7BH,#00HMOVR1,#70H
XUNHUAN:
LCALLTUNBCD ;
调用子程序TUNBCD
LCALLDISP2 ;
调用子程序DISP2
LJMPMAIN2 ;
跳转至MAIN2
给R2口置“1”
A中内容左循环
A中内容右循环
R2中内容加1
ANLA,#0EFH
CJNEA,#0,PPMOVA,R2
MOV7BH,A
ADDA,#70H
定义采集数据存储器位置
通道循环参数
数据指向端口地址
MOV R4,#8FH ;
延时子程序
DJNZ R4,LOOP11MOV R4,#0FH
DJNZ R4,LOOP22
MOV@R0,A ;
把采集数据送到指定位置
DJNZR5,LOOP ;
判定采集八通道
MOV A,@R1 ;
255/51=5.0MOV B,#51
MOV 7AH,A ;
个位数存储位置
MOV A,BCLR F0SUBB A,#10MUL ABMOV B,#51DIV AB
MOV 79H,A ;
小数点后第一位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 路数 采集
![提示](https://static.bingdoc.com/images/bang_tan.gif)