多路数据采集Word文档格式.docx

上传人:b****7 文档编号:21845625 上传时间:2023-02-01 格式:DOCX 页数:21 大小:962KB
下载 相关 举报
多路数据采集Word文档格式.docx_第1页
第1页 / 共21页
多路数据采集Word文档格式.docx_第2页
第2页 / 共21页
多路数据采集Word文档格式.docx_第3页
第3页 / 共21页
多路数据采集Word文档格式.docx_第4页
第4页 / 共21页
多路数据采集Word文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

多路数据采集Word文档格式.docx

《多路数据采集Word文档格式.docx》由会员分享,可在线阅读,更多相关《多路数据采集Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

多路数据采集Word文档格式.docx

切换通道的实现是根据外部中断源来实现的。

本课题采用的是中断源INT1。

中断信号的产生,是通过按纽开关开关来做的。

将八路开关通过一个或非门,再与中断源INT1相连。

检测中断信号是通过软件来实现的。

一旦出现了中断信号,程序就会优先执行中断相关的程序。

第3章系统的硬件设计

单片机的选择

根据初步确定的方案,和满足设计的要求,本课题选用Inter公司生产的MCS—8051单片机。

它与其他单片机对比主要有如下优点:

1、片内程序存储器采用闪速存储器,使得程序写入更加方便;

2、它的体积小,会使整个硬件体积变小;

3、良好的性能保证了设计的成功。

MCS—51单片机的管脚及其功能

MCS单片机都采用40引脚的双列直插封装方式。

图3—1为引脚排列图,40条引脚说明如下:

1、主电源引脚Vss和Vcc

①Vss接地

②Vcc正常操作时为+5伏电源

2、外接晶振引脚XTAL1和XTAL2

①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。

当采用外部振荡器时,此引脚接地。

②XTAL2内部振荡电路反相放大器的输出端。

是外接晶体的另一端。

当采用外部振荡器时,此引脚接外部振荡源。

3、控制或与其它电源复用引脚RST/VPD,ALE/

/Vpp

①RST/VPD当振荡器运行时,在此引脚上出现两个机器周期的高电平

(由低到高跳变),将使单片机复位

在Vcc掉电期间,此引脚可接图3—18051引脚排列图

上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。

②ALE/

正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE引脚以不变的频率(振荡器频率的

)周期性地发出正脉冲信号。

因此,它可用作对外输出的时钟,或用于定时目的。

但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE端可以驱动(吸收或输出电流)八个LSTTL电路。

对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(

功能)。

外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,

在每个机器周期内两次有效。

同样可以驱动八LSTTL输入。

/Vpp、

/Vpp为内部程序存储器和外部程序存储器选择端。

/Vpp为高电平时,访问内部程序存储器,当

/Vpp为低电平时,则访问外部程序存储器。

对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。

4、输入/输出引脚-,-,-,-。

①P0口(-)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。

②P1口(-)是一个带有内部提升电阻的8位准双向I/O口。

能驱动(吸收或输出电流)四个LSTTL负载。

③P2口(-)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。

P2口可以驱动(吸收或输出电流)四个LSTTL负载。

④P3口(-)是一个带有内部提升电阻的8位准双向I/O口。

P3口还用于第二功能请参看表2-1

表3-1P3口的第二功能

端口功能

第二功能

RXD---串行输入(数据接收)口

TXD---串行输出(数据发送)口

---外部中断0输入线

---外部中断1输入线

T0---定时器0外部输入

T1---定时器1外部输入

---外部数据存储器写选通信号输出

---外部数据存储器读选通信号输入

单片机端口的分配

表3—2单片机端口的分配

I/O端口分配

作用

方式

~~

接收A/D转换的数据

输入

送数据到锁存器中

输出

控制LED1的位选端

控制LED2的位选端

控制LED3的位选端

控制LED4的位选端

接收外部中断信号

时钟电路设计

单片机工作的时间基准是由时钟电路提供的。

在单片机XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。

电路中,电容器C1和电容器C2对振荡频率有微调的作用。

他们的值通常取30PF。

石英晶体取12MHZ。

其中的电路图如图3—2所示。

图3—2时钟电路

复位电路的设计

单片机的RST管脚为主机提供了一个外部复位信号输入端口。

复位信号是高电平有效,高电平有效的持续时间为2个机器周期以上。

单片机的复位方式由上电自动复位和手动复位两种。

电阻、电容器件的参考值为:

R1=200欧

R2=1000欧

C3=22UF

如图3—3

图3—3复位电路图

数据采集电路的设计

数据采集电路由A/D0809模数转换器、74LS373缓冲器、两个JK触发器组成。

模拟信号的采集是由A/D0809转换来负责的。

当他采集完数据之后向单片机发出信号,当单片机接收到该信号之后,就从A/D0809中获取。

具体采集的方式有三种:

一是查询,二是中断,三是延时等待。

本次采用延时等待。

具体的语句为:

MOV@DPTR,A

MOVA,@DPTR

显示电路的设计

LED介绍

单片机应用系统中,通常都需要进行人机对话。

包括人对应用系统的状态干预与数据输入,以及应用

系统向人们显示运行状态与运行结果等。

显示器、键盘电路就是用于完成人机对话活动的人机通道。

常用的LED数码管显示器由7个发光二极管组成7段LED显示器,其排列形状如图3—4所示。

此外Dp用于显示小数点。

通过7个发光二极管亮暗的不同组合,可以显示多种数字、字母以及其他符号。

图3—4LED图

LED共有两种接法。

一种是共阴极;

一种是共阳极。

3.7.2LED的驱动电路

驱动电路有四个LED显示器、74LS244锁存器、8051单片机组成。

显示采用动态显示。

其中显示信号从8051单片机的P1口输出,经过74LS244锁存。

74LS的输入端口是与8051的P1口相连的。

它的输出端口是与4个LED显示器的段控位相连接的。

也就是说它控制着四个显示器的段码。

那么LED的位控制是由哪个端口控制的呢?

在设计中我采用的是用P2口的前四位来进行输出控制的。

图3—7显示电路

字型码的定义

由于系统LED显示使用的是共阴极的显示器,而显示器不能直接识别十进制和别的进制。

因此需要将数据转换为与十进制对应的数据来进行显示,如表3—3。

表3—3LED显示器十六进制数的字形代码

显示字符

共阴极段码

共阳极段码

共极段码

3FH

C0H

8

7FH

80H

1

06H

F9H

9

6FH

90H

2

5BH

A4H

A

77H

88H

3

4FH

B0H

b

7CH

83H

4

66H

99H

C

39H

C6H

5

6DH

92H

d

5EH

A1H

6

7DH

82H

E

79H

86H

7

07H

F8H

F

71H

8EH

在本课题中,它的对应码为:

3FH、06H5BH4FH66H6DH7DH07H7FH6FH

通道切换电路的设计

人们切换是通过按键来确定的,选择自己所要显示的通道。

选择信号的检查是通过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

MOVR4,#8FH;

延时子程序

LOOP11:

DJNZR4,LOOP11

MOVR4,#0FH

LOOP22:

DJNZR4,LOOP22

MOVXA,@DPTR

MOV@R0,A;

把采集数据送到指定位置

INCR0;

移动存储位置

INCDPTR;

移动指针

MOV7BH,R5

DJNZR5,LOOP;

判定采集八通道

4.2.2八路开关选择控制子程序

LPP:

MOVA,P3;

采集开关信号

MOVR2,#0FFH;

初始化

RLA

PP:

RRA;

右移

INCR2

ANLA,#0EFH;

信号位置判定

CJNEA,#0,PP;

转移判定

MOVA,R2

MOV7BH,A;

数据采集通道号存储

ADDA,#70H;

数据地址传送

MOVR1,A

4.2.3二进制转换BCD码子程序

TUNBCD:

MOVA,@R1;

255/51=

MOVB,#51

DIVAB

MOV7AH,A;

个位数存储

MOVA,

CLRF0

SUBBA,#10

MULAB

MOVB,#51

JBF0,LOOP2

ADDA,#5

LOOP2:

MOV79H,A;

小数点后第一位

MOVA,B

SUBBA,#1AH

MOVF0,C

MOVA,#10

JBF0,LOOP3

LOOP3:

MOV78H,A;

小数点后第二位

RET

4.2.4单路显示控制子程序

DISP1:

MOVSP,#60H

LP:

MOVR5,#50H;

设置调用显示次数,使显示稳定

ACALLDIS;

调用显示模块

DJNZR5,LP

4.2.5八路循环显示控制子程序

DISP2:

MOVSP,#60H

MOVR5,#50;

设置调用显示次数,使显示稳定

ACALLDIS;

调用显示模块

DJNZR5,LP

MOVR6,#0F4H;

延时

DL1:

MOVR7,#0A9H

DL2:

DJNZR7,DL2

DJNZR6,DL1

INCR1

INC7BH;

通道信号送入寄存器

DJNZR3,XUNHUAN;

循环调用

4.2.6显示子程序

DIS:

MOVR0,#78H;

送入数据存储地址

MOVR4,#0FEH;

位扫描信号

MOVR2,#04H;

数据位数送入

DIS2:

MOVDPTR,#TAB;

数码管表首地址

MOVA,@R0

MOVCA,@A+DPTR;

对应字符调用

CJNER2,#2,QQ;

小数点处理

ADDA,#80H

QQ:

MOVDPTR,#0CFA8H;

采集数据地址

MOVA,R4;

采集位信号

MOVP1,A

LCALLDAY;

延时调用

INCR0;

地址移位

RLA;

位信号移位

MOVR4,A

DJNZR2,DIS2;

判断结束

RET

4.2.7延时子程序

DAY:

MOVR6,#04H

D1;

MOVR7,#248

D2:

NOP

NOP

DJNZR7,D2

DJNZR6,D1

第5章运行与调试

系统的调试和运行,先将编写好的程序写成源程序文件,然后经过汇编后生成目标文件,用仿真实验台进行调试。

(1)系统启动后,显示器处于数据循环采集状态。

从0通道到7通道循环显示数据。

具体显示数据结果如下:

0,1,2,3,4,5,6,7

(2)当切换按纽按下时,系统就响应相应的中断程序,显示出该单通道的数据。

如按下0按纽,就立即出现0

(3)当复位按键SA按下时,系统返回到初始状态。

第6章总结

经过将近两周的单片机课程设计,终于完成了我的多路数据采集系统的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟从这次设计中学到了不少的知识,高兴之余不得不深思呀!

在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,举个例子,以前写的那几次,数据加减时,我用的都是BCD码,这一次,我全部用的都是16进制的数直接加减,显示处理时在用除法去删分,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

在本次设计中,我认识最深的是硬件的作用和单片机在我们生活中的作用感。

其中对A/D0809的认识,7LS244的认识、单片机接口的认识。

在设计中,我翻阅了各方面的资料,从多方面查询他们的功能。

从其中我学到单片机接口的知识,和它对各类事情的控制。

同时也被它强大的微处理能力所震撼。

我想,随着社会的发展,单片机必将成为人类社会不可缺少的重要科技之一。

我们应该努力学习单片机知识,为社会作出贡献。

最后我要感谢含辛茹苦、默默支持我的指导老师们,特别要感谢周向红老师。

这两周以来,她不持辛苦,时时刻刻监督、指导着我,让我从其中学到了许多的知识。

真的很感谢她。

我今天的成功离不开老师的功劳。

我一定要在今后认真的学习来报答老师的栽培。

参考文献

1、《单片机应用系统设计》何立民编北航出版社

2、《单片机原理及应用》王迎旭主编机械工业出版社

3、《51系列单片机设计实例》楼然苗等编北航出版社

4、《51单片机应用系统开发典型实例》戴家等编中国电力出版社

5、《单片微型计算机原理及接口技术》陈光东等编

附录

A、系统原理图

B、程序清单

ORG0000H;

程序存放地址

MAIN:

MOVA,P2

JZMAIN1;

跳至MAIN1

MAIN2

MAIN1:

LCALLTEST;

调用子程序TEST

MOVP3,#0FFH;

给P3口输入“1”

LCALLLPP;

调用子程序LPP

LCALLTUNBCD;

调用子程序TUNBCD

LCALLDISP1;

调用子程序DISP1

LJMPMAIN1;

跳转至MAIN1

MAIN2:

LCALLTEST

MOVR3,#08H

MOV7BH,#00H

MOVR1,#70H

XUNHUAN:

LCALLTUNBCD;

LCALLDISP2;

调用子程序DISP2

LJMPMAIN2;

跳转至MAIN2

MOVA,P3

MOVR2,#0FFH;

给R2口置“1”

RLA;

A中内容左循环

RRA;

A中内容右循环

INCR2;

R2中内容加1

ANLA,#0EFH

CJNEA,#0,PP

MOV7BH,A

ADDA,#70H

RET

定义采集数据存储器位置

MOVR5,#08;

通道循环参数

MOVDPTR,#0CFA0H;

数据指向端口地址

MOVR4,#8FH;

延时子程序

DJNZR4,LOOP11

MOVR4,#0FH

MOVXA,@DPTR

MOV@R0,A;

把采集数据送到指定位置

INCR0;

INCDPTR;

DJNZR5,LOOP;

判定采集八通道

MOVA,@R1;

255/51=

MOVB,#51

MOV7AH,A;

个位数存储位置

MOV79H,A;

小数点后第一位

MOV78H,A;

小数点后第二位

MOVR5,#50H;

调用显示模块

MOVSP,#60H

LP:

MOVR5,#50;

MOVR6,#0F4H;

延时

INC7BH;

DJNZR3,XUNHUAN;

循环调用

MOVR0,#78H;

MOVR4,#0FEH;

MOVR2,#04H;

数据位数送入

MOVDPTR,#TAB;

MOVCA,@A+DPTR;

CJNER2,#2,QQ;

ADDA,#80H

QQ:

MOVX@DPTR,A

MOVA,R4;

MOVP1,A

LCALLDAY弹;

INCR0;

地址移位

RLA

DJNZR2,DIS2;

判断结束

DAY:

MOVR6,#04H;

延时

D1:

MOVR7,#248

NOP

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;

数码表

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H

END

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

当前位置:首页 > 高等教育 > 文学

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

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