当前位置:文档之家› 河北科技大学微机原理课设

河北科技大学微机原理课设

河北科技大学微机原理课设
河北科技大学微机原理课设

河北科技大学

课程设计报告

学生姓名:李宏哲学号:13L0751070 专业班级:电信L132

课程名称:微型计算机原理及应用技术

学年学期: 2 0 1 5—2 0 1 6学年第1 学期指导教师:张永强

2 0 1 6 年1 月

目录

一、设计题目----------------------------------2

二、设计目的----------------------------------2

三、设计原理及方案----------------------------3

四、实现方法----------------------------------4

五、实施结果---------------------------------14

六、改进意见及建议---------------------------16

七、小组成员----------------------------------16

八、课设体会----------------------------------16

字符串动画显示设计报告

一.设计题目

字符串动画显示设计内容要求:

1、菜单

内容包括:①输入字符串;②字符串动画显示;③退出。

2、输入字符串

选择该项后,可以输入一个字符串。该字符串即为动画显示时所显示的字符串。

3、字符串动画显示

所示字符串在一矩形框内一半从左另一半从右向中间移动,当两半相遇时又分别向两边移动,直至遇到两侧的边框双重新向中间移动,重复上述过程直至按任意键,则停止字符串动画显示返回到主菜单。

4、在主菜单中选择退出项,则结束程序返回DOS。

二.设计目的

课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识解决实际工程设计和应用问题的能力的重要教学环节,它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一种较好方法。

通过课程设计实践,不仅要培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅专业资料、工具书或参考书,掌握工程设计手段和软件工具,并能用设计报告表达设计思想和结果的能力。培养学生事实求是和严肃认真的工作态度。

通过设计过程,要求学生熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,使学生得到微机开发应用方面的初步训练。让学生独立或集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路

的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。

三.设计原理及方案

主程序总流程图

显示菜单

输入1、2、3比较

AL=1 输入一个字

符串

AL=2 AL=3输入任

意一个字符画矩形框

返回

DOS

分配左右字符串与空格的长度

将字符串框的左右显示

延时

左右字符串向中间移动

中间空格为0

字符串向两边移动

开始

结束

四、实现方法

汇编程序如下

DATA SEGMENT

MENU DW 2 DUP(0AH)

DB 25 DUP(20H),'String dynamic display',0DH,0AH

DW 2 DUP(0AH) ;预置到第6行

DB 32 DUP(20H),'MAIN MENU',0DH,0AH ;

DW 25 DUP(20H),201,205, 21 DUP(20H),205,187,0DH,0AH

DB 26 DUP(20H),' 1.INPUT A STRING ',175,175,175,0DH,0AH

DB 26 DUP(20H),' 2.DISPLAY MODEL ',175,175,175,0DH,0AH

DB 26 DUP(20H),' 3.RETURN TO DOS ',175,175,175,0DH,0AH

DW 25 DUP(20H),200,205, 21 DUP(20H),205,188,0DH,0AH

DB 29 DUP(20H),' CHOICE(1,2,3):$'

;在第六行的开头放入32个空格,再写入MAIN MENU,之后回车换

;行,下同

;在第七行加入25个空格,左上角,一个横框,21个空格,一个横

;框,右上角

;在第八行加入26个空格, 1.INPUT A STRING... ,三个箭头

;在第九行加入26个空格, 2.DISPLAY MODEL... ,三个箭头

;在第十行加入25个空格, 3.RETURN TO DOS... ,三个箭头

;在第十一行加入25个空格,左下角,一个横框,21个空格,一个

;横框,右下角

;9号系统功能调用需要以'$'作为结束标志

ENDWORD DB 0DH,0AH,0DH,0AH,9,9,9,'...PRESS ANY WORD TO QUIT...$' ;9为定位键,即TAB键,一次可移动8个字符

SPA1 DW 0 ;前导空格长度

STR2 DW 0 ;左边字符串长度

SPA3 DW 0 ;中间空格长度

STR4 DW 0 ;右边字符串长度

SPA5 DW 0 ;后导空格长度

SPA_PAST DW 0 ;与SPA3相比较的中间变量SPA_PAST1 DW 0 ;由中间相两边转移时赋予

;SPA_PAST的值

LEFT DW 0 ;显示框左边框的地址

RIGHT DW 0 ;显示框右边框的地址

STR DB 21 ;第一个字节为该缓冲区能存放

;的字节数

DB 0 ;第二个字节为系统填写实际键

;入的个数

DB 21 DUP(0) ;从第三个字节开始用来存放字

;符串,最后键入回车键表示字

;符结束

FLAG_CL DB 0 ;颜色变换标志

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,DATA

MOV DS,AX

MOV AX,0B800H

MOV ES,AX ;彩色显示器显示缓冲区,存放当前屏幕像素代码CLD ;清除方向标志,置DF=0,则SI、DI自动增量,方

;向由低到高

REPEAT: MOV AX,3

INT 10H ; 80×25 16 色文本显示器模式功能:设置显

;示模式入口参数:AH=00H AL=显示模式

LEA DX,MENU

MOV AH,9

INT 21H ;输出字符串,将指定的内存缓冲区中的字符串在屏

;幕上显示出来,需要将内存缓冲区的地址赋给DX,

;缓冲区的字符串以“$”为结束标志

INPUT:

MOV AH,0

INT 16H ;从键盘读字符 AL=字符码AH=扫描码

CMP AL,'1'

JNZ CP2

CALL INPUTSTR ;和1做比较,如果等于1,则输入字符串,再跳转

;回INPUT,否则跳转到CP2,和2做比较JMP INPUT

CP2:

CMP AL,'2'

JNZ CP3

CALL DISPLAY ;和2作比较,如果等于2,则动画显示,退出后返

;回到REPEAT,重复判断,否则跳转到CP3,和3作

;比较

JMP REPEAT

CP3:

CMP AL,'3' ;和3作比较,如果等于3,则输出PRESS ANY WORD

;TO QUIT...,否则返回INPUT

JNZ INPUT

LEA DX,ENDWORD

MOV AH,9

INT 21H ;输出PRESS ANY WORD TO QUIT...

MOV AH,1

INT 21H ;输入单个字符(将字符存入AL寄存器当中在屏幕

;中)

MOV AH,4CH

INT 21H ;返回DOS

INPUTSTR: ;输入字符串函数

MOV AL,0DH

MOV AH,0EH

INT 10H ;输出回车

MOV AL,0AH

INT 10H ;输出换行

LEA DX,STR

MOV AH,0AH

INT 21H ;键盘输入字符串

MOV AL,0AH

MOV AH,0EH

INT 10H ;输出换行

RET

DISPLAY:;显示函数

CMP STR+1,2

JNB DIS1 ;总长度不低于2,则转移到DIS_1,否则退出JMP QUIT2

DIS1:

CALL LINE ;画矩形

MOV DL,58 ;空白条的长度

MOV AL,STR+1 ;字符串实际总长度,即被放在str+1中

SUB DL,AL ;减法

MOV DH,0

MOV SPA3,DX ;中间空格长度

INC DX

MOV SPA_PAST,DX

MOV SPA_PAST1,DX

MOV BL,AL

INC AL

SHR AL,1 ;逻辑右移,最高位补0,最低位至CF

CBW ;字节扩展,将AL中的单字节数的符号扩展到AH中MOV STR2,AX ;左边字符串的长度,如字符串总长度是偶数,则左

;边字符串为:总长度/2,

;若为奇数,则左边字符串为:(总长度+1)/2 SUB BL,AL

MOV BH,0

MOV STR4,BX ;右边字符串的长度(=总字符串的长度-左边字符串

;的长度)

DIS2:

MOV BP,ES ;将0B800H赋给BP,保护作用

PUSH DS ;DS入栈

POP ES

MOV DI,1000H

MOV CX,SPA1

JCXZ PLAY1 ;若计数寄存器CX=0,跳转到标号PLAY_1处继续执

;行,否则加入SPA1个空格

MOV AL,20H

REP STOSB

PLAY1:

LEA SI,STR+2 ;将BUF的地址赋给SI,将左边字符串传送到DI MOV CX,STR2

REP MOVSB

MOV CX,SPA3 ;若计数寄存器CX=0,跳转到标号PLAY_2处继续执

;行,否则加入SPA3个空格

JCXZ PLAY2

MOV AL,20H

REP STOSB

PLAY2:

MOV CX,STR4 ;将右边字符串传送到DI

REP MOVSB

MOV CX,SPA5 ;若计数寄存器CX=0,跳转到标号PLAY_3处继续执

;行,否则加入SPA5个空格

JCXZ PLAY3

MOV AL,20H

REP STOSB

PLAY3:

SHOW1:

MOV ES,BP ;将0B800H赋给ES

CMP FLAG_CL,0

JZ COL1

CMP FLAG_CL,1

JZ COL2

MOV FLAG_CL,0

MOV AH,01H ;背景白AH从高位到低位依次是闪烁背景红

;背景绿背景蓝高亮前景红前景绿

;前景蓝

JMP COL3

COL1:

MOV FLAG_CL,1 ;颜色变换,闪烁

MOV AH,02H

JMP COL3

COL2:

MOV FLAG_CL,2

MOV AH,04H

COL3:

MOV SI,1000H

MOV DI,LEFT ;将左边开始的地址赋给DI

MOV CX,58

SHOW2:

LODSB ;将SI所指的存储单元中的一个字节取到AL寄存器

;中

STOSW ;将AX中的一个字,存到DI所指的目标串的存储单

;元

LOOP SHOW2

MOV AH,1

INT 16H ;读取键盘状态,ZF=1——无字符输入,否则,AH

;=键盘的扫描码,AL=ASCII码

JNZ QUIT1

CALL DELAY ;延时

MOV BX,SPA_PAST ;若SPA3比SPA_PAST小,则转移到CPL(从两边向中

;间移动);否则转移到CPH(从中间向两边移动)CMP SPA3,BX

JL CPL

JGE CPH

QUIT1:

MOV STR+1,0 ;将实际字符串的数值清零

QUIT2:

LEA SI,SPA1 ;将SPA1的地址赋给SI

XOR AX,AX ;AX清零

MOV CX,5 ;设定计数器的值为五

QUIT3:

MOV [SI],AX

INC SI

INC SI

LOOP QUIT3 ;清除SPA1,STR2,SPA3,STR4,SPA5

XOR DI,DI ;DI清零

MOV CX,80*25

MOV AX,720H ;刷全屏

REP STOSW

RET

CPL: ;从两边向中间移动的函数

DEC SPA3 ;中间长度减1,若结果为0,则转移到CPL1,否则

;继续减1,再次判断结果是否为0,若是,则转移

;到CPL2,否则左边和右边空格长度各加1,再转移

;到DIS2

CMP SPA3,0

JZ CPL1

DEC SPA3

CMP SPA3,0

JZ CPL2

INC SPA1

INC SPA5

JMP DIS2

CPH:

CMP SPA5,0 ;比较右边空格长度是否为0,若是则转移到CPH1,

;否则SPA1,SPA5各减一,SPA3加二JZ CPH1

DEC SPA1

DEC SPA5

INC SPA3

INC SPA3

JMP DIS2

CPL1:

INC SPA1 ;若字符串左右不相等时,仅左边空格长度加一MOV SPA_PAST,0 ;设定标志

JMP DIS2

CPL2:

INC SPA1 ;若字符串左右相等时,则左边空格和右边空格

;长度都加一

INC SPA5

MOV SPA_PAST,0

JMP DIS2

CPH1:

CMP SPA1,1 ;若左边空格数为1,则仅左边空格长度减一,

;否则设标志

JZ CPH2

MOV BX,SPA_PAST1 ;设标志

MOV SPA_PAST,BX

JMP DIS2

CPH2:

DEC SPA1

INC SPA3

MOV BX,SPA_PAST1

MOV SPA_PAST,BX

JMP DIS2

DELAY:;延时函数

PUSH CX

PUSH DX

MOV DX,8

D1: MOV CX,0FFFFH ;CX给赋初值为65525

LOOP $ ;CX减一,直到CX=0,退出循环

DEC DX

JNZ D1

POP DX

POP CX

RET

LINE:;画矩形函数

MOV DI,(18*80+10)*2 ;从第19行的第十一个字符开始填充,把字符的位

;置计算成内存地址,每个字符占用两个字节,AH

;表示属性,就是颜色之类,AL是字符的ascii码MOV AH,7

MOV AL,201 ;左上角

STOSW ;将AX中的一个字存到由DI所指向的目标串的存储

;单元

MOV CX,58

MOV AL,205

REP STOSW ;横框

MOV AL,187

STOSW ;左上角

ADD DI,20*2 ;第20行的第十一个字符开始位置

MOV AL,186

STOSW ;竖框

MOV LEFT,DI ;赋给字符串开始的地址

MOV CX,58

MOV AL,20H ;58个空格

REP STOSW

MOV RIGHT,DI ;字符串结束地址

MOV AL,186 ;竖框

STOSW

ADD DI,20*2

MOV AL,200 ;左下角

STOSW

MOV CX,58

MOV AL,205

REP STOSW

MOV AL,188 ;右下角

STOSW

RET

CODE ENDS

END START

五、实施结果

最终效果为:字符串在一矩形框内一半从左另一半从右向中间移动,当两半相遇时又分别向两边移动,直至遇到两侧的边框双重新向中间移动,不断重复上述过程,在整个过程中字符串不断闪烁(红、绿、蓝渐变),直至按任意键,则停止字符串动画显示返回到主菜单。

当输入的字符串为偶数个时,左右两边字符串相等,左右空格长度相等,中间空格长度始终为偶数个;当输入的字符串为奇数个时,左边字符串比右边字符

串多一个。左右字符串向中间移动,当中间空格长度为一时,则左边空格长度加一,中间空格长度减一,右边空格长度保持不变,即表现出的效果为左边字符串向右移动一位,右边字符串不动;左右字符串从中间相两边移动,当右边空格长度为零时,左边空格长度为一,则将左边空格长度减一,中间空格长度加一,右边保持不变,即表现出的效果为左边字符串向左移动一位,右边字符串不动。下图分别为输入偶数个字符串和输入奇数个字符串的效果。

偶数个字符串

奇数个字符串

上图所示,偶数个字符串时,左右两侧空格长度相等,中间空格长度为偶数个;输入奇数个字符串时,左边空格长度比右边空格长度多一个,中间空格长度为奇数个。同时可以看出,在运行过程中字符串不断闪烁。

六、改进意见及建议

虽然本次课设完成了题目中所提到了要求,但是仍然有许多需要改进的地

方。程序设计中虽然模块较为明确,但程序过于沆长。比如说字符串显示部分,整体想法和思路基本上是不变的、固定的,但在程序编程中过度依赖跳转,使整个程序显得比较杂乱。改进方法是可以考虑代码存储区的代码存储顺序,通过改变代码存储区中指令,而不是增加指令的方法,达到实现字符串显示的目的,这样可以减少程序的长度,易读性增加,简单明了,但同时增加了理解上的难度。

七、小组成员

刘倩、赵凯、魏旭东、李宏哲、马德龙

我负责相关字符串动画显示的函数功能资料查询。

八、课设体会

通过一个学期对《微机原理与接口技术》的学习,我对本课程有了初步的了解,从实验课到课程设计开始,才深刻了解到自己似乎只了解个皮毛,本次微机原理课设我又重新对微机原理有了更深的学习,理论加实践,对于我,感受颇

深,收获颇多。

此次课程设计,我们小组五名成员通过一起在图书馆查阅资料、一起在一起商量设计编程到最后完成功能实现,最终的成就感比平时更大。另外我也深刻的体会到团队的力量,一个人解决不了的问题,大家一起商量,很容易就解决了,在设计中遇到了很多问题,最后经过组员不屑地努力,终于迎韧而解。

通过这次课程设计,我掌握了汇编语言的基础编程,熟悉了汇编语言的设计方法;了解了汇编语言中模块化设计和编程;以及如何提高汇编语言的可读性等等,通过查询资料我懂得了汇编语言中很多函数的应用,也了解了更多关于系统中断原理以及屏幕显示的知识。这次的课设对我是一个能力的提升,是一个独立思考、实际操作的机会,我还需要更多的自我总结,不断提高。

微机原理课程设计报告

微型计算机技术课程设计 指导教师: 班级: 姓名: 学号: 班内序号: 课设日期: _________________________

目录 一、课程设计题目................. 错误!未定义书签。 二、设计目的..................... 错误!未定义书签。 三、设计内容..................... 错误!未定义书签。 四、设计所需器材与工具 (3) 五、设计思路..................... 错误!未定义书签。 六、设计步骤(含流程图和代码) ..... 错误!未定义书签。 七、课程设计小结 (36)

一、课程设计题目:点阵显示系统电路及程序设计 利用《汇编语言与微型计算机技术》课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。 二、设计目的 1.通过本设计,使学生综合运用《汇编语言与微型计算机技术》、《数字电子技术》等课程的内容,为今后从事计算机检测与控制工作奠定一定的基础。 2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。 3.学会用汇编语言编写一个较完整的实用程序。 4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。 三、设计内容 1.点阵显示系统启动后的初始状态 在计算机显示器上出现菜单: dot matrix display system 1.←left shift display 2.↑up shift display 3.s stop 4.Esc Exit 2.点阵显示系统运行状态 按计算机光标←键,点阵逐列向左移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标↑键,点阵逐行向上移动并显示:“微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓”。 按计算机光标s键,点阵停止移动并显示当前字符。 3.结束程序运行状态 按计算机Esc键,结束点阵显示系统运行状态并显示“停”。 四.设计所需器材与工具 1.一块实验面包板(内含时钟信号1MHz或2MHz)。 2.可编程芯片8253、8255、74LS245、74LS138各一片,16×16点阵显示器件一片。

微机原理课程设计数字时钟程序

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 电子信息科学与工程 课程名称:微型计算机原理及应用 学年学期: 2 01 1 —2012 学年第1 学期 指导教师: 20 0 1 1年 1 2月 课程设计成绩评定表

目录 一、课设题目及目的………………………………….4 二、设计任务………………………………………….4 三、总框图及设计流程 (4) 四、?源程序清单 (6) 五、?调试结果及显示 (19) 六、?个人贡献………………………………………….19 七、课程设计总结及体会 (21) 一、课设题目及目的 实习题目:数字时钟程序 实习目的:通过实习,使我们进一步弄懂所学到的课本知识,巩固和深化对8086系统的指令系统、中断系统、键盘/显示系统、程序设计、应用开发等基本理论知识的理解,提高汇编语言应用于技术的实践操作技能,掌握汇编语言应用系统设计、研制的方法,培养利用科技革新、开发和创新的基本能力,为毕业后从事与其相关的工作打下一定的基础。

二、课设任务 本课题为利用汇编语言设置时钟程序,其显示效果为:截取系统时间,能以时、分、秒(其中时为24小时制)的形式显示,并且通过合理的操作能修改时和分的内容来修改时间。再有,可以给它设定一个ALARM时间,到这个时间它就能产生信号,起到定时作用,。除此之外还能显示日期,日期分为年、月、日,其显示方式为xxxx年xx 月xx日。 ' *

DB '***********PRESS ESCBUTTON TO EXIT**************',0AH,0DH,'$' TN DB'PLEASE INPUT THE NEW TIME(HH:MM:SS):',0DH,0AH,'$' TMDB'PLEASE INPUT THE ALARM TIME (HH:MM:SS):',0DH,0AH,'$' MUSICMESS DB'PLEASE CHOOSE THE TYPE OF MUSIC:1(FAST) 2(MIDDLE) 3(SLOW)',0DH,0AH,'$' MESS2DB'TIME IS:',0AH,0DH,'$' MESS3DB 'TODAY IS:',0AH,0DH,'$' DBUFFER1DB20DUP('') T_BUFFD B 40 ;在数据段开一段时间显示缓冲区 DB ? DB 40DUP(?) HOR DB? MIN DB? SEC DB? TEMPHOR DB ? TEMPMIN DB? TEMPSEC DB? MUSIC DW 800;存放音乐的频率数DATA ENDS STACK SEGMENT DB 100 DUP(?) STACK ENDS CODESEGMENT ASSUME CS:CODE,SS:STACK,DS:DATA START: CALL CLEAR ;调用清屏子程序 DISPLAY:;时间显示部分 MOV AX,DATA MOVDS,AX MOVBX,OFFSETT_BUFF;送T_BUFF的偏移地址到BX MOV AH,2CH;调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在CH,CL,DH中 INT 21H ;判断时间是否相等SUB DH,1;秒数+1修正 CALL CHECK ;.........................................................................

微机原理课程设计

、 微机原理课程设计 —数据采集系统(查询法) # (

一、课设目的 进一步掌握微机原理只是,了解危机在实时采集过程中的应用,学习、掌握编程和程序调试方法。 , 二、课设内容 用查询法,将ADC 0809通道0外接0~5V电压,转换成数字量后,在七段LED数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值;0809~道0的数字量以线性控制方式送DAC0832输出,当通道O的电压为5V时,0832的OUT为0v,当通道O的电压为0时,0832的OUT为2.5V;此模拟电压再送到ADC0809通道1,转换后的数字量在CRT上以十六进制显示;通道0的数字量经74LS574输出到八位LED上,且以一定的要求,点亮LED指示灯。调整电位器,用示波器或三用表观察0832的变化,观察七段LED数码管数值的变化,观察LED灯的变化, ADC 0809的CLK脉冲,由定时器8254的OUT0提供;ADC 0809的EOC信号,用8255的PC0检测;74LS574外接的LED灯变化如下:若电压值小于0.5V,则最低位(DO)’LED灯亮,若电压值大于4.5V,则最高位LED灯亮,若电压值在0.5V~4.5V,则八位LED灯由低向高变化亮,且高位LED灯亮时低位灯全亮。 要有较好的人机对话界面;控制程序的运行。 三、硬件设计 1、电原理框图 见附件1 2、电原理框图工作过程的简要说明 【 (1)、ADC 0809的INO采集电位器0—5V电压,INl采集0832输出的模拟量。(2)、DAC 0832将ADC 0809的INO数字量后重新转换成模拟量输出。 (3)、8255用于检测ADC 0809转换是否,为七段LED数码管显示提供显示驱动信息。 (4)、七段LED数码管显示ADC 0809的INO的值。 (5)、74LS574驱动八位发光二极管,使它们按要求点亮:来指示当前采样值的范围。 (6)、8254提供ADC 0809的采样时钟脉冲。 (7)、74LSl38译码器为各芯片提供地址信息。 四、软件设计 【 首先进行程序初始化显示提示信息,判断是否有键按下,按下1则继续往下执行,按下2则退出。首先对8254进行初始化选择工作方式及赋初值,然后启动0809的IN0,接着初始化8255,并检测PA7的状态检测转换是否,否继续检测

微机接口电子表数字钟课程设计

微机原理与接口技术课程设计报告 设计名称:电子表设计 专业:计算机原理与接口技术 班级: xxxxxxx 姓名: XXX 学号: XXXXXXXXX 指导教师: XXXXXXXX 2014年 11 月 27 日

目录 摘要 (2) 一、设计目的及要求 (3) 1.1设计任务 (3) 1.2设计功能 (3) 1.3课程设计方式及基本要求 (3) 1.3.1 实验方式 (3) 1.3.2基本要求 (3) 1.4设计所用元件 (4) 二、设计题目及思想 (4) 2.1设计原理 (4) 2.2主要模块 (5) 2.3芯片初始化 (7) 2.4程序流程图 (9) 2.5硬件接线图 (11) 三、调试结果 (13) 四、课程设计总结 (16) 4.1遇到问题及解决方案 (16) 4.2 课程设计心得体会 (16) 参考文献 附录

摘要 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间的要求很高的场合,汇编语言的应用是必不可少的。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可了。随着科学技术迅速发展,理工科大学生不仅需要掌握计算机方面的基本理论知识,而且还需要掌握基本的实验技能及一定的科学研究能力。 通过课程设计,使学生巩固和加深微型计算机原理理论知识,通过实践进一步加强学生独立分析问题和解决问题的能力、综合设计及创新能力的培养,同时注意培养学生实事求是、严肃认真的科学作风和良好的实验习惯,为今后工作打下良好的基础。鉴于汇编语言的广泛用途及其在当代计算机界的重要作用,本人利用学的知识,在同学门的帮助下,花费大量时间,完成了关于电子表的系统设计。这个系统是应用于电脑中的小应用程序,可是显示电脑中的时间。很多地方都会有个时钟显示,其中大多是应用了类似这样的方法。 关键词:汇编语言微机原理接口技术时钟显示

微机原理课设_加法练习程序

课程设计 课程设计名称:微机应用系统课程设计 专业班级:计科1204班 学生姓名:张婷婷 学号: 201216010433 指导教师:王锋 课程设计时间: 2014.12.22-2015.1.3

计算机科学与技术专业课程设计任务书

一.课程设计实验的目的 课程设计的目的在于更好的锻炼我们的实践能力和考验平时学习的成果。我们是计算机专业,离不开编写代码。平时上课所学的知识来自于课本,上机实验相对比较少,所能锻炼的操作能力机会不多。而课程设计是让我们综合平时课本和实验的知识及经验,自己设计和构造,编写一个相对完整的程序。这不仅仅是对以前知识的巩固,更是锻炼我们的思维,我们的设计与编写程序的能力。对于我们以后将会从事的计算机类工作,这能很好的为我们打下坚实的基础,所谓积少成多,每学期都做课程设计,到毕业时我们对于编写一个应用软件或许就能较容易驾驭了。 本次微机应用系统课程设计我的题目是加法练习程序设计,虽然只要求加法运算,但我在该程序里添加了减法运算,使得程序相对不会太单调。虽然给的编程题目可能会与别人一样,但每个人的想法不一样,在设计时添加自己的想法或许就能使程序更加完善了,这也是课程设计对我们的一种锻炼。 二.实验设计的任务与要求 加法练习设计程序的内容是:随机给出百位数以内的加法算式,并提示输入答案,若正确给出正确提示,若错误给出错误提示,并提示输入答案;按 R 键继续下一题,按 Q 键返回 DOS。按照内容要求,在所学知识内容的基础上设计程序,具体的内容设计要求任务如下: 1.设计一个菜单,选项为加法和减法的练习。

2.以获取系统中的秒和百分秒作为两个随机数进行加减运算。 3.将输入的答案和运行结果比较,若相等给出正确提示,若错误给出错误提示,并继续输入答案直到正确为止。 4.提示是否继续下一题,按R键继续下一题,按Q键返回 DOS。 这次课程设计是在完成设计要求的基础上,添加了减法练习运算,以仔细、认真、规范的态度完成自己课程设计。 三.实验设计的思想 加法练习程序设计,主要工作是产生两个两位数的随机数进行加运算,而怎么产生随机数是该程序的难点。在搜集了一些资料后发现很多程序用的随机数是伪随机,是一个比较复杂算法,而不使用算法获得随机数的方法就是获取系统的时间。在翻阅课本后得知mov ah,2ch int 21h语句可以得到系统时间,在考虑后认为秒和百分秒比较适合,因为在短时间内这两个时间变化的多一些,比较适合用于随机数。Dh所存的数对应的是秒,Dl所存的数对应的是百分秒。加法直接将两个随机数相加即可,但减法就相对麻烦些,因为会出现第一个随机数比第二个随机数小得到结果为负数。为了解决这一问题,在数据段定义了两个变量,用来存放减数和被减数。在获取随机数时先不显示运算式,先将随机数的值给变量num1和变量mum2,如果相减结果小于0则转回去继续取随机数,直到取得随机数相减记过大于0,则显示运算式继续后面的程序运行。 相对较难的部分解决后则是将整个程序流程串起来,先是显示选择加或减运算,产生的随机数并显示相应的运算式;再是输入结果,对结果进行判断给出对或错的提示,错误时提示继续输入结果,对则继续下一步;最后选择是否继续下一题,R返回最初加减运算选择,Q则退出。

微机原理课程设计报告-数字时钟的实现(附代码)

合肥工业大学 计算机与信息学院 课程设计 课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号: 姓名:

一、设计题目及要求: 【课题6】数字时钟 1.通过8253 定时器作产生秒脉冲定时中断。在中断服务程序中实现秒、分、小时的进位(24小时制)。 2.在七段数码管上显示当前的时分秒(例如,12 点10 分40 秒显示为121040)。 3.按“C”可设置时钟的时间当前值(对准时间)。 二、设计思想: 总体思想: 1、功能概述: 实验箱连线: 本实验建立在Dais实验箱基础上完成的基本连线及程序如下: 138译码器: A,B,C,D,分别连接A2,A3,A4,GS; y0连接8253的CS片选信号; y1连接8259的CS片选信号; 8253连线: 分频信号T2接8253的CLK0; 8253的OUT0接8259的IR7; 8253的gate信号接+5V; 8259连线: 8259的数据线接入数据总线;

本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块, (1)程序运行后,LED显示000000初始值,并且开始计数 (2)按C键进行设置初始时间,考虑到第一个数只能是0,1,2,当第一个数显示2时第二个数只能显示0~4,同理下面各位应满足时钟数值的合理的取值; (3)在手动输入初始值时,按D键进行回退1位修改已设置值,连续按D键可以全部进行删除修改。 2、主程序设计 主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给CPU一个中断请求,CPU会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。详细流程图见图三-1。 3、LED显示子程序设计 本程序显示部分用了6个共阳极LED作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个LED依次显示出相应的数字。虽然CPU每隔一定时间便执行显示程序,但只要这个时间段不太长,由于人眼的视觉作用,就可以在6个LED上同时见到数字显示。 4、键盘扫描子程序设计 本程序需要用键盘对时间的初始值进行设置,因此对键盘扫描的子程序需要满足的功能如下: 判断是否是C键,若不是就返回至主程序,若是C键就开始对时间初始值进行设置,同时因注意到第一个值不可以超过2,第一个数是2时第二数不能超过4,余下的同理要满足时间数值的取值范围呢,若不是合法输入不予反应继续等待输入。当遇到输入数值错误时可以按下D键进行删除一位重新设置;当6位初始值全部设置成功后,电子表将自动开始走表。 5、时间运算子程序设计 该子程序的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟

河北科技大学微机原理与接口技术1A卷

河北科技大学微机原理与接口技术1A卷信息学院课程考核试题卷学号: 姓名: 一、选择题(每小题2分,共20分) 1. 微型计算机的字长是指( A )。 A(计算机一次可以直接处理的二进制位数 B(CPU数据总线的宽度 C(一个字节的长度 D(CPU地址总线的宽度 2. 补码减法运算是指( C )。 A(操作数用补码表示,符号位单独处理 B(操作数用补码表示,连同符号位一起相加 C(操作数用补码表示,对减数求补然后连同符号位一起相加 D(操作数用补码表示,对减数求补,符号位单独处理 3. 为了提高程序的执行速度,充分使用总线,8086微处理器被设计为两个独立的功能部件:( C )。 A.运算器和控制器 B.运算器和寄存器组 C.总线接口单元BIU和执行单元EU D.总线接口单元BIU和控制器 4(堆栈操作的原则是( A )。 A(先进后出的原则 B(存多少取多少的原则 C(栈指针以下(对向下生成的栈)为无效栈顶的原则 D(以上都不是 5. 若用存储芯片(32K×1)构成8086的存储器系统至少需要( B )。 A.8片 B.16片 C.32片 D.64片 6. 寻址方式指出了操作数的位置,一般来说( D )。

A.立即寻址给出了操作数地址//是操作数 B.寄存器寻址的操作数在存储器中,由寄存器给出对应存储单元地址**操作数存放在CPU内部的寄存器中,不需访问存储器** C.直接寻址直接给出了操作数本身**操作数的事16位偏移地址** D.寄存器寻址的操作数在寄存器中,由指令指定寄存器的名称 7. 8086CPU响应HOLD请求信号是在( D )。 A.每一个指令周期后 B.每一个机器周期后 C.可以响应HLOD请求的每一个机器周期后 D.在总线周期的T状态或空闲状态T之后的下一个时钟周期 4I 第 1 页共 6 页 信息学院课程考核试题卷学号: 姓名: 8. I/O接口电路通常具有( C )3个端口。 A. 数据输入、数据输出、命令端口 B. 数据输入、数据输出、状态端口 C. 数据端口、命令端口、状态端口 D. 数据端口、控制端口、命令端口 9. 中断向量是指( C )。 A.被选中设备的起始地址 B.传送数据的起始地址 C.中断服务程序的入口地址 D.程序的断点地址 10. 要用8253产生占空比为0.5的方波信号,应选用8253的方式( B )。 A.2 B.3 C.5 D.1 试卷编号考试轮次:2011,2012 学年第一学期期末考试 命题负责人孔美静考试课程:[100064]微机原理与接口技术 审查人签字适用对象:09级通信班、电信班、网络班

微机原理课设(电子时钟)

学院:计算机科学技术 专业:计算机科学与技术(工)班级:计08-1班 姓名:秦振兴 学号:27 指导教师:孙海 2011年7月1日

微机原理与汇编语言课程设计任务书 一、题目:电子表 二、设计的目的 1. 掌握利用PC机的的中断及中断服务程序的编写方法; 2. 掌握定时器/计数器8253的工作原理及编程方法。 三、设计要求 编写程序,利用主机内的8253-2的计数器0产生10m的方波输出,此输出送至IRQ0使8259A每10ms产生1次中断,100次后秒加1,然后调整时、分、秒并在屏幕上显示。程序从按下任意键开始显示数据区存放的时间值,运行中按下空格键即停止运行,并返回DOS。要求每人独立完成课程设计。 四、设计内容 采用PC系列微机现有的硬件和软件资源编写汇编语言程序,在显示器上显示XX(时):XX(分):XX(秒),每秒钟更新1次。 五、课程设计工作量 一般每人的程序量应在100行有效程序行以上。不得抄袭,否则给不及格成绩。 六、课程设计工作计划 2011年6月27日1-2节指导教师讲课,学生准备文献资料; 2011年6月28日~2011年7月01日每人完成自己程序并能独立演示; 2011年7月01日下午验收,学生撰写课程设计报告。

指导教师签字: 专业主任签章: 微机原理与汇编语言课程设计指导教师评语与成绩

目录

第1章概述 ..................................................................................................... 错误!未定义书签。 选题来源 .............................................................................................. 错误!未定义书签。 选题目的 .............................................................................................. 错误!未定义书签。 选题意义 .............................................................................................. 错误!未定义书签。 解决问题 .............................................................................................. 错误!未定义书签。 技术要求 .............................................................................................. 错误!未定义书签。第2章总体方案设计 ..................................................................................... 错误!未定义书签。 硬件总体设计 ...................................................................................... 错误!未定义书签。 软件总体设计 ...................................................................................... 错误!未定义书签。第3章详细设计 ............................................................................................. 错误!未定义书签。 硬件设计 .............................................................................................. 错误!未定义书签。 显示模块........................................................................................... 错误!未定义书签。 时钟运算模块................................................................................... 错误!未定义书签。 对时模块........................................................................................... 错误!未定义书签。 设计电路图....................................................................................... 错误!未定义书签。 软件设计 .............................................................................................. 错误!未定义书签。 程序流程图....................................................................................... 错误!未定义书签。第4章调试与运行结果说明 ......................................................................... 错误!未定义书签。 试验结果 .............................................................................................. 错误!未定义书签。 分析 ...................................................................................................... 错误!未定义书签。课程设计总结 ................................................................................................... 错误!未定义书签。谢启 ................................................................................................................... 错误!未定义书签。参考文献 ........................................................................................................... 错误!未定义书签。附录 ................................................................................................................... 错误!未定义书签。

微机原理实习报告---电子时钟(用汇编语言实现)

河南农业大学 课程设计报告 题目:电子时钟显示设计 课程:微型计算机原理 专业:电子信息工程 班级: 学生姓名: 学号: 指导教师: 完成日期: 机电工程学院

目录 前言 (1) 第一章绪论 (2) 一、实习目的 (2) 二、实习要求 (2) 三、设计所需设备 (2) 第二章软件系统介绍 (3) 一、中断技术(或其它相关技术) (3) (一)介绍中断的概念中断技术 (3) (二)DOS及BIOS中断 (3) 二、汇编语言及汇编工具简介 (3) 三、软件介绍 (3) 第三章设计分析 (4) 一、软件设计思路 (4) 二、软件各模块内容 (4) (一)光标定位子程序原理 (4) (二)清屏原理 (4) (三)字符及字符串显示原理 (4) (四)压缩BCD转为ASCII码原理 (5) (五)动态扫描键盘原理 (5) 三、程序流程图设计 (5) 第四章系统实现 (7) 一、程序原代码清单及详细注释 (7) 二、实验结果 (15) 总结 (16) 一、软件的选取 (16) 二、图案的设计 (16) 三、程序调试 (16) 参考文献 (16)

前言 软件设计题目 电子时钟。(在计算机屏幕上显示当前系统的时间,日期,或时间和日期,3人一组)设计目的: 1.了解定时/计数器和中断(DOS/BIOS)的使用; 2.掌握定时/计数器和中断的工作原理和编程方法。 编程要求: 1.调用系统时间,在屏幕上显示出来; 2.获取键盘的按键值,判断键值并退出系统。 程序设计参考步骤: 第一部分:定义显示界面。 第二部分:调用系统时间(日期),并将调用的用二进制表示的时间数转换成ASCII码, 并将时间数(日期数)存入内存区。 第三部分:将存在系统内存区的时间数(日期数)用显示字符串的形式显示出来。 第四部分:获取键盘的按键值,判断键值并退出系统。

信息工程专业介绍

信息工程专业介绍: 1.专业简介:信息技术是衡量一个国家现代化水平的重要标志,我国把信息技术列为21世纪发展战略计划的首位。信息工程是一门研究信息的产生、获取、传输、存储和显示技术的学科。信息工程专业培养在信息工程,重点是光电信息工程领域具有宽厚的理论基础、扎实的专业知识和熟练的实验技能的高级信息工程科技人才。毕业生将在光电信号的采集、传输、处理、存储和显示的科学研究、工程设计、技术开发和企业管理中展示才华。 2.主修课程:光电信息物理基础、光电子学、信号与系统、通信原理、图像处理、传感器原理技术、光电检测技术、自动控制理论、光纤通信、计算机通讯网络、工程光学、微机原理、计算机软件技术基础、计算机网络技术、计算机辅助设计、数字与模拟电子技术基础、电路基础以及有关数理基础和工程基础方面的课程。 3.毕业去向:本专业历年输送了大量优秀毕业生攻读硕士、博士学位。除此之外,主要为科研单位、高等院校、电信部门、信息产业部门、企事业单位及有关公司录用,从事光电信息工程与技术、通信工程与技术、光电信号检测、处理及控制技术等领域的研究、设计、开发应用和管理等工作。 电子信息工程专业 业务培养目标: 业务培养目标:本专业培养具备电子技术和信息系统的基础知识,能从事各类电子设备和信息系统的研究、设计、制造、应用和开发的高等工程技术人才。 业务培养要求:本专业是一个电子和信息工程方面的较宽口径专业。本专业学生主要学习信号的获取与处理、电厂设备信息系统等方面的专业知识,受到电子与信息工程实践的基本训练,具备设计、开发、应用和集成电子设备和信息系统的基本能力。 电子信息工程已经涵盖很广的范围。电话交换局里怎样处理各种电话信号,手机是怎样传递我们的声音甚至图象,我们周围的网络怎么样传递数据,甚至信息化时代军队的信息传递中如何保密等知识。我们通过一些基础知识的学习认识这些东西,并能够进行维护和更先进的技术和新产品的开发。 你首先要有扎实的数学知识,要学习许多电路知识,电子技术,信号与系统,计算机控制原理,信号与系统,通信原理等基本课程。自己还要动手设计、连接一些电路以及结合计算机的实验。譬如自己连接传感器的电路,用计算机自己设置小的通信系统,还会参观一些大的公司的电子和信息处理设备,对整体进行了解,理解手机信号、有线电视是如何传输的等,并能有机会在老师指导下参与大的工程的设计。 随着计算机和互联网日益深入到社会生活的多个层面,社会需求量相当大。现在是一个热门专业。 毕业后干什么——从事电子设备和信息系统的设计、应用开发以及技术管理等 随着社会信息化的深入,各行业大都需要本专业人才,而且薪金很高。可成为: 电子工程师——设计开发一些电子,通信器件,起薪一般2000元——6000元/月; 项目主管—策划一些大的系统,经验、知识要求很高,起薪一般4000元/月以上; 还可以继续进修成为教师,进行科研项目等 专业是个好专业:适用面比较宽,和计算机、通信、电子都有交叉;但是这行偏电,因此动手能力很重要;另外,最好能是本科,现在专科找工作太难了!当然大虾除外 本专业对数学和英语要求不低,学起来比较郁闷要拿高薪,英语是必需的; 吃技术这碗饭,动手能力和数学是基本功当然,也不要求你成为数学家,只要能看懂公式就可以了,比如微积分和概率统计公式,至少知道是在说些什么而线性代数要求就高一些,因为任何书在讲一个算法时,最后都会把算法化为矩阵计算(这样就能编程实现了,而现代的电子工程相当一部分工作都是编程) 对于动手能力,低年级最好能焊接装配一些小电路,加强对模拟、数字、高频电路(这三门可是电子线路的核心)的感性认识;工具吗就找最便宜的吧!电烙铁、万用表是必需的,如果有钱可以买个二手示波器电路图吗,无线电杂志上经常刊登,无线电爱好者的入门书对实际操作很有好处

微机原理+课程设计+数字钟

目录 一、设计要求 (1) 二、设计所用芯片。。。。。。。。。。。。。。。。。。。 2 三、设计思想。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 四、设计所用芯片结构 (3) 1、8259A芯片的内部结构及引脚 (3) 2、8279芯片的内部结构及引脚 (4) 3、8253芯片的内部结构及引脚 (5) 五、系统各个模块设计 (6) 1、系统总体设计 (6) 2、主控模块 (7) 3、CPU模块 (7) 4、定时模块 . . . . . . . . . . . . . . . . . . . . . . . . 9 5、中断处理模块。。。。。。。。。。。。。。。。。。9 6、显示模块和小键盘模块 (10) 六、程序流程图 (12) 1、主程序流程图 (12) 2、定时中断服务程序流程图 (14) 七、设计总结 (15) 附录一:参考书目 (15) 附录二:总体图 . . . . . . . . . . . . . . . . . . . . . . . .15 附录三:源代码............17

一、设计要求 利用试验平台提供的硬件资源设计一个电子表。该电子表以时、分、秒的形式实时显示当前时间,且具有校表功能,利用小键盘与标准时间校准。 掌握8255、8259、8253芯片使用方法和编程方法,通过本次课程设计,学以致用,进一步理解所学的相关芯片的原理、内部结构、使用方法等,学会相关芯片实际应用及编程,系统中采用8088微处理器完成了电子钟的小系统的独立设计。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。 二、设计所用芯片 8253定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。 8279接口芯片:实现键盘输入和显示输出。 8259中断控制器:用于产生中断。 LED:六个LED用于显示时:分:秒值。 小键盘:用于控制设置。 三、设计思想 1、设计思想 本系统设计的电子时钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8279做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。 其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电平触发方式还是上升沿触发方式,是单片8259还是多片8259。8259接收到信号后,产生中断信号送CPU处理。 2、设计原理 利用定时器8253和8259以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。 电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。 设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。 基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。 C键:置初值,显示00:00:00 G键:显示动态变化(启动表); D键:显示静态不变(表停止); E键:终止程序,返回DOS; P键:设置时:分:秒的值

微机原理步进电机控制课程设计报告

河北科技大学 课程设计报告学生姓名:学号: 专业班级: 课程名称: 学年学期: 2 0 —2 0 学年第学期指导教师: 2 0 年月 课程设计成绩评定表

目录 一、设计题目………………………………………………………………. 二、设计目的………………………………………………………………. 三、设计原理及方案………………………………………………………. 四、实现方法………………………………………………………………. 五、实施结果………………………………………………………………. 六、改进意见及建议……………………………………………………….

七、设计体会………………………………………………………………. 、 一、设计题目 编程实现步进电机的控制 二、设计目的 1.了解步进电机控制的基本原理 2.掌握控制步进电机转动的编程方法 3.了解8086控制外部设备的常用电路 4.掌握8255的使用方法 三、设计原理及方案 设计原理 步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。 驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。 利用 8255对四相步进电机进行控制。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A…),双(双相绕组通电)四拍(AB-BC-CD-DA-AB…),八拍(A-AB-B-BC-C-CD-D-DA-A…)等。 通过编程对8255的输出进行控制,使输出按照相序表给驱动电路供电,则步进电机的输入也和相序表一致,这样步进电机就可以正向转动或反向转动。 硬件连接图 四.实现方法 .步进电机控制程序流图

微机原理课程设计

微机原理与应用课程设计

目录 一、设计任务 1、计时秒表,具有分、秒和百分之一秒的计时功能。 2、可以在屏幕中央显示计时结果,屏幕显示彩色图案和文字。 3、秒表具有键控启/停功能,而且可以随时通过键盘复位,清零。 二、设计原理 1、HALT(启动子程序) 2、DIS(宏定义——苹果显示程序) 3、DISS(宏定义——字符串的输出) 4、CLOUR(字体颜色设置程序) 5、IOSET(设置光标位置子程序) 6、GO(初始化显示子程序) 7、TIME(延时子程序) 8、TRAN(压缩BCD码转ASCII码程序) 9、复位、停止等功能的实现 三、流程图 a)主程序流程图 b)压缩BCD转ASCII码子程序流程图 c)延时子程序流程图 四、程序段 五、程序调试 六、程序运行结果 七、心得体会

八、参考文献 一、设计任务: 1.计时秒表,具有分、秒和百分之一秒的计时功能,并可以在屏幕中央显示计时结果。 2.屏幕显示彩色图案和文字。 3.秒表具有键控启/停功能,而且可以随时通过键盘复位,清零。 二、设计原理: 本程序的主要设计原理是用主程序完成百分之一秒与秒之间的转换,显示计时结果,实现暂停,暂停再启动,复位,复位再启动的功能,并通过调用一些附加程序,缩减主程序的长度,提高运行效率和精度,现将用到的所有附加程序的原理及其在运行过程中所起到的作用汇总如下: 1.DIS(宏定义——苹果显示程序) 通过宏调用,实现苹果图案的显示。在宏定义里,设置一个形参变量,作为移动光标的位置,在下面调用宏中,给予变量X不同的实参,输出苹果图案。 2.DISS(宏定义——字符串的输出) 原理同上。 3.CLOUR(字体颜色设置程序) 通过字体颜色设置程序,实现屏显字体颜色的改变。当改变BX值时,字体颜色会改变。 4.HALT(启动子程序) 通过启动子程序,实现计时的开始,当从键盘输入一个字符时,判断是否等于S,如果不等,则在循环执行启动子程序中动态等待,直到输入的字符为S 时,计时开始。 5.IOSET(设置光标位置子程序) 通过设置光标子程序,来设置显示的区域。一般整个屏幕可显示25行,80列,屏幕左上角字符位置为0行0列,右下脚字符为24行79列,对应十六进制为:左上脚为(0,0),右下脚为(18,4F)。入口信息为:(AH)=2 要设置光标;(BH)=0 页号;(DH,DL)=00要置光标于0行0列。DX赋值为0D27H,光标置位于屏幕中央。 6.GO(初始化显示子程序) 通过将在数据段定义的BUFFER数组的首址赋给BX,将待显示初值字符串00:00存入数组中的相应位置,当每次复位以后,重新调用该子程序,将程序的执行结果修正为00:00,并显示于屏幕上,从而实现了程序的初值设定和复位功能。 7.TIME(延时子程序) 计算机每执行一条指令,虽然很快,但是需要一些时间,因此在本程序中可以通过延时程序,让计算机去执行一些无关的程序,来达到时钟秒与百分之一秒转换时的时间延迟。每条指令执行时间的长短,是以计算机的时钟周期为基本单位的,因此不同的计算机可以通过修改延时程序数值来使其达到准确计时。 8.TRAN(压缩BCD码转ASCII码程序)

微机原理课程设计电子钟记录交换数据 创新

.MODEL TINY EXTRN Display8:NEAR, GetKeyA:NEAR, GetKeyB:NEAR IO8259_0 EQU 0F000H IO8259_1 EQU 0F001H Con_8253 EQU 0E003H T0_8253 EQU 0E000H .STACK 200 .DA TA halfsec DB 0 ;0.5秒计数 Sec DB 0 ;秒 Min DB 0 ;分 hour DB 0 ;时 buffer DB 8 DUP(0) ;显示缓冲区,8个字节 buffer1 DB 8 DUP(0) ;显示缓冲区,8个字节 bNeedDisplay DB 0 ;需要刷新显示 number DB 0 ;设置哪一位时间 bFlash DB 0 ;设置时是否需要刷新 .CODE START: MOV AX,@DA TA MOV DS,AX MOV ES,AX NOP mov sec,0 ;时分秒赋初值23:58:00 mov min,00 mov hour,00 MOV bNeedDisplay,1 ;显示初始值 CALL Init8253 CALL Init8259 CALL WriIntver STI MAIN: CALL GetKeyA ;按键扫描 JNB Main1 CMP AL,0FH ;设置时间 JNZ Main1 CALL SetTime Main1: CMP bNeedDisplay,0 JZ MAIN CALL Display_LED ;显示时分秒 MOV bNeedDisplay,0 ;1s定时到刷新转速 Main2: JMP MAIN ;循环进行实验内容介绍与测速功能测试SetTime PROC NEAR LEA S I,buffer1 CALL TimeToBuffer MOV Number,0

相关主题
文本预览
相关文档 最新文档