微机原理课程设计报告书
微机原理课设报告
中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、课程设计任务本次课设选题为“模拟电压采集,直流电机控制”。
根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求:1、对模拟电压进行采集转换为数字信号,并实时显示。
2、用转换的到的数字信号再经数模转换,对直流电机进行控制。
拓展要求:1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态是否正常。
2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报警。
三、设计思想与原理1、设计思想本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。
而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。
与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。
2、设计原理根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。
取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。
得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。
对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。
对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。
微机原理实验报告册(3篇)
第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。
二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。
2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。
3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。
4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。
5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。
6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。
微机原理课程设报告
微机原理课程设计设计报告一、设计目的1、对微机原理课程中所学的理论知识进行进一步巩固和加深。
2、学会查阅相关手册与资料,培养独立分析与解决问题的能力。
3、学会使用屏幕编辑程序—MASM对汇编程序的编写,调试和运行。
4、了解对系统中DOS和BIOS的使用,弄懂汇编程序的上机过程以及如何运用DEBUG软件进行汇编程序的调试。
二、设计内容本次为期一周的课程设计,主要编写调试了5个程序,题目如下:1、字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,则显示“NO MATCH”。
2、从键盘上输出数据并显示为掌握接收键盘数据的方法,并了解将键盘数据显示时须转换为ASCII码的原理。
编写程序,将键盘接收到的四位十六进制数据转换为等值的二进制数,再显示在终端上。
3、字符和数据的显示设计为掌握字符和数据的显示方法,编写程序,先显示信息:INPUT STRING,THE END FLAG IS$,再接收字符。
如为0-9,则计数器加1,并显示数据;如为非数字,则直接显示,但不计数4、学生成绩名次表设计为进一步熟悉排序方法。
编写程序,将0-100之间的30个成绩存入首址为1000H的存储区中。
1000H+i表示学号为i的学生成绩。
编写程序使得在2000H 开始的区域排除名次表。
2000H+i为学号i的学生的名次。
三、具体设计程序设计一:字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较。
如相同,则显示“MATCH”,否则,则显示“NO MATCH”。
流程图程序DATA SEGMENTDAT1 DB 'INPUT STRING1:','$' ;$保持当前地址DAT2 DB 'INPUT STRING2:','$'DAT3 DB 'MATCH!',0AH,0DH,'$' ;0DH为回车ASCII码,0AH为换行ASCII码DAT4 DB 'NOT MATCH!',0AH,0DH,'$'STRING1 DB 50 ;最长长度DB ? ;实际长度DB 50 DUP(?) ;存储空间STRING2 DB 50DB ?DB 50 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATA ;数据段设置MOV DS,AXMOV ES,AXMOV AH,09H ;字符串显示,显示DAT1,显示DS:DX MOV DX,OFFSET DAT1INT 21HMOV AH,0AH ;字符串缓冲输入,接收输入字符串MOV DX,OFFSET STRING1INT 21HMOV DL,0AH ;输出换行MOV AH,02HINT 21HMOV AH,09HMOV DX,OFFSET DAT2 ;显示DAT2INT 21HMOV AH,0AHMOV DX,OFFSET STRING2INT 21HMOV DL,0AH ;输出换行MOV AH,02HINT 21HLEA SI,STRING1 ;比较LEA DI,STRING2ADD SI,2 ;串1首字符[SI+2]ADD DI,2 ;串2首字符[DI+2]CLD ;DF=0MOV CX,50REPZ CMPSB ;CX≠0或ZF=1时重复,DS:SI和ES:DI所指的两个字节相同则继续比较,如果比较相等,ZF=1,则继续比较下一个字节,DI和SI分别加1(DF=0时),CX-1JZ MATCHNMATCH:MOV AH,09HMOV DX,OFFSET DAT4 ;输出不匹配INT 21HJMP NEXTMATCH: MOV AH,09HMOV DX,OFFSET DAT3 ;输出匹配INT 21HNEXT: MOV AH,4CHINT 21HCODE ENDSEND START小结在设计过程中,我把程序分成了宏定义显示回车,数据段定义,初始化,开始比较,匹配时再比较,不匹配时SI指向串1首字符,DI指向新字符重新开始比较等模块。
微机原理课程设计报告文库
微机原理课程设计报告文库一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微机硬件结构及其功能;2. 学会分析微机工作原理,了解指令系统及编程方法;3. 掌握微机接口技术,了解常见接口芯片的功能和应用。
技能目标:1. 能够运用所学知识进行微机系统的简单设计和调试;2. 培养学生具备一定的微机编程能力,能够编写简单的汇编语言程序;3. 提高学生动手实践能力,能够进行基本的硬件焊接和电路搭建。
情感态度价值观目标:1. 培养学生对微机原理课程的兴趣,激发学生学习热情;2. 培养学生具备良好的团队合作意识,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于探索新知识,提高自主学习能力。
课程性质:本课程为理论与实践相结合的课程,强调培养学生的动手实践能力和创新能力。
学生特点:学生已具备一定的电子技术和计算机基础,具有较强的学习能力和好奇心。
教学要求:教师应注重理论与实践相结合,引导学生主动参与课堂讨论,鼓励学生动手实践,培养学生解决问题的能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过本课程的学习,使学生能够掌握微机原理的基本知识,具备实际应用能力,为后续相关课程和未来职业发展打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 微机硬件结构:介绍微处理器、存储器、输入输出接口等硬件组件的工作原理和功能;教材章节:第一章 微机系统概述内容列举:CPU结构、存储器分类、I/O接口基础等。
2. 指令系统与编程:讲解汇编语言的基本指令、寻址方式、程序设计方法等;教材章节:第二章 指令系统与汇编语言内容列举:基本指令、汇编语言程序结构、循环、分支等编程技巧。
3. 微机接口技术:分析常见接口芯片的原理与应用,如并行接口、串行接口、定时器/计数器等;教材章节:第三章 微机接口技术内容列举:并行接口、串行接口、定时器/计数器接口芯片等。
4. 微机系统设计与实践:培养学生动手实践能力,进行简单的微机系统设计与调试;教材章节:第四章 微机系统设计与实践内容列举:硬件焊接、电路搭建、程序下载与调试等。
微机原理课程设计报告cl
湖北第二师范学院课程设计报告书课程名称:微机原理与接口技术课程设计设计题目:系别:专业:组别:学生姓名:学号:起止日期:指导教师:第一章 需求分析1.1 课题名称模拟长沙大托铺机场飞行专线故障监视系统1.2 任务模拟长沙大托铺机场飞行专线故障监视系统完成串口的通信,实现对监测点的故障与否的监听。
1.3 要求1. 采用485接口通信,即PC 作为主机,主机地址:0X00,挂载3个从机(即单片机),实现多机通信2. 通信速率9600B/S ,停止位1位,数据位8位,即通信参数设置为N,8,1,9600.3. 主机通过轮询方式访问从机,通过发送从机地址呼叫从机,地址相符合的从机把数据发送给主机4. 通信格式:主机发送数据格式: 起始字节地址字节 结束字节$从机地址#1个1个1个一个地址字节,主机每隔5秒钟查询一遍从机发送数据格式:校验为和校验备注:1、上述字节都表示只占一个字节空间,每次发送3个字节2、从机地址分配:①号:0X01; ②号:0X02; ③号:0x03;④号: 0X04; ⑤号:0X05 ; ⑥号:0X06;地址字节 数据字节 校验字节 1个 1个 1个⑦号:0X07; ⑧号: 0X08: ⑨号:0X093、数据字节01010101表示检测到故障;10101010表示没有检测到故障1.4 设计思想1.根据实验要求和数据采集通信协议,参照老师给定的效果图进行编程实现。
2.软件编程:使用Java语言编程实现3.调试用具:老师给的串口调试器1.5 运行环境1.Windows xp,Windows72.机房S4211 ,寝室1.7 开发工具实验程序开发工具包括编辑器、编译系统、连接程序和调试程序1.编辑器eclipse2.虚拟串口添加器 VSPD软件3.编译系统 eclipse4.连接程序 eclipse生成的窗体程序5.调试程序采用串口调试器第二章概要设计设计方法及原理1. 监听方式(listening)Comm API支持标准的Java Bean型的事件模型。
微机原理课程设计报告
微机应用系统设计与综合应用实验——(微机原理)课程设计报告专业班级学生姓名学生学号指导老师完成时间目录第一章设计课题概述 (3)1.1课程设计目的 (3)1.2课程设计要求 (4)1.3课程设计用途 (4)1.4实现技术指标 (4)第二章设计思想和实施方案 (5)2.1功能分析 (5)2.1.1波形产生 (5)2.1.2波形切换 (5)2.1.3 屏幕显示 (5)2.1.4小键盘控制 (5)2.1.5无极调频 (6)2.1.6无极调幅 (6)2.2所需芯片功能简介 (6)2.2.1 8088功能简介 (6)2.2.2 8255A功能简介 (7)2.2.3 A/D0832功能简介 (8)2.2.4 D/A0809功能简介 (9)2.3实施方案 (10)2.3.1 系统总体设计方案 (10)2.3.2系统设计方框图 (10)第三章典型程序模块及编程技巧分析 (12)3.1键盘扫描及逻辑判断模块 (12)3.2键盘编码模块 (13)3.3波形产生模块 (14)3.3.1方波 (14)3.3.2 锯齿波 (16)3.3.3 三角波 (18)3.3.4 正弦波 (20)3.4波形切换及基本控制模块 (21)3.5无级调频调幅判断及控制模块 (23)第四章遇到的问题及解决方法 (26)第五章程序清单和程序注释 (28)5.1汇编源程序 (28)5.2C语言源程序 (49)第六章课程设计收获与体会 (63)6.1实验收获 (63)6.2心得体会 (63)第七章参考文献 (65)第八章附录 (66)8.18088最小模式的连接图 (66)微机应用系统设计与综合应用课程设计报告第一章设计课题概述1.1 课程设计目的《微机应用系统设计与综合实验(实践)》课程设计是自动化专业本科生必修的一门技术基础课。
通过本课程设计,让学生对微机系统有一个较全面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。
微机原理课程设计报告
微机原理与接口技术课程设计课程题目:双机通信学院:专业:小组成员:指导老师:目录一设计简介 (3)二计算机串行通信基础 (3)三硬件及原理 (5)180C51的串行口 (5)2 串行口控制和中断控制 (7)3 程序流程 (8)4 Protuse仿真实验电路图 (9)5 程序清单 (9)四实验结果 (14)五实验心得 (14)六参考书籍 (14)一设计简介AT89C51是ATMEL公司融入FLASH存储技术推出的单片机,它本身带有4K 的内存储器。
可在编程器上实现闪烁式电擦写达几万次以上。
完全兼容MCS-5 1系列单片机的所有功能。
此实验是由C语言编程,基于protuse进行仿真测试,得到试验结果。
二计算机串行通信基础计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。
通信有并行通信和串行通信两种方式。
在多微机系统以及现代测控系统中信息的交换多采用串行通信方式。
计算机通信:可以分为两大类:并行通信与串行通信并行通信通常是将数据字节的各位用多条数据线同时进行传送并行通信的特点:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂异步通信基本概念:异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。
为使双方的收发协调,要求发送和接收设备的时钟尽可能一致。
异步通信是以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的,但每个字符中的各位是以固定的时间传送的,即字符之间不一定有“位间隔”的整数倍的关系,但同一字符内的各位之间的距离均为“位间隔”的整数倍。
异步通信的数据格式 :异步通信的特点:不要求收发双方时钟的严格一致,实现容易,设备开销较小,但每个字符要附加2~3位用于起止位,各帧之间还有间隔,因此传输效率不高。
微机原理课程设计报告书
课程名称:微机接口技术姓名:邓有强学号: 092113010005 院系部:职业技术学院专业:计算机应用技术指导教师:马慧2010年12月31日前言微机原理与接口技术是计算机应用专业必修的一门课程,通过这门课我们能够知道计算机内部的工作原理,各部件的作用;各部件间的联系;学习了汇编语言和指令系统能让我们进行简单的程序设计;但是我们在课堂上学习的都是些理论方面的知识,没有进行过真正的实际接触。
正所谓,“实践是检验真理的唯一标准”,只有通过真正的接触,实际的操作,我们才能将理论知识和实际应用联系在一起,真正的将理论实际化;这才将学院的职业教育与我们的课程紧密的联系在一起,符合我们专科层次的教学目标。
因此,学校组织我们进行了为期两个星期的课程设计,让我们能够有机会接触真正的硬件,这不仅丰富巩固了我们在课堂上学的知识,而且还为我们日后步入社会打下了基础。
本次课程设计我们小组设计的是双机的串行通信,本书中包含了此实验硬件方面的电路接线情况,硬件实现代码和软件实现的代码;总结成书,日后自己真正走上工作岗位时回关看看也是一段美好的回忆…目录一、设计目的 (4)二、设计题目及要求 (4)三、电路及连线设计 (4)1、8251A的基本性能 (4)2、8251A的内部结构 (5)3、实验接线图 (6)4、实践操作接线图 (6)四、使用说明 (9)1、硬件操作过程 (9)2、软件操作过程 (9)五、流程图设计 (14)六、程序设计如下 (15)1、硬件实现代码 (15)2、软件实现代码 (18)七、总结 (24)一、设计任务及要求:设计一个双机串行通信系统,用软件编程和硬件实验来实现。
具体要求:1)用二台8086K通过8251进行双机通讯,一台作为发送,另一台作为接收,发送方读入按键值,并发送给接收方,接收方收到数数据后在数码管上显示。
2)8251A的发送/接收时钟信号由8253分频提供,波特率可选择9600或其他;数码管和LED分别通过8255A接入。
微机原理课程设计报告
微机课程设计报告班级:姓名:学号:任务一:1、目的:字符串匹配的设计要求:为掌握提示信息的设置方法及读取键入信息的方法。
编写程序实现两个字符串比较,如相同,则显示“MATCH”;否则,显示“NO MATCH”。
2、流程图3、源程序:DATAS SEGMENTs1 db'please input the first string:','$'st1 db 100db?db 100 dup(?)s2 db 0ah,'plaese input the second string:','$'st2 db 100db?db 100 dup(?)s3 db 0ah,'matah','$'s4 db 0ah,'no match','$';此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXmov dx,offset s1 ;显示提示信息1mov ah,9hint 21hmov dx,offset st1 ;接收键入的字符串1mov ah,0ahint 21hmov dx,offset s2 ; 显示提示信息2mov ah,9hint 21hmov dx,offset st2 ;接收键入的字符串2mov ah,0ahint 21hmov si,offset st1 ;字符串1的地址送给SImov di,offset st2 ; 字符串2的地址送给DImov ax,0lp1: mov bl,[si+1] ; 字符串1的字符数送给bl cmp bl,[di+1] ;字符串2的字符数与字符串1相比较jnz lp4 ;不等转lp4mov al,[si+1]mov cx,ax ; 给cx赋字符串1的字符数lp2: mov bl,[si+2] ; 字符串1的第一个字符在字符串2中匹配cmp bl,[di+2]jnz lp4inc siinc diloop lp2 ;循环cx内容减1,cx不等于0,继续循环,跳转lp2lp3: mov dx,offset s3mov ah,9hint 21hjmp nextlp4: mov dx,offset s4mov ah,9hint 21h;此处输入代码段代码next: MOV AH,4CHINT 21HCODES ENDSEND START4、结果:5、心得要先比较字符串的长度,前面要先分别定义match和nomatch,并且应该保留足够的字节空间。
微机原理课程设计报告书
课程设计说明书课程名称:微机原理课程设计题目:数制转换实验院系:理学院专业班级:应用物理13-1学号: 2013305188学生:立才指导教师:声2016年 6 月 17 日理工大学课程设计(论文)任务书年月日理工大学课程设计(论文)成绩评定表目录1. 课程设计实验目的与要求 (1)1.1从键盘输入数据并显示 (1)1.2将键盘输入的小写字母转换成大写字母 (1)2.课程设计实验容 (1)2.1从键盘输入数据并显示 (1)2.2将键盘输入的小写字母转换成大写字母 (2)3.课程设计实验流程图 (2)3.1从键盘输入数据并显示 (2)3.2将键盘输入的小写字母转换成大写字母 (3)4.课程设计实验程序 (4)4.1从键盘输入数据并显示 (4)4.2将键盘输入的小写字母转换成大写字母 (8)5. 课程设计实验运行结果 (12)5.1从键盘输入数据并显示 (12)5.2将键盘输入的小写字母转换成大写字母 (12)6. 课程设计实验心得 (13)1.课程设计实验目的与要求1.1从键盘输入数据并显示1.掌握键盘接受数据的方法,并了解将键盘数据显示时必须转换为ASCII码的原理,编写程序,将键盘接受到的四位十六进制数据转换为等值的二进制数显示。
2.掌握子程序定义和调用的方法。
3.掌握循环移位指令的用法和无符号数比较大小的方法。
1.2将键盘输入的小写字母转换成大写字母1.了解小写字母和大写字母在计算机的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
2.熟练掌握汇编语言程序设计的方法及上机步骤3.掌握将小写字母转换为相应的大写字母的方法4.掌握子程序的设计方法5.掌握DOS功能的调用方法2.课程设计实验容2.1从键盘输入数据并显示为了解小写字母和大写字母在计算机的表示方法,并学习如何进行转换,编写程序,接受键盘字符,并将其中的小写字母转变为大写字母,然后显示在屏幕上。
微机原理课程设计报告书
微机原理与应用课程设计目录一、设计任务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时,计时开始。
软件微机原理课程设计报告
软件微机原理课程设计报告一、课程目标知识目标:1. 理解微机原理的基本概念,掌握微型计算机的硬件组成及工作原理。
2. 学会分析微机系统中各组成部分的功能和相互关系。
3. 掌握汇编语言编程的基本方法,能够编写简单的汇编程序。
技能目标:1. 能够运用所学知识,设计简单的微机控制系统。
2. 培养学生动手实践能力,能够进行基本的硬件连接和调试。
3. 提高学生的问题分析能力,学会运用理论知识解决实际问题。
情感态度价值观目标:1. 培养学生对计算机科学的兴趣,激发学生的学习热情。
2. 培养学生的团队合作意识,提高沟通与协作能力。
3. 引导学生认识科技发展对社会进步的重要性,树立正确的价值观。
课程性质分析:本课程为软件微机原理课程设计,旨在帮助学生将理论知识与实际应用相结合,提高学生的实践能力。
学生特点分析:学生为高中年级学生,具备一定的计算机基础,对新鲜事物充满好奇心,但可能缺乏实际动手操作经验。
教学要求:1. 结合课本内容,注重理论与实践相结合,提高学生的实际操作能力。
2. 通过小组合作,培养学生的团队协作能力。
3. 注重启发式教学,引导学生主动思考,提高问题解决能力。
二、教学内容1. 微机原理概述:介绍微型计算机的发展历程、硬件组成及工作原理,对应课本第一章内容。
- 硬件组成:CPU、存储器、输入输出接口等。
- 工作原理:指令执行、数据存储与传输等。
2. 汇编语言编程:讲解汇编语言的基本语法、指令系统及编程方法,对应课本第二章内容。
- 基本语法:寄存器、指令格式、操作数等。
- 指令系统:数据传输、算术运算、逻辑运算等。
3. 硬件连接与调试:学习微机系统中各硬件组件的连接方法,进行基本调试,对应课本第三章内容。
- 硬件组件:内存、I/O接口、中断控制器等。
- 调试方法:静态调试、动态调试等。
4. 微机控制系统设计:结合所学知识,设计简单的微机控制系统,对应课本第四章内容。
- 控制系统组成:输入、处理、输出等模块。
微机原理课程设计报告
目录一、课题任务 (2)二、程序功能描述及程序流程 (3)1、程序功能描述 (3)2、程序流程图 (3)三、程序源代码及注释 (4)四、DOS/BIOS功能调用,文件列表清单 (6)五、源程序调试 (9)六、调试中出现的问题 (12)七、总结 (12)一、课题任务1·要求利用80x86汇编语言BIOS中断调用的方法,通过‘*’字符设计自己的名字,并在显示器上用6种以上的颜色显示出来。
2·分析1)BIOS中断调用:BIOS常驻ROM,独立于DOS,可与任何操作系统一起工作。
它的主要功能是驱动系统所配置的外部设备,如磁盘驱动器、显示器、打印机、及异步通讯借口等。
通过INT10H~1AH向用户提供服务程序的入口,使用户无需对硬件有深入的了解,就可以完成对I/O设备的控制与操作。
BIOS中断调用与DOS功能调用类似。
2)图形设计:掌握BIOS中断调用INT 10H的13H功能。
注意13H号功能入口参数的要求。
3)颜色显示:在彩色显示屏幕上每个字符在存储中用两个字节表示。
一个字节保存字符的ASCII码,另一个字节保存字符的属性。
BIOS中断调用INT 10的13H号功能是显示字符串,字符的属性在BL中。
二、程序功能描述及程序流程1·程序功能使得自己的名字可以在显示器上用6种以上的颜色显示出来。
2·程序流程图三、程序源代码及注释ROW =0 ;显示信息的行号COLUM=00 ;列号ESCKEY=1BH ;ESC键的ASCII码制;数据段DSEG SEGMENTMESS DB '+-----------------------------------------------------------------------------+',0DH,0AHDB '************ ** ** *** ||',0DH,0AHDB ' * ** ** * ||',0DH,0AHDB ' * ** ** *******************************||',0DH,0AHDB ' * ** ** * *||',0DH,0AHDB ' * ** ** * *||',0DH,0AHDB '************ ** ** * *||',0DH,0AHDB '* ** ** ************** ||',0DH,0AHDB '* *** ** ||',0DH,0AHDB '* ************** ** ||',0DH,0AHDB '* *** ********************** ||',0DH,0AHDB '************ *** ** ||',0DH,0AHDB ' ** ** * ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' ** ** ** ** ||',0DH,0AHDB ' **** **** ** **** ||',0DH,0AHDB ' *** *** ** *** ||',0DH,0AHDB ' ** ** *** ** ||',0DH,0AHDB ' * * ***** ||',0DH,0AH MESS_LEN=$-OFFSET MESS ;显示信息长度COLORB DB 07H,01H,0FH,70H,74H,04H,0EH ;颜色COLORE LABEL BYTEDSEG ENDS;代码段CSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:DSEGSTART: MOV DI,OFFSET COLORB-1 ;颜色指针初值NEXTC:MOV AX,DSEGMOV DS,AX ;设置数据段段值MOV ES,AXINC DI ;调整颜色指针CMP DI,OFFSET COLORE ;是否超过指定的最后一种颜色JNZ NEXTE ;否MOV DI,OFFSET COLORB ;是,重新指定第一种颜色NEXTE:MOV BL,[DI] ;取颜色MOV SI,OFFSET MESS ;取显示信息指针MOV CX,MESS_LEN ;取显示信息长度MOV DH,ROW ;置显示开始行号MOV DL,COLUM ;置显示开始列号CALL ECHO ;显示MOV AH,0INT 16HCMP AL,ESCKEY ;是否为ESC键JNZ NEXTC ;不是,继续MOV AX,4C00H ;结束INT 21HECHO PROC NEARMOV AX,0B800HMOV DS,AXMOV AL,80 ;计算显示开始位置偏移MUL DH ;偏移=(行号*80+列号)*2 XOR DH,DHADD AX,DXADD AX,AXXCHG AX,BXMOV AH,AL ;属性值保存到AH寄存器JCXZ ECHO2 ;显示信息长度是否ECHO1:MOV AL,ES:[SI] ;取一要显示字符代码INC SI ;调整指针MOV [BX],AX ;送显示存储区,即显示INC BX ;准备显示下一个字符INC BXLOOP ECHO1 ;循环显示ECHO2:RET ;返回ECHO ENDPCSEG ENDSEND START四、DOS/BIOS功能调用1.文本显示方式:所谓文本显示方式是指以字符为单位的显示方式。
微机原理课程设计报告
微型计算机技术课程设计指导教师:班级:姓名:学号:班内序号:课设日期:_________________________目录一、课程设计题目错误!未定义书签。
二、设计目的错误!未定义书签。
三、设计内容错误!未定义书签。
四、设计所需器材与工具3五、设计思路错误!未定义书签。
六、设计步骤(含流程图和代码)错误!未定义书签。
七、课程设计小结36一、课程设计题目:点阵显示系统电路及程序设计利用"汇编语言与微型计算机技术"课程中所学的可编程接口芯片8253、8255A、8259设计一个基于微机控制的点阵显示系统。
二、设计目的1.通过本设计,使学生综合运用"汇编语言与微型计算机技术"、"数字电子技术"等课程的内容,为今后从事计算机检测与控制工作奠定一定的根底。
2.掌握接口芯片8253、8255A、8259等可编程器件、译码器74LS138、8路同相三态双向总线收发器74LS245、点阵显示器件的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程,包括需求分析、原理图设计、元器件选用、布线、编程、调试、撰写报告等步骤。
三、设计内容1.点阵显示系统启动后的初始状态在计算机显示器上出现菜单:dot matrix display system1.←left shift display2.↑up shift display3.s stop4.Esc Exit2.点阵显示系统运行状态按计算机光标←键,点阵逐列向左移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标↑键,点阵逐行向上移动并显示:"微型计算机技术课程设计,点阵显示系统,计科11302班,陈嘉敏,彭晓〞。
按计算机光标s键,点阵停顿移动并显示当前字符。
3.完毕程序运行状态按计算机Esc键,完毕点阵显示系统运行状态并显示"停〞。
微机原理课程设计报告
目录一.设计内容 (1)二.设计原理及方案 (1)三.汇编源程序代码 (2)四.实施结果 (10)五.课程设计体会 (13)六.参考文献 (14)一.设计内容利用DAC设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,要求自行设计波形输出的切换方式。
主要功能:本题用到8255,dac0832芯片1.产生四种波形2.键盘切换波形3.数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波)二.设计原理及方案设计原理:D/A转换器(DAC0832)产生各种波形的原理:利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如三角波、正弦波、锯齿波、方波等。
8255A实现波形切换:从8255的C口读入外接开关的信号,CPU读入不同信号值,从而执行不同的代码,向D/A转换器传送不同的数据,控制D/A转换器输出三角波、正弦波、锯齿波、方波等。
通过键盘切换波形,DAC0832输出各种波形,同时共阴极数码管显示按键号:1-三角波,2-正弦波,3-锯齿波,4-方波。
电路原理图(设计连接图):三.汇编源程序代码;***********************功能说明*****************************;题目二利用D/A设计波形发生器;利用D/A设计一个波形发生器,能分别产生三角波、正弦波、锯齿波和方波,;至少设计一种波形切换方式。
;功能:本项目用到8255,DAC0832芯片; 1 产生四种波形; 2 键盘切换波形; 3 数码管显示波形号(1-三角波,2-正弦波,3-锯齿波,4-方波);************************主程序******************************io3 EQU 600h ;8255io4 EQU 800h ;DAC 0832;********************************数据段定义data segmentsin_wave db 200,195,181,159,131db 100,69,41,19,5,0,0 ;正弦波幅值LED DB 06H,5BH,4FH,66H ;共阴极段码表data ends;********************************code segmentassume cs:code,ds:datastart: mov ax,data ;建立DS段地址 mov ds,axcall jian;********************************三角波san: mov Bx,255SAN3: MOV CX,BXmov al,0mov dx,io4san1: out dx,al ;三角波形上升段call delayinc alloop san1mov cx,BXmov al,BLmov dx,io4san2: out dx,al ;三角波形下降段 call delaydec alloop san2call jian;************************************正弦波sin: mov cx,11mov bx,0mov dx,io4lea si,sin_wavesin1: mov al,[si][bx] ;正弦波下降段 out dx,alcall delay1inc bxloop sin1mov cx,11sin2: mov al,[si][bx] ;正弦波上升段 out dx,alcall delay1dec bxcall jian;***************************************锯齿波juchi: mov Bx,255juchi1: mov cx,bxmov al,blmov dx,io4juchi2: out dx,al ;下降沿call delaycall delaydec alloop juchi2call jian;***************************************方波fang: mov Bx,255fang1: mov al,bl ;高电平段mov dx,io4out dx,alcall delay1MOV al,0 ;低电平段out dx,alcall delay1;****************************************延时delay proc ;延时子程序一push axpush bxpush cxpush dxmov cx,50lp0: noploop lp0pop dxpop cxpop bxpop axretdelay endpdelay1 proc;延时子程序二push axpush bxpush cxpush dxmov cx,1250loop lp1pop dxpop cxpop bxpop axretdelay1 endp;****************************************键盘选波形jian proc nearjian1: mov al,10001000B ;c口高四位输入MOV DX,io3+6HOUT DX,AL ;送控制字MOV AL,0MOV DX,io3+4HOUT DX,AL;c口低四位为0即行输出为0 nokey: in al,dx ;读c口高四位and al,0f0H ;屏蔽c口低四位cmp al,0f0Hjz nokey ;无键按下则循环call delay1 ;延时in al,dxshr al,1 ;列信息存于al低四位 shr al,1shr al,1shr al,1mov bl,0 ;初始列变量BL为0mov cx,4jian2: shr al,1 ;逐列检测,找出为0信号jnc jian3inc blloop jian2jian3: mov al,10010001b ;c口低四位输入mov dx,io3+6hout dx,al ;送控制字mov al,0mov dx,io3+4hout dx,al ;c口高四位为0即列输出为0in al,dxand al,0fh ;屏蔽高四位cmp al,0fhjz jian1 ;出错从头来mov bh,0 ;初始行变量为0mov cx,4jian4: shr al,1jnc jian5inc bh ;初始行变量BH为0loop jian4jian5: shl bh,1shl bh,1add bh,bl ;BH为键号MOV CH,BH ;保存键号在ch中MOV AL,BH ;数码管显示波行号LEA BX,LED ;1三角波2正弦波3锯齿波4方波 XLA Tout dx,alMOV DX,IO3+2OUT DX,ALMOV BX,155 ;幅值一MOV DX,IO3IN AL,DXcmp ch,0jz sancmp ch,1jz sincmp ch,2jz juchicmp ch,3jz fangretjian endpcode endsend start四.实施结果(1)键盘选择1——三角波(2)键盘选择2——正弦波(3)键盘选择3——锯齿波:(4)键盘选择4——矩形波五.课程设计体会在为期近两周的微机原理课程设计中,我们小组利用所学微机的理论知识进行软硬件整体设计,同时锻炼了我们理论联系实际,提高我们的综合应用能力。
微机原理课设报告
中南大学微机原理课程设计报告一、课程设计目的通过本次课程设计要掌握8088,8255,0809,0832,8279 等多种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。
同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。
二、课程设计任务本次课设选题为“模拟电压采集,直流电机控制”。
根据我自己对这个课题的理解,我认为这个课题应该实现以下的要求:基本要求:1、对模拟电压进行采集转换为数字信号,并实时显示。
2、用转换的到的数字信号再经数模转换,对直流电机进行控制。
拓展要求:1、通过发光二极管作为信号指示灯,实时的指示直流电机的工作状态是否正常。
2、建立报警电路,对电机非正常工作情况以及反转工作情况下进行报警。
三、设计思想与原理1、设计思想本次课设选题为“模拟电压采集,直流电机控制”,基本分为两大部分:模拟量采集的模数转换部分,以及电机控制中的数模转换部分。
而为了让模拟量的采集结果更加明显可察,将加入数码管显示模块,实时显示模拟量采集的大小情况。
与此同时,在选题基础上添加了直流电机工作状态指示灯电路和报警电路。
2、设计原理根据试验箱相关配置,取电位器0~5V 可调电压为模拟量输出模块,可线性调节输出。
取芯片ADC 0809 对采集到的模拟信号进行模数转换,将0~5V 的电压信号转为00~FF 的数字信号,并通过8279 键盘扫描输出模块进行相应的显示输出。
得到转换后的数字量之后,使用DAC0832 数模转换芯片进行数模转换,并将所得模拟量输出到直流电机控制端,进行电机驱动。
对于添加的模块,主要通过8255 芯片来实现,取8255 的PA0 口作为输出端口,连接试验箱上的开关量输入显示区的发光二极管。
对A口分别赋值01H (直流电机正向非正常工作)、02H(直流电机正常工作)、04H(直流电机反向非正常工作)并输入给开关量输入显示区的发光二极管,驱动前三个二极管在电机的三种工作状态下分别发光,从而实现指示灯电路。
微机原理设计报告
微机原理课程设计题目: I/O接口卡设计学院:仪器与电子学院专业:测控技术与仪器指导教师:**组员姓名:目录一.设计题目及设计规定1.设计内容2.设计规定二.设计总体方案三.重要元件1.IBM PC/XT总线简介2.ISA总线简介3.8255芯片简介4.驱动器5.LED显示屏四.工作原理五.硬件电路六.程序设计及流程图1.流程图2.程序设计七.设计心得八.参照文献一、设计题目及设计规定:1.设计一块I/O卡,该卡具有3个8位I/O口(A、B、C口),运用该I/O卡控制该卡控制一种四位旳LED显示屏,该卡插在PC机旳IMB-PC扩展总线插槽上(ISA),选用8255接口芯片2.设计规定:画出电路原理图,阐明工作原理,编写运用该接口卡对键盘上键入旳数字进行显示旳程序(当回车键按下前,假如键入旳数字旳次数不不大于4时显示最终旳4位数)二.设计整体方案该接口卡旳主芯片是8255芯片,将ISA总线上旳地址线A0-A19通过译码作为8255旳片选信号,IOR、IOW分别作为8255旳读写信号。
四位LED显示屏采用共阴极接法,将8255旳A端口旳8个引脚通过驱动器与LED旳a-h相连,用C端口旳低四位来控制那个LED亮,B端口不使用。
三.重要元件1.IBM PC/XT总线简介总线在PC/XT机旳底板上共有8个插头,称为IMB PC/XT总线。
PC/XT 总线在每个插槽(扩展槽)配有62个引脚代表多种不同样旳信号。
IBM PC/XT总线旳62条引线包括20位地址线、8位数据线、21根控制线、2根状态线和11根辅助线及电源线。
每一种插槽对应旳引脚均有相似旳意义,因此所有旳接口卡可插于任何一种插槽上。
引脚间隔为2.54mm。
2.ISA总线简介ISA总线是IBM PC/AT机(CPU是80286)所用旳系统总线,这是一种16位兼8位旳总线原则。
假如忽视原则化细节,则可认为16位ISA总线就是PC/AT总线。
由于IBM PC/AT与IBM PC、IBM PC/XT机(CPU 都是8088)所用旳Pc总线兼容,因此可认为8位ISA总线(16位ISA总旳低8位部分)就是PC总线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与应用课程设计目录一、设计任务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码程序)计算机显示数据时使用的是数据的ASCII码,而在程序设计当中程序的计时数值是BCD码,因此,需要通过此子程序实现将BCD码转变为ASCII码,以备送屏幕显示。
因为时钟计时的压缩BCD码每一个数都有8位,因此将其右移四位并加30H,将其高位数字取出,送BX存放,再将其低位数字取出,加30H,送BX 存放,达到不同码制之间转换的目的。
9.复位、停止等功能的实现通过对输入字符的判断和各种循环的嵌套调用实现。
整体上本程序的主要设计原理是先在数据段中定义“S START R RESET E END C CONTINUE”控制字符串,并定义缓冲区。
将数据段的段基址送DS,并将“S START R RESET E END C CONTINUE”显示,同时调用GO子程序,将显示结果初始化。
同时设置光标,启动计时,启动延时程序,将百分之一秒加1并将其设置为压缩BCB码,当其CF不为1时,送屏幕显示,当其为1时,将其设置为0,并在秒上加1,当秒等于60时,其置0,当其小于60时,送屏幕显示。
在计时过程中,如果键入R,则将其复位,并重新开始计时,当键入E时,计时暂停,如果键入C,则继续计时,如果键入R,则复位,设置为00:00,当再次键入S时,再次计时开始。
三.框图(见附页)四、程序清单(附显示结果)DAT SEGMENTSPACE DB 2000 DUP (' ')FU1 DB 'Where there is a will$'FU2 DB 'There is a way$'FU3 DB 'Made By:$'FU4 DB 'Sun and Feng$'FU5 DB '12 / 28 / 2008$'FU6 DB "INPUT S START R RESET E END C CONTINUE$";设置控制字符串BUFFER DB 10 DUP(?) ;定义缓冲区DAT ENDSCOD SEGMENTSTART PROC FARASSUME CS:COD,DS:DATMOV AX,DATMOV DS,AXCLOUR: ;字体颜色设置MOV AX,0003HINT 10HMOV AX,DATMOV DS,AXMOV ES,AXMOV BP,OFFSET SPACEMOV DX,0E00HMOV CX,2000MOV AX,1300HINT 10HMOV AH,02HMOV BH,00MOV DX,182DHINT 10HMOV DL,'~'MOV AH,02HINT 21HMOV AH,02HMOV BH,00MOV DX,1823HINT 10HMOV DL,'~'MOV AH,02HINT 21HDIS MACRO X ;用宏显示苹果图案XOR BH,BH MOV DX,X INT 10HMOV DL,'*' MOV AH,02H INT 21HENDMPUSH DXPUSH AXPUSH BXDIS 0A28HDIS 0928HDIS 0829HDIS 0729HDIS 062AHDIS 052AHDIS 042BHDIS 032CHDIS 0A2AH DIS 092CH DIS 082EH DIS 0730H DIS 0732H DIS 0834H DIS 0936H DIS 0A38H DIS 0B39H DIS 0C3AH DIS 0D3BH DIS 0E3CH DIS 0F3CH DIS 103CH DIS 113BH DIS 1239H DIS 1337H DIS 1435H DIS 1533H DIS 1631H DIS 172FHDIS 1629H DIS 1528HDIS 1627H DIS 1725H DIS 1721H DIS 161FH DIS 151DH DIS 141BH DIS 1319H DIS 1217H DIS 1115H DIS 1014H DIS 0F14H DIS 0E14H DIS 0D15H DIS 0C16H DIS 0B17H DIS 0A18H DIS 091AHDIS 081CHDIS 071EHDIS 0720HDIS 0822HDIS 0924HDIS 0A26HPOP BXPOP AXPOP DXDISS MACRO X,Y ;用宏显示字符串MOV AH,02HXOR BH,BHMOV DX,XINT 10HMOV DX,OFFSET YMOV AH,09HINT 21HENDMPUSH AXPUSH BXPUSH DXDISS 0F1AH,FU1DISS 1227H,FU2DISS 1439H,FU3DISS 163FH,FU4DISS 1842H,FU5DISS 0004H,FU6POP DXPOP BXPOP AXCALL GO ;赋值程序调用LOAD:CALL IOSET ;光标置屏中央程序调用CALL HALT ;等待开始信号程序调用MOV DX,0MOV CX,0 ;1/100秒与秒初值赋0 AGAIN:CALL TIME ;延时程序调用MOV AL,DL ;1/100秒值加1ADD AL,1DAA ;BCD码调整JC NEXT1 ;1/100秒等于100时清零MOV DL,AL ;1/100秒值存DLJMP DISPY ; 1/100秒不等于100时显示NEXT1:MOV DL,0 ;1/100秒值回零MOV AL,DH ;秒值加1ADD AL,1DAAMOV DH,AL ;秒值存DHCMP AL,60H ;秒值与60比较JE NEXT4 ;秒值为60时,向分值进一MOV DH,ALJNE DISPY ;秒值不为60时显示NEXT4:;秒值回零MOV DH,0MOV AL,CHADD AL,1DAAMOV CH,ALCMP CH,60HJNE DISPY ;分值不为60时显示MOV CH,0 ;分值回零DISPY:MOV BX,OFFSET BUFFER ;显示程序MOV AL,CH ;分值BCD码转ASCII码CALL TRANINC BXINC BXMOV AL,DHCALL TRAN ;秒值BCD码转ASCII码INC BXINC BXMOV AL,DL ;1/100秒值BCD码转ASCII码CALL TRANMOV [BX],ALPUSH BXPUSH CXPUSH DXCALL IOSETMOV DX,OFFSET BUFFER ;时间显示MOV AH,09HINT 21HPOP DXPOP CXPOP BXMOV AH,0BH ;判断是否有键盘输入 INT 21HAND AL,ALJZ AGAIN ;无键入则转计时程序MOV AH,08H ;键入控制符INT 21HCMP AL,'R' ;判断是否为复位信号JNE NEXT2 ;若为非复位信号则判断是否为结束信号 MOV DL,0 ;键入为复位信号则复位后继续计时 MOV DH,0JMP AGAINNEXT2: CMP AL,'E' ;判断是否为结束信号 JNE AGAIN ;若为非结束信号则计时继续NEXT3: MOV AH,08H ;若为结束信号则计时暂停 INT 21HCMP AL,'C' ;判断计时是否继续JE AGAINCMP AL,'R' ;判断是否为复位信号JNE NEXT3 ;若为非复位信号则继续等待键入CALL GO ;若为复位信号则复位并转至开头等待 CALL IOSETMOV DX,OFFSET BUFFERMOV AH,09HINT 21HJMP LOADRETSTART ENDPGO PROC ;赋值程序MOV BX,OFFSET BUFFERMOV AL,'0'MOV [BX],ALINC BXMOV AL,'0'MOV [BX],ALINC BXMOV AL,':' MOV [BX],AL INC BXMOV AL,'0' MOV [BX],AL INC BXMOV AL,'0' MOV [BX],AL INC BXMOV AL,':' MOV [BX],AL INC BXMOV AL,'0' MOV [BX],AL INC BXMOV AL,'0' MOV [BX],AL INC BXMOV AL,'$' MOV [BX],ALRETGO ENDPIOSET PROC ;光标置屏中央程序 MOV DX,0D27HMOV BH,00MOV AH,02HINT 10HRETIOSET ENDPHALT PROC ;等待开始信号键入程序 MOV AH,08HINT 21HCMP AL,'S'JNE HALTRETHALT ENDPTRAN PROC ;BCD码转ASCII码程序 MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV [BX],ALINC BXMOV AL,CLAND AL,0FHOR AL,30HMOV [BX],ALRETTRAN ENDPTIME PROC ;延时程序PUSH CXPUSH AXMOV AX,00B0HMOV CX,0FFFFH A1: DEC AXJNZ A2JMP A3A2: DEC CXJNZ A2JMP A1A3: POP AXPOP CXRETTIME ENDPCOD ENDSEND START ;程序结束五、程序调试由于是第一次用汇编语言编写一个较为复杂的程序以实现具体功能,在编写以及调试过程中我们遇到了很多问题,经过组员的努力和同学及老师的帮助问题得以顺利解决,下面列举了我们遇到的问题及其解决方法以供参考。