[毕业论文]声光警报器的设计与实现.doc

上传人:仙人指路1688 文档编号:3036034 上传时间:2023-03-09 格式:DOC 页数:28 大小:1.66MB
返回 下载 相关 举报
[毕业论文]声光警报器的设计与实现.doc_第1页
第1页 / 共28页
[毕业论文]声光警报器的设计与实现.doc_第2页
第2页 / 共28页
[毕业论文]声光警报器的设计与实现.doc_第3页
第3页 / 共28页
[毕业论文]声光警报器的设计与实现.doc_第4页
第4页 / 共28页
[毕业论文]声光警报器的设计与实现.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《[毕业论文]声光警报器的设计与实现.doc》由会员分享,可在线阅读,更多相关《[毕业论文]声光警报器的设计与实现.doc(28页珍藏版)》请在三一办公上搜索。

1、学 年 论 文题 目 声光控报警器 姓 名 所在学院 指导教师 日 期 2011年月日 目录前言1设计任务要求及方案论证选择2进度安排3第三章声光报警器的设计4系统描述43.1.2 课程设计的目的5第四章问题域描述54.1课程设计内容9第五章设计要求125.1设计思路12第六章使用平台说明15硬件平台19软件平台22第七章设计中所用器件的详细说明227.1 8255的工作原理238253的工作原理238259的工作原理23第八章.详细的设计过程248.1基于查询的设计25第九章基于中断的设计269.1 硬件连线图如下第十章 调试结果810.1 程序运行结果2第十一章. 程序调试过程中遇到的问题

2、30 第十三章.计心得 谢词3参献33声光警报器的设计与实现题目:一声光报警器的设计 摘要近年来,随着改革开放的深入发展,电子电器的飞速发展,人们的生活水平有了很大提高。各种高档家电产品和贵重物品为许多家庭所拥有。然而一些不法分子也是越来越多。这点就是看到了大部分人防盗意识还不够强。造成偷盗现象屡见不鲜。因此,越来越多的居民家庭对财产安全问题十分担忧。报警器大多数采用国外的先进技术,其功能也非常先进。类型也十分的多种多样,有红外线报警器、有害气体控制报警器、多路触摸报警器、其中也包括声光报警器,也即是本文将介绍的产品。同时声光报警器作为报警控制系统中一个重要部件,越来越多的被用户关注。 一目的

3、:熟悉可编程并行接口芯片8255的使用,学习开关、扬声器、LED等I/O设备的控制方法,并进一步掌握简单的微机接口应用系统的设计。二. 内容: 设计一个声光报警器的硬件电路和控制程序。一旦按下SW3按钮开关,发光二级管按规律闪烁,同时扬声器发出声音;当按下SW2按钮开关,发光二级管停止闪烁,声音停止。硬件设备包括一台微机、一个MIFID微机实验箱、插线若干。控制程序采用Intel8088宏汇编语言编写。三要求: 1针对设计内容,提出两种设计方案,要求分别采用查询方式和中断方式接受SW3的开关信号。(采用中断方式时,使用IRQ10接受中断信号。) 2针对每种设计方案进行硬件设计和软件设计:画出每

4、种设计方案的硬件连接图;并按照硬件连接设计相应的控制程序。 3在MIFID微机实验箱上调试,并通过验收。 4撰写课程设计报告,报告中应该包括以下内容:设计中使用的关键技术和方法,设计方案说明(包括硬件设计和软件设计),调试及评估,遇到的问题及思考以及改进的设想。四进度安排:序号内容所用时间1整体方案设计1天2接口电路连线 / 编写程序2天3软硬件调试1天4撰写课程设计报告1天合计5天 第三章声光报警器的设计:3.1.1 系统描述:3.1.2 课程设计的目的熟悉可编程并行接口芯片8255的使用,学习开关、扬声器、LED等I/O设备的控制方法,并进一步掌握简单的微机接口应用系统的设计。第四章问题域

5、描述:4.1课程设计内容:设计一个声光报警器的硬件电路和控制程序。一旦按下SW3按钮开关,发光二级管按规律闪烁,同时扬声器发出声音;当按下SW2按钮开关,发光二级管停止闪烁,声音停止。硬件设备包括一台微机、一个MIFID微机实验箱、插线若干。控制程序采用Intel8088宏汇编语言编写。第五章设计要求:针对设计内容,提出两种设计方案,要求分别采用查询方式和中断方式接受SW3的开关信号。(采用中断方式时,使用IRQ10接受中断信号。)针对每种设计方案进行硬件设计和软件设计:画出每种设计方案的硬件连接图;并按照硬件连接设计相应的控制程序。在MIFID微机实验箱上调试,并通过验收。撰写课程设计报告。

6、5.1设计思路:基于查询方式的设计声-光报警器模块板电路原理如下图所示。模块板上包括4种简单的I/O外设:扬声器、8个LED彩灯、8位DIP开关及按钮开关SW3。它们都是并行接口的对象,虽然功能单一,结构简单,但都必须通过接口电路才能进入微机系统,接受CPU的控制,发挥相应的作用。26芯并行口插座50芯扩展总线基于中断方式的设计引用1.19318MHz时钟信号输入给Intel8253通道2,通道2的输出信号OUT2接扬声器的音调。从Intel8255的A口向发光二极管输出相关信号,控制其闪烁。OE#端接地。置8255的C口的高四位输出,由PC6控制扬声器的门控信号,同时控制GATE2。编写程序

7、,针对上述要求,对实验箱中Intel8253(通道0端口地址为304h,A1A0作为片内寻址)、Intel8255(A口地址为300h, A1A0作为片内寻址)及PC机中的2片Intel8259(主片偶地址为20h,从片偶地址为a0h)进行配置,主程序通过对8253和8255的初始化、控制中断以及对各子程序的调用控制实现对发光二极管和扬声器的开关控制。第六章使用平台说明:6.1 硬件平台:本次课程设计的硬件设计连接在MFID微机实验平台上进行,所编写的汇编语言程序在与之相连的PC机上的汇编语言环境下进行编译连接运行。其总体布局如下图:本次实验主要用到了其中的8255,8253以及LED灯,SW

8、3,SW2键,IRQ10接口。:MASM for Windows 集成实验环境6.0。6.3 主要芯片的地址范围:本平台系统提供的I/O地址范围是300H30FH,目前已使用的I/O地址有:(1)8255A:300H303H(2)8253A:304H307H第七章设计中所用器件的详细说明:7.1 8255的工作原理:8255共有两个控制字,即工作方式控制字和相对C口进行置位或复位的控制字。 8255工作原理图如下:它包含数据端口A,B,C。每一个端口都是8位,都可以选择作为输入或输出,但功能上有着不同的特点:端口A:一个8位数据输出锁存和缓冲器;一个8位数据输入锁存器。端口B:一个8为数据输入

9、/输出、锁存/缓冲器;一个8位数据输入 缓冲器;端口C:一个8为数据输出锁存/缓冲器;一个8位数据输入缓冲器(输入没有锁存);通常端口A或B作为输入/输出的数据端口,而端口C作为控制或状态信息的端口,它在“方式”字的控制下,可以分成两个四位的端口。每个端口包含一个四位锁存器。它们分别与端口A和B配合使用,可用作为控制信号输出,或作为状态信号输入。8255有三种基本的工作方式:方式0:基本输入/输出;方式1:选通输入/输出;方式2:双向传送;8255的控制字格式如下:控制字端口地址:303h端口A的地址:300h端口B的地址:301h端口C的地址:302h7.2 8253的工作原理:对CLK信号

10、进行减1计数。首先,CPU将控制字写入控制寄存器,将计数初始值写入初值寄存器。计数从初值开始,在GATE控制下,每当CLK信号出现一次,计数值减1。当计数值减到0,从OUT端输出规定的信号。CLK信号出现时,计数器是否减1,由门控信号GATE控制 。功能如下:8253具有三个独立的16位计数器(0#2#通道);每个通道有6种工作方式;可以进行二进制或十进制计数,计数方式为减1计数。最高计数频率2.6MHZ内部结构图如下:包括三个计数器,以及一个控制字寄存器。三个计数器相互独立。每个计数器可以独立的选择05共6种工作方式。本次课程设计用到了计数器1设置为工作方式0,以及计数器2选择工作方式3。其

11、控制字格式如下:计数器0地址:304h计数器1地址:305h计数器2地址:306h控制字地址 :307h7.3 8259的工作原理:中断就是指CPU响应中断请求,暂停现行的主程序,转去执行中断服务子程序,完成中断事件处理后,返回断点继续执行主程序的过程。8259内部结构如下:8259A的具体中断请求,响应过程分步详述如下:8259A的一条或几条IRI信号线高电平有效表示请求中断,使IRR的DI位置位;8259A对这些请求进入进行分析,如果中断允许 则向CPU发出INT信号;CPU在允许可屏蔽中断状态时对INTR作出响应,产生中断响应周期;8259A收到第一个INTA 有效信号后,使最高优先权的

12、ISR位置位,对应的IRR位复位;8259A在第二个INTA有效时,把中断向量号送上数据总线,供CPU读取;利用向量号转至中断服务程序,直到执行IRET指令返回。与此同时,若8259A工作在自动结束方式在最后一个INTA时,发生中断的ISR相应位复位,8259A认为中断已完成。如果8259A工作在非自动中断结束方式,就等待CPU发中断结束命令,该命令使ISR复位。第八章.详细的设计过程8.1 基于查询的设计硬件连线图如下图所示:M区F区 PA0 PA7PC6PC2PC1L1L8Q区OE#74LS373控制(音调)T区GNDDSW3SW2排线接法如右图:J626芯并行口插座26芯并行口插座J5连

13、接线程序流程图8255初始化熄灭LED关闭SPKSW3按下?LED发光Call ledflashSPK发声(高)Call outspkLED全灭SPK发声(低)Call outspk熄灭LEDSW2按下?关闭SPKYNYN开始结束根据此流程图写的程序如下:data segment ;para public datamessage db press SW3 to start !,0ah,0dh ;系统提示 db if you want to quit, please switch SW2!,0ah,0dh,$ t dw 0 ;初始化延时变量为0 num dw 0 ;初始化数字变量为0 data7

14、 db 01h,03h,07h,0Fh,1Fh,3Fh,7Fh,0FFh ;显示灯首先只亮一个,然后逐渐增加到8个data endscode segment ;para public code assume cs:code,ds:data;ss:stack1,sl proc farstart: ;mov ax,stack1 ;mov ss,ax mov ax,data mov ds,ax mov ah,09h ;显示系统提示 mov dx,seg message mov ds,dx mov dx,offset message int 21h mov dx,303h ;初始化8255 mov a

15、l,10000011b out dx,al mov dx,300h ;LED全灭 mov al,0ffh out dx,al mov dx,303h ;关闭SPK,pc6控制喇叭 mov al,00001100b out dx,al wait1: mov dx,302h ;查SW3按下?pc2接收SW3的信号由于检测 in al,dx ;(PC2=0?) and al,04h jnz wait1 ;未按下,等待 begin: call ledflash ;已按下,调用LED发光子程 mov bx,2000 mov t,0ffffh ;控制声音时长 highson: call outspk ;调

16、用喇叭发声子程(高频) dec bx jnz highson mov dx,300h ;LED全灭 mov al,0ffh out dx,al mov bx,2000 mov t,0afh ;控制声音时长 lowson: call outspk ;调用喇叭发声子程(低频) dec bx jnz lowson call delay2 mov dx,302h in al,dx and al,02h ;SW2接pc1,检测通过pc1的值检测SW2是否按下 jz quit ;有SW2按下,退出 jmp begin ;SW2未键按下,继续 quit: mov dx,300h ;LED全灭,A口接LED显

17、示灯 mov al,0ffh out dx,al mov dx,303h ;关闭SPK mov al,0ch ;pc6控制喇叭开关 out dx,al mov ah,4ch int 21h ;返回DOSsl endpdelay1 proc ;延时子程1 push bx mov bx,tdl1: dec bx jnz dl1 pop bx retdelay1 endp delay2 proc ;延时子程2 push cx push bx mov cx,04ffhdl4: mov bx,0ffffhdl3: dec bx jnz dl3 dec cx jnz dl4 pop bx pop cx r

18、etdelay2 endp outspk proc ;喇叭发声子程 mov dx,303h ;从PC6输出方波 mov al,00001101b ;置PC6=1;打开8253 out dx,al mov dx,303h mov al,00001100b ;置PC6=0;关闭8253 out dx,al call delay1 retoutspk endpledflash proc ;LED发光子程序 mov si,offset data7 ;LED的点亮代码 ;add si,num next: mov al,si mov dx,300h ;从8255的A口输出LED点亮代码 out dx,al

19、 call delay2 inc si inc num cmp num,08h jne next mov num,00h retledflash endpcode ends end start第九章 基于中断的设计9.1 硬件连线图如下:M区F区 PA0 PA7PC6PC2PC3PC4L1L8Q区OE#74LS373控制(音调)T区GNDDSW3SW2IRQ10程序流程图如下:开始8255、8253初始化 保存原来的中断向量关中断 设置新的中断向量开中断中断服务子程序 IRQ10=1?按下SW2?程序结束 按照此程序流程图所写的代码如下:DATAS SEGMENT message db pre

20、ss SW3 to start !,0ah,0dh ;系统提示 db if you want to quit, please press SW2!,0ah,0dh,$ t dw 0 ;初始化延时变量为0 num dw 0 ;初始化数字变量为0 data7 db 81h,42h,24h,18h,81h,42h,24h,18h DATAS ENDSSTACKS SEGMENT dw 200 dup (?)STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,STACKS MOV SS,AX MOV AX,D

21、ATAS MOV DS,AX MOV AH,09H ;显示系统提示 MOV DX,seg message MOV DS,DX MOV DX,offset message int 21H mov al,0b6h ;8253初始化 mov dx,307h out dx,al ;写入初值 mov ax,0533H mov dx,306h out dx,al mov al,ah out dx,al MOV DX,303H ;初始化8255 MOV AL,83H OUT DX,AL MOV DX,300H ;LED全灭 MOV AL,00H OUT DX,AL MOV DX,303H ;关闭SPK MO

22、V AL,0CH OUT DX,AL MOV AL,72H ;获取原中断向量 MOV AH,35 INT 21H PUSH ES ;保存原中断向量 PUSH BX PUSH DS待添加的隐藏文字内容2 CLI ;关中断 MOV AX,SEG VOICELIGHT PUSH DS MOV DS,AX MOV DX,OFFSET VOICELIGHT MOV AL,72H ;设置新的中断向量 MOV AH,25H INT 21H POP DS STI ;开中断 IN AL,0A1H ;打开IRQ10 AND AL,0FBH OUT 0A1H,AL IN AL,21H ;打开IRQ2 AND AL,

23、0FBH OUT 21H,AL L1: mov dx,302h ;查SW2按下? in al,dx ;(PC3=0?) and al,08h ;按下,PC3=0,退出 JZ EXITNEXT0: PUSH CX MOV CX,0FFHLOOP1:LOOP LOOP1 POP CX IN AL,DX AND AL,04H JNZ L1 L2: mov dx,302h ;查SW2按下? in al,dx ;(PC3=0?) and al,08h ;按下,PC3=0,退出 JZ EXIT MOV DX,303H ;按下SW3,则PC41申请中断 MOV AL,09H OUT DX,AL PUSH C

24、X MOV CX,100WT: LOOP WT POP CX MOV DX,303H ;置PC4=0 MOV AL,08H OUT DX,AL JMP L2 EXIT: mov ax,4c00h int 21h VOICELIGHT PROC NEAR PUSH DS PUSH AX PUSH CX PUSH DXbegin: CALL ledflash ;已按下,调用LED发光子程 MOV BX,200 MOV t,0ffffh HISON: CALL outspk ;调用喇叭发声子程(高频) DEC BX JNZ hison MOV DX,300H ;LED全灭 MOV AL,00h OU

25、T DX,AL MOV BX,200 MOV t,0afh LOSON: CALL outspk ;调用喇叭发声子程(低频) DEC BX JNZ loson CALL delay2 MOV DX,302H ;查SW2按下? IN AL,DX ;(PC3=0?) AND AL,08H ;按下,PC3=0,退出 JZ quit JNZ begin ;无任意键按下,继续 quit: MOV DX,300H ;LED全灭 MOV AL,00H OUT DX,AL MOV DX,303H ;关闭SPK MOV AL,0CH OUT DX,AL mov ax,2572h ;恢复原中断向量 POP DX

26、POP DS INT 21H POP DS IN AL,0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL IN AL,21H ;屏蔽IRQ2 OR AL,04H OUT 21H,AL MOV AH,4CH INT 21H ;返回DOSVOICELIGHT ENDPdelay1 proc ;延时子程1 PUSH BX MOV BX,TDL1: DEC BX JNZ DL1 POP BX RETdelay1 endp delay2 proc ;延时子程2 PUSH CX PUSH BX MOV CX,04FFHDL4: MOV BX,0FFFFHDL3: DEC BX JNZ

27、 DL3 DEC CX JNZ DL4 POP BX POP CX RETdelay2 endp outspk PROC MOV DX,303H ;从PC6输出方波 MOV AL,0DH ;置PC6=1;打开8253 OUT DX,AL CALL DELAY1 MOV DX,303H MOV AL,0CH ;置PC6=0;关闭8253 OUT DX,AL CALL DELAY1 REToutspk ENDP ledflash proc ;LED发光子程序 MOV SI,OFFSET DATA7 ;LED的点亮代码 ADD SI,NUM MOV AL,SI MOV DX,300H ;从8255的A口输出LED点亮代码 OUT DX,AL INC NUM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号