收藏 分销(赏)

电子密码门锁设计重庆大学计硬机课程设计.doc

上传人:丰**** 文档编号:4530350 上传时间:2024-09-26 格式:DOC 页数:43 大小:9.31MB 下载积分:12 金币
下载 相关 举报
电子密码门锁设计重庆大学计硬机课程设计.doc_第1页
第1页 / 共43页
电子密码门锁设计重庆大学计硬机课程设计.doc_第2页
第2页 / 共43页


点击查看更多>>
资源描述
电子密码门锁设计重庆大学计硬机课程设计 43 2020年4月19日 文档仅供参考,不当之处,请联系改正。 计算机硬件技术基础课程设计 课题名称:电子密码门锁设计 专 业:自动化专业 班 级: 组 长: 组 员: 组 员: 指导老师:胡青 重庆大学自动化学院 9月 1 基本功能要求 1.1 主要内容: 设计一个密码门锁系统,以扬声器作为发声装置,以4*4键盘作为功能按键,根据预设的密码对门锁实现安全控制。只有密码完全符合才能开门,密码不符时控制扬声器发声报警。在计算机硬件实验系统基础上,自行完成扬声器模块的设计。 1. 密码为6位,输入密码能够开门或修改密码。 2. 用LED显示门的当前状态,以及当前功能状态。 3. 按下开门键,LED显示“输入密码”提示信息,用户输入密码后,若正确则门打开,按下关门键或打开5秒后关门。若密码错误则三色LED用红色显示“密码错”提示信息后,要求用户重新输入密码,3次错误后三色LED红绿交错显示错误提示信息,而且扬声器同时发声报警,按下返回键返回。 4. 若按下设置键,LED显示“输入密码”提示信息,用户输入密码,若正确则LED显示”修改密码“提示信息,要求用户输入新开门密码,按确认键保存新密码后返回,按返回键则放弃修改直接返回。若错误处理规则与开门相同。 2 组员分工 赵秋帆:开门和设置程序的编写,编写主程序将其它子程序整合以及整体调试。 李华东:硬件连线和8259部分中断程序、三色LED子程序的编写。 刘志君:8254部分硬件连线及程序的编写、相关例题的查询以及实验报告的撰写。 3 硬件设计 3.1 器件选择 实验箱上的5片可编程并行I/O口接口芯片8255A,1片可编程定时/计数器8254,1片中断控制器8259(A),6位8段共阴极LED,两个LED小灯以及三色共阳极LED和蜂鸣器。 3.2 器件功能分配设计 1. 4片固定可编程并行I/O口接口芯片8255A控制三个LED显示错误信息 2. 扩展可编程并行I/O口接口芯片8255A控制8段共阴极LED显示信息,同时控制扫描键盘。 3. 可编程定时/计数器8254完成关门定时,扬声器报警频率信号。 4. 中断控制器8259(A)控制中断。 5. 扬声器完成报警。 3.3 硬件连线 根据前面的分析以及器件功能分配,进行硬件连线 地址: 可编程并行I/O口接口芯片8255A接300H 可编程定时/计数器8254接320H 中断控制器8259A接340H 接线: 1. 可编程定时/计数器8254计数器0 CLK接频率信号47KHZ ,GATE接+5V, OUT接计数器 1的CLK 2. 可编程定时/计数器8254计数器1 CLK接计数器0的OUT口,GATE接+5V, OUT接8259IRQ0 3. 可编程定时/计数器8254计数器2 CLK接频率信号3MHZ, GATE接+5V,OUT接扬声器信号输入端 4. 扩展可编程并行I/O口接口芯片8255AA口接LED段选,B口接LED位选,b0接开关状态LED灯,b1接功能状态LED小灯,C口高四位接键盘列信号,低四位接键盘行信号 5. 中断控制器8259(A)INT1接INTR,SP/1接+5V,IRQ0接8254计数器1OUT 6. 蜂鸣器信号接8254计数器2OUT 硬件连线原理图如图 图3.3.1 8254定时/计数器原理图 图3.2.2 键盘接口原理图 图3.3.3 三色LED原理图 图3.3.4 8259原理图 4 软件设计 经过分析,电子密码门锁设计程序分两大部分。其一,开门功能程序,流程图如图2.2.1;其二,修改密码程序,流程图如图2.2.2。使用可编程并行I/O口接口芯片8255A控制6位8段共阴极LED显示提示信息和输入的密码、控制键盘扫描以及控制两个LED小灯分别显示功能状态和开关门状态;使用可编程定时/计数器8254完成计时5S和蜂鸣器信号生成;使用中断控制器8259A控制计时5S后完成自动关门与三色LED红绿交替功能,使用三色LED提示错误。 以下分别为开门程序流程图和设置程序流程图: 否 密码正确否 开始 LED显示当前功能状态及门的开关 开门键A按下 LED提示输入密码 否 是h 否 LED显示开门。计数器开始计时5s E是否按下 是h 错误计数器清零 返回 三色LED显示Error 错误计数器+1 错误三次 是h 否 蜂鸣器报警。错误计数器清零 三色led红绿交错 F是否按下 是h 否 图4.1.1 开门程序流程图 图4.1.2设置程序流程图 5 使用说明 3.1 功能及显示说明 1. 系统初始密码为000000(密码只能是6位); 2. 密码能够由0~9组成; 3. 开门5S后,自动返回关门状态; 4. 左侧LED小灯:功能指示灯,亮表示开门功能状态,灭表示设置功能状态; 5. 右侧LED小灯:开关门状态指示灯,亮表示打开,灭表示关闭; 6. 提醒输入密码显示为:INPUT; 7. 提醒修改密码显示为:CHANGE; 8. 提示密码错误显示为:Error; 9. 密码错误三色LED显示 为:Error(红色); 10. 错误三次三色LED显示 为:Error (红绿交替 ); 11. 错误三次蜂鸣器报警。 3.2 操作说明 1. A键---待机界面时进入开门功能; 2. B键---待机界面时进入设置功能; 3. E键---返回键,开门后,按下返回键返回关门状态 4. F键---确定键,显示提醒时,需按确定键继续; 输入密码后,按确认键确认 提示密码错误,需按确认键重新输入; 报警后,需按确认键返回关门状态。 6 结果显示 在实验板上结果显示 根据题目的要求, 经过调试运行程序,得到了各种情况如下: (1) 关门状态显示INPUT,如下图6.1.1 图6.1.1 关门状态显示情况 (2)输入密码状态显示,结果如图4.1.2 图6.1.2 输入密码状态显示情况 (2) 开门状态显示,结果如图6.1.3 图4.1.3 开门状态显示 (3) 改密码界面显示CHANGE,结果如图6.1.4 图6.1.4 改密码界面显示 (5) 密码输错三次,三色LED交替闪烁,结果如图6.1.5 图6.1.5 输错三次密码 7 总结 7.1 赵秋帆( 4692)心得体会: 赵秋帆( 4692)心得体会:这次课程设计中,我主要负责开门功能和设置功能的实现,并编写主函数,将其它成员编写的子函数整合在一起,在这次课程设计中,遇到了不少难点,比如,在实现“开门后5秒后关门,或者按关门键关门”该功能中,实现起来就颇为费劲,首先因为按键盘关门,有一个扫描的问题,在扫描程序中,如果不按键,就会一直扫描,没法跳出扫描程序段,就更没法执行5秒关门这一指令,于是,在这里使用了定时中断的方法,利用8254定时5秒,触发中断,使一自定义标志位置1,在按键扫描的程序中加入判断该标志位是否为1,为1则直接跳出扫描程序段,从而解决键盘扫描子程序不按键不可跳出的问题,使得“开门后5秒后关门,或者按关门键关门”该功能得以实现。再比如实现“显示开门或设置的功能状态和门的开关状态”这一功能时,原本是打算,将该两个状态的显示合二为一,一同显示在LED上,后来发现此举不太妥当,一方面因为,不能实时显示门的开关状态以及开门或者设置功能的状态,像显示“输入密码”或是“修改密码”之类需要占用LED显示的时候,就无法显示。另外一方面因为,这样所表示出来门的状态,实际上是比较虚假的,只是取了3个静止状态来表示门的状态:1.开门功能,关门状态2.开门功能,开门状态3.设置功能,关门状态。而门的开关状态,应该是独立出来,这样才更加符合实际。因此我们在这问题的解决上,使用了2个小灯,其中1盏的亮灭代表 开门和设置状态,另外一盏的亮灭代表门的开关状态。可是这样后,便有了新的问题,没有足够的输出口供使用,我们唯一能找到的输出口,只有控制LED6位位选的B口所剩下了2个输出口A1和A0,而要使用A1,A0,且使A1,AO独立起来,就必须在程序里面下功夫,使LED在正常显示的同时,且不影响A1,A0位。为了解决这一问题,我设置了一个名为LEG的存储单元,用来保存A1,A0的状态,在每个需要LED显示的地方,先将LEG的值赋予AL,再用或运算来控制前面六位的位选,从而达到LED正常显示,且不影响A1,A0的目的。 经过这次课程设计,我更加熟练地掌握了硬件基础的知识,复习了8254,8259,8255以及4*4键盘、单色LED、三色LED等硬件的使用,在这次课设中,我们遇到了不少困难,但都在小组的共同努力下,逐一解决,使我们虽然辛苦,却乐在其中。 7.2 李华东( 4678)的心得体会: 刚拿到这次课程设计的题目乍看了一下感觉并不难,刚有点松懈下来,结果到了实验室却发现这次实验大方向虽然简单,可是其中充满了复杂的小细节,在程序编写过程中也多次让我们小组的成员们绞尽脑汁。其中最突出的就是用led来显示提示信息,这原来是一个很简单的任务,在去年课程的学习中我们也对此驾轻就熟,可是到了实战却发现有好多我们想用的字母都拼不出来,为了避免引起界面混乱,我们不得不重新更改了我们的计划,添加了两个led小灯作为指示灯来显示工作状态与门的开关。这虽然加大了我们的工作量,可是却在理论上简化操作界面。可是难题又接踵而至——输出接口不够用了,在上述情况下我们的8255的a口用于段选,b口用于位选,c口用于接键盘,那么仅有的两个输出口就只能从位选上省,可是在led显示程序上位选的扫描显示程序又会影响到led小灯的暗灭。在我们百思不得其解的时候,组里的大神灵机一动,想出了先将寄存器数值(如10000000)与一个00000011再或一个01000000,保护了最后两位不受位选扫描的影响,这种解决问题的方法给了我很大的启发。这之后我们小组一路过关斩将,排除了一个个问题,终于将课设圆满完成。这其中也不乏各种难题,比如8259a中断部分程序的编写就给我造成了很大的困扰,在连续看了一天书之后我终于把它搞懂并完成了程序的编写。 总的来说,这次课程设计使我们熟悉了以前学过的知识,也是我们逐渐的掌握了一些思考方法以及提升了部分技能,同时,团队协作能力也得到了提升,收获不小,也让自己对未来增加了一些自信心。这次的课程设计我对为指令的设计和流程都有了更深的理解,进一步熟悉了计算机硬件技术原理的基本知识,同时也加深了解了模块化程序设计的基本过程,掌握了一些基本的软硬件设计知识并对其进行了基本的运用,在模块化程序设计中运用了很多知识,以及几块芯片8255、8254、8259来实现计数器、定时器、查询的功能等,即实现了对以往所学内容的复习,也让自己更加对她们的实际运用能力得到了增强,使自己比以前的动手能力与对课题的思考能力得到了增强。 经过实践,提高了我的实际操作能力,从以前所学理论上升到实践,真正做到了学有所用,同时也认识到了自己的不足之处,对转移指令、芯片工作方式等都不是很熟悉,可是自己受益匪浅。 7.3 刘志君( 4679)的心得体会: 以前上微机课的时候,因为自己的不重视,我都不知道,硬件到底是什么,用来做什么,怎样实现。当理论和实际发生隔阂,不知道怎样将学的枯燥无味了理论知识融入实际中,这种学习当然会十分苦恼,以至于学习激情大打折扣,因此对硬件连接和汇编语言掌握得一塌糊涂,这也使得这次课程设计一直跟不上组员的节奏。因此我只能尝试着完成组长赵秋帆交给我的一些简单的工作,同时边做边向她们请教。在程序的编写和调试方面我一直是出于半懵状态,在组长对各种状况想方设法进行解决的时候,虽然我并没有能力去给出什么决定性的建议,可是我也还是强迫自己尽可能的加入,尽可能的提出自己的看法。而在这半学习半时间的过程中,我也是学到了很多以前被抛却脑后的硬件连接和汇编知识。 虽然现在让我独自去完成这个课程设计我照样会感到困难,可是课程设计工作中的一部分事情我却相信自己能够做到很好了,比如说8255模块的硬件连接以及8254部分相关程序的编写。现在的我也理解了八段LED位选和段选的具体含义,位选用来控制几个LED灯的显示,而段选则控制这些LED灯显示的内容,也就是各笔画数码管的亮灭。虽然是很基础的知识,可是对于理解硬件连接和数据写入有很大的帮助。 总之,这次实践,补习了我理论课漏掉的知识,提高了我的实际操作能力,从以前所学理论上升到实践,真正做到了学有所用,同时也认识到了自己的不足之处,而且意识到所学理论知识的重要性,这虽然只是一次课程设计,却也是对以后工作的映射,理论学习是工作时间的基础,因此万万不可忽视。而且课程设计能够体现出团队合作程度,紧密合作加上明确分工,能够大大地提高设计速度,在动手设计之前,最好将设计所需要的数据,程序准备好,为了判断设计结果是否正确,有必要在准备阶段计算理论值。仔细分析指令的每一位,以及理清思路,在设计时做到胸有成竹。 8 附录 8.1 程序清单 .486 CODE SEGMENT USE16 ASSUME CS:CODE ORG 1000H BEGIN: JMP START SHOWINPUT DB 06H,37H,73H,3EH,31H,00H ;显示输入密码 SHOWCHANGE DB 39H,76H,77H,37H,7DH,79H ;显示修改密码 SHOWERROR DB 79H,50H,50H,5CH,50H,00H ;显示错误 SHOWSTOP DB 40H,40H,40H,40H,40H,40H ;显示横杠 INPUTWAT DB 40H,40H,40H,40H,40H,40H ;输入密码暂存 PASSWORD DB 3FH,3FH,3FH,3FH,3FH,3FH ;密码储存 PASSWORD1 DB 3FH,3FH,3FH,3FH,3FH,3FH ;密码备份 PASSNUM DB 6 ;输入密码计数标志 CHECKF DB 0 ;密码检测标志 ERRORNUM DB 3 ;错误计数 OTCOUT DB 0 ;开门后关门程序跳出标志 KEYZHI DB 0 LEG DB 1 ;**********************************************************主程序开始 START: LEA SI,INPUTWAT CALL CLR ;清除输入密码存储单元 MOV DX,20CH ;四片8255初始化 MOV EAX,80808080H OUT DX,EAX MOV DX,30CH ;扩展8255控制字,AB输出,C高出低入 MOV AL,81H OUT DX,AL MOV DX,32CH ;8254计数器0初始化工作在方式2下 MOV AL,34H OUT DX,AL MOV DX,32CH ;8254计数器1初始化工作在方式0下与计数器0级联计时5S MOV AL,50H OUT DX,AL MOV DX,32CH ;8245计数器2初始化工作在方式3下 MOV AL,10110110B OUT DX,AL MOV DX,340H ;初始化8259 写ICW1 MOV AL,B OUT DX,AL MOV DX,348H ;写ICW2中断类型号为40H~47H MOV AL,40H OUT DX,AL MOV DX,348H ;写ICW4 MOV AL,01H OUT DX,AL MOV DX,348H ;写OCW1,开放所有IR MOV AL,00H OUT DX,AL CLI ;填开门后关门跳出中断向量 MOV DS,AX MOV BX,4*40H MOV AX,OFFSET INTOTCOUT MOV [BX],AX MOV AX,SEG INTOTCOUT MOV [BX+2],AX ;**********************************************************开门功能程序 OPENDOOR: AND LEG,11111101B ;功能指示灯亮 MOV DX,304H MOV AL,LEG OUT DX,AL OSHOWINP: LEA BX,SHOWINPUT ;显示输入密码提示,按下F确认 CALL SHOWANDKEY CMP CL,0B7H JZ SETTING CMP CL,77H JNZ OSHOWINP PAA: LEA SI,INPUTWAT CALL CLR PA0: MOV PASSNUM,06H ;输入密码,按下D键能够消除上一次输入,按下E键能够重新输入,输入完成后按下F键确认 LEA SI,INPUTWAT PAL: LEA BX,INPUTWAT CALL SHOWANDKEY JMP PA PASSN: LEA BX,INPUTWAT CALL SHOWANDKEY PA: CALL KEYTOSHOW INC SI DEC PASSNUM JNZ PASSN PA3: CALL SHOWANDKEY CMP CL,77H JZ PA2 JMP PA3 PA2: MOV PASSNUM,06H CALL CHECK ;调用密码匹配 CMP CHECKF,01H JNZ PASSER PASSRI: AND LEG,11111110B MOV DX,304H ;功能指示灯亮 MOV AL,LEG OUT DX,AL ;密码正确,开门指示灯亮,按下E键或者5秒后关门 STI CALL OPENTOCLOSE CALL SHOWANDKEY CMP CL,7BH JNZ PASSRI CLI OR LEG,00000001B MOV ERRORNUM,3 JMP START PASSER: CALL LER3 MOV DX,328H ;计数器2报警解除计数初值 MOV AX,0 OUT DX,AL MOV AL,AH OUT DX,AL JMP START ;************************************************************设置功能程序 SETTING:MOV DX,304H ;功能指示灯灭 OR LEG,00000010B MOV AL,LEG OUT DX,AL SSHOWINP:LEA BX,SHOWINPUT ;提示输入密码 CALL SHOWANDKEY CMP CL,0BBH JZ OPENDOOR CMP CL,77H JNZ SSHOWINP PBB: LEA SI,INPUTWAT CALL CLR ;输入密码 PB0: MOV PASSNUM,06H ;按下D键能够消除上一次输入,按下E键能够重新输入,输入完成后按下F键确认 LEA SI,INPUTWAT PBL: LEA BX,INPUTWAT CALL SHOWANDKEY JMP PB PASSN1: LEA BX,INPUTWAT CALL SHOWANDKEY PB: CALL KEYTOSHOW INC SI DEC PASSNUM JNZ PASSN1 PB3: CALL SHOWANDKEY CMP CL,77H JZ PB2 JMP PB3 PB2: MOV PASSNUM,06H CALL CHECK ;调用密码匹配 CMP CHECKF,01H JNZ PASSERL PASSRI1: ;密码正确,提示修改密码,按下F继续 LEA BX,SHOWCHANGE CALL SHOWANDKEY CMP CL,77H JNZ PASSRI1 PCC: LEA SI,PASSWORD1 CALL CLR ;输入新密码 PC0: MOV PASSNUM,06H ;按下D键能够消除上一次输入,按下E键能够重新输入,输入完成后按下F键确认 LEA SI,PASSWORD1 PCL: LEA BX,PASSWORD1 CALL SHOWANDKEY JMP PC CHANGE: LEA BX,PASSWORD1 CALL SHOWANDKEY PC: CALL KEYTOSHOW INC SI DEC PASSNUM JNZ CHANGE PC3: CALL SHOWANDKEY CMP CL,77H JZ YESNO JMP PC3 YESNO: LEA BX,PASSWORD1 CALL SHOWANDKEY ;按下E键取消修改并返回 CMP CL,7BH JZ NO YES: CMP CL,77H ;修改成功,按F确定并返回 JNZ YESNO LEA BX,PASSWORD1 LEA SI,PASSWORD MOV AH,0 CLEAR1: MOV AL,AH XLAT MOV BYTE PTR[SI],AL INC SI INC AH CMP AH,06H JNZ CLEAR1 NO: JMP START PASSERL:CALL LER3 MOV DX,328H ;计数器2报警解除计数初值 MOV AX,0 OUT DX,AL MOV AL,AH OUT DX,AL LEA SI,INPUTWAT CALL CLR JMP START CLR PROC NEAR MOV AL,6 INPUTWATL:MOV BYTE PTR [SI],40H INC SI DEC AL JNZ INPUTWATL RET CLR ENDP SHOWANDKEY PROC NEAR SHOWSTATEL: MOV AH,00H MOV KEYZHI,80H ;位选 SHOWSTATEL1:MOV AL,AH XLAT MOV DX,300H OUT DX,AL ;送段 MOV DX,304H MOV AL,LEG OR AL,KEYZHI OUT DX,AL ;送位选 ROR KEYZHI,1 INC AH ;位选向右移位 KSCANL: MOV CL,0EFH ;按键扫描 NXTCOLL:MOV AL,CL MOV DX,308H OUT DX,AL IN AL,DX AND AL,0FH CMP AL,0FH JNZ FNDKEYL ROL CL,1 JC NXTCOLL CMP OTCOUT,1 JNZ LL MOV CL,7BH MOV OTCOUT,0 RET LL: CMP AH,06H JZ SHOWSTATEL JMP SHOWSTATEL1 FNDKEYL:AND CL,0F0H ;键特征值形成 OR CL,AL CALL SHOWHENG CALL DELY KEYUPL: MOV AL,0 ;按键防抖动 MOV DX,308H OUT DX,AL IN AL,DX AND AL,0FH CMP AL,0FH JNZ KEYUPL RET SHOWANDKEY ENDP ;***************************************************键特征值到短代码的转换 KEYTOSHOW PROC NEAR CMP CL,0EEH ;0 JNZ KL1 MOV BYTE PTR[SI],3FH RET KL1: CMP CL,0EDH ;1 JNZ KL2 MOV BYTE PTR[SI],06H RET KL2: CMP CL,0EBH ;2 JNZ KL3 MOV BYTE PTR[SI],5BH RET KL3: CMP CL,0E7H ;3 JNZ KL4 MOV BYTE PTR[SI],4FH RET KL4: CMP CL,0DEH ;4 JNZ KL5 MOV BYTE PTR[SI],66H RET KL5: CMP CL,0DDH ;5 JNZ KL6 MOV BYTE PTR[SI],6DH RET KL6: CMP CL,0DBH ;6 JNZ KL7 MOV BYTE PTR[SI],7DH RET KL7: CMP CL,0D7H ;7 JNZ KL8 MOV BYTE PTR[SI],07H RET KL8: CMP CL,0BEH ;8 JNZ KL9 MOV BYTE PTR[SI],7FH RET KL9: CMP CL,0BDH ;9 JNZ KLA MOV BYTE PTR[SI],6FH RET KLA: CMP CL,0BBH ;A JNZ KLB MOV BYTE PTR[SI],77H RET KLB: CMP CL,0B7H ;B JNZ KLC MOV BYTE PTR[SI],7CH RET KLC: CMP CL,7EH ;C JNZ KL0 MOV BYTE PTR[SI],39H KL0: RET KEYTOSHOW ENDP ;********************************************************密码检测程序 CHECK PROC NEAR LEA SI,INPUTWAT LEA DI,PASSWORD CHECKL0:MOV AL,BYTE PTR[SI] MOV AH,BYTE PTR[DI] CMP AL,AH JNZ CHECKER INC SI INC DI DEC PASSNUM JZ CHECKRI JMP CHECKL0 CHECKER:MOV CHECKF,0 MOV PASSNUM,06H RET CHECKRI:MOV CHECKF,1 MOV PASSNUM,06H RET CHECK ENDP ;***********************************************延时子程序 DELY PROC NEAR PUSH CX MOV CX,0FFFFH DELY_L0:LOOP DELY_L0 POP CX RET DELY ENDP ;***********************************************三色LED子程序 LER3 PROC NEAR DEC ERRORNUM JZ WAR MOV DX,200H ;5片8255给段选(每片前一个) MOV EAX, 0FFAFAF86H OUT DX,EAX MOV DX,204H ;5片8255给段选(每片后一个) MOV EAX, 0FFFFA3AFH OUT DX,EAX MOV DX,208H ;三色LED底色为红色 MOV EAX,05050505H OUT DX,EAX ABC: LEA BX,SHOWERROR CALL SHOWANDKEY ;判断是否按下返回 CMP CL,77H JNZ ABC RET WAR: MOV DX,328H ;错误三次,计数器2报警计数初值 MOV AX,30000 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,200H ;5片8255给段选(每片前一个) MOV EAX,0FFAFAF86H OUT DX,EAX MOV DX,204H ;5片8255给段选(每片后一个) MOV EAX,0FFFFA3AFH OUT DX,EAX RETURN: LEA BX,SHOWERROR MOV DX,208H ;三色LED红绿交替 MOV EAX,0A0A0A0AH OUT DX,EAX CALL DELY MOV DX,208H MOV EAX,05050505H OUT DX,EAX CALL DELY STI CALL ABCD CALL SHOWANDKEY ;判断是否按下返回 CMP CL,77H CLI JNZ RETURN MOV ERRORNUM,03H RET LER3 ENDP ;*****************************************************开门后关门跳出标识符中断程序 INTOTCOUT PROC NEAR MOV OTCOUT,1 MOV AL,20H MOV DX,340H OUT DX,AL IRET INTOTCOUT ENDP ;*******************************************************开门后关门在程序 OPENTOCLOSE PROC NEAR MOV DX,320H MOV AX,47000 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,324H MOV AL,5 OUT DX,AL RET OPENTOCLOSE ENDP ABCD PROC NEAR MOV DX,320H MOV AX,10000 OUT DX,AL MOV AL,AH OUT DX,AL MOV DX,324H MOV AL,1 OUT DX,AL RET ABCD ENDP ;***************************************************** SHOWHENG PROC NEAR MOV AL,40H ;LED显示为横杠 MOV DX,300H OUT DX,AL MOV DX,304H MOV AL,LEG OR AL,11111100B OUT DX,AL RET SHOWHENG ENDP CODE ENDS END START 8.2 参考文献 [1] 仰天怡,邓亚平,黄勤 《计算机硬件技术基础》重庆大学出版社, [2] 黄勤,高富强,杨天怡 《计算机硬件技术基础实验教程》重庆大学出版社,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服