《微机课程设计(12页).doc》由会员分享,可在线阅读,更多相关《微机课程设计(12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-课题微机原理课程设计 姓 名: 杨壮志 学 号: 200900191180 班 级: 09级电气2班 同组者: 赵肖瑞 指导老师: 刘志珍简介本课程设计使用软件实现电子时钟功能。用emu 8086进行运行时,本程序是调用系统的时间.用emu8086调试程序,在用PE2进行校时时,首先进入界面的是“LAO SHI HAO”字母样式,然后图框,我们设计成了房子的样式。一设计目的:1再次熟悉掌握8086/88指令系统,以及数据段的定义;2掌握8259A,8253,8255A的使用方法;3学习程序设计的基本思路和方法;4.了解一些有关宏定义,宏调用的方法;5.掌握中断类型号为21H和10H的部分功能
2、。二、设计要求:运用汇编语言设计了一个电子时钟,并且能实现以下功能:1. 显示型的外围框图;2. 在屏幕中间显示日期,星期,以及时间;3显示本程序的制作人员;三、硬件设计原理硬件设计用到的芯片是 8086、8259、8253、8255、8284.首先,我们利用8284芯片加上晶振来产生脉冲源,并且使8253工作在方式2,即根据脉冲信号每一秒钟向8259发出一个中断信号,由8259向8086CPU发出中断请求,8086响应请求,并执行一定的程序,通过8255并行端口B通道来输出数据,控制LED数码管的显示数字。四、部分子程序功能简介:程序的开始,我们定义了四个宏定义,是显示彩色字符用的宏,显示字
3、符串用的宏。定义这两个宏的目的是在屏幕中间显示外框,在小框中显示“LAO SHI HAO”与房子相配合,在大框中显示日期、星期、时间、程序制作人员等内容,大框中为绿底红字,样式美观。程序的下半部分是程序的主要内容,也即调用系统日期、时间、星期并显示在框中。调用这三方面内容比较相似,即分别将系统日期、星期、时间取出,并调用装换为ASCII码子程序,并将其显示在屏幕中。该调用系统日期、时间、星期的程序为循环程序,通过不断调用时间,刷新屏幕,通过延时程序使光标稳定。1 DISCHAR/DIS(房子图案显示程序)在宏定义里,设置两个形参变量,X为移动光标的位置以及Y为输出字符的ASCII码,在下面调用
4、宏中,给予变量X,Y不同的实参,输出图案,其中调用DISCHAR实现上方字符的输出,调用DIS实现外壳以及彩色字的输出。2 ASCASC1(日期时间转换为ASCII子程序) 调用系统日期或时间后,寄存器中存放的是数值而不是ASCII码,所以,要调用转换程序转换为ASCII码,调用该程序,并将日期和时间分别放入到BUFFER1和BUFFER中,以便读取并显示。五.程序流程图:程序流程图如下:-第 12 页-六、源程序DATA SEGMENT DBUFFER DB THE TIME IS: ,7 DUP (:), 21 DUP ( ) DBUFFER1 DB THE DATE IS: ,28 DU
5、P ( ) T1 DB THE DAY IS: MONDAY,20 DUP ( ) T2 DB THE DAY IS: TUESDAY,20 DUP ( ) T3 DB THE DAY IS: WEDNESDAY, 20 DUP ( ) T4 DB THE DAY IS: THURSDAY, 20 DUP ( ) T5 DB THE DAY IS: FRIDAY,20 DUP ( ) T6 DB THE DAY IS: SATURDAY, 20 DUP ( ) T7 DB THE DAY IS: SUNDAY,20 DUP ( ) WORDS DB LAO SHI HAO MAKER DB D
6、ESIGNED BY yzz &zxr SPACE DB 30 DUP ( ) DATA ENDSSSEG SEGMENT STACK DW 200 DUP (?)TOP LABEL WORD SSEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:SSEG,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,SSEG MOV SS,AX MOV SP,OFFSET TOP CLDDIS MACRO X,Y ;显示彩色字符用的宏 ;X的位置,Y是ASCII PUSH CXMOV AH,02 ;中断10H
7、的2号置光标位功能 MOV BH,0MOV DX,X ;定位,DH是行,DL是列 INT 10H MOV AH,9;10H的9号功能 MOV AL,Y MOV BH,0 MOV BL,0DH;浅洋红 MOV CX,1 INT 10H POP CX ENDMDIS1MACRO X,Y;显示彩色字符用的宏, ;X的位置,Y是ASCII PUSH CXMOV AH,02 ;中断10H的2号置光标位功能MOV BH,0MOV DX,X ;定位,DH是行,DL是列INT 10HMOV AH,9;10H的9号功能 MOV AL,Y MOV BH,0 MOV BL,0AH;浅绿色 MOV CX,1 INT
8、10HPOP CXENDMDISSTRING MACRO X,Y ;显示字符串的宏 MOV AH,02 XOR BH,BHMOV DX,X;定位,DH是行,DL是列 INT 10H MOV DX,OFFSET Y;显示字符串 MOV AH,09H INT 21H ENDM PUSH CX PUSH AXPUSH DXYANG: DIS1 0920H,L DIS1 0921H,A DIS1 0922H,O DIS1 0925H,S DIS1 0926H,H DIS1 0927H,I DIS1 092AH,H DIS1 092BH,A DIS1 092CH,O DIS 0B1BH, DIS 0B1
9、DH, DIS 0B1FH, DIS 0B21H, DIS 0B23H, DIS 0B25H, DIS 0B27H, DIS 0B29H, DIS 0B2BH, DIS 0B2DH, DIS 0B2FH, DIS 0B31H, DIS 0B33H, DIS 121BH, DIS 121DH, DIS 121FH, DIS 1221H, DIS 1223H, DIS 1225H, DIS 1227H, DIS 1229H, DIS 122BH, DIS 122DH, DIS 122FH, DIS 1231H, DIS 1233H, DIS 0C1BH, DIS 0D1BH, DIS 0E1BH,
10、 DIS 0F1BH, DIS 101BH, DIS 111BH, DIS 0C33H, DIS 0D33H, DIS 0E33H, DIS 0F33H, DIS 1033H, DIS 1133H, DIS 081FH, DIS 091EH, DIS 0A1DH, DIS 082FH, DIS 0930H, DIS 0A31H,DIS 0721H, DIS 0723H, DIS 0725H, DIS 0727H, DIS 0729H, DIS 072BH, DIS 072DH, ;显示边框结束 POP DX POP AX POP CX YU: MOV AH,2AH ;取日期程序 INT 21H
11、 MOV SI,13 MOV AX,CX MOV BX,100 DIV BL MOV BL,AH CALL ASC1 ;日期数值转换成相应的ASCII码字符 MOV AL,BL CALL ASC1 INC SI MOV AL,DH CALL ASC1 INC SI MOV AL,DL CALL ASC1 MOV BP,OFFSET DBUFFER1 ;在屏幕上显示日期 MOV DX,0D1CH MOV CX,23 MOV BX,003CH MOV AX,1300H INT 10H MOV SI,13 MOV BX,100 DIV BL MOV AH,2CH ;取时间程序 INT 21H MOV
12、 AL,CH CALL ASC ;将时间数值转换成ASCII码字符 INC SI MOV AL,CL CALL ASC INC SI MOV AL,DH CALL ASC MOV BP,OFFSET DBUFFER ;将时间显示在屏幕上 MOV DX,0F1CH MOV CX,23 MOV BX,003CH MOV AX,1300H INT 10H MOV AH,2AH ;显示星期几程序 INT 21H CMP AL,01 JNE Y1 MOV BP,OFFSET T1 JMP YY1: CMP AL,02 JNE Y2 MOV BP,OFFSET T2 JMP YY2: CMP AL,03
13、JNE Y3 MOV BP,OFFSET T3 JMP YY3: CMP AL,04 JNE Y4 MOV BP,OFFSET T4 JMP YY4: CMP AL,05 JNE Y5 MOV BP,OFFSET T5 JMP YY5: CMP AL,06 JNE Y6 MOV BP,OFFSET T6 JMP YY6: MOV BP, OFFSET T7 Y: MOV DX,0E1CH ;将星期几显示在屏幕上 MOV CX,23 MOV BX,003CH MOV AX,1300H INT 10HNT: MOV BP,OFFSET MAKER ;显示本程序的制作人员 MOV DX,111CH
14、MOV CX,23 MOV BX,003CH MOV AX,1300H INT 10H MOV BP,OFFSET SPACE MOV DX,0C1CH MOV CX,23 MOV BX,003CH MOV AX,1300H INT 10H MOV BP,OFFSET SPACE MOV DX,101CH MOV CX,23 MOV BX,003CH MOV AX,1300H INT 10H JMP YU MOV AH,4CH INT 21HASC PROC NEAR ;时间数值转换成ASCII码字符子程序 PUSH BX CBW MOV BL,10 DIV BL ADD AL,0 MOV D
15、BUFFERSI,AL INC SI ADD AH,0 MOV DBUFFERSI,AH INC SI POP BX RETASC ENDPASC1 PROC NEAR ;日期数值转换成ASCII码字符子程序 PUSH BX CBW MOV BL,10 DIV BL ADD AL,0 MOV DBUFFER1SI,AL INC SI ADD AH,0 MOV DBUFFER1SI,AH INC SI POP BX RETASC1 ENDP MOV AH,4CH INT 21HCODE ENDS END START七、程序运行效果图运行程序,自动出现系统日期、时间、星期几及程序的制作人员。 八、
16、心得与体会:这个课程设计主要部分就是调用系统时间和日期的程序,并将其转换为ASCII码,并在屏幕中显示出来。确定了程序主干,在此基础上加上部分子程序。1. 首先编写程序的主干部分。2. 然后,添加子程序将程序变得更加美观,功能多样。首先,添加一个显示星期几的功能,该功能较为简单,调用系统里的星期即可,我们在此基础上做了进一步的设计:将星期几的阿拉伯数字转换为星期几的英文字母显示在屏幕中。3.最后,在运行可靠的前提下,我们做了一个简单的房子样式的图框,并将日期、星期、时间、制作人员等都显示在框中,使程序变得美观。体会:课程设计与平时所学的理论课程有着很大的区别,它是一个综合性很强的课程环节,也是
17、我们所必须经历的学习阶段。在课程设计当中,我们进一步认识了DOS系统并学到一些软件的应用,如masm,link,即汇编语言编译程序和连接程序,用来将我们编写的.asm文件编译成.obj文件,再转换成.exe可执行文件,这以后才能达到我们所要求的结果。同时,通过实际操作,我加深了对微机原理与接口技术理论知识的理解和认识,并初步掌握了课程设计的方法和步骤。 总之,这次课程设计让我巩固了一下自己所学的知识,通过查阅资料拓宽了我的知识面,同时在课程设计中还学会了团队合作以及独立思考和实践能力。 九、 参考文献1杨志坚主编,Intel8086/8088系列微型计算机原理及接口技术,北京:中国电力出版社,2007年4月第三次印刷。2.汇编语言程序设计,齐志儒,高福祥主编,东北大学出版社3.汇编语言实用教程基于win32编程,秦莲,姬伟峰主编,电子工业出版社4.汇编语言程序设计苏帆,唐永兴,吴保荣,胡杰主编,华中科技大学出版社