ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:247.52KB ,
资源ID:30443375      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30443375.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课程设计电压报警系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课程设计电压报警系统.docx

1、微机原理课程设计电压报警系统重庆科技学院课程设计报告院(系):_电子信息工程学院_班 级:学生姓名:学号:设计地点(单位)_ _设计题目:_电压报警系统_ _ 完成日期:2010 年 7月 16日指导教师评语:_ _ 成绩(五级记分制):_ _ 教师签名:_课程设计任务书设计题目:电压报警系统设计学生姓名课程名称微机原理及接口技术课程设计专业班级地 点起止时间7月5日7月16日设计内容及要求设计内容: 采集实验箱提供的05V的电压; 当输入电压在额定值以内,用数码管显示实际电压值;当输入电压超过额定值3V,数码管显示“E.O”,并发出报警音,并将此电压限制到额定值后输出。设计要求:(1)控制系

2、统硬件用8086系统构成:CPU 8086,定时器/计数器芯片,并行接口芯片,4位7段数码管单元,模数转换单元,蜂鸣器。(2)设计控制系统应用软件。(3)系统功能:显示电压,报警,修正电压等功能。设计参数(1)以十进制形式显示电压值并保留小数位1位;(2)用硬件实现定时功能;(3)报告正文字数约4000字以上(不包含程序清单),内容主要有总体设计方案,工作和组成原理(框图)或设计说明,采用的技术路线,接口电路设计,程序设计(程序框图和程序清单及注释),对设计中所存在的问题和不足进行分析和总结,提出解决的方法、措施、建议。进度要求7月5日-7月6日明确设计任务,学习相关知识;7月7日-7月9日查

3、阅相关资料,进行基础练习;7月8日-7月14日根据题目要求,进行设计和实现;7月15日-7月16日撰写课程设计报告,进行答辩。参考资料1 赵树升,赵雪梅.现代微机原理及接口技术M,北京:清华大学出版社,2008年8月2戴梅萼.微型计算机技术及应用从16位到32位 (第2版) M,北京:清华大学出版社,2003年2月3 西安唐都科教仪器公司.32位微机原理及接口技术实验教程.2005年4 西安唐都科教仪器公司.32位微机原理及接口技术用户手册.2005年其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用

4、的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:年 月 日摘 要当代计算机是微电子学及计算数学相结合的产物。微电子学的基本元件及其集成电路构成了它的硬件基础;计算数学的方法及数据结构则构成了计算机的软件基础。世界上第一台计算机于1946年在美国宾夕法尼亚大学诞生,自1981年IBM公司推出IBMPC后,计算机的发展进入了微机时代。微型计算机的迅速普及,使得计算机广泛运用于工业、农业、科学技术和社会生活的各个领域,极大的改变了生产和生活的方式,并成为推动社会发展的巨大生产力。数据采集系统是计算机在工业控制中最为普遍的应用系统。它的任务是采集生产过程中的工况参数并经过A/D转换

5、器送入内存,CPU将对这些参数,数据进行分析、运算和处理。如数字显示、越界报警等功能。若配上输出通道就可以组成计算机控制系统。此设计是一个电压报警系统的模拟实验,采集箱提供05V的电压,当输入电压在额定值以内,用数码管显示实际的电压值;当输入的电压超过额定值3V,数码管显示“E.O”,并发出警告音,并将电压限制到额定的值后输出。该系统具有显示电压,报警,修正电压的功能。关键词:接口 A/D转换 修正电压 发声警告1 系统需求分析1.1 设计内容电压报警系统是一个对超过额定电压就会产生蜂鸣效果,进行报警的系统。它主要是通过采集实验箱提供的05V的电压; 当输入电压在额定值以内,用数码管显示实际电

6、压值;当输入电压超过额定值3V,数码管显示“E.O”,并发出报警音,并将此电压限制到额定值后输出。1.2 设计要求(1)控制系统硬件用8086系统构成:CPU 8086,定时器/计数器芯片,并行接口芯片,4位7 段数码管单元,模数转换单元,蜂鸣器。(2)设计控制系统应用软件。(3)系统功能:显示电压,报警,修正电压等功能。1.3 芯片选择在本系统中,主要采用的芯片有CPU8086、8254可编程定时/计数器芯片、8255并行接口芯片、A/D转换接口芯片ADC0809。CPU8086主要是电压报警系统的核心芯片,协调着8254芯片, 8255芯片,ADC0809芯片相互间的工作。 8254是可编

7、程定时/计数器芯片,用来控制蜂鸣器。8255是并行接口芯片,用来连接数码管显示单元和8254 ADC0809是A/D转换单元,用来模拟电压,将模拟信号转换为数字信号。2 芯片及数码管介绍 在整个电压报警系统中,所用到的元器件有了CPU8086、8254可编程定时/计数器、8255并行接口芯片、A/D转换接口芯片、数码管以及蜂鸣器。2.1 CPU 8086微处理器CPU是微机的核心芯片,是整个系统运算和指挥控制中心。在电压报警系统中用到的CPU是字长为16位的,一次能处理16位数据的CPU 8086。CPU 8086拥有运算器,控制器和寄存器组三大主要部件。其功能部件包括指令执行部件EU和总线部

8、件BIU,其寄存器结构由八个通用寄存器,四个段寄存器和二个控制寄存器组成。在电压报警系统中,用到了XD0-XD7地址总线,XIOR,XIOW读写信号引脚,IOY0,IOY1,IOY2三个端口号,用来控制8255并行接口芯片,8254可编程定时/计数器芯片,A/D转换接口芯片。2.2 8254可编程定时/计数器芯片8254是Intel公司生产的可编程间隔定时器。它具有以下基本功能:1、有三个独立的16位计数器;2、每个计数器可按二进制或十进制(BCD)计数;3、每个计数器可编程工作于六种不同的工作方式;4、8254每个计数器允许的最高计数频率为10MHz;5、8254有读回命令,可以读出状态寄存

9、器的内容;6、计数脉冲可以是有规律的时钟信号,也可以是随机信号。8254的工作方式如下述:1、方式0:计数到0结束输出正跃变信号方式。2、方式1:硬件可重触发单稳方式。3、方式2:频率发生器方式。4、方式3:方波发生器。5、方式4:软件触发选通方式。6、方式5:硬件触发选通方式。 8254的控制字有两个:一个是用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标志位来区分。控制字格式和读回控制字格式分别如图2-1和如图2-2。当读回控制字的D4位为0时,由该读回控制字D1-D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。状态

10、字格式如图2-2所示。图2-1 8254方式控制字图2-2 8254读出控制字图2-3 8254状态字格式在电压报警系统中,8254采用的是定时器0,方式3来进行控制的,输入时钟频率为00502H,门控信号输入引脚GATE0及8255的PA0和PA1相连,OUT0及蜂鸣器相连,当门控信号接收到从8255的PA0和PA1传来的高电平,则蜂鸣器会发出报警声,否则蜂鸣器停止工作。2.3 8255并口芯片8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A,B,C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0,方式1,方式2。方式0是基本输入输出方式,方式

11、1是选通输入输出方式,方式2是双向选通工作方式。其工作方式控制字如图2-1。在电压报警系统中,8255起到是一个桥梁作用,在本系统中,8255采用方式0基本输入输出方式,A口,B口,C口均为输出。8255的D0-D7连接系统总线的XD0-XD7,RD,WD,CS分别连接系统总线的XIOR,XIOW,IOY0。8255的A口低两位PA0,PA1控制8254可编程定时/计数器芯片。8255的B口的PB0-PB7和C口的低四位PC0-PC3来控制数码的显示。图2-4 8255工作方式控制字2.4 A/D转换接口芯片 ADC0809包括一个8位的逐次逼近型的ADC部分,并提供一个8通道的模拟多路开关和

12、联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。在电压报警系统中,ADC08089的CS片选信号连接系统总线的IOY2端口,CLK连接系统总线CLK,WR,RD分别连接系统总线的XIOW和XIOR,它将模拟信号转换为数字信号存储在AL中,其输出范围为0-255。2.5 数码管显示单元本系统中所用到的数码管显示单元是由4个7段数码管组成,其每个数码管结构图如图2-5所示。图2-5 数码管结构图 数码管的显示数字的原理其实是根据每个数码管发光来组成一个数字,在本系中给数码管给以低电平,则数码管发光,否则数码管熄灭。其具体数字显示

13、编码表表2-1如下:dpgfedcba不带小数点带小数点00/101111113FHBFH10/1000011006H86H20/110110115BHDBH30/110011114FHCFH40/1110011066HE6H50/111011016DHEDH60/111111017DHFDH70/1000011107H87H80/111111117FHFFH90/111011116FHEFHE0/1111100179HF9H表2-1 数码管数字显示编码表3 硬件连线3.1 8254可编程定时/计数器芯片接线图在本系统中,8254门控信号输入引脚GATE0及8255的PA0和PA1相连,时钟输

14、入信号CLK0及系统总线的CLK相连,OUT0及蜂鸣器相连,当门控信号接收到从8255的PA0和PA1传来的高电平,则蜂鸣器会发出报警声,否则蜂鸣器停止工作,具体接线图如下:图3-1 8254可编程定时/计数器芯片接线图3.28255并行接口芯片接线图8255的D0-D7连接系统总线的XD0-XD7,RD,WD,CS分别连接系统总线的XIOR,XIOW,IOY0。8255的A口低两位PA0,PA1控制8254可编程定时/计数器芯片。8255的B口的PB0-PB7和C口的低四位PC0-PC3来控制数码的显示。8255除了连接系统总线之外,还要连接数码管,数码管显示引脚是A,B,C,D,E,F,G

15、,DP分别连接8255的PB0-PB7,数码管选择引脚X1,X2,X3,X4分别连接8255的PC0-PC4,具体接线图如下:图3-2 8255并行接口芯片接线图3.3 A/D转换接口芯片接线图在电压报警系统中,ADC08089的CS片选信号连接系统总线的IOY2端口,CLK连接系统总线CLK,WR,RD分别连接系统总线的XIOW和XIOR,具体接线图如下:图3-3 A/D转换接口芯片接线图3.4 数码管连线图数码管显示引脚是A,B,C,D,E,F,G,DP分别连接8255的PB0-PB7,数码管选择引脚X1,X2,X3,X4分别连接8255的PC0-PC4,具体接线图如下图3-4 数码管接线

16、图4 软件实现4.1 模块流程图4.1.1主程序流程图图4-1 主程序流程图4.1.2 电压转换模块流程图图4-2 电压转换程序流程图4.1.3 电压显示模块流程图图4-3 电压显示模块流程图4.1.4 电压报警模块流程图图4-4 电压报警模块流程图4.2 代码设计4.2.1 主程序代码主程序主要由电压转换模块和电压报警模块组成,首先给8255写方式控制字,然后在初始化8255,再启动A/D转换,将转换后的值读入AL中,最后再在电压转换模块中处理转换后的数据,然后检测数据的大小看是否需要报警,具体代码如下:START: MOV AX,DATA ;初始化寄存器 MOV DS,AX MOV DX,

17、MY8255_MODE ;8255初始化 MOV AL,80H ;工作方式为0,A口,B口都为输出 OUT DX,AL MOV DX,OFFSET STR0 MOV AH,09H ;显示STR0的内容 INT 21HSTART1: MOV DX,ADC0809 ;启动A/D转换 MOV AL,0 OUT DX,AL ;通过ADC0809输出 MOV CL,AL ;将A/D转换后的值送到CL当中去 CALL DELAY ;软件延时 CALL DELAY CALL DELAY MOV DX,ADC0809 ;读出转换结果 IN AL,DX MOV CL,AL CALL DELAY ;软件延时 CA

18、LL TRANSFORM ;调用电压转换 CALL DELAY MOV DX,MY8255_A ;让报警器停止工作 MOV AL,00H OUT DX,AL CALL ALARM ;调用电压报警 CALL DELAY MOV AH,01H INT 16H ;判断是否有按键按下 JNE QUIT JMP START14.2.2 电压转换模块代码在电压转换模块中,主要是对A/D转换后的数据进行处理,A/D转换后的数据范围是0-255,但是电压要求范围是0-5V,所以这里需要对转换后的数据进行缩小,缩小后,还需要精确到小数点,于是这里需要将除后的余数保留,并且将余数扩大10倍,在一次除以33H,则可

19、以获得小数点后面的数字,具体代码如下:TRANSFORM PROC ;电压转换的子程序CHANGE: MOV AL,CL ;将刚才送到CL的AD转换值有送到AL当中去 MOV BL,33H ;将0-255的值转换为0-5V的电压值 DIV BL MOV CL,AL ;将除的商送到CL中去 MOV AL,AH ;将除后的余数送到AL中去 MOV AH,00H MOV BL,10 MUL BL ;对余数扩大10倍 MOV BL,33H ;再除以刚才的除数 DIV BL MOV CH,AL ;将获得商送到CH中去 RETTRANSFORM ENDP4.2.3 数码管显示模块代码8255并行接口芯片连

20、接数码管,用高低电平来控制数码管的显示,具体代码如下:DISPLAY0 PROC ;数码管显示子程序SHOW: MOV DX,MY8255_C ;写C口 MOV AL,0111B ;让第一个数码管亮 OUT DX,AL MOV AL,CL MOV BX,offset DTABLE1 ;通过偏移地址寻地址 XLAT MOV DX,MY8255_B ;读B口 OUT DX,AL CALL DALLY MOV DX,MY8255_C ;写C口 MOV AL,1011B ;让第二个数码管亮 OUT DX,AL MOV AL,CH MOV BX,offset DTABLE0 XLAT MOV DX,MY

21、8255_B ;读B口 OUT DX,AL CALL DALLY RETDISPLAY0 ENDP ;结束子程序4.2.4 电压报警模块代码 电压报警模块中,主要是对电压值的大小进行判断,若大于3.0V,则蜂鸣器工作,发出一定频率的声音,并在数码管显示E.0,若小于3.0V,则显示当前电压值,具体代码如下:ALARM PROC ;调用报警子程序 CMP CL,3 ;判断整数部分是否小于3 JB SHOW2 ;小于3则跳转到SHOW2 CMP CL,3 ;断整数部分是否等于3 JZ SHOW3 ;等于3则跳转到SHOW3 JMP SHOW1 ;否则跳转到SHOW1SHOW3: CMP CH,0

22、;判断小数部分是否等于3 JZ SHOW2 ;等于则跳转到SHOW2 JMP SHOW1 ;否则跳转到SHOW1SHOW1: MOV DX,OFFSET STR1 MOV AH,09H ;显示STR1的内容 INT 21H ;报警 CALL XIANG CALL DELAY MOV AH,01H INT 16H ;判断是否有按键按下 JNE QUIT JMP START1 SHOW2: MOV DX,OFFSET STR2 MOV AH,09H ;显示STR2的内容,不报警 INT 21H CALL DISPLAY0 ;调用电压显示 MOV AH,01H INT 16H ;判断是否有按键按下

23、JNE QUIT JMP START1 ALARM ENDP总 结本系统是一个电压报警系统,是对超过额定电压值3.0后进行报警,并显示E.O,若没有超过则显示当前电压值。在课程设计的开始,我在试验箱上模拟出该功能的实现,最开始只要一打开电源开关就会产生刺耳的蜂鸣音。要么就是数码管显示不出应该有的数据,而是乱码,或者位数显示不全,这让我非常着急。本系统有需要改进的地方,在报警的时候,数码管上的E会随着报警声的频率变化而不断闪烁。在整个电压报警系统设计过程中,如何显示一个小数。如何对额定电压值3.0V的判断。本系统还可以如何设计提高系统总线的利用率问题,这样大大的提高了系统的运行效率。要完善本系统

24、的设计需要开发者有一定的硬件知识和过硬的编程基础。致 谢本次课程设计几乎困难重重,对汇编语言的不熟悉导致分析问题不到位,影响了课程设计的进度。在本次课程设计指导老师很细心的给同学们以启发,而不只是解决问题本身。同时感谢学校给我们提供了丰富的教育资源,先进的实验设备。这给我们的学习提供了丰富的物资条件。同时要表达对同学的谢意,他们的细心讲解对我的课程设计帮助很大。参考文献1 赵树升,赵雪梅.现代微机原理及接口技术M,北京:清华大学出版社,2008年8月2戴梅萼.微型计算机技术及应用从16位到32位 (第2版) M,北京:清华大学出版社,2003年2月3 西安唐都科教仪器公司.32位微机原理及接口

25、技术实验教程.2005年4 西安唐都科教仪器公司.32位微机原理及接口技术用户手册.2005年附 录电压报警系统程序代码:;* 8254芯片端口资源* IOY1 EQU 0DA40H MY8254_C0 EQU IOY1+00H*4MY8254_C1 EQU IOY1+01H*4MY8254_C2 EQU IOY1+02H*4MY8254_MODE EQU IOY1+03H*4;* 8255a芯片端口资源*IOY0 EQU 0DA00H MY8255_A EQU IOY0+00H*4MY8255_B EQU IOY0+01H*4MY8255_C EQU IOY0+02H*4MY8255_MOD

26、E EQU IOY0+03H*4;* ADC0809芯片端口资源* IOY2 EQU 0DA80H ;0809片选地址ADC0809 EQU IOY2+00HDATA SEGMENTDTABLE0 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;键值表,09对应的7段数码管的段位值,不带小数点DTABLE1 DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH ;键值表,09对应的7段数码管的段位值,带小数点STR0 DB *Warning System Start!* $STR1 DB STR1 Warn

27、ing! $STR2 DB STR2 Normal! $DATA ENDSSTACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA ;初始化寄存器 MOV DS,AX MOV DX,MY8255_MODE ;8255初始化 MOV AL,80H ;工作方式为0,A口,B口都为输出 OUT DX,AL MOV DX,OFFSET STR0 MOV AH,09H ;显示STR0的内容 INT 21HSTART1: MOV DX,ADC0809 ;启动AD转换

28、MOV AL,0 OUT DX,AL ;通过ADC0809输出 MOV CL,AL ;将AD转换后的值送到CL当中去 CALL DELAY ;软件延时 CALL DELAY CALL DELAY MOV DX,ADC0809 ;读出转换结果 IN AL,DX MOV CL,AL CALL DELAY ;软件延时 CALL TRANSFORM ;调用电压转换 CALL DELAY MOV DX,MY8255_A ;让报警器停止工作 MOV AL,00H OUT DX,AL CALL ALARM ;调用电压报警 CALL DELAY MOV AH,01H INT 16H ;判断是否有按键按下 JNE QUIT JMP START1QUIT: MOV AH,4CH ;主程序结束 INT 21HTRANSFORM PROC ;转换为电压的子程序CHANGE: MOV AL,CL ;将刚才送到CL的AD转换值有送到AL当中去

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1