
课 程 设 计
课程设计名称: 电子报警器
专 业 班 级 : 计算机科学与技术0501
* * * * * **
学 号 : ***********
* * * * * **
课程设计时间: 2008.9.16---2008.9.28
计算机科学与技术 专业课程设计任务书
| 学生姓名 | 程敏 | 专业班级 | 计科0501 | 学号 | 20044140125 | ||
| 题 目 | 电子报警器 | ||||||
| 课题性质 | 工程设计 | 课题来源 | 自拟课题 | ||||
| 指导教师 | 秦杰 | 同组姓名 | 孙凯 | ||||
| 主要内容 | 设想制作一个防盗器件。具体要求:按动键盘某任一数字键使得内扬声器发出警报声,使得8个LED指示灯忽明忽暗,并通过液晶显示器显示相关警报信息。程序运行后,触动键盘上的数字键,8个LED不停光闪,光闪周期为2秒,同时在液晶显示器上显示相应的警报信息;程序按CTRL+C推出后声不响光不闪。 | ||||||
| 任务要求 | 根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255和8253芯片熟悉了解和掌握。设计中主要要完成的是发声报警和发光报警这两个部分功能,故在程序设计中只要设计触动键盘中的数字键即8个LED不停光闪,同时内扬声器发出警报声,且在屏幕上显示警报信息。在设计发声报警时利用了8253可编程定时记数器。在设计发光报警时利用了8255芯片。在程序设计中利用INT 10H实现在屏幕上显示相关的警报信息。 | ||||||
| 参考文献 | 1.《微机原理及应用》,杨素行,清华大学出版社,1994年。 2.《微型计算机原理及应用》,郑学周斌编著,清华大学出版社,1994年6月。 3.微机原理与接口技术实验指导与习题集,周明德主编,人民邮电出版社,2002。 4.《微机原理与接口技术》,李芷主编,电子工业出版社,2002。 5.《微机原理与应用考点分析及效果测试》,丛书编委会编,哈尔滨工程大学出版社,2003。 | ||||||
| 审查意见 | 指导教师签字: 教研室主任签字: 年 月 日 | ||||||
设想制作一个防盗器件。具体要求:按动键盘某任一数字键使得内扬声器发出警报声,使得8个LED指示灯忽明忽暗,并通过液晶显示器显示相关警报信息。程序运行后,触动键盘上的数字键,8个LED不停光闪,光闪周期为2秒,同时在液晶显示器上显示相应的警报信息;程序按CTRL+C推出后声不响光不闪。
根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255和8253芯片熟悉了解和掌握。设计中主要要完成的是发声报警和发光报警这两个部分功能,故在程序设计中只要设计触动键盘重的数字键即8个LED不停光闪,同时内扬声器发出警报声,且在屏幕上显示警报信息。在设计发声报警时利用了8253可编程定时定时记数器。在设计发光报警时利用了8255芯片。在程序设计中利用INT 10H实现在屏幕上显示相关的警报信息。
二、设计思想
在设计发声报警时利用了8253可编程定时定时记数器。在设计发光报警时利用了8255芯片,在一个时间间隔里小灯循环闪动代表正在报警。
三 教学实验系统连线
+5v
系 GATE2
统 OPCLK
总 1.1625MHZ
线
四、所用芯片工作原理
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为输出口,对控制寄存器写入的数据为10010010B,即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.1625MHZ
线
8253接线图
8255线路图
六、程序流程图
主程序
N
Y
七、程序源代码
;read from portc
;output to porta
porta=08h
portb=09h
portc=0ah
portd=0bh
code segment
main proc far
assume 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
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: ret
next: mov al,ah
out 08h,al
jmp lp
delay proc near
push cx
mov cx,0
delay1: or cx,cx
or cx,cx
loop delay1
pop cx
ret
delay endp
main endp
code ends
end begin
设计心得
通过这次的课程设计,我回忆了好多以前已经忘怀的微机原理知识,也重新学习了相当多的汇编语言知识,真可以用温故而之心来形容,使我对以前所学过的知识印象更加深刻,也更加熟练的掌握了8253,8255的功能特性,相关知识原理等。
实验中也遇到了相当多的问题,还好在同组同学的共同努力下,以及在老师的细心,耐心的指导下,才一步一步的解决了问题。真的好好感谢老师的帮助。起初程序并不像我们想象的那样的显示出来,红灯没有闪烁,只是齐刷刷的亮了,我们一开始摸不着头绪,后来在程序中找到了原因。因为我们只是让8255芯片实现了小灯的亮,没有用程序去解决各个灯延时闪亮的问题。后来我们加入了新的内容便成功了。当摆动四个开关到低电平的时候就停止闪烁,当改变了初始的状态时就开始报警,也就是闪烁。而在报警声音的那部分我们让另外的一个灯亮着,代表发声了。
这次的课程设计是基于上个学期对微机原理课程学习的基础上的一个提高,通过对8255,8253芯片的编程更好的理解了其内在的原理。也是对书面知识的一种巩固与更新。在这次的设计中,我们用了一个星期的时间去做相关知识的搜索,关于报警器的原理有了整体的认识之后才去上机试验。起初因为程序的一些错误,只实现了相关的一小部分内容,只是就闪烁问题得到解决,但是我们又通过请教老师解决了报警这部分的设计,用了另外一个灯显示报警信息。通过试验—出错—再试验的过程,才得以完成。
当我们完成这个程序时,发现脑中关于微机原理的知识更加清晰。这才让我们相信,只有不断的试验,不断的动手去演练,基础知识才能转化成真正在生活中能够实现的东西。我想我们以后无论在什么方面,特别是在研究设计方面。动手加动脑才是成功的关键,一味的在理论上追根问底根本不可能在现实中实现。这是我从这次课程设计中得到的最大的体会。
信息科学与工程 学院课程设计成绩评价表
课程名称: 微机系统
设计题目: 电子报警器
专业:计科 班级:05级01班 姓名:程敏 学号:20054140125
| 序号 | 评审项目 | 分 数 | 满分标准说明 |
| 1 | 内 容 | 16 | 思路清晰;语言表达准确,概念清楚,论点正确;实验方法科学,分析归纳合理;结论严谨,设计有应用价值。任务饱满,做了大量的工作。(20分) |
| 2 | 创 新 | 7 | 内容新颖,题目能反映新技术,对前人工作有改进或突破,或有独特见解。(10分) |
| 3 | 完整性、实用性 | 7 | 整体构思合理,理论依据充分,设计完整,实用性强(10分) |
| 4 | 数据准确、可靠 | 8 | 数据准确,公式推导正确(10分) |
| 5 | 规 范 性 | 6 | 设计格式、绘图、图纸、实验数据、标准的运用等符合有关标准和规定(10分) |
| 6 | 纪 律 性 | 15 | 能很好的遵守各项纪律,设计过程认真(20分) |
| 7 | 答 辩 | 16 | 准备工作充分,回答问题有理论依据,基本概念清楚。主要问题回答简明准确。在规定的时间内作完报告。(20分) |
| 总 分 | 75 | ||
| 综合意见 | 该生对设计内容了解,实验方法科学,设计较完整,基本完成设计任务 但有些问题需要更进一步的完善。 综合评定成绩为:良 指导教师 2008年 9月 25日 | ||
