接口技术 闹钟设计.doc_第1页
接口技术 闹钟设计.doc_第2页
接口技术 闹钟设计.doc_第3页
接口技术 闹钟设计.doc_第4页
接口技术 闹钟设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术课程设计报告题目: 闹 钟 设 计 微机原理与接口技术课程设计报告1.设计任务1.1设计目的掌握8255并行接口、8253定时器/计数器及8259中断控制器的工作原理及使用方法并学习发光二极管、七段数码管的接口方法。1.2闹钟设计一:设计一个钟表。在数码管上显示时间。二:定时时间到,屏幕显示“get up!”字符串。三:显示同时,流水灯闪烁,蜂鸣器响1秒钟。2.设计方案2.1设计分析本设计以唐都仪实验箱为载体,结合中断控制器8259A、并行接口8255、中断定时器8253、七段数码显示管LED及八个发光二极管的功能,用汇编语言编程实现了闹钟设计的实验。闹钟的总体设计原理是:首先利用定时芯片8253的定时作用定时计数,每10ms开一次中断即8253计数2E9A次调用时间显示程序,数码管加1,毫秒部分加到99后清0向前进1 秒部分到显示59S过后变为0,执行此程序后8255就会工作,把时间在四个数码管上显示时间。当数码管显示时间与拨动开关设置的定时时间相同时发出一个中断信号,8259中断器接到此中断信号,屏幕显示“get up!”,流水灯闪烁,蜂鸣器响。 闹钟具体做法:时间显示程序要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,精确的时间延迟程序,第一二块数码管显示秒位,第三四块显示毫秒位。数码管显示一段时间60s后再跳回到初始位置00s,再显示,由此循环下去。当数码管显示时间与定时时间相同时发出一个中断信号,8259中断器接到此中断信号,屏幕显示“get up!”,流水灯闪烁,蜂鸣器响一秒。设置一个闹钟开关,用来调节闹钟有效性,当开关为1时,定时设置有效,为0则无效,定时时间为有效时的时间设置。2.2 详细设计8253定时、计数器模块8253A芯片在本实验中用了计数器0,工作在方式2下,8253计数次数为 10ms*1.193182MHz,即2E9A工作箱的时钟频率为1.193MHz,中断每10ms有一次,这样就可以通过控制发中断的次数来得到想要的时间。8253的CLK0接系统时钟OPCLK,门控信号GATE2接+5V。采用内部0号中断。8255并行接口模块8255A的两个端口在本次实验中均有用处,A口为方式0用作输出,PA0PA3接X1X4,PA6或PA7接 SPK定时时间到蜂鸣,输出为高位时蜂鸣器响。B口为方式0用作输出,接 ADP,与七段数码管LED连接,用于向七段数码管输出数据的,显示时间。C口低四位PC0-PC3,作输入,接D0D3拨动开关设置定时时间,其中最高位用于控制定时有效信号,第三位用于置数。高四位PC4PC7输出,接S0S3显示流水灯,与4个发光二极管连接,用于向发光二极管输出数据。 八段数码管仍由8255并行接口A口的低4位进行位选择,低位为选中有效信号,通过B口输出要显示的段码,这样在4个八段数码管上分别显示秒和毫秒。当1s时间到时,修改秒和毫秒对应的数值,送相应的八段数码管进行更新显示。8259中断控制模块8259A芯片在本实验中使用IRQ0内部中断,作为计时或在闹钟情况下的特殊功能。IRQ0是用于控制计时,每10ms中断一次。当IQR0 中断触发后,程序进入闹钟计时模块。程序将用户输入的闹钟时间保存在存储单元中,在闹钟走时的过程中,不断将系统现在时间与闹钟时间进行对比,当定时时间到时,产生蜂鸣器响及流水灯闪烁效果。其中就拨动开关中D3是用来调节设置时间有效性,当D3=1时,定时设置有效,否则无效,定时时间为有效时的时间设置。3.电路原理图、接线图PC0PC3接D0D3拨动开关设置定时时间;PC4PC7接S0S3显示流水灯;PB0PB7接ADp数码管显示时间 ;PA6或PA7接 SPK蜂鸣器;PA0PA3接X1X4,数码管选择;其中D3用来调节设置闹钟有效性,当D3=1时,定时设置有效,否则无效。 GTE0 8253 CLK0 OUT0+5VOPCLKIRQ08259 IRQ0 PB0PB7PA0PA3 PA6或PA7 8259PC0-PC3PC4-PC7ADPX1X4SPKD0D3S0S34.程序流程图开始主程序流程图:中断清零 8253、8255、8259初始化开中断#0设置定时时间七段数码管显示时间60s否数码管显示时间与定时时间 相同是中断程序调用蜂鸣器、流水灯程序终止程序七段数码管显示子程序流程图七段数码管显示子程序保护寄存器数值由BX指向TABLE表指向第一位数码管改变位码取要显示的字符位码送B口显示显示字符转换为段码值数码管亮? 段码表指针送BX段码输出至A口延时调整指针,指向下一个地址返回N Y中断程序流程图:中断程序入口Count+1指针指向存取单元调用定时时间并存储定时时间调用屏幕显示“Get up!”程序调用流水灯程序调用蜂鸣器程序中断程序结束5.源程序使用IRQ0内部中断 使用8253,8255,82598255:方式0,AB口输出,PC0-PC3输入,PC4-PC7输出 PC0PC3接D0D3-拨动开关设置定时时间PC4PC7接S0S3 -显示流水灯PB0PB7接ADP -数码管显示时间 PA6或PA7接 SPK -定时时间到蜂鸣PA0PA3接X1X4 D3用来调节设置闹钟有效性,当D3=1时,定时设置有效,否则无效,定时时间为有效时的时间设置 STACKSEGMENT STACK DW 64 DUP(?) STACKENDSDATA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;数码管可显示0,1,2,3,4,5,6,7,8,9FISDB 00H ;第一块数码管SECDB 00H ;第二块数码管THIDB 00H ;第三块数码管FOUDB 01H ;第四块数码管 COUNT1 DB 0FFH;定时数COUNT2DB 0EEH;控制流水灯亮的位置TEMPDB 00HTIMEUPDB 0DH, Get Up ! ,00HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXPUSHDSMOVAX,0000HMOVDS,AXMOV AX,OFFSET IRQ0ADD AX,2000HMOV SI,0020HMOV SI,AXMOV AX,0000HMOV SI,0022HMOVSI,AXPOP DSIN AL,21H ;8259 开中断AND AL,0FCHOUT21H,ALMOVAL,81H ;8255控制字初始化OUT 63H,ALMOV AL,00HOUT 61H,ALMOVAL,0FFHOUT62H,AL;计数器0对IRQ0 初始化MOV AL,34HOUT 43H,ALMOV AX,2E9AH ;8253计数次数为 10ms*1.193182MHzOUT 40H,ALMOVAL,AHOUT40H,AL MOV CX,0000HMOVBX,0000HMOVDX,0000H;显示时间段 DIS:CLIPUSH AXPUSHBXCALLDALLY1MOV AL,0DH ;选择第2块数码管OUT 60H,ALMOVBL,SECMOV AL,TABLEBXOUT 61H,ALCALLDALLY1MOV AL,0EH ;选择第1块数码管OUT 60H,ALMOVBL,FISMOV AL,TABLEBXOUT 61H,ALCALLDALLY1MOV AL,07H ;选择第4块数码管OUT 60H,ALMOVBL,FOUMOV AL,TABLEBXOUT 61H,ALCALLDALLY1MOV AL,0BH ;选择第3块数码管OUT 60H,ALMOVBL,THIMOV AL,TABLEBXOUT 61H,ALPOP BX POP AXSTIJMPDIS;IRQ0中断程序;PRE1、2、3、4为判断进位段;A1、2、3、4为判断定时段IRQ0:PUSHBXINCFOUCMP FOU,0AHJZPRE1BACK:POPBXMOV AL , 20HOUT 20H , ALIRETPRE1: MOV FOU,0HINCTHICMP THI,0AHJZ PRE2JMPBACKPRE2:MOV THI ,0HINCSECA1:;CALLTIME ;这一段可以设置个位秒位定时;CMPTEMP,01H;JNZA4;MOVDH,COUNT1;CMPSEC ,DH;JZA3A4:CMPSEC,0AHJZPRE3JMPBACKPRE3:MOVSEC ,0HINC FISA2:CALLTIME ;调用定时程序 CMPTEMP,01HJNZD0MOVDL,COUNT1CMPFIS,DLJZA3;设置定时十位秒JMPDOA3:CALLOPEN;调用扬声器程序CALLLIUSHUI;调用流水灯程序 MOVBX,OFFSET TIMEUPMOVAH,06HINT10HMOVAL,0FFHOUT62H,ALD0:CMPFIS,06HJZPRE4JMPBACKPRE4:MOVFIS,0JMPBACK;定时子程序TIME:PUSHAXIN AL,62HANDAL,0FHCMPAL,08HJBC1MOVCOUNT1,ALANDCOUNT1,07HMOVTEMP,01HJMPC2C1:MOVTEMP,00HC2:POPAXRET;流水灯程序 LIUSHUI:PUSHAXPUSHCXMOVCL,03HMOVAL,COUNT2 ; COUNT2=0EEHB1:OUT62H,ALCALLDALLY2CALLDALLY2ROLAL,1LOOPB1MOVCOUNT2,ALMOVAL,0FFHOUT62H,ALPOPCXPOPAXRET;扬声器子程序OPEN: PUSH AX;初始化60H蜂鸣器PUSHCX MOVAL,0F0H OUT 60H,ALPOPCX POP AX RET;延时程序1DALLY1: PUSH CXPUSH AX MOV CX,0010HT1: MOV AX,0010HT2: DEC AX JNZ T2 LOOP T1 POP AX POP CX RET;延时程序2DALLY2: PUSH CXPUSH AX MOV CX,0030HT3: MOV AX,0030HT4: DEC AXJNZ T4LOOP T3POP AXPOP CXRETCODEENDS ENDSTART6.总结和体会通过这次设计让我学到了不少东西,经过这次的课程设计让自己对8253、8259、8255等几个芯片有了更深入的了解,将课上的理论应用到了实践。在课程设计的过程中通过查阅书籍,采用8255、8259、8253三个芯片实现了电子定时闹钟功能,明白了8253的计数原理以及定时中断的应用让自己的知识更系统,更深入,对接口技术有了更全面的理解。通过这几个芯片能够保证其它应

温馨提示

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

评论

0/150

提交评论