夜班防睡控制+记录器Word下载.docx

上传人:b****6 文档编号:17500507 上传时间:2022-12-06 格式:DOCX 页数:18 大小:172.22KB
下载 相关 举报
夜班防睡控制+记录器Word下载.docx_第1页
第1页 / 共18页
夜班防睡控制+记录器Word下载.docx_第2页
第2页 / 共18页
夜班防睡控制+记录器Word下载.docx_第3页
第3页 / 共18页
夜班防睡控制+记录器Word下载.docx_第4页
第4页 / 共18页
夜班防睡控制+记录器Word下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

夜班防睡控制+记录器Word下载.docx

《夜班防睡控制+记录器Word下载.docx》由会员分享,可在线阅读,更多相关《夜班防睡控制+记录器Word下载.docx(18页珍藏版)》请在冰豆网上搜索。

夜班防睡控制+记录器Word下载.docx

开I关输出为0则亮,输出为1则灭。

2)软件部分

程序部分首先进行初始8255,然后进行时间显示,初值显示00分00秒,四个显示器每个显示10ms,接着秒个位加1,进行下一次显示,当秒个位为10时,秒十位加1,同时秒个位清零.当秒十位为6时,分个位加1,秒位清零,依次显示。

当显示为5分00秒时,发出控制信号使扬声器发出柔和的声音,此时,若有人拨动开关,则四个显示器全清零,又从00分00秒开始显示。

当显示5分00秒时,发出轻微的柔和的报警声,当显示6分00秒时,发出急促的报警声,发出控制信号使黄灯闪烁。

当显示为15分00秒时,扬声器持续发出尖锐的报警声,发出控制信号使红灯闪烁。

、硬件设计

1.芯片8255-A1)8255A在本设计中的作用

8255A作为输出接口,驱动二极管发光。

所用端口工作在方式0。

控制发光二极管的亮灭。

A口,B口控制LED数码显示管,C口低四位分别接扬声器,红灯,黄灯。

高四位中的Pc4接开关,用于输入信号,使系统复位。

2)8255A的功能分析

8255方式0是基本输入/输出方式,A、B、C三个口中任何一个口都可提供简单的输入和输出操作,不需要应答联络信号,即可用于无条件传送的场合,也可以用作查询方式传送。

当采用查询方式传送时,原则上可用A、B和C三个口的任一位充当查询信号,但通常都是选用C口充当查询信号,这和C口的编程有关。

通常把C口的4位(高4位或低4位)规定为输出口,用以输出一些控制信号,把C口的另4位规定为输人口,用以输入外设的状态。

3)8255A原理图及功能表

图2-18255A原理图

表2-18255A的操作功能表

CS

RD

WR

A1

数据传

送方式

A0

1

A口

A口数据f

数据总线

B口

B口数据f

C口

C口数据f

数据总线数据

fA口

fB口

fC口

写控制口

f控制口

8255A有三种工作方式,用户可以通过编程来设置。

4)8255A的方式控制字

图2-28255A方式控制字

5)方式0的工作特点

这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。

其功能为:

1两个8位通道:

通道A、B。

两个四位通道:

通道C高4位和低四位;

2任何一个通道可以作输入/输出;

3输出是锁存的;

4输入是不锁存的;

5在方式0时各个通道的输入/输出可有16种不同的组合。

6)8255部分技术参数

表2-28255A技术参数

Symbol

Parameter

Min

Max

Unit

VIL

InputLowVoltage

-0.5

0.8

V

ViH

InputHighVoltage

2.0

Vcc

VOL(DB)

OutputLowVoltage(DateBus)

0.45*

VOL(PER)

OutputLowVoltage(PeripheralPort)

VOH(DB)

InputLowVoltage(DateBus)

2.4

VOH(PER)

InputLowVoltage(PeripheralPort)

Idar⑴

DartingtonDriveCurrent

-1.0

-4.0

mA

icc

PowerSupplyCurrent

120

IlL

InputLoadCurrent

±

10

A

loFL

OutputFloatLeakage

输入最低电压:

min-0.5V,max0.8V,输入最高电压:

2.0V。

输出最低电压:

0.45V

输出最高电压:

2.4V。

2丄ED显示器

1)作用

LED发光二级管(Light-EmittingDiode),在本设计中采用7段数字发光二级管,做为终端显示。

2)LED功能分析

图2-3LED图示

1物理构造:

LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,

其内部结构为一个PN吉,具有单向导电性。

2工作原理:

当在发光二极管PN吉上加正向电压时,PN吉势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。

3数字成像:

将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。

4

1位,七段代码的各位用作a-g和

实验中采用的是共阴极七段LED显示器,他由多个发光二极管组成,七段或八段笔画显示器,当段组发亮时,便可显示数字Dp的输入,当对应的位为1时,则该段亮。

数码管内部结构

3)LED显示管段选码编码表

表2-3LED段选码

数字

DP

g

f

e

d

c

b

a

二进制编码(字形)

3FH

03H

2

5BH

3

4FH

66H

5

6DH

6

7DH

7

07H

8

7FH

9

6FH

77H

B

7CH

C

69H

D

5EH

E

79H

F

71H

4)技术参数

表2-4LED技术参数

PCW

If

Vr

Ir

RP

对应型号

散射颜色

BT-235-270

25

>

=1.5

<

=2.5

200

SEL-10

红色

3.

单刀双掷开关

本次设计需要用1位开关,用于检测值班者是否睡着。

图2-5单刀双掷开关

开关闭合输入0,开关断开输入1。

开关高电平:

+5V低电平:

0V

实验中单刀双掷开关接地,即通过8255,PC5检测到为0,当值班者拨动开关接

+5V电压时,PC5检测到为1(即相当于值班者按动按扭)

4.扬声器1)作用

本次设计需要扬声器发出三种不同频率的响声,由8255的PC0空制(第0位控

制)

如果使该位交替为'

'

为T则产生一个脉冲电流,该电流放大后驱动扬声器发出声曰。

5.硬件总逻辑图及其说明

图2-8硬件总逻辑图

上图所示为数码显示管逻辑总图,图中所用到的为一片8255芯片、1位开关、4个七段LED数码显示管、红灯和黄灯。

将PCI的CSA0、A1分别接8255A勺CSA0、A1,8255A的PA0~PA接入数码管选择脚,PB0~PB分别与数码管段码相连,作为段选择。

8255的A口,B口控制LED数码显示管,C口低四位作输出口,PC0接扬声器,PC1接黄灯,PC2接红灯,高四位作输入口,PC接开关。

三、控制程序设计

1)控制程序设计思路说明

首先将8255初始化(设置8255A勺控制方式,A口、B口用于输出C口高四位输入,低四位输出),LED动态显示时间(分、秒),用软件查询判断分秒的情况:

当显示5:

00、6:

00、15:

00时,分别调用不同的发声子程序。

显示期间若按复位键则时间从00:

00开始计时。

2)控制程序流程图

开始

初始化8255

*

设置时间向量

地址

设置时间初值

图3-1主程序流程图

返回显示子程序

返回设置时间初值

图3-2判断时间控制流程图

返回设置间隔

N

Y

秒十位加1

个位清零

秒十位是否为6

秒十位清零

分个位加1

图3-3进位判断

db

位选码

;

重新显示下

若一秒

判断c

复位

3)控制程序

.MODELTINY

pcibar3equ1ch;

8位i/o空间基地址(它就是实验仪的基地址,也为dma&

32bitram板卡上的8237提供基地址)vendor_id

device_id.stack100.dataio_bit8msg0db$'

msg1db卡$'

msg2db

pa_addpb_addpc_add.codeLight3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;

存储表示数字的各

段选码分别表示为0-9

timdb00h,00h,00h,00h

存储要显示的四个时间量start:

movax,@data

movds,ax

nop

callinitpci

callmodifyaddress;

据pci提供的基地址,将偏移地址转化为实地址

main:

movdx,com_add

写8255a方式控制字

moval,88h

设置端口a为工作方式出端口

moval,10001000b;

pc4为输入,pc3到pc0为输出;

端口b为输出并工作在方式0

outdx,almovdx,pc_addmoval,11111111boutdx,almovsi,offsettim

设置tim的偏移地址于si中

movah,1

mov[si],ah

mov[si+1],ah

mov[si+2],ah

mov[si+3],ah

movah,30

设置一秒钟循环显示的次数movdi,offsettim+3movcl,11111110b;

disp:

moval,[di]

movbx,offsetlightxlat

movdx,pb_add;

写入端口b

outdx,al

将从light空间内读取的段选码输入到端口b

moval,clmovdx,pa_add

outdx,al;

将位选码送入端口a

calldelay;

调用延时子程序

cmpcl,11110111bjztimingdecdirolcl,1

jmpdisp

一位

guodu:

jmpgotiming:

decah

jnzctrl

未显示30次则转向以上显示四个时间量的程序显示30次

movdx,pc_add;

口开关端口pc7输入是否为

inal,dx

testal,10000000b

jnzinit

moval,0

movah,1movbl,5movbh,6movch,10add[si+3],ah;

的时间量加1

cmp[si],ahjbmin5cmp[si+1],bljbcallhcallstrongalarmjmptimeadmin5:

cmp[si+1],bljnzmin6callsoftalarmjmptimeadmin6:

cmp[si+1],bhjbtimeadcallhurryalarmcallh:

callhurryalarmjmptimeadtimead:

cmp[si+3],chjnzgomov[si+3],aladd[si+2],ahcmp[si+2],bhjnzguodumov[si+2],aladd[si+1],ahcmp[si+1],chjnzguodumov[si+1],aladd[si],ahjmpgosoftalarmproc

柔和声音子程序pushaxpushbxpushcx

movbx,10

sound1:

movdx,pc_add

moval,11111110b

movcx,0fffh

秒个数

叫声次数

蜂鸣器

延时

waitl:

Ioopwaitlmoval,11111111boutdx,almovcx,Offfh;

延时每次叫声持续的时间waitti:

loopwaitti

decbxjnesoundlpopcxpopbxpopaxretsoftalarmendphurryalarmproc

急促声音伴随黄灯闪烁子程序

Pushaxpushbxpushcxmovbx,25sound2:

movdx,pc_addmoval,11111100boutdx,al;

movcx,0fffhwait2:

loopwait2

moval,11111111boutdx,almovcx,0fffhwaitt2:

loopwaitt2decbxjnesound2popcxpopbxpopaxrethurryalarmendpstrongalarmproc

尖锐声音伴随红灯闪烁子程序

Pushaxpushbxpushcxmovbx,50sound3:

movdx,pc_addmoval,11111010boutdx,al;

蜂鸣器

是否存

movcx,0fffh;

延时wait3:

loopwait3

moval,11111111b

movcx,0fffhwaitt3:

loopwaitt3

decbx

jnesound3

popcx

popbx

popax

ret

strongalarmendpdelayproc;

延时子程序

pushcx

movbl,20

del:

movcx,1000waitd:

loopwaitddecbl

jnzdel

delayendp

initpciprocnear

mov

ah,00h

al,03h

int

10h

ah,0b1h

al,01h

1ah

cmp

ah,0

jz

initpci2

lea

dx,msg0

清屏

initpci1:

movah,09h

int21h

jmpexitinitpci2:

movah,Ob1h

moval,02h

movcx,device_idmovdx,vendor_idmovsi,0int1ahjncinitpci3在starpci9052板卡

leadx,msg1jmpinitpcHinitpci3:

movdi,pcibar3

movah,0b1hmoval,09hint1ah;

读取该卡pci9052基地址

jncinitpci4leadx,msg2jmpinitpcHinitpci4:

andcx,0fffch

io_bit8_baseaddress,cx

initpciendpmodifyaddressprocnear

addcom_add,cx

addpa_add,cxaddpb_add,cxaddpc_add,cxretmodifyaddressendpexit:

movah,4ch

endstart

四、设计结果分析及问题讨论

1.上机调试过程

1上机过程中由于事先对实验的具体实际要求理解不彻底,所以导致实验方案失败,重新修改了方案;

2上机运行后,数码管显示数字不对,经检查,发线问题出在数码转换表定

义有误;

3程序的时间控制部分写得不够完善,导致计时到15分钟后报警音混乱。

经思考,修改了程序。

4最后在报警声音方面上又遇到了问题,没有达到预期的声音逐渐增强的效果。

通过反复的对声音模块参数的修改终于达到了预期效果。

58253—直输出方波,使得蜂鸣器不停的发声。

解决方法:

在指定的发声位置调用发声延时并通过控制8253计数器2的门控信号控制发声的停止。

将不同的发声程序定义不同的实现过程。

6蜂鸣器正常发声后,出现了不能及时将其关闭的问题,经过思考后决定采用8255的PCG作为GAT门控信号,对8253的计数器2进行控制,解决这个问题的关键是对8255的PC0t行置位/复位,以此来控制8253开始和停止输出方波。

2.课程设计结果及分析1)设计结果

程序开始运行时,四个LED丁从00分00秒开始显示时间,并隔相应的时间加一秒,一直显示到59分59秒,然后又从00分00秒开始显示,如此循环下去。

当时间显示到50分00秒时,扬声器发出较柔和的声音,到60分00秒时,扬声器发出较急促的声音,黄灯闪烁,到15分00秒时,扬声器发出尖锐的报警声,红灯闪烁。

每次拨开关为高电平时,LED丁就变成从00分00秒开始显示。

2)结果分析

1数码管的显示使用段选和位选的方法进行控制,即用位选来选择哪一个显示灯亮,用段选来控制显示器显示的时间值。

设计中因为时间的确定决定着发声和灯亮的操作,故一定要设置一个时间数字的缓冲区,以便于对时间的变化进行查询。

本次设计中最为重要的是定义段码表,其作用可归纳为:

(1)初始状态时,时间为00:

00这时要利用段码表提供的数和位选依次对各个位进行赋值。

(此时偏移地址为0)

(2)计时时通过改变缓冲区内的数值值,以此作为换码指令的偏移地址,通过换码指令得到应该在数码显示器中显示的时间值。

2时间变化过程中要进行查询,注意与0,5,6,10几个敏感的数值进行比较,通过比较进行相应的操作。

功能扩展后,为了实现可控时间的发声,还需要

与7、&

9三个数字进行比较,从而发出特定的报警声。

3本设计中峰鸣器的发声由8253完成,通过在计数器中打入不同的计数初

值,使8253在特定的工作方式下实现峰鸣器发出不同频率和强度的报警声。

8253

要与8255的C口相连,8255向8253输出门控信号,通过对8255控制口写C口置位复位控制字,控制PC(置1,使8253以方式3产生方波,从而驱动蜂鸣器的发声。

3)收获、体会和建议

1通过本次课程设计,对8255的工作方式尤其是方式0有了进一步的了解。

8255有三个8位端口PAPBffiPC,各端口都可由程序设定为各种不同的工作方式。

在本设计中A口工作于方式0,低4位用作位选码;

B口工作于方式0,8位用于段选码,C口也工作于方式0,高4位用于输入口,低4位用于输出口。

2通过本次课程设计对七段LED数码显示器的发光原理有了进一步的了解。

发光二极管是一种当外加电压邙阳极电压接高电位)超过额定电压时发生击穿,并因此能产生可见光的器件。

数码显示管通常由多个发光二极管来组成7段或8

段笔画显示器,当段组合发亮时,便可显示某一数码或字符。

本设计有4位七段

LEE接口电路,共有4个七段发光二极管的器件。

为了减少所用器件的数量,这个

电路可以和4个8位并行输出口连接。

4个显示器共用同一组段代码输出线,但通

过数位选择线,在任何时间内只有一个显示器能够显示其代码。

为了实现这一功能,可让每个显示器接通一小段时间,以显示其对应的数,并且循环显示这4个数,以达到一秒的时间。

这样可,人们看上去好象4个显示器都在同时显示。

3充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1