微机原理与接口技术课程设计报告-60秒倒计时系统设计.doc_第1页
微机原理与接口技术课程设计报告-60秒倒计时系统设计.doc_第2页
微机原理与接口技术课程设计报告-60秒倒计时系统设计.doc_第3页
微机原理与接口技术课程设计报告-60秒倒计时系统设计.doc_第4页
微机原理与接口技术课程设计报告-60秒倒计时系统设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

常熟理工学院课程设计(报告) 微机原理与接口技术课程设计报告 题目 60秒倒计时系统设计 系 别 虞山学院 年 级 09 专 业 电子科学与技术 班 级 学 号 学生姓名 指导教师 职 称 讲 师 设计时间 2011.12 16目 录第一章 系统设计11.1题目要求11.2方案论证11.3实施方案1第二章 倒计时硬件设计22.1倒计时的硬件框图22.2 8255A的基本资料22.3 显示电路52.4 输入电路的连接62.5 输出电路的连接6第三章 倒计时软件设计73.1主程序设计框图73.2程序的设计7第四章 安装与调试104.1硬件调试104.2软件调试104.3调试过程10第五章 总结与体会11第六章 参考文献12第七章 附录13第一章 系统设计1.1题目要求一、任务:60秒倒计时系统设计二、要求:1. 电路具有时间显示功能,要求用2位七段数码管;2. 要求电路为60秒递减计时,每隔1秒钟,计时器减1;3. 要有外部开关,控制计数器的启动、复位和暂停/继续计时功能;4. 当计时器倒计时为零时,即定时时间到,显示为零,同时发出光报警信号。1.2方案论证1. 使用8253作为秒脉冲输出,用8255A作为输入/输出接口分别接控制端、输出显示端、报警器,使用8259作为中断控制倒计时的复位/暂停。这种方案具有走时精准、可扩展性好的有点,但是制作成本最高。2. 使用软件延时,在程序中使用延时语句来输出秒脉冲。用8255A作为输入/输出接口分别接控制端、输出显示端、报警器,使用8259作为中断控制倒计时的复位/暂停。此方案具有控制响应速度快,制作成本因为舍弃8253成本适中,但是由于使用了软件延时,因为芯片损耗以及芯片在工作时间过长后走时会不够准确。3. 芯片只选择8255A,使用软件延时,在程序中使用延时语句来输出秒脉冲,使用8255A作为输入/输出接口。采用在软件中控制循环程序的方式来控制倒计时的复位/暂停。此方案性价比最高,但是相应的由于使用了软件延时,因为芯片损耗以及芯片在工作时间过长后走时会不够准确。由于8259的弃用在系统扩展方面会不如以上两种。1.3实施方案 本次课程设计要求并未要求设计成品需要扩展功能,及成本略高,故舍弃方案1。考虑各方因素,由于未采用8253,采用8259中断和软件控制循环程序的方式来控制倒计时的复位/暂停对走时的准确性影响不大,为了降低成本,也不采用8259,故舍弃方案2。方案达到课程设计要求并且成本最低,所以确定以方案来设计。第二章 倒计时硬件设计2.1倒计时的硬件框图框图如下:图2-1 倒计时的硬件框图2.2 8255A的基本资料 一8255A内部结构如图2所示。图 2-2 8255A内部结构 8255A3个8位数据接口,即接口A、接口B和接口C。使用者可以用软件使它们分别作为输入端口或输出端口。(1) 端口A:一个8位数据输入锁存器和一个8位数据输出锁存器/缓冲器,用来传送数据。数据输入均被锁存。(2) 端口B:一个8位数据输入缓冲器和一个8位数据输出锁存器/缓冲器,用来传送数据。数据输入时不被锁存,数据输出时被锁存。(3) 端口C:一个8位数据输入缓冲器和一个8位数据输出锁存器/缓冲器。用作输入端口时,数据不被锁存;而作为输出端口是,数据被锁存。 A组控制和B组控制 这两组控制电路一方面接收芯片内部总线上的控制字,一方面接收来自读/写控制逻辑电路的读/写命令,从而解决端口的工作方式和读/写操作。其中,A组控制电路控制端口A和端口C高4位(PC7-PC4)的工作方式和读/写操作:而B组控制电路控制端口B和端口C低4位(PC3-PC0)工作方式和读写操作。 读/写控制逻辑电路 读/写控制逻辑电路负责管理8255A的数据传输过程。它接收来自系统总线的信号A1,A0和控制总线信号RESET、WR、RD,将这些信号组合后,得到A组控制部件和B组控制部件的控制命令,并将命令发给这两个部件,完成对数据、状态信息的传输。 数据总线缓冲器 这是个双向三态8位数据缓冲器,9255A通过它与系统数据总线相连。输入数据、输出数据、CPU发给8255A的控制字都是通过这个缓冲器传递的。二8255的引脚信号 8255的引脚信号如图所示图 2-3 8255引脚信号图 与外部设备端相连的引脚(1) PA7-PA0:A端口的输入/输出引脚。(2) PB7-PB0:B端口的输入/输出引脚。(3) PC7-PC0:C端口的输入/输出引脚。 与CPU相连的引脚(1) RESET:复位信号,低电平有效。当RESET信号来到时,所有内部寄 存器都被清0,同时3个端口被自动设为输入端口。(2) D7-D0:8255A的数据线,和系统数据总线相连。(3) CS:芯片选择信号。只有当CS有效时,读出信号RD和写入信号WR才对8255A有效。(4) RD:读出信号。CPU通过IN指令使RD有效,将数据或状态信息从8255A中读到CPU。(5) WR:写入信号。CPU通过OUT指令使WR有效,将数据或状态信息从CPU中写道8255A.(6) A1,A0:端口选择信号。8255A内部有3个数据端口和1个控制端口,共4个端口。规定A1,A0为00、01、10和11时,分别选中端口A、端口B、端口C和控制端口。三 8255的控制字 方式选择控制字(1) 方式选择控制字把A、B、C三个端口分为A、B两组来设定工作方式。A组包括端口A和端口C的上半部,B组包括端口B和端口C的下半部。(2) 端口A可工作于3种方式中的任何一种:端口B只能工作于方式0和方式1;而端口C除用作输入、输出口(方式0)外,通常用来配合端口A和端口B提供联络控制信号和状态信号。(3) 归在同一组的两个端口可分别作为输入端口或输出端口,不要求同为输入或输出。 端口C按位置位/复位控制字 (1) 端口C按位置位/复位控制字尽管是对端口C进行操作的,但此控制字必须写入控制口,而不写入端口C。 (2) 一个控制字只能完成端口C中某一位置的置1或置0,要对多位置1或置0,必须使用多个控制字。2.3 显示电路实验箱上有6个数码管,由于实验箱内部已经将8255与数码管的线路连好,所以只用连接控制电路即可。图2-4为4*7位数码管静态显示原理图,本设计只要用到两位即可。图2-4 7位数码管静态显示原理图在程序内设置8255的控制字D2-D1位分别为00,使B端口工作在方式0作为输出端,PB0-PB7分别对应连接数码管的A-DP。数码管的DIG口接至CPU控制。七段发光二极管为阳极LED器件。要让A段点亮,要求PB0输出高电平“1”;要使B段熄灭,要求从PB1输出低电平“0”。其余各段以此类推。要使LED上显示0-9十个数字,需要按照如下段码表来驱动数码管的七段LED。 图 2-5 DICE-8086字形表图 2-6 DICE-8086字位表2.4 输入电路的连接 控制电路的连接如下图:图 2-7 控制电路 设置8255A的控制字为90H,让A端口作为输入端。其中开始/暂停键使用的是同一个拨位开关,这样能保持一个持续的电平,便于控制。当拨至“开始”后倒时开始计数,把开关拨至“暂停”后计数会停止,再拨至开始则继续计数。按下“复位”计数器会重新复位到60直至按下“开始”倒计时重新开始倒计时。2.5 输出电路的连接 报警电路的连接如下图所示:图2-8 报警电路设置B端口工作在方式0下,作为输出端。电路连接如上图,在倒计时器显示为“0”的时候LED灯会被接通开始报警。第三章 倒计时软件设计3.1主程序设计框图图 3-1 主程序设计框图运行程序,检测到开始按钮按下后开始倒计时,程序循环的时候每次都检测暂停开关,复位开关是否被触发,有则跳至相应代码段执行操作,无则继续往下倒计时,直到计数结束为0时,触发报警电路。3.2程序的设计1. 8255A控制字的设计由硬件电路的设计可知,要使A端作为输出,B端作为输入。则8255A的控制字为10010000。代码如下:MOV AL,90H;8255的控制字写入MOV DX,P_CTLOUT DX,AL2. 显示程序的设计根据如下段码表来设计 。显示字符0123456789七段代码C0HF9HA4HB0H99H92H82HF8H80H90H代码如下:MOV AL,0FDH;十位数码管字位口写入 MOV DX,PA OUT DX,AL MOV AL,BX;写入十位字形码 MOV DX,PB OUT DX,AL CALL DELAY;数码显示延时 MOV AL,SI;个位数码管字位口写入 MOV DX,PA OUT DX,AL MOV DX,PB MOV AL,0C0H;写入个位字形码 OUT DX,AL3. 延时程序的设计程序的延时分为秒延时和数码管显示延时两个部分控制一个循环程序循环N次以到达延时的目的。具体语句如下:DELAY PROC NEAR ;数码管显示延时 PUSH CX MOV CX,0A0H LOOP $ POP CX RETDELAY ENDP秒延时与数码管延时类似,仅延时的时间不同4. 控制程序的设计 为了保证控制按钮的响应速度,控制程序设置延时程序内。其中暂停可以用一个循环程序来实现,当暂停键拨下时,循环程序会进入死循环状态,直至拨至开始键。复位则只需按条件跳转至显示“60”的程序语句即可。代码如下:MOV DX,PA8255 IN AL,DX TEST AL,02H;检测是否暂停 JZ ZT60 TEST AL,01H;检测是否复位 JNZ BEGIN5. 报警程序的设计当程序运行至显示“0”的语句时给予报警电路低电平(由于实验箱上的LED灯是低电平亮高电平灭,所以给予低电平),其中报警语句还需加入复位语句,以停止报警。代码如下:MOV AL,00H;报警灯亮 MOV DX,PB8255 OUT DX,AL第四章 安装与调试 4.1硬件调试1) 断电调试为了安全,首先进行断电调试,用万用表检测系统是否有短路现象,再检查原理是否正确。经检测,原理正确也没有短路现象。2) 通电调试检查彩灯是否能正常工作,检查数码显示是否乱码。4.2软件调试将已编好的程序下载到已连接好电路的实验箱上,逐句调试语句,再根据实验现象调试此程序并改正,最终得到符合实验要求的程序。4.3调试过程1) 秒脉冲输出的测定,拿示波器测量以确定延时程序的循环次数。2) 在运行程序的时候出现了程序开始运行,报警器就工作的现象。在程序中加入了初始化报警电路的语句后运行正常。3) 在最初设计的程序中出现数据段内容混乱的现象,数码显示出现乱码,经检查后为代码编写格式有误,修改后正常。第五章 总结与体会此次课程设计,大大加深了我对微机原理的理解。在这次设计中,我学到了很多课本上没有的,以及平时被我们所忽视的东西。平时在上完课后认为对老师所讲的东西都很理解,但是在真正自己设计程序时却无从下手。不能清晰的理解理论知识,就不能在实际实践中熟练的应用。不仅是理论知识的理解,在此次课程设计后,我对很多电子器件有了更深入的理解,比如数码管在微机中的应用,8255A的实际应用及功能。本次设计虽然是8255A非常简单的应用,但让我掌握了学习可编程接口芯片和可编程接口芯片的方法,为以后的学习实践打下了基础。在设计过程当中也发现了自己经验的不足,尤其是在编程序方面还需要大量的练习,为以后的学习打下基础。万事开头难,在这次课程设计后我对自己的动手能力更加有信心。由于时间和个人能力的不足,我没能做出多位数码管计时的设计,但是在以后的时间里我继续学习以补充自己知识的短板来完善自身。第六章 参考文献1) 朱金钧,麻新旗等微型计算机原理及应用技术第二版,机械工业出版社,2005.72) 陈忠强 现代微机原理与接口技术 冶金工业出版社.2006年3) 郭兰英 微机原理与接口技术 清华大学出版社. 2006年4) 李银华 电子线路技术指导 北京航空航天大学出版社,20055) 启东计算机总厂有限公司DICE-8086K微机接口原理实验指导书第七章 附录部分程序源代码:CODE SEGMENTASSUME CS:CODEORG 2DF0HSTART: JMP START0PA EQU 0FF21H ;字位口PB EQU 0FF22H ;字形口PC EQU 0FF23H ;键入口PA8255 EQU 0FF28HPB8255 EQU 0FF29HPC8255 EQU 0FF2AHP_CTL EQU 0FF2BHDATA1: DB 92H,99H,0B0H,0A4H,0F9H,0C0H ;60的字形码DATA2: DB 90H,80H,0F8H,82H,92H,99H,0B0H,0A4H,0F9H,0C0H ;90的字形码START0: MOV AL,90H;8255的控制字写入 MOV DX,P_CTL OUT DX,AL MOV AL,01H;熄灭报警灯 MOV DX,PB8255 OUT DX,AL MOV DX,PA8255 IN AL,DX TEST AL,02H;检测是否开始计时 JNZ BEGIN;开始时跳至BEGIN JMP START0;未开始跳至START0重新循环检测BEGIN: MOV CX,330H;延时时间控制T60: ;60S时的数码显示循环ZT1: MOV DX,PA8255 IN AL,DX TEST AL,02H;检测是否暂停 JZ ZT60 TEST AL,01H;检测是否复位 JNZ BEGINBACK60: MOV AL,0FDH;十位数码管字位口写入 MOV DX,PA OUT DX,AL MOV AL,82H;写入6的字形码 MOV

温馨提示

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

评论

0/150

提交评论