多通道数据采集系统的课程设计报告.docx

上传人:b****0 文档编号:9891722 上传时间:2023-05-21 格式:DOCX 页数:15 大小:156.43KB
下载 相关 举报
多通道数据采集系统的课程设计报告.docx_第1页
第1页 / 共15页
多通道数据采集系统的课程设计报告.docx_第2页
第2页 / 共15页
多通道数据采集系统的课程设计报告.docx_第3页
第3页 / 共15页
多通道数据采集系统的课程设计报告.docx_第4页
第4页 / 共15页
多通道数据采集系统的课程设计报告.docx_第5页
第5页 / 共15页
多通道数据采集系统的课程设计报告.docx_第6页
第6页 / 共15页
多通道数据采集系统的课程设计报告.docx_第7页
第7页 / 共15页
多通道数据采集系统的课程设计报告.docx_第8页
第8页 / 共15页
多通道数据采集系统的课程设计报告.docx_第9页
第9页 / 共15页
多通道数据采集系统的课程设计报告.docx_第10页
第10页 / 共15页
多通道数据采集系统的课程设计报告.docx_第11页
第11页 / 共15页
多通道数据采集系统的课程设计报告.docx_第12页
第12页 / 共15页
多通道数据采集系统的课程设计报告.docx_第13页
第13页 / 共15页
多通道数据采集系统的课程设计报告.docx_第14页
第14页 / 共15页
多通道数据采集系统的课程设计报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

多通道数据采集系统的课程设计报告.docx

《多通道数据采集系统的课程设计报告.docx》由会员分享,可在线阅读,更多相关《多通道数据采集系统的课程设计报告.docx(15页珍藏版)》请在冰点文库上搜索。

多通道数据采集系统的课程设计报告.docx

多通道数据采集系统的课程设计报告

多通道数据采集系统的课程设计报告

姓名:

学号:

班级:

指导老师:

授课老师:

 

1.1摘要...............................2

1.2系统分析...........................3

1.3系统设计...........................3

1.4程序代码...........................8

2.1实验感想..........................12

2.2参考文献..........................12

 

1.1摘要

不论对于何种测控系统,数据采集传输模块都是重中之重。

本文主要介绍了基于80C51单片机的多通道数据采集系统,该采集系统以80C51单片机为核心,通过芯片ADC0809,采用查询方式,采集该芯片的模拟量输入信号,并通过智能显示芯片HD7295A,控制驱动8位共阴数码管,将单片机采集到的数据显示出来。

1.2系统分析

在设计系统时首先完成单片机基本电路的设计,包括单片机的复位电路与晶振电路。

再以单片机的P0口作为数据总线,接入ADC0809的数字量输出引脚,而外部模拟量输入信号则通过ADC0809的输入引脚接入单片机,单片机则通过位选信号与读写选通信号,经过与非门电路对其进行连接控制。

同时单片机以PI口的某些引脚作为控制信号与7279相连,用来驱动控制8位共阴数码管,通过软件设将读入的数据显示出来。

在连接电路完成程序设计时,要注意单片机各部分的时序,从而赋予各部分合理的初始化命令。

其系统的模块组成部分如下:

ADC0809

数据

转换

模块

8051

复位

模块

 

7295

驱动

显示

模块

撤消修改

 

1.3系统设计

基于单片机的多通道数据采集系统其设计要分为两部分组成,一是硬件电路设计,二是软件设计,故其系统设计分两部分分别介绍。

但是在试验时,我们是利用试验箱进行试验的,故单片机基本电路在实验箱上已被设计好,在实验时仅须注意数码管显示电路与AD转换电路即可。

A.硬件电路设计:

数码管显示电路是利用7295A芯片直接与单片机相连,当接收到单片机的控制指令时,直接驱动8位共阴数码管,显示单片机发送的数据。

HD7279A是一片具有串行接口,可同时驱动8位共阴数码管(或64只独立LED)的智能显示驱动芯片,该芯片还可同时连接多达64键的键盘矩阵。

HD7279A内部含译码器,可直接接受16进制码。

(1)其具体连接电路图如下所示:

 

 

注意在实验时,要将系统各跳线器接在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。

这样7279才能准确驱动数码管显示单片机发送的数据。

其工作时时序电路如下所示:

(2)AD转换电路:

AD转换电路是利用芯片ADC0809,将其与单片机直接相连。

单片机直接读取经过其转换的数字量信号,再将其发送到7279芯片,驱动数码管直接显示单片机输出的信号。

实验ADC0809电路如下图所示。

实验采用外设与存储器同一编址,在使用中可直接将外设当作数据存储器访问。

第0路ADC地址为2f00H(即:

CSAD信号对应A15~A3为0010111100000)。

EOC(A/D转换结束信号输出端)取反后接单片机P1.7,若采用查询方式完成模/数转换,只需查询P1.7即可。

本实验CLOCK信号由CPLDLattice3128分频产生(12MHz晶振12分频)。

其工作时时序电路如下所示:

B.软件设计:

其软件设计部分主要就是数码管显示部分和AD转换部分的程序设计。

(1)数码管显示程序:

数码管显示电路的时序,其程序流程图为:

程序代码如下:

CLKBITP1.6

DATBITP1.7

CSBITP2.7

ORG000H

JMPSTART

ORG100H

START:

MOVSP,#2FH;定义堆栈

MOVP1,#11011011B;I/O口初始化

MOVR7,#50

START_DELAY:

MOVR6,#255

START_DELAY1:

DJNZR6,START_DELAY1

DJNZR7,START_DELAY

MOVA,#10100100B;发复位指令

CALLSEND

SETBCS

XIANSHI:

MOVA,#10000010b

CALLSEND

MOVA,#00000111b

CALLSEND

MOVA,#10000001b

CALLSEND

MOVA,#00001000b

CALLSEND

MOVA,#10000000b

CALLSEND

MOVA,#00001001b

CALLSEND

hh:

JMPXIANSHI

SEND:

MOVR0,#8

CLRCS

CALLLONG_DELAY

SEND_LOOP:

MOVC,ACC.7

MOVDAT,C

SETBCLK

RLA

CALLSHORT_DELAY

CLRCLK

CALLSHORT_DELAY

DJNZR0,SEND_LOOP

CLRDAT

RET

LONG_DELAY:

MOVR7,#80

DELAY_LOOP:

DJNZR7,DELAY_LOOP

RET

SHORT_DELAY:

MOVR7,#6

SHORT_LP:

DJNZR7,SHORT_LP

RET

END

(2)AD转换程序:

由AD转换的时序电路,其软件流程图如下:

1.4程序代码

ADHEXDATA050H

DBUFDATA060H

BIT_COUNTDATA070H

TIMERDATA072H

TIMER1DATA073H

TIMER2DATA074H

DATA_INDATA020H

DATA_OUTDATA021H

CLKBITP1.6

DATBITP1.7

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

clra

setbp1.7

MOVR0,#DBUF

MOVDPTR,#02f00H;A/D

NOP

NOP

NOP

MOVX@DPTR,A;启动转换

JNBP1.7,$

NOP

NOP

NOP

MOVXA,@DPTR;读入结果

NOP

NOP

NOP

MOVR7,A

MOVADHEX,A

CALLMUL500;ADHEX*500/256  

CALLHB2;转换成bcd

CALLTODISP;拆开显示

NOP

CALLDISPLAY

CALLdelay

LJMPMAIN

DISPLAY:

ANLP2,#00H;CS7279有效

MOVDATA_OUT,#10100100B;A4H,复位命令

CALLSEND

MOVDATA_OUT,#11001000B;译码方式0,0位显示

CALLSEND

MOVDATA_OUT,DBUF

CALLSEND

MOVDATA_OUT,#11001001B;译码方式0,1位显示

CALLSEND

MOVDATA_OUT,DBUF+1

CALLSEND

MOVDATA_OUT,#11001010B;译码方式0,2位显示

CALLSEND

MOVDATA_OUT,DBUF+2

CALLSEND

MOVP2,#0FFH;CS7279无效

RET

SEND:

MOVBIT_COUNT,#8;发送字符子程序

ANLP2,#00H

CALLLONG_DELAY

SEND_LOOP:

MOVC,DATA_OUT.7

MOVDAT,C

SETBCLK

MOVA,DATA_OUT

RLA

MOVDATA_OUT,A

CALLSHORT_DELAY

CLRCLK

CALLSHORT_DELAY

DJNZBIT_COUNT,SEND_LOOP

CLRDAT

RET

LONG_DELAY:

MOVTIMER,#150;延时约200US

DELAY_LOOP:

DJNZTIMER,DELAY_LOOP

RET

SHORT_DELAY:

MOVTIMER,#20;延时约20US

SHORT_LP:

DJNZTIMER,SHORT_LP

RET

DELAY:

MOVTIMER,#4

AA0:

MOVTIMER1,#0

AA1:

MOVTIMER2,#0

AA2:

DJNZTIMER2,AA2

DJNZTIMER1,AA1

DJNZTIMER,AA0

RET

;功能:

单字节二进制无符号数乘500(1f4H=100H+0f4H)

;入口条件:

被乘数在R7中。

;出口信息:

乘积在R4、R5、R6中(R6低八位)。

MUL500:

MOVA,#0f4H;计算R3乘R7

MOVB,R7

MULAB

MOVR5,B;暂存部分积

MOVR6,A

MOVA,R7

ADDA,B

MOVR5,A

CLRA

RLCA

MOVR4,A

CLRC

MOVA,R6

SUBBA,#80H

JCRETURN

CLRC

MOVA,R5

ADDA,#1

MOVR5,A

MOVA,R4

ADDCA,#0

MOVR4,A

RETURN:

RET

;功能:

双字节十六进制整数转换成双字节BCD码整数

;入口条件:

待转换的双字节十六进制整数在R6、R7中。

;出口信息:

转换后的三字节BCD码整数在R3、R4、R5中。

HB2:

MOVA,R4

MOVR6,A

MOVA,R5

MOVR7,A

CLRA;BCD码初始化

MOVR3,A

MOVR4,A

MOVR5,A

MOVR2,#10H;转换双字节十六进制整数

HB3:

MOVA,R7;从高端移出待转换数的一位到CY中

RLCA

MOVR7,A

MOVA,R6

RLCA

MOVR6,A

MOVA,R5;bcd码带进位自身相加,相当于乘2

ADDCA,R5

DAA;十进制调整

MOVR5,A

MOVA,R4

ADDCA,R4

DAA

MOVR4,A

MOVA,R3

ADDCA,R3

MOVR3,A;双字节十六进制数的万位数不超过6,不用调整

DJNZR2,HB3;处理完16bit

RET

TODISP:

MOVA,R4

ORLA,#80H

MOVDBUF+2,A

MOVA,R5

SWAPA

ANLA,#0FH

MOVDBUF+1,A

MOVA,R5

ANLA,#0FH

MOVDBUF,A

RET

END

2.1实验感想

通过这次的单片机课程设计,让我我对于51单片机以及汇编语言有了更进一步的了解。

可是也有一些反思,最主要的是汇编语言的编程,习惯了编写C语言,才发现汇编语言编写稍复杂的程序是多么的费劲。

当然汇编也有优点。

2.2参考文献

1.徐惠民安德宁丁玉珍等单片微型计算机原理、接口及应用北京邮电大学出版社2007年8月第三版

2.单片机原理实验指导书2012(含课程设计)安徽工业大学丁易新

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

当前位置:首页 > 小学教育 > 语文

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

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