搜档网
当前位置:搜档网 › 声-光报警系统2(远程触发报警)

声-光报警系统2(远程触发报警)

声-光报警系统2(远程触发报警)
声-光报警系统2(远程触发报警)

HUNAN CITY UNIVERSITY 微机原理与接口课程设计报告

设计课题名称:声-光报警系统2(远程触发报警)班级:

学号:

姓名:

指导老师:

2012 年06 月 15 日

一、

设计时间

2012年 06月11日—06月15日

二、 设计地点

湖南城市学院新校区一实验楼321机房

三、 设计目的

熟悉可编程并行接口芯片8255的使用和学习开关量接口电路及其控制程序

的设计方法。

四、 设计小组成员 五、 指导老师

李正华老师、阳俊老师

六、 设计课题

声-光报警系统2(远程触发报警)

七、基本思路及关键问题的解决方法

利用MFID 实验平台和声-光报警器模块进行硬件电路连接,利用MF2KI 集成

开发环境进行声光报警器软件控制程序设计、调试,直到报警器正常工作。 1、硬件连线: 单线连法如右图:

2、将平台的电源开关拔到“内”的位置上。在配套集成环境下进行硬件检测,达到初始化芯片的目的.

3、打开集成环境在“文件”菜单下学生可以选择新建自己的C++/ASM 文件或者使用集成环境自带的C++/ASM 参考程序进行调试、运行。

4、观看实验现象得出结论。

八、算法及流程图

F 区

PA0

PA7 PC6

PC2

M 区

Q 区 SW3 L1

L8 OE#74LS37

控制(音调) T 区 GND

开始

8255初始化

熄灭LED

关闭SPK

N

SW按下?

Y

LED发光

Call LED flash

SPK 发声(高)

Call outSPK

LED全灭

SPK发声(低)

Call outSPK

N

任意键按下?

Y

熄灭LED

关闭SPK

结束

九、调试过程出现的问题及相应解决办法

1、在调试过程中,当取出模块电源L区的JP7和JP8时,LED灯熄灭,

警报解除,这时只有用单线将模块电源L区JP7和JP8跳接或用排线将模块电源L区JP8跳接才能使实验正常运行,得到预期的目的。

2、在调试过程中,当接线错误时,此时不会出任何现象。所以,解决的唯

一方法就是重新接线,理清思路,结合源程序与硬件连线将线连接好。

3、刚开始的时候,运用PA口来查询SW3是否按下,遇到了没有按下SW3

而就进行发出报警声以及LED灯闪烁。而按下SW2终止程序没有问题。后

经过查询得知PA0的初始值就为低电平,而SW3键的按下同时产生一个低

电平因此即使不按下SW3键也会产生低电平,因此会造成不能正确的接受

SW3信号。后改为PC4查询SW3键的按下,程序运行正确。

4、首先调试运行基于查询方式的声光报警器的调试。执行程序,按下SW3

键,发出报警声,以及LED灯按规律闪烁。从一边开始,第一次有一个登

闪烁,每闪烁一次,增加一个灯闪烁,待八个灯一起闪烁后,重复该过程,

一直到按下SW2程序结束运行为止。然后调试运行基于中断方式的声光报

警器,运行结果同上。

十、课程设计心得体会

通过此次实验我感觉到:在做微机接口实验时,必须先读懂有关实验

箱的使用说明书,和试验箱上的各芯片的使用说明书,不能完全的按课本

上的说明进行编写程序,比如:像课本上给的8255A的编程接口地址是

200H,但试验箱的给的却是300H。在硬件连线的时候要完全按照自己所设

计电路图进行连接,并且把相应跳线接口连接好。在试验中出现问题要对

照自己所设计的过程,一步一步进行认真的查找,要学会自己独立的对问

题进行思考和解决

十一、源程序及参考文献

实验源程序

stack1 segment

dw 200 dup (?)

stack1 ends

data segment para public 'data'

message db 'press SW3 to start !',0ah,0dh ;系统提示

db 'if you want to quit, please hit Any Key!',0ah,0dh,'$' t dw 0 ;初始化延时变量为0

num dw 0 ;初始化数字变量为0

data7 db 81h,42h,24h,18h,81h,42h,24h,18h

data ends

code segment para public 'code'

assume ss:stack1,cs:code,ds:data

sl proc far

start: 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 al,83h

out dx,al

mov dx,300h ;LED全灭

mov al,00h

out dx,al

mov dx,303h ;关闭SPK

mov al,0ch

out dx,al

wait1: mov dx,302h ;查SW3按下?

in al,dx ;(PC2=0?)

and al,04h

jnz wait1 ;未按下,等待

begin: call ledflash ;已按下,调用LED发光子程 mov bx,200

mov t,0ffffh

hison: call outspk ;调用喇叭发声子程(高频) dec bx

jnz hison

mov dx,300h ;LED全灭

mov al,00h

out dx,al

mov bx,200

mov t,0afh

loson: call outspk ;调用喇叭发声子程(低频) dec bx

jnz loson

call delay2

mov ah,0bh ;查任意键按下?

int 21h

cmp al,0ffh

je quit ;有任意键按下,退出 jmp begin ;无任意键按下,继续quit: mov dx,300h ;LED全灭

mov al,00h

out dx,al

mov dx,303h ;关闭SPK

mov al,0ch

out dx,al

mov ah,4ch

int 21h ;返回DOS

sl endp

delay1 proc ;延时子程1

push bx

mov bx,t

dl1: dec bx

jnz dl1

pop bx

ret

delay1 endp

delay2 proc ;延时子程2

push cx

push bx

mov cx,04ffh

dl4: mov bx,0ffffh

dl3: dec bx

jnz dl3

dec cx

jnz dl4

pop bx

pop cx

ret

delay2 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

ret

outspk 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

cmp num,08h

jne next

mov num,00h

next: ret

ledflash endp

code ends

end start

参考文献

[1]夏士兵,钱江.构建基于COM+的分布式Web应用.微型机与应用,2001.20(6):8-9

[2][美]Richard Anderson, Chris Blexrud著.ASP3高级编程[M].张立民等译.北京:机械工业出版社,2000:408-458.

相关主题