欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    -微机原理与接口技术课程设计-数字式秒表-其他专业.docx

    • 资源ID:915597       资源大小:226.94KB        全文页数:28页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    -微机原理与接口技术课程设计-数字式秒表-其他专业.docx

    目录目录1摘要1关键词1第一章引言2第二章硬件系统设置32.1 硬件系统原理图32.2 芯片资料介绍42.3 2. 1 8253 芯片42. 2. I. 1 8253内部计数器的3个引脚42. 2. 1. 2 8253的工作方式42. 2. 1. 3 8253 的编程 42. 2.2 8255 芯片52. 2. 2, 1连接外设的数据端口52. 2. 2. 2 8255 工作方式 52. 2. 2. 3 8255 的编程 52. 2.3 8259 芯片62. 2. 3. 1 8259的编程及操作方式62. 2.4 74LS240 芯片72.2.4. 1 741s240 内部结构72. 2. 4. 2芯片介绍72. 2.5 75452 芯片72.2.5. 1 75452 内部结构72.2.5.2芯片介绍82.3线路连线81.1.1 1实验连线81.1.2 时钟脉冲的产生81.1.3 键盘的设置91.1.4 LED显示器的设置IO第三章软件系统设置12程序流程图123.1.1主程序流程图723. 1.2'0'处理流程图(开始计时)133. 1.3 T'处理流程图(名次存储)133. 1.4'2'处理流程图(显示成绩)14'3'处理流程图(比赛结束1) 153. 1.6'4'处理流程图(比赛结束2) 153. 1. 7中断处理流程图163.2参数信息17第四章课程设计总结184.1 心得体会184.2 源程序清单194.3 参考文献25摘要数字式秒表是一种用于体育中田径比赛的一种计时装置。本次课程设计是做一个数字式秒表,主要是利用8253作为定时器,为秒表提供 定时脉冲,使用7段码显示器作为秒表时间显示,用键盘控制秒表。数字式秒表拥有以下几点功能:1:可控制比赛的开始和结束和继续比赛;2:可记录成绩,依次排名,给予显示在第一位;3:可通过按键关闭设备关键词80X86, 8259 中断,8255, 8253,键盘,LED 动态显示第一章引言微型计算机的新技术、新机型,新应用层出不穷,日新月异。使得微机硬件得 到飞速发展!人们对计算机计算的精度和软件的逐步更新提出更高的要求。秒表在我们的生活总运用比较广泛,从各项体育赛事,到个人 上的倒计时器, 无处不在,怎样提高其计算精度,提高运算效率成为首要因素,基于此,此次课设我 们用汇编语言,利用8086CPU和PCl试验箱进行数字式秒表的制作,我们将从硬件 系统设置、软件系统设置、课设总结(包括汇编源代码、硬件系统设置原理图,参考 文献)几方面介绍本次课设的主要成果。此课设主要利用8253的定时器输出为秒表提供定时脉冲,7段码显示器作为秒 表时间显示,用键盘控制秒表的工作过程。键盘控制秒表计时的开始,记录,结束, 计时结束后按相应按键显示所记录的时间。计时范围为1分钟,满1分钟自动退出比 赛,计时精度为0秒。第一章为引言,粗略地介绍此次课设的主要内容。第二章为硬件系统设置,在此章中从基本芯片入手,介绍8253、8255、8259的 内部结构功能、工作方式以及初始化编程和74LS240P, 75425N的真值状态,工作环境, 以便读者更容易了解此课设的基本部件,对硬件原理有逐步深入的了解。另外,从键 盘和LED显示器的设定的原理、编程进行详细的描述。第三章为软件系统设置,在此章中我们从秒表的五大功能机制入手,软件设置 中,我们给出了主程序,中断程序以及各功能模块的程序流程图,使之实现一目了然。 此外,还给出了参数信息,增加了汇编源代码的可读性。第四章为课程设计总结。此部分包括心得体会,附录1 (汇编源代码,)和附录 2 (参考文献)。在此课设中,韩雁老师在硬件的检测,软件的设置方面都给出了精心的指点, 在此表示衷心的感谢!第二章硬件系统设置2.1硬件系统原理图此章节主要介绍硬件系统原理图,其中键盘和显示器在后面详细介绍.数字式秒表系统构成图2.2芯片资料介绍此部分从芯片的工作方式以及初始化编程方面介绍8253、8255、8259芯片。8253芯片.1 8253内部计数器的3个引脚- CLK (时钟)输入,在计数过程中,此引脚上每输入1个时钟信号(下降沿),减1 计数器的计数值将减1- GATE (门控)输入,控制计数器工作:- 软件触发时,作用开启/关闭计数:高电平允许,低电平禁止。- 硬件触发/重触发:上升沿将初值送入减1计数器- OUT (计数器输出)输出,根据设置工作方式的不同,OUT引脚可输出单个或连 续的波形信号。一般是在计数过程结束时(计数值归0), OUT引脚信号发生变化。2.2 8253的工作方式- 方式0计数结束中断- 方式1可编程单稳- 方式2连续负脉冲发生器- 方式3 连续方波发生器- 方式4 软件触发选通- 方式5 硬件触发选通本次课设中8253工作在方式3,此方式为可软、硬件触发的方波发生器,N=FCIk/Tclk, 在本次设计中,FclK信号为1. 193MHZ,输出信号为IOoHZ,N为11930。其端口地址为4043H, 40H 口用于计数器0, 4IH 口用于计数器1, 42H 口用于计数器2, 43H 口用于状态和控制口。.3 8253的编程- 8253加电后的工作方式不确定,必须经初始化编程后,才能正常工作- 初始化编程:- 先写入控制字- 再写入计数初值- 工作后,可随时读取计数值- 一般先将计数值锁存在通道内的锁存器中- 然后可分两次读取16位的计数值初始化程序片段:Mov al,计数器控制字Mov dx,控制寄存器端口Out dx,alMov ax,计数器初值Mov dx,计数器端口Outdx,al;写计数器的初值低字节Moval,ahOutdx,al;写计数器计数初值高字节2. 8255芯片2.1. 连接外设的数据端口- 端口 A: PA0-PA7 (A 组控制)常作数据端口使用,功能最强大- 端口 B: PB0-PB7 (B 组控制)常作数据端口使用- 端口 C: PC4-PC7 (A 组控制),PC0-PC3 (B 组控制)可作数据、状态或控制端口使用可拆分成两个4位端口分别输入或输出每位可独 立进行输出控制(位控制).2 8255工作方式- 方式0:基本输入输出方式(不带联络)适用于无条件传送和查询方式的接口电路- 方式1:选通输入输出方式(带输入联络或输出联络)适用于查询和中断方式的接口电路- 方式2:双向选通方式(同时带输入联络和输出联络)适用于可双向传送数据的外设,适用于查询和中断方式的接口电路.3 8255的编程- 编程:只写1个方式控制字到控制口。DTD6 D5D4D3D2DlDO-D7:方式字/复位字选择位,'1'时为8255A方式控制字,'0'时为PC 口的置/复 位控制字,当D7为'1,时,其余各位的含义为:-D6D5:A组选择方式选择位。F(T为方式0, 01'为方式1, '10'为方式2。-D2:B组方式选择位。'0'为方式0, '1'为方式L D4、D3、Dl、DO:分别为 PA 口、PC7PC4 口、PB 口、PC3PCO 口输入/输出方 式选择位。'0'为输出,'1'为输入。-工作过程中:通过数据端口对外设数据进行读写本次课设8255均工作在方式0,其把PA 口、PB 口和PC 口的高4位、低4位都作为基本 输入/输出口,可以独立地设置为输入或输出方式。初始化程序片段:Mov al,方式选择控制字Mov dx,端口号;如果端口号256,所以用dx间接寻址Out dx, al;写入控制寄存器2. 8259芯片2.1. 8259的编程及操作方式- 初始化编程在8259开始工作前:用户必须对8259A进行初始化编程。通过写入初始化命令字ICW对8259A进行初始 化- 中断操作编程在8259A工作期间:可以随时向8259A写入操作命令字OCW,使之按用户设置的新的工作方式进行工作,用户还可以通过写操作命令字OCW通知8259A- 操作方式编程OCWl,其格式为:MTM6M5M4M3M2MlMOAO DT D6 D5 D4 D3 D2 Dl DO OCWl也可称为屏蔽操作字,其被写入8259内部的中断屏蔽寄存器IMRo OCWl的8位与 IROIR7相对应,当其某一位为1时,即相应IR上的输入信号被屏蔽。IMR中的内容在任何时 候都可读出或写入,只要访问奇口地址。0CW2,其用于设置中断结束方式和优先级循环方式。其格式为:RSLEOI0012LlLOAO DT D6 D5 D4 D3 D2 Dl DO H0ESMMSMM01PRRRIS初始化程序片段:0CW3,其用于设置特殊中断屏蔽方式和程序查询方式、读状态方式。其格式为:Moval,00010101B;ICWI,边沿触发,要ICW4,级联要ICW3Out20h,al;写入ICWlMovaI,0000 IOOOB;ICW2:设置H中断类型号Out2 lh,al;写入ICW2Moval,00000101B;ICW3:主片8259A的IR2接从片INTMoval,00000101B;ICW4:不用缓冲,正常中断结束,非特殊全嵌套方式Out21h,al;写入ICW4AO DT D6 D5 D4 D3 D2 Dl DO 74ls240 芯片.1 741s240内部结构74ls240内部结构.2芯片介绍真值表输入输出-GAY1XZ010001正常工作温度及其压值:25, 5V,工作电流-15MA, 24MA温度范围:-25-75C,在此课设中用作反向驱动器,增大输出电流。75452芯片.1 75452内部结构VCC 2B 2A 2YIA IB IY GND.2芯片介绍真值表ABY000010100111正常工作压值范围:.工作电流400MA, 500M正常工作温度范围:0-70,在此课设中用作反向驱动器。2.3线路连线此部分从实验连线,时钟脉冲,键盘和LED显示详细介绍硬件部分的工作原理。实验连线- 8255模块的SWR. SRD分别连到ISA总线接口模块的IOWR. IORDo- 8255模块的数据(ADoAD7)、地址线(AOA7)分别连到ISA总线接口模块的数据(LADO QD7)、地址线(LA0-LA7)。- 8255模块选通线CE连到ISA总线接口模块的IOYOo- 8255的PAOPA7连到键盘显示模块的KDOKD7; 8255的PBOPB3连到键盘显示模块的 KLl -KL4; 8255的PCoPC3连到键盘显示模块KHlKH4。时钟脉冲的产生8253的D7到DO接总线上,gate端接高电平,OUS接8259的IRo,通过次部分可以产生 IoOhZ的信号,具体连线如下图:IR(MR78259D0D7-INTAINTR-CSDO CLKO VD7 OUT 一GATEO ;8253-RD-WR-CS时钟脉冲产生示意图键盘的设置键盘的接口 一般分为独立式和矩阵式。独立式按键就是各按键相互独立、每个按键各接一根输入线,一根输入线上的按键是否按下 不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键 被按下了。独立式按键电路配置灵活,软件结构简单。但每个按键需占用一根输入线,在按键数 量较多时,输入口浪费大,电路结构显得很繁杂。故此种键盘适用于按键较少或操作速度较高的 场合。若采用此方式,,各按键开关均采用上拉电阻,这是为了保证在按键断开时,各IO 口线有 确定的高电平。当然如输入口线内部已有上拉电阻,则外电路的上拉电阻可省去。矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上, 一个4*4的行、列结构可以构成一个含有16个按键的键盘。很明显,在按键数量较多的场合, 矩阵键盘与独立式按键键盘相比,要节省很多的I/O 口。行、列线分别接到按键的两端。行线通 过上拉电阻接到+5V上。平时无按键时,行、列线处于高电平状态,而当有键按下时,行、列线 将导通,因此行线电平状态将由与此行线相连的列线电平决定。按键的识别在此课设中采用扫描 法。让所有的列线处于低电平,当有键按下时,按键所在的行电平将被拉成低电平,根据此行电 平的变化,使能判定此行有键被按下。为了进一步判定到底哪一列的键被按下,可在某一时刻只 让一条列线处于低电平,而其余所有列线处于高电平。键盘接线图 键盘扫描程序:prog:movbl,O;键号的初值为0movcl,Oefh;送扫描初值movdl,4;计数值为行数frow:moval,cl;扫描一行movdx,protcrclal J;修改行扫描movcl,al;读列线无效,判别是否有列线为低inal,dxandal,OfhCmPal,Ofhjnzfcol;有列线为低电平,则转fcolmoval,bl;没有则使键号寄存器的值=键号值+列数/行数addal,4movbl,aldecdi;行未扫描完,则转frowjnzfrowjmpdown;已扫描完,则转downfcol: oral,fh;此列为低电平,则转proceCal,ljncproceincbl;如果未找到低电平的列线,则使键号=键号+1,转fcol继续proce:;键命令处理程序Down: ;后续处理程序LED显示器的设置LED是7段码显示,并且是共阴的,将8255的PALPA?接到键盘显示单元的KD0-KD7, PCLPC 接到KH-KH1,通过次部分可让LED动态显示相应的信息。八位LED显示程序:Led: mov di, offset buffdata;指向缓冲区首地址Mov cl,80h使最左边LED亮Disi: mov bl,di+lbl中为要显示的数Push bxPop axMov bx,offset table段表首址送bxXlat段码送alMov dx,porta段码送段控端口 portaOut dx, alMov al, cl位扫描码送为控端口 portbMov dx,portbOut dx, al保存位扫描码Push ex延时Mov ex,30hDelay: loop delayPop exCmp cl, Ol显示扫描到最右边LED码?Jz quit是,则已显示一遍,退出Inc di否,则指向下一位LEDShr cl, 1位码指向下一位Jmp disi显示下一位LEDQuit : retTable: db ch, , 8eh0F的段码Buffdata: db 8dup(?)8个字节的缓冲区此课设使用共阴结构,阴极控制端为低电平,数码显示短输入高电平时发亮。显示器的工作方式有静态显示和动态显示。所谓静态显示,就是当显示器显示某一个字符时, 相应的二极管恒定地导通或截止。优点是显示稳定,在发光二极管导通电流一定的情况下显示器 的亮度大,在系统运行过程中,仅在需要更新显示内容时CPU才执行一次显示更新子程序,大大 节省了 CPU的时间,提高CPU的利用率。所谓动态显示,就是一位一位地轮流点亮各位显示器,对于每一位显示器来说,每隔一段时 间点亮一次。显示器的亮度与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和 时间参数,可实现亮度较高比较稳定的显示。此课设中使用的是动态显示,8255的A 口作为扫描 口,经反向驱动器75452接显示器公共极,B 口作为数据口,接到显示器的各个段。第三章软件系统设置3.1程序流程图4处理流此部分包括主程序,O处理流程图,I处理流程图,2处理流程图,3处理流程图, 程图,中断处理流程图以及软件设置各模块能实现的功能。主程序流程图设置标志该功能块的主要作用:清显示缓冲区,使LED显示灯开始显示时值全为“0”, 单元的值。'0'处理流程图(开始计时)tV处理流程图(名次存储)1功能块:是记录成绩,当将按下2键时将LED灯显示的时间存储起来,并将该成绩的名次存储起来。首先读标志单元,根据相应单元的值来判断是否继续执行。若可继续执行则 将当前的成绩和名次存储,然后将名次变量加1。为了判断是否记录满8个成绩,还需设置了一 个记录标志,用于记录当前已记录了几个成绩,若记录满8个,则清除可存储标志位,再按1 键就不能再记录数据了。3.'2'处理流程图(显示成绩)2功能块:首先读取标志单元的信息,检查其是否符合条件,若符合条件则取记录数, 再将对应数据输出显示,这里要建立了一个标志单元用来记录当前以经显示过的记录数,每输出 一个记录,该标志单元就加一,然后与总记录数比较,若超过总记录数则将该标志单元清零。3.1.5'3'处理流程图(比赛结束D3功能块:退出返回DOS需要复原中断矢量,若不复原中断矢量,可能会发生不可预料的 错误,8259关中断,cpu关中断,关闭程序。'4'处理流程图(比赛结束2)4功能块:1.比赛结束将标志单元的DO位(比赛开始/结束位)和D2位(可否存储成绩位)均置“0”,清空所有标志,代表比赛结束2.显示停止,并显示最后一次显示的内容。3.中断处理流程图中断处理程序在该设计中是很的重要的,数字式秒表时间的走动、键盘扫描过程中对按键功 能的执行都要通过中断程序来实现。首先进入中断程序就要保护现场,这一点是至关重要的。若不保护CPU当前的执行状态, 当中断程序返回时,CPU有可能处在错误的状态。应通过一系列推入堆栈指令来保护中断时的现 场。主程序的初始化中设置了中断的频率为每隔OOl秒发生一次,而我们要的精度是0.1秒。用 count单元来记录是否到0.1秒,将count单元的值和10比较,到10则为0.1秒,否则count值 加1。秒单元值的变化与此类似,当0.1秒单元值为10时,秒低位单元的值才加1;当秒低位单 元的值为10时,秒高位单元值才加L当秒高位单元值为6时应清零。计时满1分钟时自动结束, 在秒高位单元清零时还应将DO (比赛开始/结束位)和D2 (是否可存储位)清零。3.2参数信息inttype p8253ctrl p8253ctr p8255ctl cntl display asctab定义8号中断定义8253控制口定义8253计数器1的端口定义8255控制端口定义8253的初值(用于产生IOOHZ的信号)定义显示提示信息定义一张表,用于显示键盘输入的显示buffmebitdesg flagpoint dw str mess定义显示缓冲期,并给显示缓冲器定义初值为0 定义一个存储空间,用于记录8个选手的成绩和名次 定义位选信号定义一张共阳的LED表定义标识符flag将地址传给指针POirlt显示桌面第四章课程设计总结4.1 心得体会本次课程设计从总体上来说是对芯片8253、8255, 8259的应用。8253用来产生产生时钟脉 冲;8255是一个并口,连接控制LED显示器和键盘,8259是用来产生中断。8253产生产生时钟脉冲S给8259产生一次中断,通过CPU产生中断响应,并扫描键盘,如 果有键按下,则按照响应的情况来判断是否在中断中进行计数,如果是O键按下,则开始计数,计 数的时候将响应的字符输到显示缓冲器,并同过8255并口,动态的显示在LED上;如果是M键 盘按下,仍旧计数,并通过一个指针将当前的数值传到me相应的单元中,并进行COUnt计数, 判断其是否超出限制,如果超出限制则停止计数,如果没有超出限制则进行计数;如果是P键按 下,中断中跳过计数部分,并将相应要显示的内容从me中输出到显示缓冲区,按照一个指针来 循环显示要显示的内容;如果按下的是4键,则表示比赛结束,将所有的标志单元都清空,中断 中也跳过计数部分,输出停留在最后显示的内容上;如果按下的是3键,则表示整个程序的运行 结束,8259关中断,CPU关中断。在程序中多次用到压栈,弹出操作,目的是在中断程序执行前将所有中断程序中用到的寄存 器都入栈,在中断结束之前都要将刚才入栈的寄存器出栈,在程序中多次用到延时程序,在没个 高速设备相低速设备输出的时候都要进行延时,在扫描键盘中,我们在按键按下的时候和按键释 放的时候都进行了延时,确保按键的有效性和按键抖动的淀去。在显示单元我们用到动态显示的 方法,既可以减少线路上的成本也可以提高资源的有效利用,我们将8255的A 口用于显示字符, 8255的C 口用于位选,选择哪个LED将显示数据。键盘单元中,我们也是使用8255来作为控 制的接口,共用了 8255的C 口来输出,8255的B 口用来读取,两个口一起工作来定位键盘上哪 个键被按下。最终的课程设计能达到最初设定的目标。在课程设计前几天,我们组先用LED显示、键盘控制8259A中断三个程序对我们的仪器箱 进行了初步检测。在确认无误后,对三条程序进行累加,然后对五个功能键进行分别设定,反复 调试、编译、链接,在老师的精心指导下完成了此次课程设计,在此再次表示衷心的感谢!4.2 源程序清单asctab db ”0123456789ABCDEF .codemov ax, datamov ds, axmov ah,9 lea dx, mess int 21h mov al, 36h mov dx,p8253ctrl out dx,al mov ax, cnto mov dx,p8253cto out dx, al mov al, ah out dx,al mov al, 81h mov dx,p8255ctl out dx, al mov al,inttype mov ah, 35h int 21h push es push bx;代码段;段地址初始化;9号调用,用于显示提示信息;将mess的偏移量送给dx;显示提示信息;写8253方式字;写初值;先写低位;再写高位;8255初始化;将方式字输出到8255控制口;DOS调用,读取中断向量;es:bx=中断向量;将CPU自己的8号中断向量保护inttypeequ 08h;定义8号中断p8253ctrlequ 43h;定义8253控制口p8253ctoequ 40h;定义8253计数器1的端口p8255ctlequ 0c803h;定义8255控制端口cntoequ 11930;用来计算频率.modelsmall;定义为小模式.data;数据段strdb 36 dup (?);定义一个数组存放前八个成绩flagdb 0;定义标志位medb 1;定义存放名次numdb 1;定义名次countdb 0pointdw str;定义指针point2dw str;定义指针buff db0, 0, 0, 0;定义显示缓冲区,用于显示键盘输入的显示buff2 db0, 0, 0, 0;定义显示缓冲区,用于显示键盘输入的显示bit db 1;定义位选信号mess db '0-开始比赛1-记录成绩2-显示成绩3-退出返回DoS 4-结束比赛:,Odh, Oah,' $'dseg db OcOh, 0f9h, 0a4h, ObOh, 99h, 92h, 82h, 0f8h, 80h, 90hpush dsmov ax, data初始化mov es, axmov dx, offset intp取intp的偏移量mov ax, seg intp取intp的段地址mov ds, axmov al, inttype设置inttpye的新中断向量mov ah,25hES:BX=中断向量int 21hpop dsds出栈in al, 21hCPU开中断(开IRo)and al, Ofehout 21h,alstiab:call button键盘调用cmp al, 3,判断是否按下3号键jz rp如果是则转向rpcmp al, 判断是否按下3号键jz mp如果是则转向mpcmp al,1 4,判断是否按下4号键jz ap如果是则转向apcmp al, 2,判断是否按下2号键jz pp如果是则转向PPcmp al, 2判断是否按下3号键jnz ab如果是则转向abOR flag, 05h如果按键为2,则标志位最后一位为1jmp abmp:test flag, 04h存储代码jz abmov al, memov buff, al将第一位的名次先放到buff,然后放到数组lea si,buffmov di,pointmov ex, 4cldrep movswcmp me, 8名次到了 8,标志位清0jz go转向go段程序inc meinc自加add point, 4jmp abgo:and flag, Ofahlea bx,strmov point, bxjmp abPP :and flag, Ofehcmp num, 9;判断是否按过8次,如果不是则退出jz abinc numlea di, buffmov si, point2mov ex,4cldrep movswadd point2,4jmp abap:push bxand flag, 0;对标志位和名次及num进行初始化mov me, 1;名次置1mov num, 1;计数置1lea bx,strmov point, bxmov point2, bxmov buff, 0;将1位显示器缓冲器置0mov buff+l,0;将2位显示器缓冲器置0mov buff+2,0;将3位显示器缓冲器置0mov buff+3,0;将4位显示器缓冲器置0pop bxjmp abrp:clipop dxpop dsmov al, inttypemov ah, 25hint 21h;dos调用mov ah, 4ch;带返回码终结程序int 21h;主程序结束intp:push si;将*、bx dx si CX 入栈,保护 CPU现场push dipush axpush bxpush expush dxtest flag, Olh;判断标志位DO是否为1,为1则开始,否则不计数jz iexitinc count;次数加1cmp count, 10;将COUrH与10比较jnz iexit若count不等于10,则转iexitmov count, 0否则count置0inc buff+3秒的那位加1cmp buff+3, 10将秒的那位与10比较jnz iexit若秒的那位不等于10,则转iexitinc buff+2否则向秒的高位进1mov buff+3,0秒位置0cmp buff+2, 10秒的高位与10比较jnz iexit不为10则转iexitinc buff+1否则分位加1mov buff+2,0秒的高位置0cmp buff+1,6秒位与6比较jnz iexit若不等则转iexitmov buff+1,0分位置1and flag, Ofehiexit: lea bx,dseg去数据表的首地址lea si, buff取缓冲区的首地址agi: mov al,si将Si的内容送给alxlat将ASClI码转换成数据mov ah, almov dx,0c801hmov al, bitout dx , alcmp al, 04h判断是否为第二位,是则加点,否则继续jnz qland ah, 7fhql:mov dx, 0c800h取相应的段和位mov al, ahout dx,almov di,30mov ex,0000h延时delay: loop delaydec di缓冲区地址加1jnz delayinc sishl bit, 1将位加1cmp bit, 10h将bit和IOh相比jnz agi不等于则循环mov bit, 1否则将bil置1mov al,0mov dx,0c801hout dx, almov al, 20hout 20h, alpop dxpop CX;将cx、si、dx、bx、ax出栈,恢复CPU状态pop bxpop axpop dipop siiretbutton proc nearnext: mov dx,0c801hmov al,0out dx, al;写。口全写0,即使行线为0inc dxabb: in al,dx;读列线and al, Ofhcmp al, Ofh;判断是否都为1jz abbmov si,10mov ex,OOOhdelayy: loop delayy;延时dec sijnz delayymov bh,00;存放行值mov bl,0;存放列值mov ex, 4;判别行数mov ah, Ofeh;赋值 11111110again: mov al,ah;逐行输出为0,判别该行是否有键按下mov dx,0c801hout dx, alinc dxin al, dxand al, Ofhcmp al, Ofh;判断al是不是全1jnz abl;若有键按下就跳到abladd bh, 4;该行没键按下就给行值加4shl ah, 1loop again;等待检测下一行jmp kexitabl: mov ex,4ab3: shr al, 1jc ab2jmp ab4ab2:inc blloop ab3ab4:add bh,bl;将asctab段地址传给bx;将ASCIl码转换成数据mov al, bh lea bx, asctab xlat push ax mov dl, al mov ah, 2 int 21h mov dx,0c801h mov al,0 out dx, al inc dxab5: in al, dx and al,Ofh cmp al, Ofh jnz ab5 mov si, 10 mov ex,OOOh delay2:loop delay2 dec si jnz delay2 pop ax kexit: retbutton endp end4.3参考文献韩雁、徐煜明 微机原理与接口技术电子工业出版社马维华、易仲芳微型计算机及接口技术科学出版社奚抗生汇编语言程序设计航空工业出版社唐棠等微型计算机与接口技术南京大学出版社19941995

    注意事项

    本文(-微机原理与接口技术课程设计-数字式秒表-其他专业.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开