声光报警器实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
声-光报警器接口实验
报告
实验题目:声-光报警器接口实验
专业:计算机科学与技术
学生姓名:
班级学号:
分组序号:
指导教师:
2011 年 4月22 日
声-光报警器接口实验报告
一、实验时间
2011 4/22
二、实验地点
三、实验目的
熟悉可编程并行接口芯片8255的使用和学习开关量接口电路及其控制
程序的设计方法。
四、实验小组成员
五、指导老师
六、实验要求
利用MFID实验平台和声-光报警器模块进行硬件电路连接,利用MF2KI
集成开发环境进行声光报警器软件控制程序设计、调试,直到报警器正
常工作。
七、实验步骤
步骤一:硬件连线:
排线接法如右图:
跳线设置:单线将模块电源L区JP7和JP8跳接;排线将模块电源L区JP8跳
步骤二:将平台的电源开关拔到“内”的位置上。在配套集成环境下进行硬件检测,达到初始化芯片的目的.
步骤三:(学生实验步骤)打开集成环境在“文件”菜单下学生可以选择新建自己的C++/ASM文件或者使用集成环境自带的C++/ASM参考程序
进行调试、运行。
步骤四:观看实验现象得出结论。
八、算法及流程图
九、实验源程序
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