说明书格式样本_第1页
说明书格式样本_第2页
说明书格式样本_第3页
说明书格式样本_第4页
说明书格式样本_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中北大学微机原理与汇编语言课程设计说明书学生姓名高银基学 号1414010839学 院软件学院专 业软件工程题 目图形编辑器小组成员高银基 甄诚 张志伟 马腾飞 高强指导教师: 陈够喜 潘广贞 马巧梅 乔道迹 2016年12月 目 录1 需求分析11.1设计背景11.2 设计目的11.3 设计内容11.4 设计要求22 设计方案32.1 设计思想32.2 所用芯片工作原理32.3 数码管显示原理43 详细设计53.1 电路设计53.2 检测与报警器程序设计流程图63.3 程序参数说明73.4 程序源代码73.4.1 开关检测与报警程序代码73.4.2 ADJ电位器检测与报警程序代码114 设计

2、总结165 参考文献17171 需求分析1.1设计背景现在社会存在越来越多的安全问题,随着各种事故的发生,安全已经成为当下最值得关注和解决的问题。随着安全问题关注度的提高,许多关于安全方面的技术应用而生,检测与报警器就是用来解决安全这方面的问题的。众所周知,随着人们生活水平的不断提高,汽车已然成为人们生活中不可或缺的一部分,但是随着而来的是车辆被盗的数量逐年上升,这给社会带来极大的不安定因素,担心车辆被盗,成为困扰每一位汽车用户的难题。所以在车辆上安装防盗报警系统是很有必要的。还有很多别的地方也都用到了检测,尤其是在一些是实验中需要检测压力,温度等,当超过某一个值的时候可能会使器件发生故障,甚

3、至可能会引发一些事故,所以为了安全问题进行适当的检测是很必要的。1.2 设计目的这次汇编语言程序设计课程设计,可以通过硬件实现检测与报警系统。此系统可以应用于汽车防盗报警,使用报警系统在很大程度上有效的保护了国家和人民的财产安全,同时车辆防盗报警系统的使用也减少了盗窃犯罪事件的发生,起到了一定威慑的作用。检测报警系统也可以应用于检测压力与温度等,当压力与温度超过安全值的时候通过警报让人们产生警觉,从而对所检测的值进行控制,使它的值低于临界值,这样可以避免一些不必要的事故发生,保证了人们生命和财产的安全。在此次课程设计中最主要的目的是通过课程设计巩固以前学过的知识,熟练掌握汇编语言程序设计的知识

4、,并把软件工程中学到的知识应用于实践中,熟悉在一个系统的设计中应该有哪些步骤。锻炼我们写文档的能力。通过课程设计可以把理论与实践相结合,在加强了对理论知识的了解的同时也增强了自己的动手能力。还有在课程设计过程中可以培养团队合作的精神。1.3 设计内容根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255芯片和LED显示器熟悉了解和掌握。设计中主要完成的是发声报警,发光报警和LED显示器计时这三部分功能,故在程序设计中只要设计触动开关则8个LED指示灯不停闪烁,同时内部扬声器发出警报声。光闪和警报声结束后,LED显示器开始计时。在检测报警过程中,主要实现的是ADJ检测。检测过程中会在L

5、ED显示器上显示相应的检测数据。若检测的数据超过给定的范围,就会发出警报。1.4 设计要求(1)设计硬件电路 ,说明信号连接情况; (2)编写控制程序,并调试至能完成其功能并正确检测与报警为止; (3)编写实验周预习报告及设计报告。2 设计方案2.1 设计思想设有此系统为汽车防盗报警系统,当有人触碰汽车时便会发出间断警报声,车灯循环闪烁,一段时间后警报声停止,并且车灯停止循环闪烁,此时开始倒计时,如果在倒计时期间车再次被触碰,则发出持续警报声并车灯整体闪烁,一段时间后警报声停止并且车灯停止闪烁,如果汽车没有被再次触碰,则倒计时结束后即停止。根据现有实验箱的一组实验电路,我们模拟了汽车防盗报警系

6、统,当触动开关时,内部扬声器发出间断的蜂鸣声,并且4个LED指示灯循环闪烁。一段时间后,LED指示灯熄灭,蜂鸣声停止。随后LED显示屏开始从9到0倒计时,若在倒计时的过程中,再次触动开关,就会发出所设计的第二种警报:内部扬声器发出持续蜂鸣声,并且4个LED指示灯共同忽明忽暗闪烁。同样持续一段时间后,LED指示灯熄灭,蜂鸣声停止。根据实验箱的另一组实验电路,在检测报警过程中,主要实现的是ADJ检测。检测过程中会在LED显示器上显示相应的检测数据。若检测的数据超过给定的范围,内部扬声器发出间断的蜂鸣声,并且4个LED指示灯循环闪烁。一段时间后,LED指示灯熄灭,蜂鸣声停止。2.2 所用芯片工作原理

7、8255是可编程IO口扩展芯片。对8255输入不同的指令可改变IO口的工作方式。8255与单片机系统连接方式简单,工作方式由程序设定。8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。A、B、C寄存器的数据就是引脚PA7PA0、PB7PB0、PC7PC0上输入或输出的数据。而控制寄存器的数据则表明PA、PB、PC的工作方式。在课程设计中,A口,B口均做输出,C口高四位做输出,低四位做输入。对控制寄存器写入的数据为10000001B,即81H。8255引脚功能:PA0PA7: 端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。PB0PB7: 端口B输入输

8、出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。PC0PC7: 端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。2.3 数码管显示原理 七段数码管显示如图1和表1所示。 af bg e c d 图1 七段数码管显示表1 七段数码管的字型代码表显示字形dpgfedCba段码0001111113FH10000011006H2010110115BH3010011114FH40110011066H501101

9、1016DH6011111017DH70000011107H8011111117FH9011011116FHA0111011177HB011111117FHC0011100139HD001111113FHE0111100179HF0111000171H3 详细设计3.1 电路设计PA0PA1PA2PC3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7X1PC3PC2PC1PC0PC4PC5PC6PC7825574LS07SW-LED UNIT74LS07+5V4.7K*8+5V4.7K4.7K83216547X2X3X4AY2Y1CDBEFGDPLED-KEYBOARD

10、 UNITD7D6D5D4D3D2D1D0SPEAK UNITSPKD7 D6 D5 D4 D3 D2 D1 D0 CS WR RD IN0IN7 ABCADC UNITXD7XD6 XD5 XD4 XD3 XD2 XD1 XD0 IOY0 XIOW XIOR 系统总线A D JGND图2 ADJ电位器检测与报警程序电路设计图图2为ADJ电位器检测与报警程序电路设计图,由5部分组成:(1) 输入编码单元;(2) 语音单元;(3) 8255并行接口;(4) LED显示单元;(5) ADJ调节单元。3.2 检测与报警器程序设计流程图开关按下?开关是否再次按下?间断蜂鸣,循环亮灯延时选择显示屏CAL

11、L LED子程序调用LED显示字符开始结束YNOUT 63H,控制字IN AL, 62H报警,亮灯OUT 63H,控制字OUT 60H,第2个LED显示亮延时 NY 图3 开关检测与报警程序流程图3.3 程序参数说明表2 参数说明表参数名称参数说明TABLE用于存放0-9的LED数码显示的对应的编码值LED用于在LED显示屏显示数字倒计时A1当开关第一次被触发的报警方式A2结束语句A3当开关在倒计时过程中再次被触发时的报警方式DELAY用于延时TABLE1用于存放AD0809:IN0 TABLE2用于存放0-F的LED数码显示的对应的编码值XIANSHI用于显示检测ADJ对应的字模SOUND超

12、过ADJ检测的范围产生的报警方式DALLY用于延时3.4 程序源代码3.4.1 开关检测与报警程序代码STACK SEGEMNT STACK;定义堆栈段 DW 64 DUP(?)STACK ENDSDATA SEGMENT ;字模表 TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,27H,7FH,6FHDATA ENDS CODE SEGMENT;定义代码段ASSUME CS:CODE, DS:DATAMAIN PROCSTART:MOV AL, 81H ;A口、B口做输入,C口低四位做输出,确定控制字为10000001 OUT 63H, AL ;在控制口输出BEGI

13、N:IN AL, 62H ;从C口读入 TEST AL, 03H;判断是否按下开关,C口的低两位与开关相连,与03H相比 JNZ LLL ;若非0,表示开关没有按下,则执行此语句 JMP HHH ;否则,表示开关按下,跳转到HHHLLL: JMP A2HHH: MOV CX, 8 ;灯和蜂鸣器分别循环八次 A1: MOV AL, 11000000B ;第一种报警方式的初始状态C口的高两位与蜂鸣器相连,蜂鸣器高电平有效 OUT 62H, AL MOV AL, 08FH ;LED指示灯初始状态,低电平有效 OUT 60H, AL PUSH CX ;此下四句为延时 MOV CX, 0F1: LOOP

14、 F1 POP CX MOV AL, 04FH ;灯右移一位的状态 OUT 60H, AL PUSH CX MOV CX, 0F2: LOOP F2 POP CX MOV AL, 02FH ;灯右移一位的状态 OUT 60H, AL PUSH CX MOV CX, 0F3: LOOP F3 POP CX MOV AL, 01FH ;灯右移一位的状态 OUT 60H, AL PUSH CX MOV CX, 0F4: LOOP F4 POP CX MOV AL, 0 ;蜂鸣器停止发声 OUT 62H, AL PUSH CX MOV CX, 0FFF: LOOP FFF POP CX LOOP A1

15、 ;灯循环右移,蜂鸣器间断发声 MOV AL, 11111111B ;灯全灭 OUT 6OH, AL MOV AL, 0 ;蜂鸣器停住发声 OUT 62H, AL MOV AL, 11111110B ;选择某一个LED显示屏显示计时 OUT 60H, AL CALL LED ;调用子程序LED JMP A2 MOV CX, 16 ;灯与蜂鸣器分别循环16次A3: MOV AL, 0FFH ;第二种报警方式灯全灭的状态 OUT 60H, AL MOV AL, 11000000B ;蜂鸣器发声 OUT 62H, AL PUSH CX MOV CX, 0 F5: LOOP F5 POP CX MOV

16、 AL, 0FH ;所连接的四盏灯全亮的状态 OUT 60H, AL PUSH CX MOV CX, 0F6: LOOP F6 POP CX LOOP A3 ;循环灯忽明忽暗,蜂鸣器持续发声的状态 MOV AL, 0 ;蜂鸣器停止发声 OUT 62H, AL JMP BEGINA2: MOV AL, 0 ;以下为结束语句 OUT 62H, AL MOV AL, 0FFH OUT 60H, AL JMP BEGINLED PROC PUSH AX ;寄存器入栈,保护现场 PUSH BX PUSH CX PUSH SI MOV AX, DATA MOV DS, AX LEA BX, TABLE ;

17、取TABLE表的偏移地址 MOV CX, 10A321: DEC CX ;对LED显示屏进行减一操作 MOV SI, CX MOV AL, 81H OUT 63H, AL MOV AL, 0FDH ;LED显示屏第二个屏显示计时 OUT 60H, AL MOV AL, BX+SI ;将字模表的最后一个元素显示 OUT 61H, AL MOV CX, 4BBB: PUSH CX ;倒计时的延时过程 MOV CX, 0A123: LOOP A123 POP CX IN AL, 62H ;检测开关是否被再次按下 TEST AL, 03H PUSH CX MOV CX, 16 JZ A3 ;再次按下开

18、关的情况 POP CX LOOP BBB ;倒计时结束 IN AL, 62H ;再次检测开关是否按下 TEST AL, 03H PUSH CX MOV CX, 16 JZ A3 POP CX MOV CX, SI CMP CX, 0;比较CX与0 JNE A321;非0,跳到A321 POP SI POP CX POP BX POP AX ;出栈,恢复现场 RETLED ENDPDELAY:MOV BX, 04H ;外层循环4H次PPP: MOV CX, 0FEFFH;内层循环0FEFFH次YS: LOOP DELAY DEC BX JNZ PPP RET;返回CODE ENDSMAIN EN

19、DP END START3.4.2 ADJ电位器检测与报警程序代码STACK SEGMENT STACK ;定义堆栈段DW 64 DUP(?)STACK ENDSDATA SEGMENT;定义字模表TABLE1 DB 4EH,44H,30H,38H,30H,39H,3AH,49H,4EH,30H,20H,20H,00H;表示AD0809:IN0TABLE2 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,27H,7FH,6FH,77H,7FH,39H,3FH,79H,71H ;表示显示在LED显示屏上的0-F的字模DATA ENDSCODE SEGMENT;定义代码段 ASSUM

20、E CS:CODE , DS:DATA , SS:STACKSTART: MOV AL , 80H ;A口、B口、C口均作输出,写入控制字 OUT 63H , AL MOV AL , 0FFH ;灯的初始状态为全灭 OUT 60H , AL MOV BX , OFFSET TABLE1;取TABLE1的偏移地址 MOV AX , DATA MOV DS , AX OUT 00H , AL ;ADJ的值输出到总线上 CALL DALLY ;调用延时子程序 IN AL , 00H;读入ADJ的值 MOV CH , AL AND AL , 0F0H;将读入的值低四位清0 MOV CL , 04H S

21、HR AL , CL ;将AL高四位右移四位 MOV DL , AL ;将AL的值保存到DL中 CMP AL , 09H JG A1 ADD AL , 30H JMP A2A1: ADD AL , 37HA2: MOV AH , 06H ;在计算机显示器上显示TABLE1对应的字模 INT 10H MOV AH , O1H ;在计算机显示器上显示AL高四位对应的字模 INT 10H PUSH BX PUSH DX AND DX , 0FH MOV SI , DX POP DX MOV BL , TABLE2SI ;高四位在TABLE2中对应的字模保存到BL MOV AL , CH AND AL

22、 , 0FH ;将AL的高四位清0MOV DH , AL ;将AL中的值保存到DH中CMP AL , 09HJG A3ADD AL , 30HJMP A4A3: ADD AL , 37HA4: MOV AH , 01H ;在计算机显示器上显示低四位的字模 INT 10H CALL DALLY MOV AX , 0AH ;换行 INT 10H PUSH SI PUSH AX MOV AL , DH AND AX , 0FH MOV SI , AX MOV BH , TABLE2SI ;低四位在TABLE2中对应的字模保存到BH POP AX POP SI CALL XIANSHI ;调用显示子程

23、序 CMP DL , 4H ;高四位的值与4H相比 POP BX JL START ;若小于跳到START CALL SOUND ;否则调用SOUND子程序 JMP STARTXIANSHI: PUSH BX PUSH CX PUSH AX MOV AL , 0DH ;选择LED显示屏,使第二块显示屏亮 OUT 62H , AL MOV AL , BL ;在此块显示屏上显示高四位的字模 OUT 61H , AL MOV CX , 0 ;延时程序HHH: LOOP HHH MOV AL , 0EH ;选择另一块LED显示屏,使第一块显示屏亮 OUT 62H , AL MOV AL , BH ;在

24、此块显示屏上显示低四位的字模 OUT 61H , AL MOV CX , 0TTT: LOOP TTT POP AX POP CX POP BX RETDALLY: PUSH CX ;延时子程序 PUSH AX MOV CX , 0020HA5: MOV AH , 0564HA6: DEC AX JNG A6LOOP A5POP AXPOP CXRETSOUND: PUSH AX PUSH BX PUSH CX MOV AL , 11001111B ;蜂鸣器发声 OUT 62H , AL MOV BL , 10000000B;灯的初始状态,第一个灯灭其余灯亮 MOV CX , 16 GG: MOV AL , BL OUT 60H , AL PUSH CX MOV CX , 0NEXT: LOOP NEXT ROR BL , 1 ;灯循环右移一位 POP CX LOOP GG MOV AL , 0FH ;蜂鸣器停止发声 OUT 62H , AL MOV AL , 0FFH ;灯全灭 OUT 60H , AL POP CX POP BX POP AX RETCODE EDNS END START4 设计总结通过这次的课程设计,巩固了本学期学习的相关汇编语言程序设计的知识,使我对以前所学过的知识印象更加深刻,也更加熟练的掌握了8255芯片和LE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论