多通道数据采集系统的课程设计报告.doc
《多通道数据采集系统的课程设计报告.doc》由会员分享,可在线阅读,更多相关《多通道数据采集系统的课程设计报告.doc(12页珍藏版)》请在冰豆网上搜索。
![多通道数据采集系统的课程设计报告.doc](https://file1.bdocx.com/fileroot1/2022-10/7/5b3c65fc-7b44-43a2-bc2e-896c855f3908/5b3c65fc-7b44-43a2-bc2e-896c855f39081.gif)
单片机课程设计
多通道数据采集系统的课程设计报告
姓名:
学号:
班级:
指导老师:
授课老师:
-11-
-11-
目录
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)其具体连接电路图如下所示:
a
b
c
d
e
f
g
dp
VDD
VDD
NC
VSS
NC
CS
CLK
DATA
KEY
CLK0
RC
RESET
DIG7
DIG6
DIG5
DIG4
DIG3
DIG2
DIG1
DIG0
DP
SA
SB
SC
SD
SE
SF
SG
7279A
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
1
2
3
4
5
6
7
8
9
26
27
28
VCC
VCC
200Ω
200Ω
200Ω
200Ω
200Ω
200Ω
200Ω
200Ω
VCC
80C51
单片机
P2.7
P1.6
P1.7
P1.3
R30
3.3KΩ
C30
15PF
注意在实验时,要将系统各跳线器接在初始设置状态(参见附录)(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)数码管显示程序:
数码管显示电路的时序,其程序流程图为:
变量定义
堆栈指针初始化
IO口初始化
延时
7279复位
显示字符送A
调用SEND子程序
程序代码如下:
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转换的时序电路,其软件流程图如下:
ALE与START接在一起,
MOVDPTR,#02f00H;A/D
NOP
NOP
MOVX@DPTR,A;启动
查询P1.7即可:
JNBP1.7,$
MOVXA,@DPTR;读入结果
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