微机接口技术课程设计报告_第1页
微机接口技术课程设计报告_第2页
微机接口技术课程设计报告_第3页
微机接口技术课程设计报告_第4页
微机接口技术课程设计报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

PAGE1《微机接口技术课程设计》设计报告 题目:专业:10电子信息工程班级:学号:姓名:指导老师:重庆交通大学信息科学与工程学院设计时间:2012年6月14日到2012年6月28号1.设计任务说明综合应用接口技术各汇编语言程序设计技术,在PC机上实现时钟显示、定时和响铃。利用BIOS和DOS的系统功能调用,能将计算机系统的日期和时间读出并显示出来。用“时:分:秒”(都是两位)的形式连续显示系统时间。利用定时接口芯片每秒钟响一次铃。EQ\o\ac(○,4)提示输入定时时间(即定时秒数),每经历指定的秒数,则演奏乐曲。2.总体设计(1)利用定时中断实现时钟显示。(2)在定时中断发生时同时调用发声程序实现响铃。3.详细设计当产生定时中断时(由8259A的IRQ0引起),CPU转入BIOS的08H号中断处理程序,在该中断处理程序中是一条软中断指令“INT1CH”,而在该软中断程序中只有一条IRET指令,这样系统每秒钟产生18.2次定时中断,调用18.2次INT1CH,这为开发者提供了一个编写与时间有关的程序的软中断接口,上例的定时响铃就是借用这个软接口实现的。其具体操作如下:①在时钟显示程序,截获1CH号中断,在新的1CH中断处理程序安排一个计数器,记录调用的次数,每18次(约一秒钟)显示一次当前时间。②利用BOIS的1AH号中断的0号功能,读取当前计时器的数值:入口参数:AH=02H执行:INT1AH出口参数:AL=午夜信号,CH=时的BCD码,CL=分的BCD码,DH=秒的BCD码③利用BIOS的10H号中断的13H号功能,实现在屏幕的右上角显示时间。④在主程序中要保存原1CH号中断的中断向量,并设置新的时钟显示中断程序的中断向量,然后作其它工作,如调用BIOS的键盘中断INT16H的0号功能,等待用户按键盘,也就是等待中断的发生,并在屏幕右上角显示时间……,当用户按键后,主程序工作完成后,恢复原1CH中断向量。发声程序用定时器驱动扬声器方式,这是直接利用8253/8254定时器产生声音的一种方法。定时器2的GATE2与8255A的端口61H的PB0相连,当PB0=1时,GATE2获得高电平,使定时器2可以在模式3(方波)下工作。定时器2的OUT2与端口61H的PB1通过一个与门与扬声器的驱动电路相连,当PB1=1时,允许OUT2输出的频率信号到达扬声器电路。利用定时中断实现时钟显示的流程图:开始开始显示属性并保存光标位置显示属性并保存光标位置开始显示 N开始显示 Y间隔计数器减1间隔计数器重置间隔计数器减1间隔计数器重置读取系统时间 读取系统时间恢复现场,取系统时间恢复现场,取系统时间ASCII码转换ASCII码转换新的中断向量新的中断向量结束结束在定时中断发生时同时调用发声程序实现响铃的流程图:开始开始输出方波,程序执行即开始发声输出方波,程序执行即开始发声发声延迟发声延迟延迟程序 PB4改变 PB4改变等待改变 Y保存状态保存状态恢复数据恢复数据结束结束4.程序及说明count_val=18;间隔数(约为一秒)dpage=0row=3column=85-buff_lencolor=07h;显示属性.286.modelsmall.dataMUSTEPdw330,294,262,294,3dup(330)dw294,294,294,330,392,392dw294,294,330,294,262 dw330,392,330,294,330,392,330,294,330dw330,392,330,294,262,294,330,392,294dw262,262,220,196,196,220,262,294,330,262dw-1 .codecountdwcount_valyydb?xxdb?hhhhdb?,?,":"mmmmdb?,?,':'ssssdb?,?db0ahmess1db4dup(?)db":"mess2db2dup(?)db":"mess3db2dup(?)db0dh,0ah,24hyeardw?monthdb?daydb?buff_len=$-offsethhhh;显示信息长度cursordw?;保存当前光标位置new1ch:cmpcs:count,0;是否到显示时候jznext;是转next deccs:count;否则间隔计数器减1 iret;中断返回next: movcs:count,count_val;间隔计数器重置初值18 sti;开中断 pusha;保护现场 pushds pushes pushcs;填写DS和ES popds pushds popes callget_t;读取系统时间及日期 movbh,dpage;BX←页号 movah,3;取原光标位置 int10h movcursor,dx;保存原光标位置 movbp,offsethhhh;bp←时间信息串首地址 movbh,dpage movdh,row movdl,column movbl,color movcx,buff_len-6 moval,0;a1←显示模式,移动光标 movah,13h;显示时钟 int10h movbh,dpage movdx,cursor movah,2;恢复光标原位置 int10h popes;恢复现场 popds popacmpyy,0jnzrrrcallmusicrrr:decyycallring iretget_t proc;取当前系统时间和日期过程 movah,2;取时间信息 int1ah moval,ch callttasc;调用转换压缩BCD码为ASCII码子程序 xchgah,al movwordptrhhhh,ax;保存小时数 moval,cl callttasc xchgah,al movwordptrmmmm,ax moval,dh callttasc xchgah,al movwordptrssss,ax movah,2ah;取日期数信息 int21h movyear,cx movmonth,dh movday,dl movax,year movbx,lengthmess1 movsi,offsetmess1 calltodasc moval,month xorah,ah movbx,lengthmess2 movsi,offsetmess2 calltodasc moval,day xorah,ah movbx,lengthmess3 movsi,offsetmess3calltodasc retget_tendpttascproc;时间调用转换压缩BCD码为ASCII码子程序 pushcx movah,al andal,0fh movcl,4 shrah,cl addax,3030h popcx retttascendptodascproc;日期调用转换为ASCII码子程序pushamovcx,10t1:xordx,dxdivcx adddl,30h mov[si+bx-1],dl decbx jnzt1popa rettodascendpgsoundprocpushamoval,10110110b;定时器2控制字,方式3,输出方波out43h,almovdx,12h;dx|ax←11933100hzmovax,348chdivdiout42h,al;定时器2分频系数moval,ahout42h,alinal,61h;a1←61h口movah,al;61h口原数保存到ah中oral,03h;61h口的pb和pb置1out61h,al;本行执行后即开始发声wait1:movcx,8289hcallwaitfdecbxjncwait1moval,ah;恢复61h口原数据out61h,alpoparetgsoundendpringprocpushamovdx,10000;dx←发声次数inal,61h;d1←0(发声开关)andal,0fdh;d1取反sound:xoral,02hout61h,almovcx,05fffh;cx延时循环初值ww:loopwwdecdxjnesoundpoparetringendpmusicprocmoval,xxmovyy,almovax,@datamovds,axleasi,musfre;取频率表的首地址leabp,ds:mustime;取节拍时间表首地址freq:movdi,[si];di←频率cmpdi,-1;结束演奏?jeend_musmovbx,[bp];bx←节拍时间值callgsound;调用发声程序addsi,2;指向下一个发声频率addbp,2jmpfreq;继续演奏下一个音节end_mus:retmusicendpwaitfproc;入口参数:CX=COUNTOF15.08uspushaxwaitf1:inal,61handal,10hcmpal,ahjewaitf1movah,alloopwaitf1popaxretwaitfendpold1chdd?start:movax,@codemovds,axmovah,1int21hmovah,30hsubal,ahmovyy,almovxx,alpushcs popds;填写DS movax,351ch;取1CH号中断向量 int21h movwordptrold1ch,bx;保存向量偏移地址 movwordptrold1ch+2,es movdx,offsetnew1ch;dx新时钟中断入口偏移地址 movax,251ch;新中断段地址

温馨提示

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

评论

0/150

提交评论