微机课程设计.docx
SHANDONGUNrVERSFTY课题微机原理课程设计姓名:杨壮志学号:2班级:09级电气2班同组者:赵肖瑞指导老师:刘志珍简介本课程设计运用软件实现电子时钟功能。用emu8086进行运行时,本程序是调用系统的时间,用CmU8086调试程序,在用PE2进行校时时,首先进入界面的是“1.AOSHIHAO”字母样式,然后图框,我们设计成了房子的样式。一.设计目的:1 .再次熟识驾驭8086/88指令系统,以及数据段的定义:2 .驾驭8259A.8253.8255A的运用方法:3 .学习程序设计的基本思路和方法;4 .了解一些有关宏定义,宏调用的方法;5 .驾驭中断类型号为21H和IOH的部分功能.二、设计要求:运用汇编语言设计了个电子时钟,并旦能实现以下功能:1 .显示型的外图框图:2 .在屏幕中间显示日期,星期,以刚好问:3 显示本程序的制作人员:三、硬件设计原理硬件设计用到的芯片是8086、8259、8253、8255、8284.首先,我们利用8284芯片加上晶报来产生脉冲源,并且使8253工作在方式2,即依据脉冲信号每一秒钟向8259发出一个中断信号,由8259向8086CPU发出中断恳求,8086响应恳求,并执行肯定的程序,通过8255并行端口B通道来输出数据,限制1.ED数码管的显示数字.J:rsHNN±工工rccccrrrcccccI11.1Ssssssis匕卜2彳tRRRRAff1.ff1.MiiiiiiiBI1.II:iiiii1.S3Hiiiiis?河三斡gBW三丝三k1.BW1«1.xI1.直:!”:K1.1.iiUVI<f福i1.i1.1.b1.4U1.=M4-H=-HJJI1.mHMI1.ImjU四、部分子程序功能简介:程序的起先,我们定义了四个宏定义,是显示彩色字符用的宏,显示字符中用的宏。定义这两个宏的目的是在屏幕中间显示外框,在小框中显示“1.AOS1.1.1.HAo”与房子相悔作,在大框中显示日期、星期、时间、程序制作人员等内容,大框中为绿底红字,样式美观。程序的下半部分是程序的主要内容,也即调用系统日期、时间、星期并显示在框中。调用这三方面内容比较相像,即分别将系统日期、星期、时间取出,并调用装换为ASCn码子程序,并将其显示在屏幕中。该调用系统日期、时间、星期的程序为循环程序,通过不断调用时间,刷新屏幕,通过延时程序使光标稳定。1. DISCHAR/DIS(房子图案显示程序)在宏定义里,设置两个形参变量X为移动光标的位置以及Y为输出字符的ASCI1.码,在下面调用宏中,赐予变量X,Y不同的实参,输出图案,其中调用D1.SCHAR实现上方字符的输出,调用DIS实现外壳以及彩色字的输出。2. ASCASC1(日期时间转换为ASCn子程序)调用系统日期或时间后,寄存器中存放的是数值而不是ASCII码,所以,要调用转换程序转换为ASCI1.码,调用该程序,并将日期和时间分别放入到BUFFERI和BUFFER中,以便读取并显示。五.程序流程图:程序流程图如下:六、源程序DATASEGMENTDBUFFERDB"THETIMEIS:".7DUP21DUP(")Dbufferidb,thedateis:,.28dupc,)T1.DBTHEDAYIS:MONDY'.20DUP(")T2DB,THEDAYIS:TUESDAY'.2ODUP(',)T3DB'THEDAYIS:WEDNESDAY'.20DUP(")T4DB,THEDAYIS:THURSDAY'.20DUPr)T5DB,THEDAYIS:FRIDAY,20DUP(,')T6DB'THEDAYIS:SATURDAY'.20DUPC')T7DB'THEDAYIS:SUNDAY'.20DUP(")WORDSDB1.AOSHIHAO'MAKERDB'DESIGNEDBYyzzzxr,SPACEDB30DUP('')DATAENDSSSEGSEGMENTSTACKDW2DUP()TOPI.ABE1.WORDSSEGENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:SSEG.ES:DATASTART:MOVX,DADMOVDS.AXMOVES.AXMOVAX,SSEGMOVSS.AXMOVSROhhSETTOPC1.DD1.SMACROX.Y;显示彩色字符用的宏;X的位巴,Y&ASCIIPUSHCXMOVAH,()2冲断IOH的2号理光标位功能MOVBH.0MOVDX.X;定位,DH是行,D1.是列INTIOHMOVAH.9JOH的9号功能MOVA1.YMOVBH.0MOVB1.1ODH;浅洋红MOVCX.IINTIOHPOPCXENDMD1.SIMACROX.Y;显示彩色字符用的宏,;X的位置,YSASCIIPUSHCXMOVAU,02;中断IOH的2号理光标位功能MOVBH.0MOVDX.X:定位,DH是行,D1.是列INTIOHMOVAH.9;IoH的9号功能MOVA1.YMOVBH.0MOVB1.OAH;浅绿色MOVCXJINTIOHPOPCXENDMDIS0B2DH;'Disstringmacrox.y;显示字符串的宏DIS0B2FH:'MOVAH.02DIS0B3IH.,(3)XOR1.1.,BHDIS0B33H,'MOVDX.X;定位,DH是行,D1.SD1.是列DIS121DH.'(a'INTIOHDISI2IFH.''MOVDX.OFFSETY;显示字符串DIS122IH.,(3>MOVAH,09HDISI223H,'(3)'INT21HD1.SI225H;,ENDMDIS1227H.,(g>,PUSHCXDISi229H,'(aPUSHAXDISI22BH;'PUSHDXD1.S122DH;'YANG:DIS1.W20H,'1.'D1.SI22FH:'DIS1.0921H.'A,DISI23IH,WDISI()922H."O'DIS1233H,D1.SI0925H.'S'DISOCIBH:'D1.S1.0926H.'H,D1.SOD1BH.''DISI()927H.,I'D1.SOEIBHZ(三),DIS1.092AH.,H'DISOF1BH.'<D1.S1.092BH.,A,D1.SIo1.BHDISI092CH.,O,DISDISDISOC33H:'DISOBIDHD1.S()D33H,'DISOB1.FHD1.SOE33H,D1.S0B21H.''DIS0F33H.''DISOB23H:'D1.SIO33H:'DISOB25H:'DISD1.S0B27H.'(a'D1.S081FH.'(g)'DIS0B29H.'"DIS091EH,DISDISOA1.DH二DIS082FH;'显示日期DISO93OH,''MOVDX.ODCHDIS0A3IH:'MOVCX.23D1.S072IH,''MOVBX,(X)3CHDISO723H;'MVAX,I300HD1.S0725H;INTIOHDISO727H;'MOVSI.13DIS0729H,''MOVBX.10()DIS072BH,''DIVB1.DISO72DH:'MOVAH,2CH;取时间程序;显示边框结束INT2IHPOPDXMOVA1.,CHPOPAXCA1.1.ASC;将时间数值转换成POPCXSC11码字符YU:MOVAH,2AH;取日期程序INCSIINT21HMOVA1.C1.MOVSI,13CA1.1.ASCMOVAX.CXINCSIMOVBXJ(X)MOVA1.DHDIVB1.CA1.1.ASCMOVB1.AHMovBroffsetdbuffer:将时间显示CA1.1.ASC1.;日期数值传换成相应的在屏麟上ASCII码字符MOVDX.OFICHMOVA1.B1.MOVCX.23CA1.1.ASCIMOVBX,(X)3CHINCSIMOVAX.I300HMOVA1.DHINTIOHCA1.1.ASCIMOVAH,2AH;显示星期几程序INCSIINT2IHMOVA1.D1.CMP1.01CA1.1.ASCIJNEYIMOVBP,OFFSETDBUFFERI;在屏幕上movBroffsettiJMPYY1.:CMPA1.,02JNEY2MOVBP,OFFSETT2JMPYY2:CMPA1.03JNEY3MOVBP.OFFSETT3JMPYY3:CMPA1.,04JNEY4MOVBP,OFFSETT4JMPYY4:CMPU)5JNEY5MOVBP.OFFSETT5JMPYY5:CMPA1.,06JNEY6MOVBP1OFFSEtT6JMPYY6:MOVBHO卜FSETT7Y:MOVDX1OEICH:聘星期儿显示在屏幕上MOVCX.23MOVBX,(X)3CHMOVAX.I3HINTIOHNT:movBroffsetmakerMOVDX.i1.ICHMOVCX.23MOVBX.003CH;显示本程序的制作人员MOVAX,13(X)11INTIOHMovBroffsetspaceMOVDX,OC1CHMOVCX.23MOVBX.(X)3CHMOVAX,I300HINTIOHMOVBRoFFSETSPACEMOVDX.IOICHMOVCX.23MOVBX,(X)3CHMVAX,I300HINTIOHJMPYUMOVAH.4CHINT21HASCPROCNEAR;时间数值转换成ASC1.I码字符了程序PUSHBXCBWMOVB1.1()DIVB1.ADDA1.JO'MOVDBUFFERISI,A1.INCSIDDH.'O'MOVDBUFFERIS1.I,AHINCSIPOPBXRETASCENDPASCIPROCNEAR;日期数值转换成ASCnMOVDBUFFERIISI1.AH码字符子程序PUSHBXCBWMOVB1.IOD1.VB1.ADDA1.,'0'MOVDBUFFER1SI.A1.INCSIADDAH.'O,七、程序运行效果图运行程序,自动出现系统日期、时间INCSIPOPBXRETASCIENDPMOVH.4CHINT2IHCODEENDSENDSTART星期几及程序的制作人员。八、心得与体会:这个课程设计主要部分就是遍用系统时间和日期的程序,并将其转换为ASCI1.码,并在屏幕中显示出来。确定了程序主干,在此基础上加上部分子程序.1 .首先编写程序的主干部分。2 .然后,添加子程序将程序变得更加美观,功能多样。首先,添加一个显示星期几的功能,该功能较为筒洁,谢用系统里的星期即可,我们在此基础上做了进一步的设计:将星期几的阿拉伯数字转换为星期几的英文字母显示在屏幕中。IO3 .最终,在运行牢靠的前提下,我们做r一个简洁的房子样苴的图枢,并将日期、星期、时间、制作人员等都显示在框中,使程序变得美观。体会:课程设计与平常所学的理论课程有着很大的区分,它是个综合性很强的课程环节,也是我们所必需经验的学习阶段在课程设计当中,我们进一步相识rDOS系统并学到一些软件的应用,如masm,1.ink,即汇编语言编译程序和连接程序,用来将我们编写的asm文件编译成obj文件,再转换成.exe可执行文件,这以后才能达到我们所要求的结果。同时,通过实际操作,我加深了对微机原理与接口技术理论学问的理解和相识,井初步驾驭了课程设计的方法和步骤。息之,这次课程设计让我巩固了一下自己所学的学问,通过查阅资料拓宽了我的学问面,同时在课程设计中还学会了团队合作以及独立思索和实践实力.九、参考文献1 .杨志坚主编,gInte1.8086'8088系列微型计算机原理及接口技术,北京:中国电力出版社,2007年4月第三次印刷。2 .£汇编语言程序设计凯齐志儒,高福祥主编,东北高校出版社3 .&汇编语言好用教程一一基Trin32编程,秦莲,姬伟峰主编,电子工业出版社4 .汇编语言程序设计苏帆,唐永兴,吴保荣,胡杰主编,华中科技高校出版社