单片机课程设计
课题名称运用8051、ADC0809设计一个8路数据采集系统
院校兴湘学院
专业机械设计制造及其自动化
班级3班
学生姓名曾繁宁
学号 2010963036 指导教师李玉声
2013年 12月 29 日
1.设计内容
以pc机为控制器,采用中断方式进行8通道数据采集,
2.设计要求
要求利用ADC 0809作A/D转换器,设计相应的接口电路,画出原理图并给出采用中断方式下的数据采集程序.
3.系统总体设计步骤
第一步:信号调理电路
第二步:8路模拟信号的产生与A/D转换器
被测电压要求为0~5V的直流电压,可通过电位器调节产生。
考虑本设计的实际需要,我选择八位逐次比较式A/D转换器(ADC0809)。
第三步:发送端的数据采集与传输控制器
第四步:人机通道的接口电路
第五步:数据传输接口电路
用单片机作为控制系统的核心,处理来自ADC0809的数据。
经处理后通过串口传送,由于系统功能简单,键盘仅由两个开关和一个外部中断组成,完成采样通道的选择,单片机通过接口芯片与LED数码显示器相连,驱动显示器相应同采集到的数据。
经过分析,本系统数据采集部分核心采用ADC0809,单片机系统采用8051构成的最小系统,用LED动态显示采集到的数据。
数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。
本设计没有通信部分。
系统框图如下图所示。
4.硬件系统的设计
4.1信号调理
信号调理的任务:将被测对象的输出信号变换成计算机要求的输入信号。
多路数据采集输入通道的结构图如下图:
图5-1-1多路数据采集输入通道结构图
注:缓慢变化的信号和直流信号,采样保持电路可以省略。
4.2 A/D转换器的选取
转换速度是指完成一次A/D转换所需时间的倒数,是一个很重要的指标。
A/D 转换器型号不同,转换速度差别很大。
通常,8位逐次比较式ADC的转换时间为100us左右。
由于本系统的控制时间允许,可选8位逐次比较式A/D转换器。
4.3 A/D 转换
对于该八路通道输入信号,八位A/D 转换器,其精度为
80.39%2
-= 输入为0~5V 时,分辨率为
8
50.01961122Fs
N V v ==-- 其中: Fs v —A/D 转换器的满量程值
N —ADC 的二进制位数
量化误差为
850.0098(1)2(1)222Fs N Q V
v ===-⨯-⨯
ADC0809与51单片机的接口电路如图所示:
4.7 控制器、振荡源和复位电路
复位电路即使电路回复到初始状态,是单片机经常的工作状态。
单片机振荡电路的振荡周期和时钟电路的时钟周期决定了CPU 的时序。
在绘制原理图时没有画上电外部复位电路、内部振荡器方式电路。
复位电路:采用上电外部复位电路
上电外部复位电路 内部振荡器方式 5.原理图与软件程序设计
系统的软件的设计采用的是汇编语言,对单片机进行编程实现各种功能。
程序是在windows xp 环境下采用keil 软件编写的,可以实现对八路数据的采集与处理,能实现对数据、地址的显示。
5.1主程序流程图及其程序:
开始 系统初始化 调用数制转换子程序
调用数据采集子程序 取相应通道数据 调用标度变换子程序 调用数据显示子程序
调用数据发送子程序
用ADC0809和80C51设计的8路数据采集系统原理图
ORG 0100H
MAIN:MOV SP,#60H;给堆栈指针赋初值
MOV SCON,#50H;设置串口方式1控制字
MOV TMOD,#21H;设置波特率为9600
MOV TH1,#0FDH
MOV TL1,#0FDH;给定时器赋初值
SETB TR1;启动定时器
CLR P1.7;清空P1.7口
SETB P1.6;置1P1.6
LOOP:MOV R0,#0FFH; 在寄存器R0中写入FF
MOV R4,#00H; 清空寄存器R4
LOOP1:MOV A, R4;将寄存器R4的值送入累加器A SWAP A;交换A中的值
ANL A, R4;将A与R4中的值相与
MOV R2, A;将A的值放入寄存器R2,发送指令内容
MOV TDH,R4
LCALL FAS ;调用发送子程序
LCALL SJCL
MOV R7,#064H
XH: LCALL DISPLAY
DJNZ R7,XH ;调用数码管显示子程序
INC R0
INC R4
CJNE R4,#08H,LOOP1
AJMP LOOP
6.2、数码管显示及键盘子程序:
KD1:MOV A,#OOOOOO11B
MOV DPTR,#7F00H
MOV @DPTR,A
KEY1:ACALL KS1
JNZ LK1
ACALL DIS
AJMP KEY1
LK1:ACALL DIS
ACALL DIS
ACALL KS1
JNZ LK2
ACALL DIS
AJMP KEY1
LK2: MOV R2,#0FEH
MOV R4,#OOH
LK4: MOV R2,#37F01H
MOV A,R2
MOVX @DPTR,A
INC DPTR
INC DPTR
MOVX A,@DPTR
JB ACC.1,LTW0
MOV A,#00H
AJMP LKP
LONE: JB ACC.2,NEXT
MOV A,#0CH
LKP: ADD A,R4
PUSH ACC
LK3: ACALL DIS
ACALL KS1
JNZ LK3
POP ACC
RET
NEXT: INC R4
MOV A,R2
JNB ACC.5,KND
RL A
MOV R2,A
AJMP LK4
KND: AJMP KEY1
KS1:MOV DPTR,#7F01H
MOV A,#OFFH
MOVX @DPTR,A
INC DPTR
INC DPTR
MOVX A,@DPTR
CPL A
ANL A,#OFH
RET
6.3查询方式的程序
ORG OO13H
AJMP PINT1
ORG 2000H MAIN: MOV R1,#DATA
SETB IT1
SETB EA
SETB EX1
MOV DPTR,#7FF8H
MOVX @DPTR, A LOOP: NOP
AJMP LOOP
ORG 2100H
PINT1: PUSH PSW
PUSH ACC
PUSH DPL
PUSH DPH
MOV DPTR,#7FF8H
MOVX A,@DPTR
MOV @R1,A
INC R1
MOVX @DPTR,A
POP DPH
POP DPL
POP ACC
POP PSW
课程设计心得
本次课程设计是一个由8051控制的A/D数据采集控制系统,这卡上对应有8个通道0到5V的模拟电压采集的能力。
在以上的设计里,基本满足了设计需求的要素。
这次的课程设计主要应用的知识,有单片机控制系统的构成,接口电路与应用程序,再一次巩固了所学的理论知识。
结合自己大学期间的实际积累的专业基础知识和相关专业课程知识。
总体来说这是一次,理论与实践的结合,有助于我们应用专业的理论知识解决实际问题。
在这次课程设计里有很多不尽如人意的地方,但是这个设计是在我的能力范围内做的最好的设计成果。
当然有些理念是参考了网上相应的资源,但是整个设计过程中,有自己的想法,总之,此次课程设计是我尽最大的努力完成的。