




免费预览已结束,剩余11页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术课程设计合肥学院计算机科学与技术系微机原理与接口技术课程设计报告20082009学年第1学期课程微机原理与接口技术课程设计名称夜班防睡控制/记录器学生姓名周 博学号0604032020专业班级网络工程专业(06网工2)指导教师龙 夏2009 年 1 月一、需求分析和解决问题的思路1 .题义与需求分析1) 任务分析每5分钟用一次较柔和的声音提醒值班者按复位键,之后计时重新开始。若计时到6分钟时,还没人按复位键,则以较急促的声音报警,黄灯闪烁。当到15分钟的时候红灯闪烁,并以持续尖锐的声音报警,以LED显示分和秒。2) 功能分析本设计主要是为了解决值班人员在值夜班时容易睡觉的问题。设计中主要通过扬声器发生来防止值班人员睡觉,每隔5分钟用较柔和的声音提醒值班人员一次,值班人员按下复位键重新即时,说明值班人员并未睡着;如果及时到6分钟值班人员还没有按复位键,说明此时值班人员可能已经开始打盹,扬声器发出较急促的声音报警,并且黄灯闪烁,若此按下复位键,又重新计时;如果到了15分钟还没有人按复位键,那么此时值班人员可能已经完全睡着,扬声器发出尖锐的声音报警,红灯闪烁,并以LED记录睡着的时间。3) 需要解决的问题需要发声提醒,发声提醒又分为3种(较柔和,较急促,尖锐的声音),通过键盘复位,要红,黄灯闪烁。还要将时间动态显示在LED显示器上,每秒刷新一次。而且分秒显示共需4位数字,所以要有4个LED数码管进行控制。秒控制的两位要在60秒后进位,分钟的两位加1,秒清零。扬声器可用专门的扬声器电路,也要用PC机的喇叭实现。2 .解决问题方法及思路1) 硬件部分PC机一台,并行接口8255A一片,LED数码管4只,发光二极管2只(红、黄各一只),开关一个,扬声器一只。利用扬声器发声报警,节拍由延时程序决定.使不同颜色的发光二极管按一定规律发光。使实验箱上的8255A作为输出接口,驱动二极管发光。所用端口工作在方式0、输出即可。定义开关清零。PC7接开关,用作输入,控制复位。通过8255A来控制LED发光二极管的亮灭。PC0接扬声器、PC1接红灯、PC2接黄灯。二极管闪烁:开|关 输出为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-1 8255A原理图表 2-1 8255A的操作功能表 A1 A0操 作数 据 传 送 方 式 0 0 1 0 0读 A 口A口数据 数据总线 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位和低四位;任何一个通道可以作输入/输出;输出是锁存的;输入是不锁存的;在方式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)Input 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功能分析 图 2-3 LED图示物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。工作原理:当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。数字成像:将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。实验中采用的是共阴极七段LED显示器,他由多个发光二极管组成,七段或八段笔画显示器,当段组发亮时,便可显示数字1位,七段代码的各位用作a-g和Dp的输入,当对应的位为1时,则该段亮。图2-4 LED内部结构示意图3) LED显示管段选码编码表表 2-3 LED段选码数字DPgfedcba二进制编码(字形)0001111113FH10000001103H2010110115BH3010011114FH40110011066H5011011016DH6011111017DH70000011107H8011111117FH9011011116FHA0111011177HB011111007CHC0011100169HD010111105EHE0111100179HF0111000171H4) 技术参数表 2-4 LED技术参数PCWIfVrIrIfRP对应型号散射颜色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则产生一个脉冲电流,该电流放大后驱动扬声器发出声音。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口高四位输入,低四位输出),LED动态显示时间(分、秒),用软件查询判断分秒的情况:当显示5:00 、6:00、15:00时,分别调用不同的发声子程序。显示期间若按复位键则时间从00:00开始计时。2) 控制程序流程图图 3-1主程序流程图图 3-2判断时间控制流程图 图 3-3进位判断33) 控制程序.MODELTINYpcibar3 equ1ch;8位i/o空间基地址(它就是实验仪的基地址, 也为dma & 32bitram板卡上的8237提供基地址) vendor_idequ 10ebh ;厂商id号device_idequ8376;设备id号.stack100.dataio_bit8_baseaddressdw?msg0 dbbios不支持访问pci $msg1 db找不到star pci9052板卡 $msg2 db读8位i/o空间基地址时出错$com_adddw00f3h;控制口偏移量pa_adddw00f0h;pa口偏移量pb_adddw00f1h;pb口偏移量pc_adddw00f2h;pc口偏移量.codeLight db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;存储表示数字的各段选码分别表示为0-9tim db 00h,00h,00h,00h;存储要显示的四个时间量start: mov ax,datamov 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 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 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+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 bxpush cx mov bx,10;叫声次数sound1: mov dx,pc_add mov al,11111110bout 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 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 ;蜂鸣器mov 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 initpciprocnearmovah,00hmoval,03hint10h;清屏movah,0b1hmoval,01hint1ahcmpah,0jzinitpci2leadx,msg0initpci1:movah,09hint21hjmpexitinitpci2: movah,0b1hmov al,02hmovcx,device_idmovdx,vendor_idmovsi,0int1ahjncinitpci3;是否存在star pci9052板卡leadx,msg1jmpinitpci1initpci3: movdi,pcibar3movah,0b1hmoval,09hint1ah;读取该卡pci9052基地址jncinitpci4leadx,msg2jmpinitpci1initpci4: andcx,0fffchmovio_bit8_baseaddress,cxretinitpci endpmodifyaddressprocnearaddcom_add,cxaddpa_add,cxaddpb_add,cxaddpc_add,cxretmodifyaddressendpexit: movah,4chint21hendstart四、设计结果分析及问题讨论1 .上机调试过程上机过程中由于事先对实验的具体实际要求理解不彻底,所以导致实验方案失败,重新修改了方案;上机运行后,数码管显示数字不对,经检查,发线问题出在数码转换表定义有误;程序的时间控制部分写得不够完善,导致计时到15分钟后报警音混乱。经思考,修改了程序。最后在报警声音方面上又遇到了问题,没有达到预期的声音逐渐增强的效果。通过反复的对声音模块参数的修改终于达到了预期效果。8253一直输出方波,使得蜂鸣器不停的发声。解决方法:在指定的发声位置调用发声延时并通过控制8253计数器2的门控信号控制发声的停止。将不同的发声程序定义不同的实现过程。蜂鸣器正常发声后,出现了不能及时将其关闭的问题,经过思考后决定采用8255的PC0作为GATE门控信号,对8253的计数器2进行控制,解决这个问题的关键是对8255的PC0进行置位/复位,以此来控制8253开始和停止输出方波。2 .课程设计结果及分析1) 设计结果程序开始运行时,四个LED灯从00分00秒开始显示时间,并隔相应的时间加一秒,一直显示到59分59秒,然后又从00分00秒开始显示,如此循环下去。当时间显示到50分00秒时,扬声器发出较柔和的声音,到60分00秒时,扬声器发出较急促的声音,黄灯闪烁,到15分00秒时,扬声器发出尖锐的报警声,红灯闪烁。每次拨开关为高电平时,LED灯就变成从00分00秒开始显示。2) 结果分析数码管的显示使用段选和位选的方法进行控制,即用位选来选择哪一个显示灯亮,用段选来控制显示器显示的时间值。设计中因为时间的确定决定着发声和灯亮的操作,故一定要设置一个时间数字的缓冲区,以便于对时间的变化进行查询。本次设计中最为重要的是定义段码表,其作用可归纳为:(1)初始状态时,时间为00:00这时要利用段码表提供的数和位选依次对各个位进行赋值。(此时偏移地址为0)(2)计时时通过改变缓冲区内的数值值,以此作为换码指令的偏移地址,通过换码指令得到应该在数码显示器中显示的时间值。时间变化过程中要进行查询,注意与0,5,6,10几个敏感的数值进行比较,通过比较进行相应的操作。功能扩展后,为了实现可控时间的发声,还需要与7、8、9三个数字进行比较,从而发出特定的报警声。本设计中峰鸣器的发声由8253完成,通过在计数器中打入不同的计数初值,使8253在特定的工作方式下实现峰鸣器发出不同频率和强度的报警声。8253要与8255的C口相连,8255向8253输出门控信号,通过对8255控制口写C口置位复位控制字,控制PC0置1,使8253以方式3产生方波,从而驱动蜂鸣器的发声。3) 收获、体会和建议通过本次课程设计,对8255的工作方式尤其是方式0有了进一步的了解。8255有三个8位端口PA,PB和PC,各端口都
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025技术顾问聘用合同书范本
- 敏捷人才发展模式-洞察及研究
- 2025公司租赁合同模板
- 2025股权激励计划合同股权转让操作流程
- 2025工程合同担保书(标准版)
- 冲压返修人员前安全培训课件
- 冲压安全生产培训心得
- 2025年二手房东租赁合同范本
- 2025年河北省农产品采购合同模板
- 冲击波碎石科课件
- 2025年化学检验工职业技能竞赛参考试题库(浓缩500题)
- 小学生育儿心得课件
- 电信人工智能学习考试题(附答案)
- 肝门部胆管癌诊断和治疗指南(2025版)解读课件
- 急诊危重症患者转运专家共识解读课件
- 《发芽小麦粉气流分级产品及其面筋蛋白品质的研究》
- 《手术室感染与预防》课件
- 医院美容科管理规章制度(3篇)
- 皮肤镜课件教学课件
- 民乐社团活动计划
- 社区街道网格员安全培训
评论
0/150
提交评论