ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:283.05KB ,
资源ID:7041387      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7041387.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(夜班防睡控制+记录器.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、夜班防睡控制+记录器一、需求分析和解决问题的思路1 .题义与需求分析1) 任务分析每5分钟用一次较柔和的声音提醒值班者按复位键,之后计时重新开始。若计时到6分钟时,还没人按复位键,则以较急促的声音报警,黄灯闪烁。当到15分钟的时候红灯闪烁,并以持续尖锐的声音报警,以LED显示分和秒。2) 功能分析本设计主要是为了解决值班人员在值夜班时容易睡觉的问题。设计中主要通过扬声器发生来防止值班人员睡觉,每隔5分钟用较柔和的声音提醒值班人员一次,值班人员按下复位键重新即时,说明值班人员并未睡着;如果及时到6分钟值班人员还没有按复位键,说明此时值班人员可能已经开始打盹,扬声器发出较急促的声音报警,并且黄灯闪

2、烁,若此按下复位键,又重新计时;如果到了15分钟还没有人按复位键,那么此时值班人员可能已经完全睡着,扬声器发出尖锐的声音报警,红灯闪烁,并以LED记录睡着的时间。3) 需要解决的问题需要发声提醒,发声提醒又分为3种(较柔和,较急促,尖锐的声音),通过键盘复位,要红,黄灯闪烁。还要将时间动态显示在LED显示器上,每秒刷新一次。而且分秒显示共需4位数字,所以要有4个LED数码管进行控制。秒控制的两位要在60秒后进位,分钟的两位加1,秒清零。扬声器可用专门的扬声器电路,也要用PC机的喇叭实现。2 .解决问题方法及思路1) 硬件部分PC机一台,并行接口8255A一片,LED数码管4只,发光二极管2只(

3、红、黄各一只),开关一个,扬声器一只。利用扬声器发声报警,节拍由延时程序决定.使不同颜色的发光二极管按一定规律发光。使实验箱上的8255A作为输出接口,驱动二极管发光。所用端口工作在方式0、输出即可。定义开关清零。PC7接开关,用作输入,控制复位。通过8255A来控制LED发光二极管的亮灭。PC0接扬声器、PC1接红灯、PC2接黄灯。二极管闪烁:开|关 输出为0则亮,输出为1则灭。2) 软件部分 程序部分首先进行初始8255,然后进行时间显示,初值显示00分00秒,四个显示器每个显示10ms,接着秒个位加1,进行下一次显示,当秒个位为10时,秒十位加1,同时秒个位清零.当秒十位为6时,分个位加

4、1,秒位清零,依次显示。当显示为5分00秒时,发出控制信号使扬声器发出柔和的声音,此时,若有人拨动开关,则四个显示器全清零,又从00分00秒开始显示。当显示5分00秒时,发出轻微的柔和的报警声, 当显示6分00秒时,发出急促的报警声,发出控制信号使黄灯闪烁。当显示为15分00秒时,扬声器持续发出尖锐的报警声,发出控制信号使红灯闪烁。二、硬件设计1 .芯片8255-A1) 8255A在本设计中的作用8255A作为输出接口,驱动二极管发光。所用端口工作在方式0。控制发光二极管的亮灭。A口,B口控制LED数码显示管,C口低四位分别接扬声器,红灯,黄灯。高四位中的Pc4接开关,用于输入信号,使系统复位

5、。2) 8255A的功能分析 8255方式0是基本输入/输出方式,A、B、C三个口中任何一个口都可提供简单的输入和输出操作,不需要应答联络信号,即可用于无条件传送的场合,也可以用作查询方式传送。当采用查询方式传送时,原则上可用A、B和C三个口的任一位充当查询信号,但通常都是选用C口充当查询信号,这和C口的编程有关。通常把C口的4位(高4位或低4位)规定为输出口,用以输出一些控制信号,把C口的另4位规定为输人口,用以输入外设的状态。3) 8255A原理图及功能表图 2-1 8255A原理图表 2-1 8255A的操作功能表 A1 A0操 作数 据 传 送 方 式 0 0 1 0 0读 A 口A口

6、数据 数据总线 0 0 1 0 1读 B 口B口数据 数据总线 0 0 1 1 0读 C 口C口数据 数据总线 0 1 0 0 0写 A 口数据总线数据 A口 0 1 0 0 1写 B 口数据总线数据 B口 0 1 0 1 0写 C 口数据总线数据 C口 0 1 0 1 1写控制口数据总线数据 控制口8255A有三种工作方式,用户可以通过编程来设置。4) 8255A的方式控制字图 2-2 8255A方式控制字5) 方式0的工作特点这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。其功能为:两个8位通道:通道A、B。两个四位通道:通道C高4位和低四位;任何

7、一个通道可以作输入/输出;输出是锁存的;输入是不锁存的;在方式0时各个通道的输入/输出可有16种不同的组合。6) 8255部分技术参数表 2-2 8255A技术参数SymbolParameterMinMaxUnitVILInput Low Voltage-0.50.8VVIHInput High Voltage2.0VCCVVOL(DB)Output Low Voltage(Date Bus)0.45*VVOL(PER)Output Low Voltage(Peripheral Port)0.45*VVOH(DB)Input Low Voltage(Date Bus)2.4VVOH(PER)I

8、nput Low Voltage(Peripheral Port)2.4VIDAR(1)Dartington Drive Current-1.0-4.0mAICCPower Supply Current120mAIILInput Load Current10AIOFLOutput Float Leakage10A输入最低电压:min -0.5V,max 0.8 V,输入最高电压:2.0 V。输出最低电压:0.45 V输出最高电压:2.4 V。2 .LED显示器1) 作用LED发光二级管(Light-Emitting Diode),在本设计中采用7段数字发光二级管,做为终端显示。2) LED功能

9、分析 图 2-3 LED图示物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。工作原理:当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。数字成像:将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。实验中采用的是共阴极七段LED显示器,他由多个发光二极管组成,七段或八段笔画显示器,当段组发亮时,便可显示数字1位,七段代码的各位用作a-g和D

10、p的输入,当对应的位为1时,则该段亮。图2-4 LED内部结构示意图3) LED显示管段选码编码表表 2-3 LED段选码数字DPgfedcba二进制编码(字形)0001111113FH10000001103H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FHA0111011177HB011111007CHC0011100169HD010111105EHE0111100179HF0111000171H4) 技术参数表 2-4 LED技术参数PCWIfVr

11、IrIfRP对应型号散射颜色BT-235-270255=1.5=2.5200SEL-10红色3 .单刀双掷开关1) 开关的作用本次设计需要用1位开关,用于检测值班者是否睡着。 +5V图 2-5 单刀双掷开关2) 开关的功能分析开关闭合输入0,开关断开输入1。3) 技术参数开关高电平:+5V、低电平:0V实验中单刀双掷开关接地,即通过8255,PC5检测到为0,当值班者拨动开关接+5V电压时,PC5检测到为1(即相当于值班者按动按扭)4 .扬声器1) 作用本次设计需要扬声器发出三种不同频率的响声,由8255的PC0控制(第0位控制)2) 功能分析如果使该位交替为0为1则产生一个脉冲电流,该电流放

12、大后驱动扬声器发出声音。5 .硬件总逻辑图及其说明图 2-8 硬件总逻辑图上图所示为数码显示管逻辑总图,图中所用到的为一片8255芯片、1位开关、4个七段LED数码显示管、红灯和黄灯。将PCI的CS、A0、A1分别接8255A的CS、A0、A1,8255A的PA0PA7接入数码管选择脚, PB0PB7分别与数码管段码相连,作为段选择。8255的A口,B口控制LED数码显示管,C口低四位作输出口,PC0接扬声器,PC1接黄灯,PC2接红灯,高四位作输入口,PC7接开关。三、控制程序设计1) 控制程序设计思路说明首先将8255初始化(设置8255A的控制方式,A口、B口用于输出C口高四位输入,低四

13、位输出),LED动态显示时间(分、秒),用软件查询判断分秒的情况:当显示5:00 、6:00、15:00时,分别调用不同的发声子程序。显示期间若按复位键则时间从00:00开始计时。2) 控制程序流程图图 3-1主程序流程图图 3-2判断时间控制流程图 图 3-3进位判断3) 控制程序.MODEL TINY pcibar3 equ 1ch ;8位i/o空间基地址(它就是实验仪的基地址, 也为dma & 32bitram板卡上的8237提供基地址) vendor_id equ 10ebh ;厂商id号device_id equ 8376 ;设备id号.stack 100.data io_bit8_

14、baseaddress dw ? msg0 db bios不支持访问pci $msg1 db 找不到star pci9052板卡 $msg2 db 读8位i/o空间基地址时出错$ com_add dw 00f3h ;控制口偏移量pa_add dw 00f0h ;pa口偏移量pb_add dw 00f1h ;pb口偏移量pc_add dw 00f2h ;pc口偏移量.code Light db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;存储表示数字的各段选码分别表示为0-9tim db 00h,00h,00h,00h ;存储要显示的四个时间量start:

15、mov ax,data mov ds,ax nop call initpci call modifyaddress ;根据pci提供的基地址,将偏移地址转化为实地址main: mov dx,com_add ;写8255a方式控制字mov al,88h ;设置端口a为工作方式0输出端口 mov al,10001000b;pc4为输入,pc3到pc0为输出;端口b 为输出并工作在方式0out dx,almov dx,pc_add mov al,11111111bout dx,almov si,offset tim;设置tim的偏移地址于si中init: mov ah,1 mov si,ah mov

16、 si+1,ahmov si+2,ah mov si+3,ahgo: mov ah,30 ;设置一秒钟循环显示的次数ctrl: mov di,offset tim+3 mov cl,11111110b ;位选码disp: mov al,dimov bx,offset lightxlat mov dx,pb_add ;写入端口bout dx,al ;将从light空间内读取的段选码输入到端口bmov al,clmov dx,pa_addout dx,al ;将位选码送入端口a call delay ;调用延时子程序cmp cl,11110111b jz timingdec dirol cl,1

17、jmp disp ;重新显示下一位guodu: jmp gotiming: dec ah jnz ctrl ;若一秒未显示30次则转向以上显示四个时间量的程序显示30次 mov dx,pc_add ;判断c口开关端口pc7输入是否为0in al,dxtest al,10000000b jnz init ;复位mov al,0mov ah,1mov bl,5mov bh,6 mov ch,10 add si+3,ah ;秒个数的时间量加1 cmp si,ah jb min5 cmp si+1,bl jb callh call strongalarm jmp timeadmin5: cmp si+

18、1,bl jnz min6 call softalarm jmp timeadmin6: cmp si+1,bh jb timead call hurryalarmcallh: call hurryalarm jmp timeadtimead: cmp si+3,ch jnz go mov si+3,al add si+2,ah cmp si+2,bh jnz guodu mov si+2,al add si+1,ah cmp si+1,ch jnz guodu mov si+1,al add si,ah jmp gosoftalarm proc ;柔和声音子程序push axpush bxp

19、ush cx mov bx,10 ;叫声次数sound1: mov dx,pc_add mov al,11111110b out dx,al ;蜂鸣器 mov cx,0fffh ;延时wait1: loop wait1mov al,11111111bout dx,almov cx,0fffh ;延时每次叫声持续的时间waitt1: loop waitt1dec bxjne sound1pop cxpop bxpop axretsoftalarm endphurryalarm proc ;急促声音伴随黄灯闪烁子程序push axpush bxpush cxmov bx,25sound2: mov

20、 dx,pc_add mov al,11111100b out dx,al ;蜂鸣器mov cx,0fffh ;延时wait2: loop wait2 mov al,11111111bout dx,almov cx,0fffhwaitt2: loop waitt2dec bxjne sound2pop cxpop bxpop axrethurryalarm endpstrongalarm proc ;尖锐声音伴随红灯闪烁子程序push axpush bxpush cxmov bx,50sound3: mov dx,pc_add mov al,11111010b out dx,al ;蜂鸣器mo

21、v cx,0fffh ;延时wait3: loop wait3 mov al,11111111bout dx,almov cx,0fffhwaitt3: loop waitt3dec bxjne sound3pop cxpop bxpop axretstrongalarm endpdelay proc ;延时子程序push cx mov bl,20del: mov cx,1000waitd: loop waitd dec bl jnz del pop cx ret delay endp initpci proc near mov ah,00h mov al,03h int 10h ;清屏mov

22、 ah,0b1h mov al,01h int 1ah cmp ah,0 jz initpci2 lea dx,msg0 initpci1: mov ah,09h int 21h jmp exit initpci2: mov ah,0b1h mov al,02h mov cx,device_id mov dx,vendor_idmov si,0 int 1ah jnc initpci3 ;是否存在star pci9052板卡lea dx,msg1 jmp initpci1 initpci3: mov di,pcibar3 mov ah,0b1hmov al,09hint 1ah ;读取该卡pc

23、i9052基地址jnc initpci4 lea dx,msg2 jmp initpci1 initpci4: and cx,0fffch mov io_bit8_baseaddress,cxret initpci endpmodifyaddress proc near add com_add,cx add pa_add,cx add pb_add,cx add pc_add,cx ret modifyaddress endpexit: mov ah,4ch int 21hend start四、设计结果分析及问题讨论1 .上机调试过程上机过程中由于事先对实验的具体实际要求理解不彻底,所以导致实

24、验方案失败,重新修改了方案;上机运行后,数码管显示数字不对,经检查,发线问题出在数码转换表定义有误;程序的时间控制部分写得不够完善,导致计时到15分钟后报警音混乱。经思考,修改了程序。最后在报警声音方面上又遇到了问题,没有达到预期的声音逐渐增强的效果。通过反复的对声音模块参数的修改终于达到了预期效果。8253一直输出方波,使得蜂鸣器不停的发声。解决方法:在指定的发声位置调用发声延时并通过控制8253计数器2的门控信号控制发声的停止。将不同的发声程序定义不同的实现过程。蜂鸣器正常发声后,出现了不能及时将其关闭的问题,经过思考后决定采用8255的PC0作为GATE门控信号,对8253的计数器2进行

25、控制,解决这个问题的关键是对8255的PC0进行置位/复位,以此来控制8253开始和停止输出方波。2 .课程设计结果及分析1) 设计结果程序开始运行时,四个LED灯从00分00秒开始显示时间,并隔相应的时间加一秒,一直显示到59分59秒,然后又从00分00秒开始显示,如此循环下去。当时间显示到50分00秒时,扬声器发出较柔和的声音,到60分00秒时,扬声器发出较急促的声音,黄灯闪烁,到15分00秒时,扬声器发出尖锐的报警声,红灯闪烁。每次拨开关为高电平时,LED灯就变成从00分00秒开始显示。2) 结果分析数码管的显示使用段选和位选的方法进行控制,即用位选来选择哪一个显示灯亮,用段选来控制显示

26、器显示的时间值。设计中因为时间的确定决定着发声和灯亮的操作,故一定要设置一个时间数字的缓冲区,以便于对时间的变化进行查询。本次设计中最为重要的是定义段码表,其作用可归纳为:(1)初始状态时,时间为00:00这时要利用段码表提供的数和位选依次对各个位进行赋值。(此时偏移地址为0)(2)计时时通过改变缓冲区内的数值值,以此作为换码指令的偏移地址,通过换码指令得到应该在数码显示器中显示的时间值。时间变化过程中要进行查询,注意与0,5,6,10几个敏感的数值进行比较,通过比较进行相应的操作。功能扩展后,为了实现可控时间的发声,还需要与7、8、9三个数字进行比较,从而发出特定的报警声。本设计中峰鸣器的发

27、声由8253完成,通过在计数器中打入不同的计数初值,使8253在特定的工作方式下实现峰鸣器发出不同频率和强度的报警声。8253要与8255的C口相连,8255向8253输出门控信号,通过对8255控制口写C口置位复位控制字,控制PC0置1,使8253以方式3产生方波,从而驱动蜂鸣器的发声。3) 收获、体会和建议通过本次课程设计,对8255的工作方式尤其是方式0有了进一步的了解。8255有三个8位端口PA,PB和PC,各端口都可由程序设定为各种不同的工作方式。在本设计中A口工作于方式0,低4位用作位选码;B口工作于方式0,8位用于段选码,C口也工作于方式0,高4位用于输入口,低4位用于输出口。通

28、过本次课程设计对七段LED数码显示器的发光原理有了进一步的了解。发光二极管是一种当外加电压(阳极电压接高电位)超过额定电压时发生击穿,并因此能产生可见光的器件。数码显示管通常由多个发光二极管来组成7段或8段笔画显示器,当段组合发亮时,便可显示某一数码或字符。本设计有4位七段LED接口电路,共有4个七段发光二极管的器件。为了减少所用器件的数量,这个电路可以和4个8位并行输出口连接。4个显示器共用同一组段代码输出线,但通过数位选择线,在任何时间内只有一个显示器能够显示其代码。为了实现这一功能,可让每个显示器接通一小段时间,以显示其对应的数,并且循环显示这4个数,以达到一秒的时间。这样可,人们看上去好象4个显示器都在同时显示。充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。上理论课时总是觉得有些枯燥,因为太抽象.虽然平时通过实验课把老师设计的东西看懂并动手做一遍能够帮助我们在一定程度上加深了对理论知识的理解,但是还是不够深刻.通过此次课

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

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