计算机科学与技术系.docx
- 文档编号:7317585
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:20
- 大小:184.53KB
计算机科学与技术系.docx
《计算机科学与技术系.docx》由会员分享,可在线阅读,更多相关《计算机科学与技术系.docx(20页珍藏版)》请在冰豆网上搜索。
计算机科学与技术系计算机科学与技术系计算机科学与技术系微机原理与接口技术课程设计报告20072008学年第2学期课程微机原理与接口技术课程设计名称检测与报警系统的设计与开发学生姓名学号专业班级指导教师2009年2月一、题义分析与解决方案1.题义需求分析设计并开发能检测模拟信号,并能产生报警信号的系统。
其具体要求是:
(1)能对输入的05V的模拟电压信号进行检测。
(2)能判断所检测的信号是否越界。
(3)若信号越界则进行声(PC机扬声器)、光(发光二极管)报警。
说明:
其界限值是自行设定的(2.5V),其所对应的数字量为(2.5/5)*255=127.5=80H),事先将其存储在某寄存器或存储单元中。
根据题目要求进行以下几点分析:
(1)输入的电压值是模拟信号,而检测的值只能为数字信号。
因此对05V的模拟电压信号进行检测前,要利用A/D转换器(ADC0809)将模拟量转换为数字量。
(2)因为要对信号进行越界检测,因此需要利用二进制逻辑开关开关自行设定越界的界限量。
(3)假如出现越界,需要产生声、光报警,从而起到提示作用。
光可以利用发光二极管,声可以利用PC扬声器。
2.解决问题方法及思路
(1)硬件部分ADC0809模数转换器一片(用于将采集的模拟信号转换成数字信号)可编程并行接口芯片8255一片逻辑开关电路板一片(用于设置界限值)发光二极管一只(用于报警时产生光)PC扬声器一个(用于报警声音提示)七段LED显示器(用于显示电压值以及界限值)8086通过8255同ADC0809相连,由电位器将模拟量送入ADC0809,并由8255采用查询工作方式控制ADC0809工作。
8086通过8255向报警系统(扬声器、发光二极管)以及七段LED显示器发送控制信号。
(2)软件部分首先对8255进行初始化设置,设置8255的工作方式和端口地址,然后启动ADC0809的程序进行模/数转换,通过ADC0809信道0将输入的05V的模拟电压信号转换成数字信号并将其保存在AH寄存器中,比较AH的值与事先保存在AL寄存器(二进制开关输入的界限值)中的值,若小于则继续采集信号并通过七段LED显示器显示输入值和界限值,若大于或等于则将分别与二极管和扬声器相连的PC6,PC7端口置位(置低电平有效),进行报警并同样通过LED显示,再经过延时后再进行复位重新进行模拟信号的转换。
二、硬件设计1ADC0809模数转换器11ADC0809的作用:
众所周知,CPU能应用的只能是数字量。
而本设计中的输入电压为模拟信号,因此需要ADC0809进行模数转换,将采样电压转换为数字信号。
12ADC0809的功能分析模/数转换是指通过一定的电路将模拟量转变为数字量,由于模拟量是连续的,而数字量是离散的,所以,一般在某个范围中的模拟量对应于某一数字量,这就是说,在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次比较,寄存器中得到的值就是转换后的数据,转换以后,控制电路送出一个低电平作为结束信号,这个信号的下降沿将逐位逼近寄存器中的数字量送入缓冲寄存器,从而得到数字量输出。
13ADC0809的技术参数图1ADC0809的技术参数表分辨率是指ADC对输入电压微小变化响应能力的量度,它是数字输出的最低位(LSB)所对应的模拟输入电平值。
若输入电压满刻度值为VFS,转换位数为N。
分辨率为1/2NVFS当模拟电压低与此值时,ADC不予响应。
转换时间:
是指ADC完成一次转换所需时间,既从启动信号开始到转换结束并得到稳定的数字输出量所需时间,通常us级。
2选择芯片8255A218255A的作用本实验利用8255A将模拟量转换后的数字量传送到CPU。
此外,8255采用查询工作方式控制ADC0809工作。
8086通过8255向报警系统(扬声器、发光二极管)以及七段LED显示器发送控制信号。
228255A的功能分析8255A是可编程并行接口,可以根据外界条件(I/O设备需要的信号线和它能提供的状态线)来使其构成多种接口电路。
8255A内部有3个数据端口,即A口、B口、C口。
口有三种工作方式:
即方式、方式和方式,而口只能工作在方式或方式下,而口通常作为联络信号使用。
本实验将控制字设为90H,初始化8255,使得A口为二进制逻辑开关输入,B口、C口为输出。
在三种工作方式中,本设计只使用了方式0,即方式0是基本的输入/输出方式,在这种方式下,三个端口都可以由程序规定为输入/出方式,但是不能既作为输入又作为输出,也没有提供固定的联络信号。
C口分为两个4位-高4位和低4位,可以分别设置为输入或输出方式。
在此设计中PC6,PC7作为控制端分别接发光二极管和扬声器。
238255A的技术参数8255A的引脚信号1)与外设相连的PA7PA0:
A口数据信号线。
PB7PB0:
B口数据信号线。
PC7PC0:
C口数据信号线。
2)与CPU相连的RESET:
复位信号。
当此信号来时,所有寄存器都被清除。
同时三个数据端口被自动置为输入端口。
D7D0:
它们是8255A的数据线和系统总线相连。
CS:
片选信号。
在系统中,一般根据全部接口芯片来分配若于低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。
只有当有效时,读信号写才对8255进行读写。
RD:
读信号。
当此信号有效时,CPU可从8255A中读取数据。
WR:
写信号。
当此信号有效时,CPU可向8255A中写入数据。
A1、A0:
端口选择信号。
8255A内部有3个数据端口和1个控制端口,共4个端口。
规定:
A1、A0为00时,选中A端口;A1、A0为01时,选中B端口;A1、A0为10时,选中C端口;A1、A0为11时,选中控制口。
参数名称符号测试条件规范值最大最小输入低电平电压VIL0.8v-0.5v输入高电平电压VIHVcc2.0v输入低电平电压VOLIOL=2.5mA0.45v输入低电平电压VOLIOL=1.7mA0.45v输入高电平电压VOHIOH=-400A2.4v输入高电平电压VOHIOH=-200A2.4v达林顿驱动电流IDARREXT=750VEXT=1.5v-0.4mA1.0mA电源电流ICC120mA输入负载电流IILI=VCC0v+10mA-10mA输出浮动电流IOFLVOUT=VCco0v+10mA-10mA图28255A的基本参数表248255A的方式控制字8255A的控制字有两种:
一种是方式选择控制字,另一种是C口按位置位/复位控制字方式选择控制字图38255A的方式控制字表C口按位置位/复位控制字图48255A的置位/控制字表3七段LED显示器31LED在本设计中的作用LED为发光二极管(Light-EmittingDiode),在本设计中采用7段数字发光二级管,做为终端显示,主要是作为显示采样电压值以及界限值。
32LED功能分析物理构造:
LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。
工作原理:
当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。
数字成像:
将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,便可显示某一数码或字符。
7段代码的个位(bit0-bit7)用作a-g和DP的输入。
LED数码管及其框图如下:
图5LED数码管及其框图字型码表示图如下:
dpgfedcba显示数码数值0011111103fh000001101O6H0101101125Bh01001111347H01100110466H0110110156dH0111110167dH00000111707H0111111187fH0110111196fh图6LED字型码表示图1说明:
表中个值对应7段LED若相应值为1则LED中该段亮,否则不亮,通过各段真值表的值可以控制显示数字。
此外,由于本设计中的数值显示中存在小数位,因此还应将字型码中的DP位置1。
dpgfedcba显示数码数值101111110.0BFH100001101.86H110110112.0DBH110011113.0CFH111001104.0E6H111011015.0EDH111111016.0FDH100001117.87H111111118.0FFH111011119.0EFH图7LED字型码表示图233LED的技术参数PCWIfVrIrIfP对应型号散射颜色BJ235-2702551.52.5200SEL-10红色BJ14415291004050.52.5565绿色BJ13415291004050.52.5585蓝色图8LED技术参数4.发光二极管41发光二极管在本设计中的作用当采集电压值大于界限值时,本设计利用二极管进行发光报警。
42发光二极管功能分析当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。
43发光二极管技术参数发光二极管的压降一般为1.52.0V,其工作电流一般取1020mA为宜。
5蜂鸣器51蜂鸣器在本设计中的作用:
在本设计中,蜂鸣器用于电压值越界时声音报警。
52蜂鸣器的功能分析:
扬声器是将电能转化成声能,并将声能辐射到空气中去的一种电声转换器件。
53蜂鸣器的技术参数:
它一般包括灵敏度、频率响应、额定功率、额定阻抗、指向性、失真、音质听感评价等。
本实验电压范围为05V。
6.二进制逻辑开关6.1二进制逻辑开关在本设计中的作用二进制逻辑开关在本设计中作为输入端口。
用户可以通过二进制逻辑开关自行设计电压的界限值。
输入0时,开关闭合,输入1时,开关断开。
6.2二进制逻辑开关功能分析如图9所示,开关未合时,与5V电压相连,输入1,当合上之后,开关就将A口接地,也就输入为0,4位开关可以置015的数。
图9逻辑开关结构图6.3逻辑开关及其编码开关高电平:
+5V、低电平:
0VBCD编码显示数字BCD编码显示数字00000100080001110019001021010A001131011B010041100C010151101D011061110E011171111F图10逻辑开关编码7硬件总逻辑图及其说明图11硬件总逻辑图18086的A1,A2,A3分别与ADC0809的ADDA,ADDB,ADDC相连,以确定8路模拟量输入通过(IN0IN7)中的哪一路通道进行A/D转换,此次设计中设定ADC0809的IN0与模拟电路进行相连,以实现对此模拟电路进行检测。
28255A的PA口同开关电路S1S8相连,即从PA口读入界限值。
38255A的PB口同G5区GP42相连,即是连接LED显示器的段选。
48255A的PC0PC3连接LED显示器的位选PC6、PC7分别接LCD、扬声器,当转换结束,可根据比较结果,通过8255控制PC6、PC7,从而控制报警系统。
58255A的片选端CS接地址译码器。
68086的WR(非),RD(非)和RESET与8255A的相对应的WR(非),RD(非)和RESET相连,通过控制信号CS(非),A1,A0以及RD(非),WR(非)来实现对数据口(PA,PC)和控制寄存器进行读写操作。
三、控制程序设计1控制程序设计思路说明:
本设计中,由于采样的电压值为模拟信号,必须通过ADC0809芯片转换成数字信号,并将其保存在AH寄存器中。
然后通过逻辑开关自行设定一界限值存入到AL中。
比较两寄存器中值的大小,并通过8255控制报警系统,实现越界报警。
首先初始化8255,令A口为输入口,B、C口为输出口。
C口清零,防止刚开始实验就报警。
启动ADC0809直至转换过程全部结束,把转换后的值存入到AH中,以用之后的比较。
通过8255对七段LED显示器位选、段选,将转换值以十进制形式输出。
作为输入端口的A口连接二进制逻辑开关。
用户可以通过操作开关实现手动输入界限值。
界限值将用来与采样电压值进行比较,并通过LED以十进制形式显示。
当采样电压值大于或等于界限值,系统将产生声光报警。
反之,则只是在LED显示,不产生报警。
在报警设计方面,本设计通过二极管实现光学报警,通过PC扬声器实现声音报警。
由于二极管、扬声器都是低电平有效。
当采样电压值大于或等于界限值,则将PC6、PC7置为0,系统产生报警。
随后,通过延时子程序控制报警时间。
超过一定时间,系统将解除报警2控制程序流程图:
3控制程序:
.MODELTINYPCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA&32BITRAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;厂商ID号Device_IDEQU8376;设备ID号.STACK100.DATAIO_Bit8_BaseAddressDW?
msg0DBBIOS不支持访问PCI$msg1DB找不到StarPCI9052板卡$msg2DB读8位I/O空间基地址时出错$COM_ADDDW00F3H;控制口偏移量PA_ADDDW00F0H;PA口偏移量PB_ADDDW00F1H;PB口偏移量PC_ADDDW00F2H;PC口偏移量PD_ADDDW00E0H;AD口偏移量TAB_BDB0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH;(0.0-9.0)TAB_ADB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;代码段(0-9).CODESTART:
MOVAX,DATAMOVDS,AXNOPCALLInitPCICALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址;movdx,COM_ADDmoval,90h;初始化8255,PA作为输入端,PB,PC输出,outdx,al;方式选择控制字送8255A控制端口BEGIN:
moval,0FFh;报警是低电平有效,一开全部致高电平movdx,PC_ADD;C口清零,防止刚开始实验就报警outdx,alSTEP1:
MOVAL,00H;ADC0809的控制字movdx,PD_ADD;启动ADC0809开始转换outdx,almovcx,200hLAY1:
inal,dx;等待0809转换完毕loopLAY1movdx,PA_ADD;PA口偏移量inal,dx;读开关界限值movcl,al;逻辑开关界限值存入clmovdx,PD_ADD;从0809中采集电压inal,dx;电压采集到almovCH,al;电压值存入CHmovbp,0FFH;控制报警时间的callDISPjmpSTEP1DISPPROCNEARMOVAL,CL;取开关输入的值shral,4;逻辑右移四位,高位补零;提取出高四位,即对应十进制的个位movbx,offsetTAB_B;将TABX的偏移量存入BXxlatmovdx,PB_ADD;从8255A的B口读取数字量,段选outdx,al;显示十进制界限值的个位值movdx,PC_ADD;PC口位选MOVBL,0AH;0A=10MOVBH,33H;33H=51d.(利用255/51=5将十六进制转化为十进制)MOVAL,CL;cl界限值ANDAL,0FH;将开关输入值的高四位置零,提取低四位,即小数部分的值MULBHDIVBL;以上两步实现将十进制小数部分转化为十六进制(商存在AL,余数在AH中)PUSHAX;AL,AH入栈,供下次使用MOVAL,CLshral,4;逻辑右移,高位补零mulBH;个位数转化为十六进制数MOVBL,ALPOPAXADDAL,BL;AL为小数部分十六进制数,BL为整数部分十六进制数MOVAH,CH;将0809转化值放到AH中cmpAh,Al;与界限值相比较JNBDIS_A1;AH大于等于ALMOVAL,11111101BJMPDIS_B1DIS_A1:
moval,00111101B;七段LED的位选,实现同时报警显示DIS_B1:
outdx,al;只显示不报警movah,0FFhJMPSTEP2DISP_2:
MOVAL,CLshral,4movbx,offsetTAB_B;将TABX的偏移量存入BXxlatmovdx,PB_ADD;从8255A的B口读取数字量,段选outdx,almovdx,PC_ADD;PC口位选MOVAL,11111101Boutdx,al;显示movah,0FFhSTEP2:
decah;闪光灯延时子程序(为了让之前的那位显示若干时间)cmpah,0hjneSTEP2MOVAL,CLANDAL,0FH;高四位清零,保留低四位movbx,offsetTAB_Axlatmovdx,PB_ADDoutdx,almovdx,PC_ADDMOVAL,11111110B;最后一位显示,控制位选outdx,al;显示movah,0FFhSTEP3:
decah;闪光灯延时子程序cmpah,0hjneSTEP3MOVBL,33Hmoval,CH;将0809采集的电压值放到AL中DIVBL;转化为十进制PUSHAXMOVAL,ALmovbx,offsetTAB_B;将TABX的偏移量存入BXxlatmovdx,PB_ADD;从8255A的B口读取数字量,段选outdx,almovdx,PC_ADD;PC口位选MOVAL,11011111Boutdx,al;显示电压值的整数位movah,0FFhSTEP4:
decah;闪光灯延时子程序cmpah,0hjneSTEP4MOVBL,0AHMOVBH,33HPOPAXmovDL,Ah;将余数放到DL中XORAX,AXMOVAL,DLMULBLDIVBHMOVDL,AL;保留处理后的整数XORAX,AXMOVAL,DLmovbx,offsetTAB_Axlatmovdx,PB_ADDoutdx,al;段选movdx,PC_ADDMOVAL,11101111Boutdx,al;位选显示movah,0FFhSTEP5:
decah;闪光灯延时子程序cmpah,0hjneSTEP5decbp;利用bp计数,当bp80h时只显示,不报警,实现报警的间隔cmpbp,80hJNBDISP_YCMPBP,00HJNEDISP_XRETDISPENDPDISP_Y:
JMPDISPDISP_X:
JMPDISP_2;InitPCIPROCNEARMOVAH,00HMOVAL,03HINT10H;清屏MOVAH,0B1HMOVAL,01HINT1AHCMPAH,0JZInitPCI2LEADX,msg0InitPCI1:
MOVAH,09HINT21HJMPExitInitPCI2:
MOVAH,0B1HMOVAL,02HMOVCX,Device_IDMOVDX,Vendor_IDMOVSI,0INT1AHJNCInitPCI3;是否存在StarPCI9052板卡LEADX,msg1JMPInitPCI1InitPCI3:
MOVDI,PCIBAR3MOVAH,0B1HMOVAL,09HINT1AH;读取该卡PCI9052基地址JNCInitPCI4LEADX,msg2JMPInitPCI1InitPCI4:
ANDCX,0FFFCHMOVIO_Bit8_BaseAddress,CXRETInitPCIENDPModifyAddressPROCNEARADDCOM_ADD,CXADDPA_ADD,CXADDPB_ADD,CXADDPC_ADD,CXADDPD_ADD,CXRETRETModifyAddressENDPExit:
MOVAH,4CHINT21HENDSTART四、上机调试过程1硬件调试本设计中用到硬件器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 技术