微机接口课程设计报告及源程序.doc

上传人:仙人指路1688 文档编号:2385970 上传时间:2023-02-17 格式:DOC 页数:19 大小:299.50KB
返回 下载 相关 举报
微机接口课程设计报告及源程序.doc_第1页
第1页 / 共19页
微机接口课程设计报告及源程序.doc_第2页
第2页 / 共19页
微机接口课程设计报告及源程序.doc_第3页
第3页 / 共19页
微机接口课程设计报告及源程序.doc_第4页
第4页 / 共19页
微机接口课程设计报告及源程序.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《微机接口课程设计报告及源程序.doc》由会员分享,可在线阅读,更多相关《微机接口课程设计报告及源程序.doc(19页珍藏版)》请在三一办公上搜索。

1、目 录第1章 需求分析11.1 课程设计题目11.2 课程设计任务及要求11.2.1 课程设计任务11.2.2 课程设计要求11.3 软硬件运行环境及开发工具11.3.1 软硬件运行环境11.3.2 开发工具1第2章 概要设计22.1 设计原理及实现方法22.1.1 计数脉冲的产生和检测原理22.1.2 计数LED显示原理22.1.3 扬声器的驱动原理32.2 主要芯片说明32.2.1 8255管脚与功能32.3 设计原理图5第3章 详细设计73.1 硬件设计与实现73.1.1 设计接线图73.2 程序流程图73.2.1 系统流程图73.2.2 模块流程图83.3 功能模块实现93.3.1 慢

2、速脉冲产生程序93.3.2 开关切换功能程序103.3.3 脉冲检测及计数程序103.3.4 计数显示程序113.3.5 扬声器驱动程序12第4章 系统调试与操作说明134.1 系统调试134.2 操作说明13第5章 课程设计总结与体会14参考文献15附录 源程序16第1章 需求分析1.1 课程设计题目慢速计数系统的设计1.2 课程设计任务及要求1.2.1 课程设计任务1设计一个慢速技术系统,。28255一个端口输出慢速脉冲(周期约0.5秒)给另一端口计数,端口检测脉冲后进行计数。31个开关控制切换计数/暂停;用另一个开关实现计数清零功能输入。4用2位7段LED数码管显示当前计数值(采用十进制

3、计数)。5每计数10次,扬声器鸣叫约1秒。1.2.2 课程设计要求完成实验方案论证,进行慢速计数系统电路硬件设计,画出电路原理图及实验电路图;搭建实验电路,进行软件编程、调试、运行以及使用说明文档的建立等一整套工作任务。进行慢速计数系统控制程序设计(采用汇编语言);系统联调,提交一个符合上述功能要求的慢速计数系统的设计。1.3 软硬件运行环境及开发工具1.3.1 软硬件运行环境利用TDN86/88实验平台进行硬件连接,利用TDN集成开发环境进行慢速计数系统的程序设计(采用汇编语言),调试,直到满足设计要求。1.3.2 开发工具实验所使用的实验开发设备是TDN86/88型多功能微机实验平台,它的

4、硬件由基本系统、外设功能模块和面包板实验区三大部分,按模块化开放式结构设计而成。第2章 概要设计2.1 设计原理及实现方法本课程设计的慢速计数系统已8086微处理器为CPU,主要用8255A来实现计数和显示。用8255A的下C口的一个端口产生计数脉冲,并用8255A下C口的一个端口检测计数脉冲,并通过8086CPU计数,计数的同时,通过8255A的A口和B口分别驱动两个七段码LED显示个位数字和十位数字,计数每到10,触发8255A的下C口产生脉冲驱动扬声器发声。2.1.1 计数脉冲的产生和检测原理在本慢速计数系统中,计数脉冲可以用方波实现,而电平的高低变化可以通过8255A的C口的置数命令分

5、别对产生计数脉冲的端口置1后延时并置0代替。表 2.1 8255A C口置数命令控制字D7D6D5D4D3D2D1D0特征位0 不 用(写0)位 选 择000=C口0位001=C口1位111=C口7位1=置位(高电平)0=复位(低电平)2.1.2 计数LED显示原理在计数时,需要实时显示当时的计数值并能显示出来,这就需要用到七段码LED,而七段码LED不能直接显示十进制数字,故需要通过查表找到每个数字对应的编码并通过LED显示出来。LED数码管也称半导体数码管,是目前数字电路中最常用的显示器件。它是以发光二极管作笔段并按共阴极方式或共阳极方式连接后封装而成的。图5所示是两种LED数码管的外形与

6、内部结构,、分别表示公共阳极和公共阴极,ag 是7个电极,DP为小数点。 图 2.1 LED内部结构及连线2.1.3 扬声器的驱动原理本次课程设计要求计数到10时蜂鸣1秒,而实验系统用到的扬声器,有两个管脚,在驱动扬声器发声时,只需要将其一只管脚接地,另外一只管脚接入方波脉冲就会开始蜂鸣,在蜂鸣一秒后,再将其管脚接入低电平即可停止蜂鸣。故可参照计数脉冲的实现原理,在计数到10后,可通过C口的置数命令将C口的一端口产生高电平,并通过延时程序产生延时,在延时完成后,又通过C口的置数命令将C口产生低电平停止蜂鸣。2.2 主要芯片说明2.2.1 8255管脚与功能 图2.2 8255的引脚图引脚功能:

7、RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输。 RD:读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送

8、的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 A1,A0:地址选择线,用来选择8255的PA口,PB口,P

9、C口和控制寄存器. 当A1=0,A0=0时,PA口被选择; 当A1=0,A0=1时,PB口被选择; 当A1=1,A0=0时,PC口被选择; 当A1=1.A0=1时,控制寄存器被选择。表 2.2 8255端口地址端口地址PA口60HPB口61HPC口62H控制口63H2.3 设计原理图 图 2.3 设计原理图原理图中8255A D0D7端接系统总线。图中七段码显示器管脚排列如下: 图 2.4 LED引脚图原理图中的8255引脚与七段码LED接线如下: PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 abcdefgDP图2.5 8255与七段码连线图第3章 详细设计3.1 硬件设计

10、与实现3.1.1 设计接线图 PC7 PA0PC6 PA1PC5 PA2PC4 PA3PC3 PA4PC2 PA5PC1 PA6PC0 PA7 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7abcdefgDPabcdefgDP K7 K6SWITCH UNITD0D1D2D3D4D5D6D78086系统总线图 3.1 设计接线图图3.2 程序流程图3.2.1 系统流程图开始8255初始化,寄存器清零调用脉冲产生模块,产生脉冲产生计数脉冲调用开关状态检测模块检测开关状态调用脉冲检测模块检测计数脉冲调用计数显示模块显示计数值调用扬声器驱动模块驱动扬声器蜂鸣结束图 3.2 系统流程图

11、3.2.2 模块流程图图 3.4 脉冲计数模块开始C口置1OUT 63H,00000001B延时程序C口置0OUT 63H,00000000B开始计数器清零读取PC7状态PC7=1读取PC6状态PC6=0继续计数Y图3.3 脉冲产生模块流程图开始MOV AL,00000001BOUT 62H,ALC口置1,产生高电平延时程序MOV AL,00000000BOUT 62H,ALC口置0,产生低电平结束开始INC DL个位大于10?十位加一个位清零查表得到个位段码OUT 60H,AL十位大于10?十位清零查断码表得到十位数段码OUT 61H,AL图 3.5 计数显示模块流程图图 3.6 扬声器驱动

12、模块流程图3.3 功能模块实现3.3.1 慢速脉冲产生程序本课程设计中,慢速脉冲产生原理是:通过8255A的C口的置数命令,分别对脉冲口作置1置0命令,这样就产生了010的脉冲信号,从而推动计数器计数。本课程设计是PC2输出产生脉冲。该模块具体程序如下:OUTPUT: MOV AL,00000100B ;置PC2=0 OUT 62H,AL ;由C口输出 POP AX ;出栈,恢复AX PUSH AX MOV AL,00000101B ;置PC2=1 OUT 62H,AL POP AX3.3.2 开关切换功能程序本课程设计的功能开关有两个K7和K6,分别连接C口的PC7和PC6。K7的功能是暂停

13、,当K7开关置1时计数暂停,置0继续;K6的功能是清0,当K6开关置1时计数清0,置0后重新开始计数。该模块具体程序如下:ZERO: MOV DL,00H ;个位清零 MOV DH,00H ;十位清零 STOP: IN AL,62H ;PC7控制暂停,为1暂停 TEST AL,80H ;用test只测试比较而不将结果保存 JNZ STOP ;如果不为0则跳转到STOP IN AL,62H ;PC6清零开关,为1清零 TEST AL,40H JNZ ZERO ;如果不为0则跳转到ZERO3.3.3 脉冲检测及计数程序本课程设计中PC2是用于输出产生脉冲,PC5是用于检测输入的脉冲。只有当PC5检

14、测到PC2为高电平时才开始执行计数程序。计数原理:首先检测脉冲信号,如果检测到脉冲信号,个位加1,然后判断个位是否达到10,如果不为10,则将个位数字显示在数码管1上;如果为10则将十位加1,个位清零,然后显示在数码管上。判断完个位后再判断十位,如果十位不为10则将十位数字显示在数码管上;如果为10则将十位清零。具体代码如下:TIMMER: MOV CL,0AH ;装入计数初值 L1: CALL DELLAY ;调用延时程序 IN AL,62H ;PC5脉冲检测 TEST AL,20H JNZ L3 ;PC2位为1则跳转到L3,否则跳到TIMMER JMP TIMMERL3: INC DL ;

15、个位加一 CMP DL,0AH ;判断是否大于10 JNZ DISP ;不为10则跳到DISP(显示程序) INC DH ;个位大于10向十位进位 MOV DL,00H ;个位清零 CMP DH,0AH ;比较十位是否为10 JNZ A0 ;不为10则跳到A0 MOV DH,00H ;为10则清零 DELLAY PROC ;延时子程序 PUSH CX MOV CX,0F000H ;送入计数初值A3: PUSH AX POP AX LOOP A3 ;循环执行压栈出栈,直到CX为0 POP CX RET DELLAY ENDP3.3.4 计数显示程序计数显示功能的实现主要是实现获取个位和十位数字后

16、,通过换码指令,得到各位数字对应的七段码,然后将对应的七段码送到相应的七段码LED驱动口,就可以将个位数字和十位数字在七段码显示器上显示出来。DATA SEGMENT ;数据段定义TAB1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段码DATA ENDSDISP: MOV AL,DL ;显示个位数 MOV BX,OFFSET TAB1 ;取段码表首地址 XLAT ;查表得段码 OUT 60H,AL ;A口输出个位并显示A0: MOV AL,DH ;显示十位数 MOV BX,OFFSET TAB1 ;取段码表首地址 XLAT ;查表得段码 OUT

17、61H,AL ;B口输出十位3.3.5 扬声器驱动程序本课程设计的接线图中是PC0控制喇叭发声的。当PC0=1时喇叭发声,当PC0=0时喇叭不发声。而要求计数达到10、20、30.90时发声,那么驱动喇叭发声的条件就是计数初值为10的CL减到0时喇叭发声。具体程序如下: RING PROC ;蜂鸣子程序 MOV AL,00000001B ;PC0控制喇叭发声 OUT 62H,AL PUSH CX MOV CX,5000HL2: LOOP L2 ;以上两句为喇叭发声的延时 MOV AL,00000000B ;喇叭停止发声 OUT 62H,AL POP CX RET RING ENDP第4章 系统

18、调试与操作说明4.1 系统调试先依照设计要求编写程序,在软件上进行编译并对程序进行调试直至通过编译,若顺利通过编译则可以按设计要求连接硬件电路,检查连接无误后,将程序编译、连接后加载到芯片中进行实际仿真,若出错则检查修改程序功能错误和硬件连接错误,直至仿真效果与设计要求一致。 4.2 操作说明 将程序编译,连接,加载后,运行开始仿真,按照设计要求,在运行后会进入计数状态,两个七段码显示器会实时显示计数值,将开关K7拨到”1”状态,计数暂停,七段码显示器显示暂停前的计数值;将开关K6拨到”1”状态,计数清零;计数每到10后,扬声器蜂鸣。第5章 课程设计总结与体会通过这次的课程设计,我回顾了许多之

19、前学习过的微机原理知识,又一次了解了相当多的汇编语言规则和知识,进一步了解了8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU之间的数据交换,以及8255A的内部逻辑结构。我深入掌握了8255A显示电路的基本功能及编程方法,同时我深入了解了8255等芯片的工作方式、作用。通过这次课程设计,我最大的收获就是培养了自己的动手能力和独立解决问题的能力,也充分体会到了自己设计东西的乐趣、也意识到了自己查阅资料和团队沟通合作的重要性,也明白了在学习中光只是学习理论是不够的,必须亲自去试着实践,将理论应用到实践中,亲自去经历才能对它们真正的掌握。当我完成这个设计时,发现脑中关于

20、微机原理的知识更加清晰系统了。这让我相信,只有在不断的尝试,不断的动手去操作后,所学的理论知识才能真正地转化成自己的东西。我想我以后不管在什么方面,特别是在研究设计方面,都会有不错的成绩。动手加动脑才是成功的关键,一味的在理论上追根问底在现实中很难实现。这是我从这次课程设计中得到的最大的体会。通过这次课程设计,我最大的收获就是自己的动手能力和独立解决问题的能力得到了很大的提高,也充分体会到了自己设计东西的乐趣、学会查阅资料和对别人的东西融会变通的重要性,也明白了很多知识光靠趴在书本上学是学不到其中的精髓的,必须亲自去试着实践,亲自去经历才能对它们真正的掌握。 参考文献1 何超. 微型计算机原理

21、及应用.中国水利水电出版社,20072 杨立. 微型计算机原理与接口技术学习与实验指导. 中国水利水电出版社,2008.3 彭虎,周佩玲,傅忠谦.微机原理与接口技术(第二版).电子工业出版社,2008.4 朱承高.电工及电子技术手册M.北京:高等教育出版社,19905 姚燕南,薛均义.微型计算机原理.西安:西安电子科技大学出版社,20006 张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,1999.设计者: 操时力 日 期: 2011年 6 月 16 日附录 源程序DATA SEGMENT TAB1 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH

22、,6FHDATA ENDSSTACK SEGMENT STACKDW 64 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART:MOV AX,DATAMOVDS,AXMOVAL,10001000B ; 8255方式字 OUT 63H,AL ZERO: MOV DL,00H ;清零 MOV DH,00H TIMMER:MOV CL,0AH L1:CALL DELLAYOUTPUT: PUSH AX MOV AL,00000100B OUT 62H,AL POP AX STOP: IN AL,62H ;PC7控制暂停,为1暂停 TEST AL,80H J

23、NZSTOP IN AL,62H ;PC6清零开关,为1清零TEST AL,40HJNZ ZEROIN AL,62H ;PC5脉冲检测TEST AL,20HJNZ L3JMP TIMMERL3:INC DL ; 个位加一CMP DL,0AH ;判断是否大于10JNZ DISP ;不小于10则显示INC DH ;个位大于10向十位进位MOV DL,00H ;个位清零DISP:MOV AL,DL ;显示个位数MOV BX,OFFSET TAB1 ;取段码表首地址 XLAT ;查表得段码 OUT 60H,AL ;A口输出个位并显示 CMP DH,0AH JNZ A0 MOV DH,00H A0: M

24、OV AL,DH MOV BX,OFFSET TAB1 ;取段码表首地址 XLAT ;查表得段码 OUT 61H,AL ;B口输出十位并显示DECCLCMP CL, 00HJNZ L1 ;不满10次则跳转,满10次则执行蜂鸣CALL RINGPUSH AXMOV AL,00000101BOUT 62H,ALPOP AXJMP TIMMER RING PROC MOV AL,00000001B ;PC0控制喇叭发声 OUT 62H,AL PUSH CX MOV CX,5000H L2: LOOP L2 MOV AL,00000000B OUT 62H,AL POP CX RET RING END

25、PDELLAY PROC PUSH CXMOV CX,0F000HA3: PUSH AXPOP AXLOOP A3POP CXRETDELLAY ENDPCODE ENDS END START设计过程中质疑(或答辩)记载:1在慢速计数系统中,如何检测开关状态?答:因为在计数系统中,需要实时地检测开关状态,所以在程序中通过循环查询接口实现,每次通过IN AL,62H 读取开关状态 ,并用TEST 指令测试各位开关状态,如果是1状态,则跳转到读取开关转该语句,循环查询开关状态,如果是0状态,则继续计数。2如何实现计数脉冲的发生和检测?答:在慢速计数中,需要产生方波脉冲进行计数,而在8255中不能直接产生方波脉冲,故通过C口的置数命令通过置1、延时、置0命令来产生方波脉冲:MOV AL,00000100B OUT 62H,AL 延时MOV AL,00000101B OUT 62H,AL在检测脉冲时,每次读取C口状态: IN AL,62H 每次检测到时高电平时跳转到计数处理程序 TEST AL,20H JNZ L3 指导教师评语:评分:签名:年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号