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

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

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

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

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

夜班防睡控制+记录器

合肥学院

计算机科学与技术系

微机原理与接口技术

课程设计报告

2008〜2009学年第1学期

 

课程

课程设计名称学学

微机原理与接口技术

夜班防睡控制/记录器

0604032020

网络工程专业(06网工2)

 

2009年1月

、需求分析和解决问题的思路

1.题义与需求分析1)任务分析

1每5分钟用一次较柔和的声音提醒值班者按复位键,之后计时重新开始。

2若计时到6分钟时,还没人按复位键,则以较急促的声音报警,黄灯闪烁。

3当到15分钟的时候红灯闪烁,并以持续尖锐的声音报警,以LEDS示分和秒。

2)功能分析

本设计主要是为了解决值班人员在值夜班时容易睡觉的问题。

设计中主要通

过扬声器发生来防止值班人员睡觉,每隔5分钟用较柔和的声音提醒值班人员一次,值班人员按下复位键重新即时,说明值班人员并未睡着;如果及时到6分钟

值班人员还没有按复位键,说明此时值班人员可能已经开始打盹,扬声器发出较急促的声音报警,并且黄灯闪烁,若此按下复位键,又重新计时;如果到了15

分钟还没有人按复位键,那么此时值班人员可能已经完全睡着,扬声器发出尖锐的声音报警,红灯闪烁,并以LED记录睡着的时间。

3)需要解决的问题

需要发声提醒,发声提醒又分为3种(较柔和,较急促,尖锐的声音),通过键盘复位,要红,黄灯闪烁。

还要将时间动态显示在LED显示器上,每秒刷新一次。

而且分秒显示共需4位数字,所以要有4个LED数码管进行控制。

秒控制的两位要在60秒后进位,分钟的两位加1,秒清零。

扬声器可用专门的扬声器电路,也要用PC机的喇叭实现。

2.解决问题方法及思路1)硬件部分

1PC机一台,并行接口8255A一片,LED数码管4只,发光二极管2只(红、黄各一只),开关一个,扬声器一只。

2利用扬声器发声报警,节拍由延时程序决定.

3使不同颜色的发光二极管按一定规律发光。

4使实验箱上的8255A作为输出接口,驱动二极管发光。

所用端口工作在方式0、输出即可。

5定义开关清零。

6PC7接开关,用作输入,控制复位。

7通过8255A来控制LED发光二极管的亮灭。

8PC0接扬声器、PC1接红灯、PC2接黄灯。

9二极管闪烁:

开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

0

0

1

0

0

A口

A口数据f

数据总线

0

0

1

0

1

B口

B口数据f

数据总线

0

0

1

1

0

C口

C口数据f

数据总线

0

1

0

0

0

A口

数据总线数据

fA口

0

1

0

0

1

B口

数据总线数据

fB口

0

1

0

1

0

C口

数据总线数据

fC口

0

1

0

1

1

写控制口

数据总线数据

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

V

VOL(DB)

OutputLowVoltage(DateBus)

0.45*

V

VOL(PER)

OutputLowVoltage(PeripheralPort)

0.45*

V

VOH(DB)

InputLowVoltage(DateBus)

2.4

V

VOH(PER)

InputLowVoltage(PeripheralPort)

2.4

V

Idar⑴

DartingtonDriveCurrent

-1.0

-4.0

mA

icc

PowerSupplyCurrent

120

mA

IlL

InputLoadCurrent

±10

A

loFL

OutputFloatLeakage

±10

A

输入最低电压:

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

二进制编码(字形)

0

0

0

1

1

1

1

1

1

3FH

1

0

0

0

0

0

0

1

1

03H

2

0

1

0

1

1

0

1

1

5BH

3

0

1

0

0

1

1

1

1

4FH

4

0

1

1

0

0

1

1

0

66H

5

0

1

1

0

1

1

0

1

6DH

6

0

1

1

1

1

1

0

1

7DH

7

0

0

0

0

0

1

1

1

07H

8

0

1

1

1

1

1

1

1

7FH

9

0

1

1

0

1

1

1

1

6FH

A

0

1

1

1

0

1

1

1

77H

B

0

1

1

1

1

1

0

0

7CH

C

0

0

1

1

1

0

0

1

69H

D

0

1

0

1

1

1

1

0

5EH

E

0

1

1

1

1

0

0

1

79H

F

0

1

1

1

0

0

0

1

71H

4)技术参数

表2-4LED技术参数

PCW

If

Vr

Ir

If

RP

对应型号

散射颜色

BT-235-270

25

5

>=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位控

制)

2)功能分析

如果使该位交替为''为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

Y

秒十位清零

分个位加1

返回设置间隔

图3-3进位判断

 

db

位选码

;重新显示下

;若一秒

判断c

0

;复位

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

outdx,al;

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

outdx,al

movcx,0fffhwaitt3:

loopwaitt3

decbx

jnesound3

popcx

popbx

popax

ret

strongalarmendpdelayproc;延时子程序

pushcx

movbl,20

del:

movcx,1000waitd:

loopwaitddecbl

jnzdel

popcx

ret

delayendp

initpciprocnear

mov

ah,00h

mov

al,03h

int

10h

mov

ah,0b1h

mov

al,01h

int

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

mov

io_bit8_baseaddress,cx

ret

initpciendpmodifyaddressprocnear

addcom_add,cx

addpa_add,cxaddpb_add,cxaddpc_add,cxretmodifyaddressendpexit:

movah,4ch

int21h

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