《家庭防盗报警系统的设计(共8页).doc》由会员分享,可在线阅读,更多相关《家庭防盗报警系统的设计(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 家庭防盗报警系统的设计一:实验目的: 检验学生在微机原理与接口实验综合应用方面分析的问题与解决问题的能力,同时给学生提供更多,更好的训练机会.二:设计要求: 利用试验箱资源,自行设计一个家庭防盗报警系统的设计,完成电路设计,电路连线,软件编程,系统调试等工作.所实现系统主要功能要求如下. 1用开关模拟个门窗等处的传感器输出 2整个系统可处于工作/停止两个状态 3允许设置报警时间 4用红色发光二极管的闪烁表示报警. 5按某个按钮后,报警停止. 三:实验设备: QTH-2008PC实验设备一台,键盘,鼠标,显示器,8255实验器件,LED灯,数码显 示管四:实验原理:
2、1、8255A的内部结构:(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器及缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。(3)A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CP
3、U输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。4、8255A的控制字: 表4-1 8255A方式控制字D7D6D5D4D3D2D1D0D7=1特征为A组方式00=方式0 01=方式11x=方式2A口0=输出1=输入C口高4位0=输出1=输入B组方式0=方式11=方式1B组方式0=输出1=输
4、入C口低4位0=输出1=输入 表4-2 C口按位置位/复位控制字D7D6D5 D4D3D2D1D0D7=0特征位不用位选择000=C口0位.111 =C口7位0=复位1=置位 可编程并行接口8255电路 8255 实验连线图 LED显示灯连线图五:设计指导: 1:门窗的状态可以使用一组开关模拟,采用K0K7代表,开关关闭时为正常状态,开关打开时为报警状态.这些状态可以通过8255A输入.2:系统工作模式可以使用开关K8设置,报警停止用开关K9控制,报警时间设置使用K10控制,开关状态通过8255A读入.3:报警时间设置时,需要在数码管上显示时间设定值,数码管的显示参照实验4-9.六:实验步骤:
5、1:实验连线 该模块的WR,RD分别连到PC104总线接口模块的IOWR,IORD. 该模块的数据(AD0AD7),地址总线(A0A7)分别连到PC104总线接口模块的数据(D0D7), 地址线(A0A7). 8255模块选通线连到PC104总线接口模块的IOY0 8255的PA0PA4连到开关上;8255的PC0连到发光二极管的L0,PC1PC2连到数码显示管上面2:编写程序,实现防盗报警的功能.七:编写程序:P8255_A EQU 0190HP8255_B EQU 0191HP8255_C EQU 0192HP8255_MODE EQU 0193HMY_STACK SEGMENT PARA
6、 STACK DB 100 DUP(?)MY_STACK ENDSMY_DATA SEGMENT PARA DATADCLK0 EQU BDCLK1 EQU BDIN0 EQU BDIN1 EQU BDELAY_SET EQU 00FFHSGTB1 DB 0C0H DB 0F9H DB 0A4H DB 0B0H DB 099H DB 92H DB 82H DB 0F8H DB 80H DB 90H DB 88H DB 83H DB 0C6H DB 0A1H DB 86H DB 8EH DB 00HMY_DATA ENDSMY_CODE SEGMENT PARA CODE ASSUME CS:M
7、Y_CODE,MY_DATA,SS:MY_STACKMY_PROC FARMAINP: MOV AX,MY_DATA MOV DS,AX MOV DX,P8255_MODE MOV AL,90H OUT DX,AL MOV DX,P8255_MODE MOV AL,05H OUT DX,ALSTOP: MOV DX,P8255_A IN AL,DX TEST AL,04H JZ START JMP STOPSTART: MOV DX,P8255_A IN AL,DX TEST AL,03H JZ STOP MOV DX,P8255_A IN AL,DX TEST AL,08H JNZ STOP
8、LED: MOV DX,P8255_MODE MOV AL,04H OUT DX,AL CALL SHOW JMP STOP RETMY_PROC ENDPSHOW PROC NEAR PUSH DX PUSH AXMAIN: MOV DX,P8255_MODE MOV AL,80H OUT DX,AL MOV SI,00H MOV DI,00HMAIN1: MOV BX,OFFSET SGTB1 MOV AH,BX+SI CALL SEND CALL DELAYPD: MOV DX,P8255_C IN AL,DX TEST AL,04H JZ PD1 MOV DX,P8255_MODE M
9、OV AL,05H OUT DX,AL MOV DX,P8255_MODE MOV AL,01H OUT DX,AL MOV DX,P8255_MODE MOV AL,03H OUT DX,AL JMP PDPD1: MOV DX,P8255_A IN AL,DX TEST AL,08H JZ PD2 MOV DX,P8255_MODE MOV AL,05H OUT DX,ALPD2: MOV DX,P8255_A IN AL,DX TEST AL,DX JZ JXXS MOV SI,00H MOV DI,00H MOV BX,OFFSET SGTB1 MOV AH,BX+DI CALL SE
10、ND MOV AH,BX+DI CALL SEND CALL DELAY JMP PDJXXS: CMP DI,9H JNZ MAIN2 MOV DI,00H INC SI CMP SI,10 JNZ MAIN3 JMP MAINMAIN2: NOP INC DIMAIN3: CALL BREAK JMP MAIN1 POP AX POP DX RETSHOW: ENDPSEND PROC NEAR PUSH CX MOV CX,01HSEND1: MOV DX,P8255_MODE MOV AL,DCLK0 OUT DX,AL MOV AL,AH RCL AL,CL JC SEND2 MOV
11、 AL,DIN0 OUT DX,AL SEND2: MOV AL,DIN1 OUT DX,ALSEND3: MOV AL,DCLK1 OUT DX,AL INC CX CMP CX,09H JNE SEND1 MOV AL,DIN1 OUT DX,AL POP CX RETSEND: ENDPDELAY PROC NEAR PUSHF PUSH DX PUSH CX MOV DX,DELAY_SETD1: MOV CX,-1D2: DEC CX JNZ D2 DEC DX JNZ D1 POP CX POP DX POPF RETDELAY ENDPBREAK PROC NEAR PUSHF PUSH AX PUSH DX MOV AH,06H MOV DL,OFFH INT 21H JE RETURN MOV AX,4C00H INT 21HRETURN: POP DX POP AX POPF RETBREAK ENDPMY_CODE ENDS END MAINP 八:实验总结: 掌握8255的主要用法,实现8255的主要的指令的用法和控制字,实现对灯的控制和对LDE的控制.实现调用指和比较的用法.还有理清个控制字的实现,关键是理清思路. 专心-专注-专业
限制150内