微机原理与接口技术课程设计电子报警器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书
学生姓名:专业班级:电子信息工程2班
指导教师:工作单位:
题目:电子报警器设计
一、设计条件:
1.运用所学的微机原理和接口技术知识;
2.微机原理和接口技术实验室的实验箱设备。
二、要紧任务:(包括课程设计工作量及其技术要求和说明书撰写等具要求)
假想制作一个防盗器件。
具体要求:程序运行时扬声器发出警报声,使得8个LED指示灯不断光闪,光闪周期为2秒,14秒倒计时终止后液晶显示器显示相关警报信息。
警报信息显现后LED灯熄灭,程序按任意键退出后声不响光不闪。
依照设计任务和要求,在设计前必需对微机原理与接口技术中的8255和8253芯片熟悉了解和把握。
设计中要紧要完成的是发声报警和发光报警这两个部份功能,故在程序设计中只要设计触动键盘中的数字键即8个LED不断光闪,同时内扬声器发出警报声,且在屏幕上显示警报信息。
在设计发声报警时利用了8253可编程按时记数器。
在设计发光报警时利用了8255芯片。
在程序设计中利用INT 10H实此刻屏幕上显示相关的警报信息。
三、时刻安排:
指导教师签名:年月日
基于微机原理电子警报器的设计
摘要
在现今高速进展的中,人们对自身所处的环境愈来愈关切,居家平安已成为现今小康之家优先考虑的。
当您上班家中无人,或仅有老人孩子在家,或您晚上在家熟睡,您必需确保家庭成员和财产的绝对平安。
众多住宅小区的安防防犯要紧倚靠安装防盗窗、防盗门和人工防犯。
如此不仅有碍美观,不符合防火的要求、而且不能有效地避免坏人的侵入。
随着生活水平的不断提高,人们的平安防范意识也在不断的增强,各类智能防盗报警器应运而生,并非断地向各个领域深切,报警器是一种为避免或预防某事件发生所造成的后果,以声音、提示等形式来警示或提示咱们应当采取某种行动的电子产品。
随着科技的进步,家居安防中的机械式报警器愈来愈多地被先进的电子报警器代替,如防盗报警器、防火报警器、煤气天然气泄露报警器等。
而且电子报警器在平安智能家居监控报警系统起愈来愈重要的作用。
如家庭、公共地址、企事业单位,公司等。
本课程设计是基于微机原理与接口技术的简单应用。
运用所学的微机原理和接口技术知识完成电子警报器的设计。
目录
前言 (3)
一、设计要求与设计方案 (6)
电子警报器设计方案的论证与比较 (6)
电子警报器的功能与要求 (6)
电子警报器设方案的确信 (6)
二、硬件设计 (7)
电子警报器的硬件框图 (7)
输入、输出显示电路设计 (8)
系统总电路图 (8)
三、软件设计 (9)
主程序流程图 (9)
电子警报器主程序设计 (9)
四、系统的安装与调试 (13)
硬件调试 (13)
软件调试 (13)
调试进程 (13)
五、设计体会与小结 (14)
总结设计体会与心得 (14)
附录 (15)
前言
电子警报器的具体要求是程序运行时扬声器发出警报声,使得8个LED指示灯忽明忽暗,并通过液晶显示器显示相关警报信息。
程序运行后,触动键盘上的数字键,8个LED不断光闪,光闪周期为2秒,同时在液晶显示器上显示相应的警报信息;程序按任意键退出后声不响光不闪。
8255是可编程I/O口扩展芯片。
对8255输入不同的指令可改变I/O口的工作方式。
8255与单片机系统连接方式简单,工作方式由程序设定,图2为8255的引脚图。
8255内部有4个寄放器:别离为寄放器A、B、C和操纵寄放器。
A、B、C 寄放器的数据确实是引脚PA7~PA0、P B7~PB0、PC7~PC0上输入或输出的数据。
而操纵寄放器的数据那么说明PA、PB、PC的工作方式。
通过CS、A0、A一、RD 和WR对4个寄放器进行操作。
1)CS为低电平时选通8255;2)A1、A0为地址选通;3)RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、WR为低时为写方式。
4)D0~D7为数据口。
向操纵寄放器写入不同的数据能够使8255工作在三种不同的方式下。
那个地址只介绍应用最多的方式0。
方式0下8255的PA、PB及PC口上半部份(PC7~PC4)和下半部份(PC3~PC0)中任何一个端口都能够设定为输入或输出,PC口还能够进行位操作。
操纵寄放器列位的含义如图3所示。
SLPC-24中8255工作在方式0。
PA、PB为输入口、PC为输出口,对操纵寄放器写入的数据为B,即92H。
8255引脚功能
RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8
位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
8253:
8253具有3个独立的16位计数器,6种不同的工作方式。
1.方式0——计数到终点输出变成高电平
当将某计数器设置成方式0后,其输出OUT变低电平,装入初值后,仍维持低电平。
门控为高电平开始计数。
每来一个计数脉冲CLK,计数器的值减1,当计数抵达终点即计数器的值变成0时,OUT变成高电平。
在计数期间可用门控信号暂停计数(即门控为低电平常,计数暂停)。
2.方式1——可编程单稳
所谓单稳,是指如此的电路,它有两种状态,但只能稳固在一种状态。
在必然的外界作用下,它能从这一种状态进入到另一种状态,但通过一按时刻后,又自动恢复到原先的状态。
那个时刻参数一样是由外加电阻、电容的值决定的。
8253的方式1确实是模拟单稳电路,其处于非稳固状态的时刻可通进程序进行设置。
3.方式2——分频脉冲发生器(分频器)
方式2用来对输入脉冲(即计数脉冲CLK)N分频(N为预置的初值),在输出信号周期中低电平的时刻为一个CLK周期。
设置此方式后,OUT变高电平,装入初值后便自动开始计数,减到1时OUT变低电平。
通过一个CLK周期,OUT恢复高电平,且计数器又自动装入初值,从头开始计数。
如此循环下去。
如图6.23所示是工作在方式2的示用意。
在上述进程中GATE应一直维持高电平。
假设GATE变低电平将禁止计数,并使输出为高电平。
在GATE再次变高电平常,计数器将从头装入预置的初值,并开始计数。
4.方式3——方波发生器
方式3类似于方式2,输出是周期性的。
不同的是方式3输出方波。
如果预置的初值N为偶数,则输出周期中高电平和低电平的宽度相等;如果N为奇数,则输出周期中高电平比低电平多一个CLK周期的时间,当N相当大时,也可认为是方波。
当然,一般采用方式3时,置初值为偶数。
设置成方式3后,OUT变高电平,装入初值后便自动开始计数。
如初值为偶数,每一个CLK使计数器减2,计到终点改变电平。
如初值为奇数,那么输出为高电平常第一个CLK使计数器减1,随后每一个CLK使计数器减2;输出为低电平常第一个CLK使计数器减3,随后每一个CLK使计数器减2。
每当计数到终点都会改变电平,初值又被从头装入,并开始计数。
如此循环下去。
5.方式4——软件触发选通
设置成方式4后,OUT变高电平,写入计数值后自动开始计数(因此称之为软件触发),计数到终点输出一个CLK周期的低电平脉冲。
GATE变低可暂停计数,用GATE的上升沿可从头赋初值,并开始计数。
6.方式5——硬件触发选通
设置成该方式后,OUT变高电平,写入计数值后需等待GATE上升沿的到来才开始计数(因此称之为硬件触发)。
计数到终点也输出一个CLK周期的低电平脉冲。
计数进程中不受GATE电平的阻碍。
尔后,用GATE的上升沿可从头赋初值,并开始计数。
计数寄放器用来寄放计数初值,计数工作单元为16位减1计数器,它的初值即是计数寄放器内容,计数单元对CLK脉冲计数,每显现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号说明计数单元已为零。
看成为按时器工作时,每当计数单元为零时,计数寄放器内容会自动从头装入计数单元,而且CLK输入是均匀的脉冲序列,于是OUT输出频率是降低了的(相关于CLK信号频率)脉冲序列。
看成为计数器工作时,说明只关切在CLK端显现(代表事件)的脉冲个数,当CLK端显现了规定个数的脉冲时,OUT输出一个脉冲信号。
一、设计要求与设计方案
电子警报器设计方案的论证与比较
方案1:按动键盘某任一数字键使得内扬声器发出警报声,使得8个LED指示灯忽明忽暗,并通过液晶显示器显示相关警报信息。
程序运行后,触动键盘上的数字键,8个LED不断光闪,光闪周期为2秒,同时在液晶显示器上显示相应的警报信息;程序按CTRL+C推出后声不响光不闪。
方案2:程序运行时扬声器发出警报声,使得8个LED指示灯不断光闪,光闪周期为2秒,14秒倒计时终止后液晶显示器显示相关警报信息。
警报信息显现后LED灯熄灭,程序按任意键退出后声不响光不闪。
方案1较方案2复杂,警报器的功能也较为完善,但实行起来有必然的难度,程序编写比较困难,而方案2的功能较为简单,实行起来比较容易。
电子警报器的功能与要求
功能:程序运行时扬声器发出警报声,使得8个LED指示灯忽明忽暗,14秒倒计时终止后液晶显示器显示相关警报信息(yxyqr DANGER go away)。
程序运行后,触动键盘上的数字键,8个LED不断光闪,光闪周期为2秒,同时在液晶显示器上显示相应的警报信息;程序按任意键退出后声铃响光不闪。
要求:依照设计任务和要求,在设计前必需对微机原理与接口技术中的8255和8253芯片熟悉了解和把握。
设计中要紧要完成的是发声报警和发光报警这两个部份功能,故在程序设计中只要设计程序运行后8个LED不断光闪,同时内扬声器发出警报声,且在屏幕上显示警报信息。
在设计发声报警时利用了8253可编程按时记数器。
在设计发光报警时利用了8255芯片。
在程序设计中利用INT 10H实此刻屏幕上显示相关的警报信息
电子警报器设方案的确信
通太长时刻的试探论证与总结,最后确信方案2为最终实行方案,即电子警报器的功能为:程序运行时扬声器发出警报声,使得8个LED指示灯不断光闪,光闪周期为2秒,14秒倒计时终止后液晶显示器显示相关警报信息。
警报信息显现后LED灯熄灭,程序按任意键退出后声不响光不闪。
二、硬件设计
电子警报器的硬件框图
电子报警器所用相关硬件:
按时计数器。
2.并行接口电路芯片8255。
3.扬声器。
硬件连接:
(1)按时/计数器8253A芯片模块的GATE2接+5V,提供高电平。
(2)按时/计数器8253A芯片模块的OUT2 接扬声器。
(3)按时/计数器8253A芯片模块的CLK2接入八分之一8MHZ的分几回率。
(4)并行接口电路芯片8255的PA0~PA7别离接入LED的 D0~D7。
+5
系
统
总
线
8253接线图
8255线路图
输入、输出显示电路设计
8255的A端、B端作为输入端,C端作为输出端,对8253操纵响铃。
系统总电路图
三、软件设计
主程序流程图
电子警报器主程序设计
程序源代码如下:
yang equ 0ff00h-0280h
yuan8255_A equ yang+288h
yuan8255_B equ yang+28bh
yuan8255_C equ yang+28ah
yuan8255_MODE equ yang+28ch
yuan8253a equ yang+280h
yuan8253b equ yang+281h
yuan8253k equ yang+283h
DATA SEGMENT
LA DB ?
LB DB ?
AA DB 'yxyqr DANGER go away!!! $'
TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
mov dx,yuan8253k ;向8253写操纵字
mov al,36h ;使0通道为工作方式3
out dx,al
mov ax,1000 ;写入循环计数初值1000
mov dx,yuan8253a
out dx,al ;先写入低字节
mov al,ah
out dx,al ;后写入高字节
mov dx,yuan8253k
mov al,76h ;设8253通道1工作方式2
out dx,al
mov ax,200 ;写入循环计数初值200
mov dx,yuan8253b
out dx,al ;先写低字节
mov al,ah
out dx,al ;后写高字节
MOV AX,DATA
MOV DS,AX
MOV DX,yuan8255_MODE ; 初始化8255
MOV AL,88H ;置8255的A口B口为输出,C口高4位为输入,低4位为输出
OUT DX,AL
MOV CL,9 ; 赋初值9
MOV BX,OFFSET TABLE ; 赋七段代码表首地址给BX
MOV AL,CL
DISPY:
XLAT; 查表指令,将以BX为首地址AL为偏移地址的值赋给AL
MOV DX,yuan8255_A ; 从A口输出AL
OUT DX,AL
CALL DALLY1 ; 挪用1S延时子程序
PAUSE: ; 暂停,D14置1暂停倒计时
MOV DX,yuan8255_C
IN AL,DX
CMP AL,40H
JZ PAUSE
WAIT1: ; 复位,D15置1复位复到9
MOV DX,yuan8255_C
IN AL,DX
CMP AL,80H
JZ WAIT2 ; D15置1后执行WAIT2
SUB CL,1 ; 减1倒计时
MOV AL,CL
CMP CL,0FFH
JNZ DISPY ; 倒计时未到0,继续倒计时
JMP BB
WAIT2: ; 从头从9开始倒计时
MOV CL,9
MOV BX,OFFSET TABLE
MOV AL,CL
JMP DISPY
BB: ; 流水灯
MOV DX,yuan8255_MODE ; 再次初始化8255
MOV AL,80H ; 三个端口都为输出
OUT DX,AL
MOV DX,yuan8255_C
MOV AL,77H
OUT DX,AL
MOV LA,AL
MOV DX,yuan8255_B
MOV AL,0FEH
OUT DX,AL
MOV LB,AL
CALL DALLY ; 延时
A1:
MOV AL,LA
ROR AL,1 ; 不带进位的循环右移
MOV LA,AL
AND AL,30H ; 取AL的4,5位
MOV DX,yuan8255_C ; 从C口输出,操纵蜂鸣器发声
OUT DX,AL
MOV AL,LB
ROL AL,1 ; 不带进位的循环左移
MOV LB,AL
MOV DX,yuan8255_B
OUT DX,AL
MOV DX,OFFSET AA ; 输出字符“yxyqr DANGER go away!!! ”
MOV AH,9
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
CALL DALLY
CALL BREAK
JMP A1
DALLY: ; 软件延时子程序
MOV CX,3FFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
RET
BREAK PROC NEAR ; 有键按下终止程序,无键按下继续执行程序
MOV AH,1
INT 16H
JZ A1
MOV AX,4C00H
INT 21H
BREAK ENDP
DALLY1 PROC NEAR ; 1s延时程序
PUSH AX
PUSH CX
MOV CX,0FFFFH
D3: MOV AX,7FFFH
D4: DEC AX
JNZ D4
LOOP D3
POP CX
POP AX
RET
DALLY1 ENDP
CODE ENDS
END START
PS:对8253的初始化程序有袁倩如完成,对8255的初始化和延迟程序由杨雪完成,关于屏幕上显示的字母、流水灯和硬件调试由两人一路完成。
四、系统的安装与调试
硬件调试
软件调试
主程序运行后,发出报警信息,即铃响,但LED指示灯不闪烁,14秒倒计时终止后,液晶屏上显示信息”yxyqr DANGER go away”,现在,铃继续响,按下任意键退出,第二次运行时,铃响,8个LED灯不断闪烁,光闪周期为2秒,14秒倒计时终止后,液晶屏上显示信息”yxyqr DANGER go away”,与此同时,LED灯熄灭,铃继续响。
调试进程
在调试的进程中显现了很多问题,如铃不响,后来通过添加8253程序解决了这一问题,但最后程序的运行结果仍是没有达到咱们的期望,程序设计的最终结果为:主程序运行后,发出报警信息,即铃响,但LED指示灯不闪烁,14秒倒计时终止后,液晶屏上显示信息”yxyqr DANGER go away”,现在,铃继续响,按下任意键退出,第二次运行时,铃响,8个LED灯不断闪烁,光闪周期为2秒,14秒倒计时终止后,液晶屏上显示信息”yxyqr DANGER go away”,与此同时,LED灯熄灭,铃继续响。
五、设计体会与小结
总结设计体会与心得
通过这次的课程设计,我对教师在课堂上讲解的微机原理知识有了更进一步的熟悉,也从头学习了很多的汇编语言知识,真能够用温故而之心来形容,使我对以前所学过的知识印象加倍深刻,也加倍熟练的把握了8253,8255的功能特性,相关知识原理等。
实验中也碰到了相当多的问题,还好在同组同窗的一起尽力下,和在教师的细心,耐心的指导下,才一步一步的解决了问题。
真的好好感激教师的帮忙。
起初程序并非像咱们想象的那样的显示出来,没有发出报警信息,即铃不响,只是8个LED灯不断闪烁,咱们一开始摸不着头绪,后来在程序中找到了缘故。
因为咱们没有添加8253的程序,故8253的功能没有得以实现,后来咱们加入了新的内容便成功了。
当主程序运行后,铃响,8个LED灯不断闪烁,光闪周期为2秒,14秒倒计时终止后,液晶屏幕上显示信息”yxyqr DANGER go away”,与此同时,LED灯停止闪烁。
这次的课程设计是基于这个学期对微机原理课程学习的基础上的一个提高,通过对8255,8253芯片的编程更好的明白得了其内在的原理。
也是对书面知识的一种巩固与更新。
在这次的设计中,咱们用了很长的时刻去做相关知识的搜索,关于报警器的原理有了整体的熟悉以后才去上机实验。
起初因为程序的一些错误,只实现了相关的一小部份内容,只是就铃不响问题取得解决,可是咱们又通过彼此讨论解决了报警这部份的设计,用了8253的功能显示报警信息。
通过实验—犯错—再实验的进程,才得以完成。
当咱们完成那个程序时,发觉脑中关于微机原理的知识加倍清楚。
这才让咱们相信,只有不断的实验,不断的动手去演练,基础知识才能转化成真正在生活中能够实现的东西。
我想咱们以后不管在什么方面,专门是在研究设计方面。
动手加动脑才是成功的关键,一味的在理论上追根问底全然不可能在现实中实现。
这是我从这次课程设计中取得的最大的体会。
另外,咱们要感激xx教师对咱们的悉心指导,在课程设计显现问题的进程中,是他不厌其烦的为咱们讲解电子警报器的原理及相关知识,没有他的辛勤付出,咱们的课程设计是不可能取得成功的。
附录
参考文献
1.《微机原理及应用》,杨素行,清华大学出版社,1994年。
2.《微型运算机原理及应用》,郑学周斌编著,清华大学出版社,1994年6月。
3.,周明德主编,,2002。
4.《》,李芷主编,,2002。
5.《》,丛书编委会编,,2003。