单片机AD模块课程设计报告.docx
《单片机AD模块课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机AD模块课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
单片机AD模块课程设计报告
石家庄经济学院信息工程学院
电子信息工程专业
单片机课程设计报告
题目A/D模块
姓名
学号
班级
指导教师李亚梅
2012年7月6日
课程设计任务书
班级姓名学号
课程设计题目A/D模块
课程设计起止日期2012年6月18日至2012年7月6日
实习地点实验楼106、107
课程设计内容与要求(包括:
设计任务及要求、设计原理、所需仪器设备、验收标准)
设计内容:
用8051单片机及ADC0809实现标准电压(0-5V)的A/D转换,并将转换数据在LED上显示。
并能对来自热敏电阻传感器上的信号进行A/D转换或在及格的基础上能实现十进制显示,显示范围为0.00-5.00V。
设计要求:
及格:
实现标准电压(0-5V)的A/D转换,并将转换数据在LED上显示。
中:
在及格的基础上能对来自传感器上的信号进行A/D转换或在及格的基础上能实现十进制显示,显示范围为0-5V。
良:
在及格的基础上能对来自传感器上的信号进行A/D转换同时能实现十进制显示。
本次设计可显示到小数点后两位。
优:
在良的基础上能实现通过按不同的键选择不同的通道进行A/D转换。
指导教师
2012年7月6日
一、设计原理与技术方法:
包括:
电路工作原理分析与原理图、元器件选择、电路调试方法与结果说明;
软件设计说明书与流程图、软件源程序代码、软件调试方法与运行结果说明。
(1)单片机实习系统电路及其重要芯片说明
1.电路原理图及工作原理分析
如下图1为单片机实习系统电路图
图1单片机实习系统电路图
课程设计报告
注:
此表可加附页
图28051芯片P0口与74LS373锁存器的接口图
8051芯片P0口,右侧是外接74LS373锁存器,P0口既是8数据口,又是16位地址口的低8位,外接锁存器可达到时分复用的效果。
图38051芯片PO口与ADC0809芯片8位数据输入口连接图
8051芯片PO口为数据口,与ADC0809芯片8位数据输入口对应相接8051芯片P2口作为16位地址的高8位,其中P2.7,P2.6,P2.5与74LS138的A,B,C相连接,采用译码方式,如图3所示
图48051芯片P2口的P2.7,P2.6,P2.5与74LS138的A,B,C连接图
8051芯片P2口作为16位地址的高8位,其中P2.7,P2.6,P2.5与74LS138的A,B,C相连接,采用译码方式。
如图4所示。
图5热敏电阻温度传感器电路图
设计热敏传感器,电压经过放大器后输出,作为0809的输入。
2.元器件选择及芯片说明
本次实习所选芯片有8051、ADC0809、74LS373、74LS138。
热敏电阻传感器主要元件有负温度系数热敏电阻及LM358运放芯片。
8051芯片的说明:
单片机的40个引脚可分为4类:
电源、时钟、控制和I/O引脚。
(1)电源:
VCC-芯片电源,接+5V;
VSS-接地端;
(2)时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
(3)控制线:
控制线共有4根,
1)ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
2)PSEN:
外ROM读选通信号。
3)RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
4)EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
(4)I/O线
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3口,共32个引脚。
P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
ADC0809芯片说明:
(1)主要特性
1)8路8位A/D转换器,即分辨率8位。
2)具有转换起停控制端。
3)转换时间为100μs
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
(2)引脚功能
1)IN0~IN7:
8路模拟量输入端。
2)2-1~2-8:
8位数字量输出端。
3)ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路。
4)ALE:
地址锁存允许信号,输入,高电平有效。
5)START:
A/D转换启动信号,输入,高电平有效。
6)EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
7)OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
8)CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
9)REF(+)、REF(-):
基准电压。
10)Vcc:
电源,单一+5V。
11)GND:
地。
(3)ADC0809的结构及转换原理:
ADC0809是采用逐次比较式的方法完成A/D转换的,由单一5V电源供电,片内带有锁存功能的8路选1的模拟开关,由C,B,A引脚的编码来决定所选的通道。
0809完成一次转换需要100us左右。
输出具有TTL三态锁存缓冲器,可直接连接到MCS-51的数据总线上,通过适当的外接电路,0809可对0-5V模拟信号进行转换。
图6ADC0809管脚图
74LS373芯片说明
373为三态输出的D-锁存器,当三态允许控制端OE为低电平时,Q0~Q7为正常逻辑状态,可用来驱动负载或总线。
当OE为高电平时,Q0~Q7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。
当锁存允许端LE为高电平时,Q随数据D而变。
当LE为低电平时,D被锁存在已建立的数据电平。
当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。
引出端符号:
D0~D7数据输入端,OE三态允许控制端(低电平有效),LE锁存允许端,Q0~Q7输出端,
74LS373真值表如表一所示。
表一74LS373真值表
Dn
LE
OE
On
H
H
L
H
L
H
L
L
X
L
L
Q0
X
X
H
高阻态
74LS138芯片说明
74LS138为3线-8线译码器,其工作原理为:
①当一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。
②利用E1、E2和E3可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。
③若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
④可用作译码电路中,扩展内存。
表二74LS138真值表
负温度系数热敏电阻NTC
NTC热敏电阻器就是负温度系数热敏电阻器。
温度低时,这些氧化物材料的载流子(电子和孔穴)数目少,所以其电阻值较高;随着温度的升高,载流子数目增加,所以电阻值降低。
NTC热敏电阻器在室温下的变化范围在10~1000000欧姆,温度系数-2%~-6.5%。
图7负温度系数热敏电阻特性曲线
LM358芯片说明
LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器。
图8LM358芯片管脚图
2.程序设计思路说明
及格程序为ADC0809可将输入模拟电压0—5V转换为8位的数字量,共256个电平,要在数码管上显示,即送显示即可。
在及格的基础上,对来自传感器的电压进行A/D转换,显示为十进制,只要经计算得到的数据进行BCD码转换,由于显示范围为0-5V,本次设计可显示到小数点后两位,如2.58V。
53H,52H,51H分别放置个位数,十分位数,百分位数。
系统主流程图如图9所示,图10为中断子服务程序流程图
图9主程序流程图
图10中断子服务程序流程图
A/D的良设计程序代码说明如下:
ORG0000H
LJMPMAIN
ORG0013H;INT1的入口地址
LJMPINT1T
ORG0100H
MAIN:
MOVSP,#70H;入口
MOV58H,#00H;设立数据存储区指针
MOV59H,#00H
MOV5AH,#00H
MOV5BH,#00H
SETBIT1;选择INT1为边沿触发方式,设置中断优先级
SETBEA;CPU开中断
SETBEX1;允许外部中断1中断
MOVDPTR,#2000H;0809地址
MOVX@DPTR,A;启动转换
LCALLTUNBCD;调用显示程序,等待中断
SJMP$
INT1T:
PUSHACC;现场保护
PUSHPSW
CLREA
CLREX1;关中断
MOVDPTR,#2000H;0809地址
MOVXA,@DPTR;读取数据
MOV@R1,A
LCALLTUNBCD
SETBEA
SETBEX1;开中断
POPPSW
POPACC;出栈
MOVDPTR,#2000H
MOVX@DPTR,A;重新启动转换
RETI;中断返回继续执行
TUNBCD:
movDPTR,#2000h
MOVXA,@DPTR
MOVB,#51;255/51=5.00V运算
DIVAB
MOV5AH,A;个位数放入53H
MOVA,B;余数大于19H(25),F0为1,乘法溢出,结果加五
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,LOOP2
ADDA,#5
LOOP2:
MOV59H,A;小数后第一位放入52H
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,LOOP3
ADDA,#5
LOOP3:
MOV58H,A;小数后第二位放入51H
DISP:
MOVA,58H;取出百分位
MOVDPTR,#TAB;读表头
MOVCA,@A+DPTR;查表
CLRP3.6;138的E1E2低电平有效(清除)
MOVP2,#60H;选中74LS373芯片
MOVP0,A;当LE有效时把数据A锁存
MOVP2,#0E0H;显示最低位
LCALLDELAY
CLRP0.7
MOVA,59H;取出十分位
MOVDPTR,#TAB
MOVCA,@A+DPTR
CLRP3.6
MOVP2,#60H;选中74LS373芯片
MOVP0,A
MOVP2,#0C0H;显示