单片机模拟信号采集系统综合实验.docx
- 文档编号:1869078
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:21
- 大小:77.79KB
单片机模拟信号采集系统综合实验.docx
《单片机模拟信号采集系统综合实验.docx》由会员分享,可在线阅读,更多相关《单片机模拟信号采集系统综合实验.docx(21页珍藏版)》请在冰豆网上搜索。
单片机模拟信号采集系统综合实验
单片机模拟信号采集系统综合实验(数字电压表的设计)
一、实验要求
在实验室已有单片机实验系统及仿真器的硬件基础支持下,编程完成一个单片机控制的模拟信号采集系统(数字电压表的设计)。
二、实验目的
1、掌握单片机模拟信号采集系统的基本概念。
2、掌握单片机模拟信号采集系统的编程方法。
3、掌握单片机模拟信号采集系统的总体调试及数据处理。
三、实验说明
1.利用单片机的片内A/D进行单通道外部模拟电压信号采集(暂定ACH6,ACH7单通道电压信号采集)
2.利用单片机的片内A/D进行多通道(暂定ACH6,ACH7双通道)外部模拟电压信号的循环采集,
3.利用单片机进行数据处理(软件滤波、数据转换等),
4.各通道采集数据在LED(或LCD)上进行实时显示。
5.利用键盘完成单通道、多通道采集功能的转换。
四、实验电路分析
80C196单片机是Intel公司生产的MCS96系列单片机中的一种。
MCS196系列单片机是Intel公司继MCS51系列单片机后推出的16位单片机,特别适用于各类自动控制系统,如工业过程控制系统、伺服系统、分布式控制系统等,还适用于一般的信号处理系统、高级智能仪器、高性能计算机外部设备控制器和办公自动
控制。
图4-1单片机80C196与可编程并行通讯接口8255连接图
图4-2:
8255与键盘,LED显示管连接
根据图4-2可以看出,实验箱上由16个键构成了键盘,该16个键分别与8255的PB口及PC0、PC1连接。
其中,PB口用于读入键值,称为行线,PC口用于输出键盘扫描信号,称为列线。
当PC0、PC1输出均为1,键盘封锁
当PC0、PC1分别为0,则可扫描键盘。
通过PB口读入数据,判断所操作的键值。
PC0=0PC1=1PB0~PB7分别为0,表示所操作的键码为0~7键
PC0=1PC1=0PB0~PB7分别为0,表示所操作的键码为8~F键
键码组合关系如下:
00000010b11111110B(02HFEH)000000010b11111101B(02HFDH)1
00000010b11111011B(02HFBH)200000010b11110111B(02HF7H)3
00000010b11101111B(02HEFH)400000010b11011111B(02HDFH)5
00000010b10111111B(02HBFH)600000010b01111111B(02H7FH)7
00000001b11111110B(01HFEH)800000001b11111101B(01HFDH)9
00000001b11111011B(01HFBH)A00000001b11110111B(01HF7H)B
00000001b11101111B(01HEFH)C00000001b11011111B(01HDFH)D
00000001b10111111B(01HBFH)E00000001b01111111B(01H7FH)F
试验箱采用共阴LED数码管,且8255的PA口LED连接已知,关系表如下:
8255PA
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
显示值
显示码
LED段控
a
b
c
d
e
f
g
H
1
1
1
1
1
1
0
0
0
FC
0
1
1
0
0
0
0
0
1
60H
┇
1
1
1
1
0
1
1
0
9
F6H
1
1
1
0
1
1
1
0
A
EEH
┇
1
0
0
0
1
1
1
0
F
8EH
80C196计数器1是八分频的电路。
当计数器计满产生溢出后,IOS1.5置“1”(IOS1.5=1),读IOS1.5一次,IOS1与时间有关的各个标志清“0”,同时溢出信号还可申请定时器中断。
定时器1溢出中断参数计算如下:
计算每次溢出所需时间T=(2*8/11.059)*65536us=94.8165ms
计算每秒的溢出次数N=1000ms/94.8165ms=10.55
程序中,定义一个名为t_buf的六字节十进制时钟数据存储区,一个名为dis_buf的8字节显示缓存区,s_buf、m_buf、h_buf分别为秒、分、时二进制数据存放单元。
程序运行时,定时器1每中断11次,使秒单元加1;秒单元每增加60次,使分单元加1,同时秒单元清零;分单元每增加60次,使时单元加1,同时分单元清零;时单元每增加24次(12次)清零。
每次中断,均将s_buf、m_buf、h_buf的值经过二-十进制转换为十进制,存入t_buf中。
将t_buf的值依次取出,在table中寻找其相应的显示代码,并送入dis_buf中,再经过显示移位,送至8255A口,再通过对8255C口的动态扫描实现时钟的动态显示。
在80196中,A/D转换器可以选择8位与10位精度两档。
A/D转换器的模入通道与P0.0~P0.7共享。
A/D转换可以通过HSO命令选择F、通道或将A/D命令寄存器AD_COMMAND(02H)的GO位置1的办法来启动。
在实验中,程序将通道采集的十六进制转化为以mV为单位的十进制数值。
原理为:
标准电压Vref(4710mv)经过内部的256个梯形电阻网络分压(20mv),再经过电容分压至1024个标准电压(4.6mv)。
启动A/D转换后,经过88个状态周期(Ts),完成转换并将转换码存入AD结果单元。
•AD的分辨率=Vref/1023
•被测电压计算:
Vin=AD的分辨率*N=(Vref/1023)*N(N为从A/D结果寄存器中取出的结果)
•转换时间:
88Ts
五、程序框图
主程序设计及说明
时钟程序:
进行初始化,并提供功能键的扫描。
当A或B键按下时,运行电压测量子程序,分别测量ACH6和ACH7两个通道电压值,此时若按下C键,则实现ACH6和ACH7通道的巡检,交替显示两通道的电压值。
图5-1主程序流程图
电压测量子程序:
图5-2电压采集及A/D转换流程图
六、程序清单
CPU80C196KB
AXEQU20H
ALEQU20H
AHEQU21H
BXEQU22H
BLEQU22H
BHEQU23H
CXEQU24H
CLEQU24H
CHEQU25H
DXEQU26H
DLEQU26H
DHEQU27H
EXEQU28H
ELEQU28H
EHEQU29H
FXEQU2AH
FLEQU2AH
FHEQU2BH
GXEQU5AH
GLEQUGX
GHEQUGX+1
HXEQU5CH
HLEQUHX
HHEQUHX+1
IXEQU5EH
ILEQUIX
IHEQUIX+1
LXEQU60H
LLEQULX
LHEQULX+1
KXEQU62H
KLEQUKX
KHEQUKX+1
COUNT3EQU6AH;通用计数器3
COUNT4EQU6BH;通用计数器4
T_COUNTEQU6CH;定时计数器
T_VTEQU11;T1"1"秒=11
DIS_BUF_PEQU70H;显示代码存放缓冲区
D_BUFEQU80H
T_BUFEQU8AH
S_BUFEQU90H;二进制数秒单元
M_BUFEQU91H;二进制数分单元
H_BUFEQU92H;二进制数时单元
DTEQU4CH;延时系数
BCDEQU0C00EH;BCD码存放地址
TABLEEQU0C014H;段码存放地址
HSIRESEQU0C00AH;AD计算结果(二进制)
HSIRESHEQU0C00CH
PA8255EQU0BF00H;8255的PA口地址
PB8255EQU0BF02H;8255的PB口地址
PC8255EQU0BF04H;8255的PC口地址
C8255EQU0BF06H;8255的控制字地址
;**********变量************
COUNT2EQU30H
ADSELEQU50H;AD转换通道选择变量
LEDSELEQU4FH;LED扫描显示位选变量
CHANNALEQU4BH;显示通道号
TSPEQU48H;TSP地址不能为4AH
SP1EQU46H;段码查找时的段码地址偏移量
ADKEYEQU2CH;AD转换开关标志
DDTTEQU32H
NEQU34H
MEQU35H
XEQU36H
YEQU37H
ZEQU38H
ZZEQU39H
MMEQU40H
NNEQU42H
ORG2000H;定时器中断向量
DW2800H
;**********初始化**********
ORG2080H
LDSP,#0FFH;设堆栈指针首地址
LDAX,#C8255;8255初始化.
LDBBL,#82H;A,B,C口均工作在方式0
STBBL,[AX];写8255控制字
LDBCL,#1
STBCL,PC8255
LDCX,#HSIRES;HSIRES存储区清零
LDDX,#0
LDEX,#0
STDX,[CX]+
STEX,[CX]
LDBLEDSEL,#0
LDBDDTT,#0
LDBN,#0
LDBM,#0
LDBX,#1
LDBZ,#0
LDNN,#0
LDMM,#0
CLRBADKEY;清AD转换开关标志
;**********主程序************
MAIN:
ADDBZZ,#1
CMPBZZ,#0FFH
JERESETZ
LDBAH,PC8255;读PC口状态
XORBAH,#3;PC1,PC0两位进行异或
STBAH,PC8255;键盘扫描移位
LDBAL,PB8255;读PB口状态
CMPBAL,#0FFH;是否有键按下?
JENEXT2;否,转到NEXT2
LDBAL,PB8255;读PB口状态
LDBAH,PC8255;读PC口状态
ANDBAH,#3;提取键码
CMPAX,#01FBH;是'A'键按下吗?
JEK1;是,转去
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 模拟 信号 采集 系统 综合 实验