电子报警器课程设计

2025-01-29

计算机科学与技术专业课程设计任务书

学生姓名****专业班级***学号****

题目电子报警器

课题性质工程设计课题来源自拟课题

指导教师同组姓名

主要内容

设想制作一个防盗器件。具体要求:按动键盘某任一数字键使得内扬声器

发出警报声,使得8个LED指示灯忽明忽暗,并通过液晶显示器显示相关警

报信息。程序运行后,触动键盘上的数字键,8个LED不停光闪,光闪周期为

2秒,同时在液晶显示器上显示相应的警报信息;程序按CTRL+C推出后声不

响光不闪。

任务要求

根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255和

8253芯片熟悉了解和掌握。设计中主要要完成的是发声报警和发光报警这两

个部分功能,故在程序设计中只要设计触动键盘中的数字键即8个LED不停

光闪,同时内扬声器发出警报声,且在屏幕上显示警报信息。在设计发声报

警时利用了8253可编程定时记数器。在设计发光报警时利用了8255芯片。

在程序设计中利用实现在屏幕上显示相关的警报信息。

参考文献

1.《微机原理及应用》,杨素行,清华大学出版社,1994年。

2.《微型计算机原理及应用》,郑学周斌编著,清华大学出版社,1994年6月。

3.微机原理与接口技术实验指导与习题集,周明德主编,人民邮电出版社,

2002。

4.《微机原理与接口技术》,李芷主编,电子工业出版社,2002。

5.《微机原理与应用考点分析及效果测试》,丛书编委会编,哈尔滨工程大学

出版社,2003。

审查意见

指导教师签字:

教研室主任签字:年月日

一、设计内容与要求

设想制作一个防盗器件。具体要求:按动键盘某任一数字键使得内扬声器发

出警报声,使得8个LED指示灯忽明忽暗,并通过液晶显示器显示相关警报信息。

程序运行后,触动键盘上的数字键,8个LED不停光闪,光闪周期为2秒,同时

在液晶显示器上显示相应的警报信息;程序按CTRL+C推出后声不响光不闪。

根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255和8253

芯片熟悉了解和掌握。设计中主要要完成的是发声报警和发光报警这两个部分功

能,故在程序设计中只要设计触动键盘重的数字键即8个LED不停光闪,同时内

扬声器发出警报声,且在屏幕上显示警报信息。在设计发声报警时利用了8253

可编程定时定时记数器。在设计发光报警时利用了8255芯片。在程序设计中利

用实现在屏幕上显示相关的警报信息。

二、设计思想

在设计发声报警时利用了8253可编程定时定时记数器。在设计发光报警时利

用了8255芯片,在一个时间间隔里小灯循环闪动代表正在报警。

三教学实验系统连线

+5v

系GATE2

统OPCLK

总1.

线

GATE2

CLK2

8253

OUT2

SPK

四、所用芯片工作原理

8255是可编程I/O口扩展芯片。对8255输入不同的指令可改变I/O口的

工作方式。8255与单片机系统连接方式简单,工作方式由程序设定,图2为8255

的引脚图。

8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。A、B、C寄

存器的数据就是引脚PA7~PA0、PB7~PB0、PC7~PC0上输入或输出的数据。而

控制寄存器的数据则表明PA、PB、PC的工作方式。通过CS、A0、A1、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为输出口,对控制寄存器写入的数据为,

即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.8253 定时计数器。

2.并行接口电路芯片8255。

3.扬声器。

硬件连接:

(1)定时/计数器8253A 芯片模块的GATE2 接+5V,提供高电平。

(2)定时/计数器8253A 芯片模块的OUT2 接扬声器。

(3)定时/计数器8253A 芯片模块的CLK2 接入八分之一8MHZ 的分频频率。

(4)并行接口电路芯片8255 的PA0~PA7 分别接入LED 的 D0~D7。

+5v

系GATE2

统 OPCLK

总 1.

线

8253 接线图

GATE2

CLK2

8253

OUT2

SPK

SPK UNIT

8255 线路图

六、程序流程图

主程序

PA0

PA1

PA2

PA3

PA4

PA5

PA6

8255

PA7

D0

D1

D2

D3

D4

D5

D6

D7

SW--LED UNIT

从键盘读入字符

初始化8253

判断是否在

0-8 之间?

七、程序源代码

;read from portc

; to porta

porta=08h

portb=09h

portc=0ah

portd=0bh

code

main proc far

cs:code

begin: mov bl,0

mov ah,0ffh

mov dx,portd

mov al,81h;初始化8255

out dx,al

lp: mov dx,portc

in al,dx

and al,0fh

cmp al,00h

je next

cmp al,01h

jb lp

cmp al,08h

ja lp

mov al,0b6h;初始化8253

out 43h,al

mov ax,0

初始化8255

显示信息

关灯

关声音

返回

out 42h,al

mov al,ah

out 42h,al

mov al,bl;灯闪烁

not al

out 08h,al

call delay

shl bl,1

test bl,ah

jnz lp

mov bl,1

jmp lp

back: retf

next: mov al,ah

out 08h,al

jmp lp

delay proc near

push cx

mov cx,0

: or cx,cx

or cx,cx

loop

pop cx

retn

delay endp

main endp

code ends

end begin

设计心得

通过这次的课程设计,我回忆了好多以前已经忘怀的微机原理知识,也重

新学习了相当多的汇编语言知识,真可以用温故而之心来形容,使我对以前所学

过的知识印象更加深刻,也更加熟练的掌握了 8253,8255 的功能特性,相关知

识原理等。

实验中也遇到了相当多的问题,还好在同组同学的共同努力下,以及在老

师的细心,耐心的指导下,才一步一步的解决了问题。真的好好感谢老师的帮助。

起初程序并不像我们想象的那样的显示出来,红灯没有闪烁,只是齐刷刷的亮了,

我们一开始摸不着头绪,后来在程序中找到了原因。因为我们只是让 8255 芯片

实现了小灯的亮,没有用程序去解决各个灯延时闪亮的问题。后来我们加入了新

的内容便成功了。当摆动四个开关到低电平的时候就停止闪烁,当改变了初始的

状态时就开始报警,也就是闪烁。而在报警声音的那部分我们让另外的一个灯亮

着,代表发声了。

这次的课程设计是基于上个学期对微机原理课程学习的基础上的一个提

高,通过对 8255,8253 芯片的编程更好的理解了其内在的原理。也是对书面知

识的一种巩固与更新。在这次的设计中,我们用了一个星期的时间去做相关知识

的搜索,关于报警器的原理有了整体的认识之后才去上机试验。起初因为程序的

一些错误,只实现了相关的一小部分内容,只是就闪烁问题得到解决,但是我们

又通过请教老师解决了报警这部分的设计,用了另外一个灯显示报警信息。通过

试验—出错—再试验的过程,才得以完成。

当我们完成这个程序时,发现脑中关于微机原理的知识更加清晰。这才让

我们相信,只有不断的试验,不断的动手去演练,基础知识才能转化成真正在生

活中能够实现的东西。我想我们以后无论在什么方面,特别是在研究设计方面。

动手加动脑才是成功的关键,一味的在理论上追根问底根本不可能在现实中实

现。这是我从这次课程设计中得到的最大的体会。

tsSq

F1Dw

本账号发布文档来源于互联网和个人收集,仅用于技术分享交流,版权为原作者所有。如果侵犯了您

的知识版权,请提出指正,我们将立即删除相关资料。免费格式转换请发豆丁站内信。

网易博客

腾讯微博

新浪微博

下一篇:2025年电子报警器行业未来趋势洞察分析
上一篇:39台报警器和8台分析仪测
相关文章
返回顶部小火箭