测试与报警系统微机接口课程设计报告.docx
- 文档编号:16236770
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:23
- 大小:152.88KB
测试与报警系统微机接口课程设计报告.docx
《测试与报警系统微机接口课程设计报告.docx》由会员分享,可在线阅读,更多相关《测试与报警系统微机接口课程设计报告.docx(23页珍藏版)》请在冰点文库上搜索。
测试与报警系统微机接口课程设计报告
合肥学院
计算机科学与技术系
微机原理与接口技术
课程设计报告
2008~2009学年第1学期
课程
微型计算机原理与接口技术
课程设计名称
检测与报警系统的设计与开发
学生姓名
李文龙
学号
0604032041
专业班级
06级网络工程
(2)班
指导教师
龙夏
2009年1月
1题义分析及解决方案
1.1题义需求分析
电压值为模拟信号,如何实现其转化为数字信号?
界限值如何设定及显示在LED上?
输入的模拟电压与界限值的比较,并判断是否超出范围?
声光报警如何实现?
1.2解决问题的方法及思路
1.2.1硬件部分
模数转换器:
AD7715或ADC0809
表1-1模数转换器
对比ADC0809,AD7715精度高、误差小、可靠性好、可编程性强,但成本高很多。
就本实验来说,由于要实现的是简单的电压越界判断,对精度的要求并不太高,所以选用ADC0809。
可编程并行接口芯片:
8279或8255A
表1-2可编程并行接口芯片
8255A8279
输入最低电压-0.5V-0.5V
输入最高电压0.8V1.4V
驱动最低电流-1.0mA2.0uA
驱动最大电流-4.0mA±10uA
本实验选用8255A。
输入设备:
小键盘或逻辑开关
表1-3输入设备
小键盘
键盘(keyboard)是常用的输入设备,它是由一组开关矩阵组成,机构相对复杂
逻辑开关
结构简单,使用方便,价格便宜,高电平:
+5V,低电平:
0V
选择数字开关电路作为输入设备较方便。
报警发光及显示电压值设备:
表1-4报警发光及显示电压值设备
LED
LED在亮度,功耗可视角度和刷新率等方面具有优势,其最显著的特点是使用寿命长,光电转换效能高,绿色环保
发光二极管
结构简单,功耗低,低辐射,成本低廉
试验时采用:
一片ADC0809模数转换器用于将采集的模拟信号转换成数字信号,可编程并行接口芯片8255一片,逻辑开关电路板一片,发光二极管一只,LED若干,扬声器一个,逻辑开关一个。
1.2.2软件部分
(1)对8255进行初始化设计,设置8255的工作方式并确定8255的端口地址;
(2)启动0809的程序进行摸/数转换,并将结果送入;
(3)将结果与界限值相比较,大于则发生报警。
2硬件设计
2.1数模转换器0809
2.1.10809的作用
利用0809进行模/数转换,将采样结果电压转换8086能应用的数字量。
2.1.20809的功能分析
模/数转换是指通过一定的电路将模拟量转变为数字量,由于模拟量是连续的,而数字量是离散的,所以,一般在某个范围中的模拟量对应于某一数字量,这就是说,在A/D转换时,模拟量和数字量之间并不是一一对应的关系,即从理论上,有一个转换精度的问题,转换精度反映了A/D转换器的实际输出接近理想输出的精确程度,A/D转换的精度通常是用数字量的最低有效位(LSB)来表示的,设数字量的最低度有效位与对应与模拟量△,这时,我们称△为数字量的最低有效位的当量,ADC0809采用的是逐位逼近A/D转换,逐位逼近A/D转换时,也用D/A转换器的输出电压来驱动运算放大器的反相端,不同的是用逐位式进行转换时,要用一个逐位逼近寄存器存放转换好的数字量,转换结束时,将数字量送到缓冲寄存器中,当启动信号由高电平变为低度电平时,逐位逼近寄存清零,这时D/A转换器输出电压V0也为0,当启动信号变为高电平时,转换开始,同时,逐位逼近寄存器进行计数。
逐位逼近寄存器通常工作是从最高位开始,通过设置试探值来计数,在第一个时钟脉冲时,控制电路反最高位送到逐位逼近寄存器,使它输出为10000000,则D/A转换器输出电压V0为满量程值128/255,若V0大与Vi,则作为比较器的运算放大器的输出成为低电平,控制电路据此清楚逐位寄存器中的最高位;若V0小于Vi,则比较器输出高电平,控制电路使最高位的1保留下来,如果最高位被保留,则值10000000下一个时钟脉冲使次高位D6为1,于是逐位逼近寄存器值为11000000,V0为满量程值192/255,此后,若V0大于Vi,则比较输出低电平,从而使次高位D6复位,如果V0小于Vi,则比较器输出高电平,从而保留高位D6为1,在下一个时钟脉冲D5置1,比较……直到D0为1,再与输入电压比较,经N次比较,寄存器中得到的值就是转换后的数据,转换以后,控制电路送出一个低电平作为结束信号,这个信号的下降沿将逐位逼近寄存器中的数字量送入缓冲寄存器,从而得到数字量输出。
2.1.3ADC0809的技术参数
分辨率:
8位是指ADC对输入电压微小变化响应能力的量度,它是数字输出的最低位(LSB)所对应的模拟输入电平值。
若输入电压满刻度值为VFS,转换位数为N。
分辨率1/2NVFS当模拟电压低于此值时,ADC不予响应。
绝对精度:
是指在输出端产生给定的数字代码,实际需要的模拟输入值与理论上需求的模拟输入值之差。
相对精度:
是指满刻度值校准后,任意数字输出所对应的实际模拟输入值与理论值之差。
转换时间:
是指ADC完成一次转换所需时间,既从启动信号开始到转换结束并得到稳定的数字输出量所需时间,通常us级。
量程:
0-5V,指所能转换的输入电压范围。
2.2可编程并行接口芯片8255A
2.2.18255A的作用
利用8255将转换后的数字量传送到8086CPU,同时8255A也通过其某些输出量控制ADC0809工作,8255A也用来输出控制量来控制报警系统发生报警。
2.2.28255A的功能分析
8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。
三个端口都可以作为输入端口或输出端口。
A口有三种工作方式:
即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。
8255A的工作只有当片选CS有效时才能进行。
而控制逻辑端口实现对其他端口的控制。
CPU接口(数据总线缓冲器和读/写控制逻辑)
数据总线缓冲期:
这事一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的。
这个缓冲器是8255A与CPU数据总线的接口。
所有数据的输入/输出,以及CPU用输出指令向8255A发出的控制字和用输入指令从8255A读入的外设状态信息,都是通过这个缓冲器传递的。
读/写控制逻辑:
它与CPU的6根控制线相连,控制8255A内部的各种操作。
控制线RESRT用来使8255A复位。
和地址线A1及A0用于芯片选择和通道寻址。
控制线和用来决定8位内部和外部数据总线上传送的方向,即控制把CPU的控制命令或输出的数据送到相应的通道,或把状态信息或输入数据送到CPU。
8255A的读/写控制逻辑的作用,是从CPU的地址和控制总线上接受输入的信号,转变成各种命令送到A组或B组控制电路进行相应的操作。
2.2.38255A的引脚信号
与外设相连的
PA7~PA0:
A口数据信号线
PB7~PB0:
B口数据信号线
PC7~PC0:
C口数据信号线
与CPU相连的
RESET:
复位信号。
当此信号来时,所有寄存器都被清除。
同时三个数据端口被自动置为输入端口。
D7~D0:
片选信号。
在系统中,一般根据全部接口芯片来分配若于地位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。
只有当有效时,读信号写才对8255A进行读写。
RD:
读信号。
当此信号有效时,CPU可从8255A中读取数据。
WR:
写信号。
当此信号有效时,CPU可向8255A中写入数据。
A1、A0:
端口选择信号。
8255A内部有3个数据端口和1个控制端口,共4个端口。
规定A1、A0:
为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
2.2.48255A的基本操作
表2-18255A的基本操作
WRCSA1A0RD功能
00001对端口A读
输入
00101对端口B读
01001对端口C读
01101非法,不能对D口读
00010对端口A写
输出
00110对端口B写
01010对端口C写
01110对端口D写
1××××数据缓冲器为三态
断开
×
××××1
1
2.2.58255A的技术参数
表2-28255A的技术参数
其中PER为peripheralport的缩写
输入最低电压:
min-0.5V,max-0.8V,输入最高电压:
2.0V。
输出最低电压:
0.45V。
输出最高电压:
2.4V。
2.2.68255A的控制字
8255A的方式控制字
表2-38255A的方式控制字
1
A组工作方式
AA口I/O
C7-C4I/O
B组工作方式
BB口I/O
C3-C0I/O
|||||||特征位00方式01输入1输入0方式01输入1输入
01方式10输出0输出1方式10输出0输出
10方式2
方式0的工作特点:
这种方式通常不用联络信号,不使用中断,三个通道中的每一个都又可以由程序选定作为输入或输出。
其功能为:
两个8位通道:
通道A、B。
两个四位通道:
通道C高四位和第四位;
任何一个通道可以作输入/输出;
输出是锁存的;
输入是不锁存的;
在方式0时各个通道的输入/输出可有16种不通的组合。
置位/控制字:
表2-4置位/控制字
2.3扬声器
2.3.1扬声器的作用
在本实验中,扬声器用作声音报警。
2.3.2扬声器的功能
扬声器是将电能转化成声能,并将声能辐射到空气中去的一种电声转换器件。
2.3.3扬声器的技术参数
它一般包括灵敏度、频率响应、额定功率、指向性、失真、音质听感评价等。
本实验只关心应用电压,其为5V。
2.4发光二极管
2.4.1发光二极管的作用
对检测的越界信号进行发光报警。
2.4.2发光二极管的功能分析
物理构造:
采用砷化镓、镓铝砷和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。
工作原理:
当在发光二极管PN结上加正向电压时,PN结势能降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。
2.4.3技术参数
发光二极管的压降一般为1.5~2.0V,其工作电流一般取10~20mA为宜。
2.5开关
2.5.1开关的作用
本次设计需要用八位开关置数,故要用到开关,输入0时,开关闭合,输入1时,开关断开。
2.5.2开关功能的分析
开关未合时,与5V电压相连,输入1,当合上之后,开关就将A口接地,也就输入为0~4位开关可以置0~15的数。
2.5.3逻辑开关及其编码
开关高电平:
+5V;低电平:
0V
表2-5逻辑开关及其编码
编码
数字
编码
数字
0000
0
1000
8
0001
1
1001
9
0010
2
1010
10
0011
3
1011
11
0100
4
1100
12
0101
5
1101
13
0110
6
1110
14
2.6七段LED显示器
2.6.1七段LED显示器作用
显示设定的界限值及输入的电压值
2.6.2七段LED显示器的功能分析
七段LED显示器通过汇编语言的控制,可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。
其工作原理:
如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。
发光二极管是一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常有多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作a~g和DP的输入。
2.6.3七段LED显示的技术参数
表2-6七段LED显示的技术参数
PCW
LF
Vr
Ir
If
p
对应变量
散射颜色
BT235
70
25
5
≥1.5
≤2.5
200
SEL-10
红
BT144
100
40
5
≥0.5
≤2.5
565
绿
BT134
100
40
5
≥0.5
≤2.5
585
蓝
主要参数:
此时的驱动电流为25mA。
2.6.4LED真值表
表2-7LED真值表
2.6.5LED原理图
图2-1LED原理图
2.7硬件总逻辑图及其说明
图2-2硬件总逻辑图
说明:
8086通过8255A同0809相连接,由电位器将一路模拟量送入0809,并由8255A采用查询工作方式控制0809工作。
8086通过8255A向报警系统(扬声器、发光二极管)发送控制信号。
3控制程序设计
3.1控制程序设计思路说明
利用ADC0809芯片实现模拟信号转换,又利用8255A输出ADC0809的转换量,其中8255A的PA口输入,PB口输出段选,PC输出,控制位选及报警系统报警。
因此应首先初始化8255A,令A口为输入口,B口为输出口,C口为输出口。
C口清零解除报警。
启动0809转换,然后通过逻辑开关板自行设定一个界限值,通过LED显示界限值,再比较界限值与输入电压的大小,若大于或等于界限值,置PC6,PC7为0,二极管发光,扬声器发出报警声音。
然后返回解除报警,如此一直循环。
3.2控制程序流程图
图3-1控制程序流程图
3.4控制程序:
.MODELTINY
PCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA&32BITRAM板卡上的8237提供基地址)
Vendor_IDEQU10EBH;厂商ID号
Device_IDEQU8376;设备ID号
.STACK100
.DATA
IO_Bit8_BaseAddressDW?
msg0DB'BIOS不支持访问PCI$'
msg1DB'找不到StarPCI9052板卡$'
msg2DB'读8位I/O空间基地址时出错$'
COM_ADDDW00F3H;控制口偏移量
PA_ADDDW00F0H;PA口偏移量
PB_ADDDW00F1H;PB口偏移量
PC_ADDDW00F2H;PC口偏移量
PD_ADDDW00E0H;AD口偏移量
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H;代码段
.CODE
;******控制程序开始******;
START:
MOVAX,@DATA
MOVDS,AX
NOP
CALLInitPCI
CALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址
movdx,COM_ADD;取8255的端口地址
moval,90h;初始化8255,PA作为输入端,PB,PC输出,
outdx,al;方式选择控制字送8255A控制端口
BEGIN:
moval,0FFh;低电平有效
movdx,PC_ADD;C口清零,防止刚开始实验就报警
outdx,al
STEP1:
moval,00H
movdx,PD_ADD;启动ADC0809开始转换
outdx,al
movcx,0F0h
DELAY1:
inal,dx
loopDELAY1;等待0809转换完毕
movdx,PA_ADD;PA口偏移量
inal,dx;读开关界限值
movcl,al;逻辑开关界限值存入cl
movdx,PD_ADD;;取ADC0809的端口地址
inal,dx;电压采集到al
movah,al;存入ah
movsi,0F00h;闪光灯总循环延时程序
callxianshi
XIANSHIprocnear
moval,cl
andal,0Fh;取转换后数字量的低四位
movbx,offsetLED;将TAB的偏移量存入BX
xlat;经代码表转换为七段LED的段码中
movdx,PB_ADD;从8255A的B口读取数字量,段选
outdx,al
movdx,PC_ADD;PC口位选
moval,0FEH;七段LED的位选,选取最低位,位选
outdx,al;显示
movbp,0FFh
STEP2:
decbp;循环显示延时子程序
cmpbp,0h
jneSTEP2
moval,0FFh
outdx,al;禁止显示
moval,cl
shral,4;逻辑右移,高位补零
movbx,offsetLED
xlat;经代码表转换为七段LED的段码中
movdx,PB_ADD
outdx,al
moval,0FDH;位选,选取最高位
movdx,PC_ADD
outdx,al
movbp,0FFh
STEP3:
decbp;循环显示延时子程序
cmpbp,0h
jneSTEP3
moval,0FFh
outdx,al;禁止显示
moval,AH
andal,0Fh;取转换后数字量的低四位
movbx,offsetLED
xlat;经代码表转换为七段LED的段码中
movdx,PB_ADD
outdx,al
moval,0EFH;位选,选取最高位
movdx,PC_ADD
outdx,al
movbp,0FFh
STEP4:
decbp;循环显示延时子程序
cmpbp,0h
jneSTEP4
moval,0FFh
outdx,al;禁止显示
moval,AH
shral,4;逻辑右移,高位补零
movbx,offsetLED
xlat;经代码表转换为七段LED的段码中
movdx,PB_ADD
outdx,al
moval,0DFH;位选,选取最高位
movdx,PC_ADD
outdx,al
movbp,0FFh
STEP5:
decbp;循环显示延时子程序
cmpbp,0h
jneSTEP5
moval,0FFH
outdx,al;禁止显示
decsi
cmpsi,0h
JNEZHDISP;循环显示转换后的数字量,使人眼感觉不到动态
cmpah,cl;与界限值相比较
jbSTEP;低于重新启动0809,继续转换模拟信号
movdx,PC_ADD;高于逻辑开关界限值则设置方式控制字
moval,3FH;二极管进行发光报警,蜂鸣器进行声音报警
outdx,al
callDELAY;启动报警状态延时子程序
jmpBEGIN;解除报警后继续重新开始
RET
XIANSHIendp
ZHDISP:
callXIANSHI
STEP:
jmpSTEP1
DELAYPROCNEAR;报警状态延时子程序
movsi,0FFFFh
DELAY2:
decsi
cmpsi,0
jneDELAY2
ret
DELAYendp
;******控制程序结束******;
InitPCIPROCNEAR
MOVAH,00H
MOVAL,03H
INT10H;清屏
MOVAH,0B1H
MOVAL,01H
INT1AH
CMPAH,0
JZInitPCI2
LEADX,msg0
InitPCI1:
MOVAH,09H
INT21H
JMPExit
InitPCI2:
MOVAH,0B1H
MOVAL,02H
MOVCX,Device_ID
MOVDX,Vendor_ID
MOVSI,0
INT1AH
JNCInitPCI3;是否存在StarPCI9052板卡
LEADX,msg1
JMPInitPCI1
InitPCI3:
MOVDI,PCIBAR3
MOVAH,0B1H
MOVAL,09H
INT1AH;读取该卡PCI9052基地址
JNCInitPCI4
LEADX,msg2
JMPInitPCI1
InitPCI4:
ANDCX,0FFFCH
MOVIO_Bit8_BaseAddress,CX
RET
InitPCIENDP
ModifyAddressPROCNEAR
ADDCOM_ADD,CX
ADDPA_ADD,CX
ADDPB_ADD,CX
ADDPC_ADD,CX
ADDPD_ADD,CX
RET
RET
ModifyAddressENDP
Exit:
MOVAH,4CH
INT21H
ENDSTART
4上机调试
4.1硬件调试
在老师的指导下,完成了初步的硬件连接。
后来由于加入了新的功能(LED显示),所以作了一番改动,整体并没有出现什么大的困难。
4.2软件调试
在软件部分要实现模拟量转化为数字量、界限值通过逻辑开关的设定及将它们在七段LED数码管上显示出,最后是判断输入的电压值是否超出范围,实现声光报警问题:
由于系统可能存在留有模拟信号的原因致使启动机器就会进行发生光报警,所以在程序中加入程序段使C口清零,防止刚开始试验就报警。
在程序段中加入延时子程序防止系统反应过快。
PC口全部置0可使二极管,蜂鸣器同时报警,实现该课程设计的要求。
4.3联机调试
联机调试时在单步调试都出现正确结果,但在全速运行时结果却没出来,后来发觉是延迟时间太短倒是结果不明显,然后将延时时间增长,再进行全速运行便能得到正确的相应。
4.4调试结果及问题的提出
通过逻辑开关板给出一个界限值,输入电压值,经过0809将此模拟量转换成数字量后,若此数字量大于或等于界限值,扬声器就会报警,并且二极管不停地闪烁,并且将设定的界限值的大小及电压值通过7段LED显示出来,通过一段延时子程序后。
这时我们又可以给出一个新的界限值,重新进行比较。
循环进行转换和检测。
5设计总结及问题讨论
5.1总结
课程设计结果就是可以将外界输入的一个模拟量经过0809将其转换为数字量后与通过8255A给出的界限值进行比较,判断是否越界,若越界则报警,同时将界限值与输入的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 报警 系统 微机 接口 课程设计 报告