微机原理与汇编语言课程设计报告

合集下载

微机原理与汇编语言课程设计报告

微机原理与汇编语言课程设计报告

西北师范大学计算机科学与工程学院微机原理与汇编语言课程设计报告设计题目:中断控制点阵显示与音乐模块姓名:学号:专业班级:系所中心:指导老师:起讫时间:设计地点:2016年8月20日摘要使用8086汇编语言,在唐都TD-PITE实验箱上进行硬件连线,在计算机上采用与该实验箱配套的软件进行输入,观察实验结果。

设计思路是利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。

此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,利用8254芯片开始响应预先编排好的音乐。

【关键词】级联中断;8259芯片;16*16点阵;8254芯片;SPK音乐模块;脉冲信号目录摘要 (2)第一章课程设计 (2)1.1 目的和任务 (2)1.2 设计环境、设备与器材 (2)第二章设计内容和方案 (3)2.1 设计内容 (3)2.2 设计方案 (3)第三章课程设计相关原理简述 (3)第四章设计实现 (4)4.1 系统设计框架结构 (4)4.2 系统硬件设计 (4)4.3 系统软件设计 (6)4.4 程序流程图 (6)4.5 核心数据结构 (8)4.6 关键代码片段分析 (10)第五章设计验证 (10)5.1 验证步骤及结果 (10)5.2 数据分析 (10)5.3 遇到的问题及解决 (11)5.4 需要讨论的其它问题 (11)5.5 结论 (11)第六章设计总结 (12)第七章本课程教学建议 (13)第八章参考文献 (13)第九章附录:源代码 (13)第一章课程设计1.1 目的和任务使用8259芯片进行中断程序设计,在第一个中断中响应字模显示模块,在第二个中断中响应音乐发声模块。

1.2 设计环境、设备与器材列出本次课程设计所用到的设备与器材,包括数量。

微机原理与汇编语言实验报告

微机原理与汇编语言实验报告

微机原理与汇编语言实验报告学号:********班级:*****姓名:*****指导教师:*****一.实验目的1.通过上机实验进一步熟悉并掌握汇编语言的指令系统和寻址方式;2.熟悉汇编语言程序上机的流程,以及与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)3.学习汇编程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法4.能够独自编写,调试,并成功运行一个完整的程序。

二.实验内容与步骤1.掌握汇编语言程序上机过程首先,新建文本文档后将扩展名改为.ASM,这是汇编语言源程序的文件格式,以记事本形式打开后在其中键入所编写的程序。

第一次题目是在屏幕上显示一串字符串,在老师的指导下,编写的程序如下:data segmentnote db 'hello','$'data endscode segmentmain proc farassume cs:code,ds:data,es:datastart:push dssub ax,axpush axmov ax,datamov ds,axmov es,axmov ah,09hlea dx,noteint 21hmain endpcode endsend start之后,要进行编译和运行。

源程序经过翻译程序成为机器能够识别的目标程序,目标程序再经过连接程序连接后转换成在机器上可执行的程序。

基本流程图如下:在编译的过程中,程序查出的主要是语法上的错误,如果有错,则不能通过汇编,要纠错后重新汇编直到无错为止。

最后,生成的.EXE文件即为可执行文件,从磁盘调入内存运行,得到运行结果。

上述程序的运行结果为在屏幕上显示出“hello”。

2.编程完成任意两个两位数的加法运算编程任务的基本要求为:从键盘输入任意两个两位数相加,将结果显示在屏幕上。

刚开始拿到题目后,头脑里是比较混乱的。

经过与同学的探讨之后,我们大概确定出要完成整个功能,需经过以下过程:将输入的ASCII码与十进制数值进行转换,并保存在寄存器中;通过调用程序将两个数相加,并将结果保存;将结果显示在屏幕上。

汇编与微机原理课程设计报告

汇编与微机原理课程设计报告

微机接口课程设计报告(题目:模拟自动门)指导老师郭兰英班级2015240204目录一概述 (1)1.1 课程设计名称 (1)1.2 课程设计要求 (1)1.3 课程设计目的 (1)二设计思想 (1)三实施方案 (2)3.1 获得传感器和“门”的状态 (2)3.2 驱动步进电机和点阵模块 (2)3.3 实现硬件延时 (3)四硬件原理 (3)4.1 中断控制器8259 (4)4.2并行接口8255 (4)4.3 定时/计数器8254 (5)4.4 点阵LED显示屏 (5)4.5 步进电机 (6)4.6 红外距离传感器 (7)五软件流程 (8)六程序运行结果及分析 (11)6.1 开门状态 (11)6.2 关门状态 (12)6.3 关门操作进行时中断到开门操作 (14)6.4特殊状态 (15)七个人感想 (16)八附录 (18)一、概述1.1课程设计名称模拟自动门1.2课程设计要求1)用汇编语言编程完成硬件接口功能设计。

2)硬件电路基于80x86微机接口。

3)程序功能包含:步进电机转动、点阵显示开关门、传感器检测是否有人、8254延时。

4)传感器检测有人时开门,门全开后延时几秒关门,若关门时检测到有人,立刻开门。

1.3课程设计目的通过本课程设计,让学生对微机系统有一个较面的理解,对典型数字接口电路的应用技术有一个较深入的掌握,并对应用系统进行硬件原理和软件编程进行分析、设计和调试,达到基本掌握简单微型计算机应用系统软硬件的设计方法,提高项目开发能力的目的。

要求同学分组完成课题,写出课程设计说明书,画出电路原理图,说明工作原理,编写设计程序及程序流程图。

二、设计思想本程序主要功能是模拟商场等公共场所的自动门,实现有物体靠近并被传感器检测到时发生一系列变化的效果,模拟实现开门关门的功能。

为了尽量模拟真实场景下的自动门状态变化,本程序主要可以实现以下功能:1、当传感器可检测范围内检测到物体,并且“门”为“关”的状态,立即“打开门”,即用一系列的硬件动作模拟自动门打开的动作和状态。

微机原理与汇编语言程序设计课程设计报告

微机原理与汇编语言程序设计课程设计报告

课程设计报告名称:微机原理与汇编语言程序设计课程设计题目:汇编语言编程实践及电子钟设计院系:计算机系班级:学号:学生姓名:指导教师:设计周数:成绩:《微机原理与汇编语言程序设计课程设计》评分表任务书一、目的与要求本课程设计包含软件部分和硬件部分两个环节。

软件部分:进一步熟悉汇编语言设计方法和步骤,完成在有限的课内实验环节无法涉及到的具有综合设计性的软件实验,如中断程序设计、I/O程序设计、宏设计等。

硬件部分:利用伟福试验设备中的8253可编程定时/计数器,8259中断控制器,8255可编程并行接口芯片和七段数码管等设计一个电子钟电路,并编制一个程序使电子钟能正常运行。

通过软硬件环节的设计和调试,巩固所学知识,增强动手能力,提高综合性工程素质。

二、主要内容软件部分:1.熟悉编程环境,完善前期电话号码本设计的功能;2.显示器I/O程序设计,完成窗口控制程序;3.中断程序设计,完成内部中断服务程序和外部中断服务程序设计;4.发声系统设计;5.键盘程序设计。

硬件部分:1.总体模块设计,查阅资料,设计主程序和中断服务程序的流程;2.详细设计,完成软硬件模块的框架。

3.调试,对前述工作进一步细化;4.完善功能,实现电子钟的准确运行,并进一步改进其功能;5.验收、实验报告撰写。

三、进度计划四、设计(实验)成果要求1.软件环节要求掌握各环节的设计原理、能实现各环节要求的功能。

2.硬件环节要求利用相关接口芯片,实现电子钟的准确运行等功能。

3.总结实验,撰写实验报告。

五、考核方式实验结果(60%)+实验报告(30%)+实验过程表现(10%)1.验收:完成课程设计题目后由指导老师验收,学生汇报上机题目完成情况,回答提出的问题。

2.撰写课程设计实验报告:完成课程设计题目后,应认真撰写课程设计报告,报告应内容全面、格式规范。

学生姓名:指导教师:年月日实验一电话号码本设计完善一、课程设计(综合实验)的目的与要求1. 熟练掌握汇编语言程序设计环境,根据前期掌握程度,可选择Masm for windows集成实验环境(实验室配备),或自行安装masm5.0、masm6.0、Emu8086,Tasm等,软件开发环境可由学生根据使用爱好自选。

微机原理与汇编语言综合性实验报告

微机原理与汇编语言综合性实验报告

微机原理与汇编语言综合性实验报告实验项目名称:A/D转换器 ADC0809数字温度计设计专业班级:信息092 姓名:郭梦瑶学号: 200912030204 实验起止日期: 2011 年 12月13日起 2011 年12月20日止实验目的:掌握A/D转换原理,掌握0809A/D转换芯片的硬件电路和软件编程。

实验要求:包括开发环境要求,技术文档要求两部分。

开发环境要求:软件环境:Windows98/WindowsXP/Windows2000,QTH-8086B环境硬件环境:计算机(Pen4CPU, 256MRAM,60G以上硬盘,输入输出设备)技术文档要求:按照实验报告编写要求进行。

要求流程图绘制规范,软、硬件功能描述清晰,实验总结深刻。

实验内容:一、实验原理1、ADC0809电路连接简图:本实验采用 ADC0809 做 A/D 转换实验。

ADC0809 是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为±1/512,适用于多路数据采集系统。

ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。

图中ADC0809的CLK信号接CLK=2.385MHZ,基准电压Vref(+)接Vcc。

一般在实际应用系统中应该接精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。

ADC0809的转换结束信号EOC未接,如果以中断方式实现数据采集,需将EOC信号线接至中断控制器8259A的中断源输入通道。

本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD-A、ADD-B、ADD-C 接系统数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、03H、04H、05H 、106H、07H。

2、引脚结构IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。

汇编语言课程设计报告报告

汇编语言课程设计报告报告

湖南农业大学课程设计报告学院:班级:姓名:学号:课程设计题目:编密码课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月日目录概述 (3)一设计内容与要求 (3)二设计思想 (3)三程序流程图 (4)四程序源代码 (5)五效果图 (7)六设计过程中遇到的问题及解决方法 (7)七设计心得 (7)编密码概述汇编语言:是用英文缩写形式的助记符书写指令。

汇编语言是一种面向CPU指令系统的程序语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址。

用汇编语言编写程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程成为汇编,完成汇编任务的程序称为汇编程序。

所以我在MASM汇编程序中进行汇编,通过相应的代码来调用相应的指令实现编密码。

一、设计要求(小标题一律用宋体小四加粗)要求:按照以下规律编密码:1.字母A变为E,a变为e即是字母变成其后面的第4个字母。

2.但Ww变Aa,Xx变Bb,Yy变Cc,Zz变为Dd.3.非字母不变如1234567890,!@$4.并可以循环转换5.例如“123CHINA@”变为“123GLMRE@”二、设计思想首先,先定义两个缓存区,一个用来存放输入的密码(BUF2),一个用来存放变换后的密码(BUF3)。

先输入一个十位数内的密码,然后一一对一个个字符进行判断。

先判断ascall是否小于41H,如果是则不是字母那就不变换直接转到read1,存入BUF3。

如果大于41H在判断是否大于61H即判断是不是小写的,如果小于的话在判断大于5bH吗?如果大于则不是字母那就不变换直接转到read1,存入BUF3。

如果小于的话,在判断是不是大于w的ascall,如果大于就转到read3,减22在,存入buf3.否则转到read4,加4在存入BUF3。

如果大于等于61H的话,同样的道理,判断是否大于W,如果大于在判断大于7AH吗。

汇编语言与微机原理实验报告

汇编语言与微机原理实验报告

成绩:2微机原理与接口技术课程实验报告课程:微机原理与接口技术姓名:专业:网络工程学号:132055222日期:2016年6月太原工业学院计算机工程系实验一:输入输出实验实验环境PC机+Win 2003+emu8086+proteus仿真器实验日期2016.6一.实验内容基本要求:1.熟悉emu8086仿真系统2.实现控制台输入输出3.设计并单步调试实现一位十进制数的加法运算(屏幕效果为3+2=5,红色为输入其他为自动输出)扩展要求:1.实现两位十进制和的输出2.实现一位十进制四则运算3.实现多位数运算思考内容:1.输入输出数据和计算用数据的区别2.单字符输入输出和串输入输出的不同二.理论分析或算法分析1.一般来讲,从键盘输入的数都是以ASCII码的形式存放在内存中。

对十六进制数来讲,0~9的ASCII码值分别为30H~39H,对这十个数的转换,减去30H就得到对应的二进制值,再用二进制数值进行加减乘除运算。

2.实现一位十进制数的加法运算和实现一位十进制数的减法运算的主要区别是对控制台输入的运算符不同,算术运算指令也不同,同时应该考虑加法的进位和减法的借位。

一位十进制加法与两位十进制加法运算的区别是:一位十进制加法时算术运算指令用AAA(加法的ASCII调整),两位十进制数用DAA(加法的十进制调整)。

3.在一位十进制的运算方法上,利用mov ah,01h;int 21h;输入字符。

利用mov dl,al;mov ah,2;显示到屏幕上。

将第一个数赋值给al,将第二个数赋值给bl,用add实现bl于al的相加。

4.在实现两位十进制相加的算法时,利用步骤一的方法,再次将两个值赋值给ah和bh,利用add实现十位数的带进位相加。

三.实现方法基本要求代码:mov ah, 1int 21hmov bl, al mov ah, 2 mov dl, '+'int 21hmov ah, 1int 21hand bl, 0fh and ax, 0fh add al, blaaaor ax, 3030h mov bx, ax mov ah, 2 mov dl, '='int 21hcmp bh, 30h 扩展要求代码:mov ah, 1int 21hmov bl, al mov ah, 2 mov dl, '+' int 21hmov ah, 1int 21hadd bl, al mov ah, 2 mov dl, '=' int 21hmov dl, bl sub dl, 30h mov ah, 2int 21hHlt四、实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)1、基本要求实验结果:2、扩展要求实验结果:五.结论通过本次实验,完成了一位十进制数的加法运算,两位十进制数的和输出,一位十进制数的四则运算以及多位数运算的实验要求。

《微机原理》课程设计报告

《微机原理》课程设计报告

《微机原理》课程设计报告班级:姓名:学号:一、目的结合微机原理课程的学习,进一步巩固所学只是,掌握汇编语言的编程要领,熟悉汇编程序上机过程以及进行程序调试。

二、设计任务,程序清单,流程图任务1(具体题目要求):字符串匹配设计为掌握提示信息的设置方法及读取键入信息的方法。

编写程序实现两个字符串比较。

如相同,则显示:“MATCH”,否则,则显示“NO MATCH”程序清单:DA TA SEGMENTINPUT1 DB 'INPUT STRING1!',0DH,0AH,'$'INPUT2 DB 'INPUT STRING2!',0DH,0AH,'$'MAT DB 0DH,0AH,'MATCH!$'MISMAT DB 0DH,0AH,'NO MA TCH!$'LEN1 DB 20STRING1 DB 20 DUP(?)LEN2 DB 20STRING2 DB 20 DUP(?)DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATAMAIN PROC FARMOV AX,DA TAMOV DS,AXMOV ES,AXMOV AH,09HMOV DX,OFFSET INPUT1INT 21HMOV AL,LEN1MOV BX,OFFSET STRING1MOV [BX],ALMOV AH,0AHMOV DX,OFFSET STRING1INT 21HCALL CRLFMOV AH,09HMOV DX,OFFSET INPUT2INT 21HMOV AL,LEN2MOV BX,OFFSET STRING2MOV [BX],ALMOV AH,0AHMOV DX,OFFSET STRING2INT 21HCALL CRLFCLDLEA SI,STRING1LEA DI,STRING2MOV CX,5REPE CMPSBJNE NOMATMOV AH,9MOV DX,OFFSET MATINT 21HJMP EXITNOMA T:MOV AH,9LEA DX,MISMA TINT 21HEXIT: MOV AH,4CHINT 21HCRLF PROC NEARMOV DL,0DHMOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRETCRLF ENDPMAIN ENDPCODE ENDSEND MAIN流程图:…….任务2(具体题目要求)将键盘输入的小写字母转换为大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。

微机原理软件实验报告

微机原理软件实验报告

实验名称:汇编语言程序设计实验日期:2023年3月10日实验地点:计算机实验室实验者:张三一、实验目的1. 熟悉汇编语言的基本语法和指令系统。

2. 掌握汇编语言程序设计的基本方法。

3. 通过实验,加深对微机原理的理解。

二、实验内容本次实验主要涉及以下内容:1. 数据传送指令的应用2. 算术运算指令的应用3. 控制转移指令的应用4. 子程序设计三、实验步骤1. 编写一个简单的程序,实现以下功能:(1)将数据0x1234存入寄存器AX;(2)将数据0x5678存入寄存器BX;(3)计算AX和BX的乘积,并将结果存入寄存器DX;(4)将乘积的高16位和低16位分别存入寄存器CX和AX。

2. 编写一个程序,实现以下功能:(1)将数据0x1A2B3C4D存入内存单元[0x1000];(2)从内存单元[0x1000]开始,读取连续4个字节的数据;3. 编写一个程序,实现以下功能:(1)定义一个子程序,实现两个整数的加法运算;(2)在主程序中调用该子程序,实现两个整数的加法运算。

四、实验结果与分析1. 数据传送指令的应用(1)将数据0x1234存入寄存器AX;MOV AX, 0x1234(2)将数据0x5678存入寄存器BX;MOV BX, 0x5678(3)计算AX和BX的乘积,并将结果存入寄存器DX;MUL BX(4)将乘积的高16位和低16位分别存入寄存器CX和AX; MOV CX, DXMOV AX, DX2. 算术运算指令的应用(1)将数据0x1A2B3C4D存入内存单元[0x1000];MOV [0x1000], 0x1A2B3C4D(2)从内存单元[0x1000]开始,读取连续4个字节的数据; MOV AX, [0x1000]MOV BX, [0x1000+2]MOV CX, [0x1000+4]MOV DX, [0x1000+6]MOV AH, 0x0EINT 0x103. 控制转移指令的应用(1)定义一个子程序,实现两个整数的加法运算;ADD procedure:ADD AX, BXRET(2)在主程序中调用该子程序,实现两个整数的加法运算;MOV AX, 0x1MOV BX, 0x2CALL ADDMOV CX, AX五、实验心得通过本次实验,我深刻理解了汇编语言的基本语法和指令系统,掌握了汇编语言程序设计的基本方法。

汇编语言与微机原理课程设计

汇编语言与微机原理课程设计

集中实践性教学环节教学大纲集中实践性汇编语言与微机原理教学环节名称适用专业计算机科学与技术等培养层次本科集中实践性五周数 1 学分 1 教学环节学期一、集中实践性教学环节的性质、目的与任务(一)性质本环节是计算机应用与维护所必需的一门课程。

通过本门课程的学习,使学生从理论和实践上掌握微机的基本组成、工作原理、以及与常用外设的硬件连接等知识,建立起微机系统的整体概念,使学生初步具有应用微机系统软、硬件的能力。

(二)目的通过本实践环节教学,加深学生对“微机原理与接口技术”、“汇编语言”、等知识的掌握与综合运用,培养学生分析解决实际问题的能力,提高学生的创新意识及动手能力,为后续相关课程的学习,以及毕业后从事微机硬件及软件开发打下基础,积累初步的经验。

(三)任务每位学生制定详细的设计工作计划,按计划展开工作;利用所学过的知识,初步分析计算机原理及接口技术的能力;汇编语言的编程能力;接口通信程序的设计和调试的能力;实验结果分析、总结及撰写技术报告的能力。

二、基本要求(一)通过文献资料查阅和学习,了解当前流行的.net开发模式和设计方法。

(二)参考和研究一些公司和高校/企业成功的软件开发案例和实现方案,结合所学课程中所学知识,积极完成设计任务。

(三)认真完成需求分析,并根据需求分析完成各设计题目的总体设计、详细设计和测试等环节的设计任务。

(四)突出架构设计的重要性(五)认真按时完成课程设计报告。

三、集中实践性教学环节的内容选择题目后以工程的管理方式、方法进行,包括需求分析、结构设计、编制程序,调试与测试等。

每一组人数控制在1-2人,视题目大小而定,但报告每人一份。

对于每一个选题中的不同模块,由学生分工完成,而同一个大题目所要求的数据设计任务,则需同组中的学生共同协作完成,最后把每个学生的设计结果进行联调。

设计选题如下:✓8086汇编语言实现的班级通讯录✓8086汇编语言实现的文本编辑器✓8086汇编语言实现的文本模式小游戏✓8086汇编语言实现的BIOS图形模式小游戏✓8250双机串行通信的设计与实现✓BIOS及DOS功能调用串行通信编程实现✓8253电子时钟的设计✓8088CPU实现的专用计算机系统(含中断、DMA、定时计数器、串并行通讯)如以上题目不满足学生需求,可以自拟题目。

大连海事大学微机原理课程设计实验报告

大连海事大学微机原理课程设计实验报告

计算机科学与技术专业2009级微机原理课程设计任务书一、课程设计目的《微机原理与汇编语言》是一门实践性和实用性都很强的课程,本次课程设计是在课程学习结束后,为使学生进一步巩固课堂和书本上所学知识,加强综合能力,充分理解和运用所学到的知识,通过简单的应用系统的设计,提高系统设计水平,启发创新思想。

通过本课程设计希望达到以下目地:✧培养资料搜集和汇总的能力;✧培养总体设计和方案论证的意识;✧提高硬件,软件设计与开发的综合能力;✧提高软件和硬件联合调试的能力;✧熟练掌握相关测量仪器的使用方法;✧掌握相关开发软件,仿真软件的使用方法。

二、课程设计内容与要求1. 设计题目双机参数采集系统设计2. 要求设计一套结构如下图所示的双机参数采集系统。

图中上位机负责向下位机下达命令,并对下位机采集的数据进行处理;下位机则根据上位机的命令对工作现场的各种开关量和模拟量参数进行采集,以某种通信方式传递给上位机,接收上位机根据处理结果下达的命令对现场各种设备实施控制。

系统实现按从易到难有如下三种要求:(1)基本功能:实现参数采集,通信,基本形式的参数显示,其中下位机用数码管显示,上位机用屏幕以数字显示。

(2)扩展功能:在实现基本部分基础上,扩展2路开关信号输入,前端参数采集计算机参数显示为数码管显示。

通过开关选择模拟信号回送操作,回送的模拟信号在前端参数采集计算机接口仪器中的D /A通道输出,后端处理计算机显示两路模拟信号的同时,显示回送的模拟信号值和开关状态显示。

(3)发挥功能:在实现扩展部分基础上,后端处理计算机以曲线形式显示两路模拟信号、回送的模拟信号值和开关状态显示。

3. 组织与实施(1)每组2人,其中2人负责前端系统的参数采集与简单显示功能,并将采集的参数通过通信接口传送给上位机,另外2人负责接收参数,并在屏幕上显示参数。

(2)模拟信号输入:2路(可用试验接口中的电位器模拟)(3)每路模拟信号的采样时间为5MS,每秒采样200次。

微机原理课程设计报告

微机原理课程设计报告

微型计算机技术课程设计指导教师:班级:姓名:学号:班内序号:课设日期:_________________________目录一、课程设计题目错误!未定义书签。

二、设计目的错误!未定义书签。

三、设计内容错误!未定义书签。

四、设计所需器材与工具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键,完毕点阵显示系统运行状态并显示"停〞。

汇编语言与微机原理实验报告

汇编语言与微机原理实验报告

成绩:2计算机原理实验室实验报告课程:汇编语言与微机原理**:***专业:计算机科学与技术学号:*********日期:2013年12月太原工业学院计算机工程系实验一:输入输出实验3、思考内容(1)从键盘中输入和从从屏幕上输出的都是字符,和计算用的数据时间相差“0”即30H。

所以一个数从屏幕上输出时将+30H,输入时转换成数字-30H。

(2)单个字符,也就是CPU处理外设(键盘)的整个中断过程五.结论通过本次实验,完成了一位十进制数的加法运算,两位十进制数的和输出,一位十进制数的四则运算以及多位数运算的实验要求。

这次实验也让我熟悉了emu8086仿真系统,能够实现控制台的输入输出;也学会了如何去实现一位十进制数的加法运算还有两位十进制数的和输出以及一位十进制数的四则运算,知道了输入输出数据和计算用数据的区别,即)从键盘中输入和从从屏幕上输出的都是字符,和计算用的数据时间相差“0”即30H。

所以一个数从屏幕上输出时将+30H,输入时转换成数字-30H,还有单字符输入输出和串输入输出的不同。

实验二:分支程序实验2.扩展要求每次输出都换行实验三:循环程序实验lea si,datamov cx,time+1result:mov dl,[si]add dl,30hmov ah,2int 21hmov dl,' 'int 21hadd si,2loop resultjmp $time equ 4paixuqian dw 'paixuqian:','3','4','9','7','1','$'paixuhou dw 'paixuhou:','$'data dw 3,4,9,7,1四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)本次实验验证了实验基本要求,实现了直接选择排序和冒泡排序两种方法对五个字从大到小排序功能.1.直接选择排序结果:2.冒泡排序结果:3.思考内容:冒泡排序之所以能实现快速排序,是每一次排序都将最大或最小的放在最后或最前,并且有个来统计交换的次数,一旦交换的次数为0时直接退出循环。

微机原理与汇编语言程序设计实验一

微机原理与汇编语言程序设计实验一

实验一汇编语言上机环境及基本操作一、实验目的及要求1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。

2.学会使用EDIT、MASM、LINK、DEBUG等软件工具。

3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

二、实验内容1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。

设定源程序的文件名为ABC。

DATA SEGMENTBUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCN EQU $-BUFDATA ENDSSTACK SEGMENT STACK ’STACK’STA DB 10 DUP(?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART: PUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX,CNDEC CXMOV AL,[BX]INC BXLP: CMP AL,[BX]JBE NEXTMOV AL,[BX]NEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START键入以下命令:C:\>EDIT ABC.ASM此时屏幕的显示状态如图1所示。

图1 用EDIT编辑ABC.AS M程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。

2.将源程序文件汇编成目标程序文件一般情况下,MASM汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。

(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。

(3)若程序中使用了宏指令,则汇编程序将展开宏指令。

微机原理与汇编语言程序设计课程设计

微机原理与汇编语言程序设计课程设计

微机原理与汇编语言程序设计课程设计
一、设计背景和目的
微机原理与汇编语言程序设计是计算机科学与技术专业的必修课程,本课程主要介绍微机组成原理、汇编语言程序设计和简单的计算机系统调试。

为了让学生更好地掌握本课程的知识和技能,课程设计是必不可少的环节。

本次课程设计旨在提高学生对微机组成原理和汇编语言程序设计的理解,加强学生实际操作能力,培养学生团队协作精神和创新思维能力。

二、设计内容
1. 设计目标
本次课程设计的目标是:
1.通过自主设计、实现和调试微机系统,让学生更加深入了解和掌握微
机组成原理和汇编语言程序设计。

2.培养学生实际操作能力,提高学生程序设计水平和调试能力。

3.加强学生团队协作精神和创新思维能力,让学生充分发挥自己的创造
力,实现学习成果的最大化。

2. 设计内容
本次课程设计将分为以下三个部分:
1.系统总体设计:根据具体要求,设计和规划微机系统的硬件组成和软
件结构,包括系统框架图、硬件接口电路图和软件模块设计等。

2.系统实现和调试:根据系统总体设计,分别实现硬件和软件,对系统
进行调试验证,并录制系统操作演示视频。

1。

微机原理及汇编语言课程设计说明书

微机原理及汇编语言课程设计说明书

微机原理与汇编语言课程设计任务书1. 引言虽然已有多种更接近与人类自然语言的高级语言问世,但汇编语言以其执行速度快和能够实现对硬件的直接控制等独特的优点,依然广泛应用于实时的控制、嵌入式系统等软件开发的应用中。

在这次课程设计中这是一个综合性非常强的设计,在里面有宏的定义,过程的调用,dos、blos等中断的调用等等许多我们课堂上我们所没有接触过的东西,这都需要我们自学去完成,这使得我们不仅复习刚学过的一些简单的汇编语句,还能学到许多的新的知识,对我们以后的汇编编程有一个扎实的基础。

2.需求分析通过我们小组、指导老师和别的小组经过认真、仔细的讨论得出文本编辑器主要实现的一些功能如下:编辑功能:如插入、删除、修改、光标移动、显示行号列号、提示信息等;块操作:如剪切、拷贝、删除、粘贴等操作;文件操作:打开、关闭、保存、另存、插入等操作;热键和鼠标操作:既可热键也可使用菜单完成功能;完成鼠标的相关操作;3.总体设计用DOS系统功能调用和BLOS功能调用设计一个有菜单栏的编辑窗口。

在该窗口中可以实现文本的输入;可以利用“Del”键、“BackSpace”键、“Home”键、“End”键、“”、“”、“”、“”方向移动键实现对输入文本的全屏幕编辑。

使用彩色组和背景来设计界面颜色,利用DOS系统功能调用的磁盘文件存取技术实现文件的“新建”、“打开”、“保存”、“另存为”与“退出”功能。

在本课程设计中充分利用DOS和BLOS的终端功能,DOS提供了一组完成磁盘文件的建立、打开、关闭和读写等操作的功能的调用。

利用DOS和BLOS的功能调用,汇编语言可以实现对磁盘文件的存取。

利用BLOS功能调用中的10H终端类型,可以设置显示模式,设置窗口背景、字符颜色等。

调用DOS功能中的09号功能,可以实现显示菜单信息字符串。

调用BLOS中的键盘I/O朱红的调用(16H中断)中的0号功能,可以从键盘读取字符,通过对“Del”键、“BackSpace”键、“Home”键、“End”键、“”、“”、“”、“”方向移动键的扫描码的判断,结合10H中断的02H号、03H号还能确定光标的相应移动,从而实现对输入文本信息的全屏编辑。

微机原理与汇编语言程序设计汇编实验报告

微机原理与汇编语言程序设计汇编实验报告

(此文档为word格式,下载后您可任意编辑修改!) 昆明学院课程设计(大作业)目录1题目分析 (5)2基本理论 (5)3 总体设计 (6)3.1 本程序的功能结构图 (6)3.2字符输入及存储设计 (8)3.3加、减、乘、除法运算的判断设计 (8)3.4加、减、乘、除法运算的设计 (9)4实验器材 (10)5方法步骤 (11)6成效分析 (11)6.1运行界面分析 (11)6.2调试过程及分析 (13)7心得体会 (14)8参考文献 (14)9附录 (14)课程设计(大作业)报告一、题目分析本次设计的简单计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。

重点和难点主要包括以下几个方面:(1)利用BIOS调用中INT 16H调用中的子程序完成清屏、设置显示方式、设置窗口等操作。

(2)利用INT 21H DOS系统功能调用中的键盘输入接收十进制操作数和运算符由程序完成字符转换为二进制数,并存储起来。

(3)根据运算符完成运算,由程序在屏幕上显示运算结果。

1、十进制数转换为二进制数过程如下:(1)将BX清0.(2)从键盘接收一个按键的ASCII送AL中,并判断是否为0到9之间的字符,若不是转退出;否则将AL中内容减30H,转换为相应数字的二进制数,并扩展到AX中,然后将BX中内容乘以10后,再加上AX中的内容。

(3)转(2)继续执行因此程序退出后,BX中的内容即为所输入十进制数的二进制值。

例如:首先将BX清0后,先输入数字“5”,则(AL)=35H,属于0到9之间的数字,减30H后,(AL)=05H,扩展后,(AX)=0005H,BX乘以10后,加上AX中的内容,(BX)=0005H。

然后输入数字“8”,则(AL)=38H,属于0到9 之间的数字,减30H后,(AL)=38H,扩展后,(AX)=0008H,(BX)乘以10后,加上AX中的内容,(BX)=0037H,为十进制数“58”的二进制值。

微机原理与应用实验报告-汇编语言程序设计

微机原理与应用实验报告-汇编语言程序设计

实验报告册课程名称:微机原理指导老师:班级:姓名:学号:学期:20 19 —20 20 学年第学期实验目录实验一:汇编语言程序设计实验二:实验三:实验四:实验五:实验六:姓名:成绩:实验一汇编语言程序设计一、实验目的1、学习8088汇编语言程序的基本结构和程序设计的基本方法。

2、熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的全过程。

3、掌握DEBUG基本指令及其使用方法。

二、实验内容编写程序,将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。

三、实验步骤1、进入编程环境,编写、汇编、链接、运行汇编语言源程序。

2、利用DEBUG指令,对程序进行调试。

四、实验程序实验代码如下:;将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。

DATAS SEGMENTDATA DB80H,81H,82H,83H,84H,85H,86H,87H,88H,89H,8AH,8BH,8CH,8DH,8EH,8FH;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV ES,AXMOV SI,OFFSET DATAMOV DI,1000HMOV CX,16CLDREP MOVSB;此处输入代码段代码HLTMOV AH,4CHINT 21HCODES ENDSEND START五、实验结果将80H-8FH送入1000H-1016H内存段的结果:3.实验小结进一步巩固了数据的一般传送以及体会到了数据块传送的便利之处,进一熟悉了MASM软件的操作和DEBUG命令的使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西北师范大学计算机科学与工程学院微机原理与汇编语言课程设计报告设计题目:中断控制点阵显示与音乐模块姓名:学号:专业班级:系所中心:指导老师:起讫时间:设计地点:2016年8月20日摘要使用8086汇编语言,在唐都TD-PITE实验箱上进行硬件连线,在计算机上采用与该实验箱配套的软件进行输入,观察实验结果。

设计思路是利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。

此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,利用8254芯片开始响应预先编排好的音乐。

【关键词】级联中断;8259芯片;16*16点阵;8254芯片;SPK音乐模块;脉冲信号目录摘要 (2)第一章课程设计 (2)1.1 目的和任务 (2)1.2 设计环境、设备与器材 (2)第二章设计内容和方案 (3)2.1 设计内容 (3)2.2 设计方案 (3)第三章课程设计相关原理简述 (3)第四章设计实现 (4)4.1 系统设计框架结构 (4)4.2 系统硬件设计 (4)4.3 系统软件设计 (6)4.4 程序流程图 (6)4.5 核心数据结构 (8)4.6 关键代码片段分析 (10)第五章设计验证 (10)5.1 验证步骤及结果 (10)5.2 数据分析 (10)5.3 遇到的问题及解决 (11)5.4 需要讨论的其它问题 (11)5.5 结论 (11)第六章设计总结 (12)第七章本课程教学建议 (13)第八章参考文献 (13)第九章附录:源代码 (13)第一章课程设计1.1 目的和任务使用8259芯片进行中断程序设计,在第一个中断中响应字模显示模块,在第二个中断中响应音乐发声模块。

1.2 设计环境、设备与器材列出本次课程设计所用到的设备与器材,包括数量。

⏹设备:微机、唐都TD-PITE实验箱等。

⏹器材:i386芯片(内部已集成2片8259芯片)、16*16点阵显示模块、SPK 音乐发声模块、8254芯片等。

⏹设计环境:计算机可正确运行TD-PITE实验箱配套的软件,计算机与实验箱接口通讯正常。

第二章设计内容和方案2.1 设计内容采用8086芯片控制8259中断,在一号中断响应图像显示,在二号中断中响应音乐发声。

2.2 设计方案利用在实验箱上i386内集成的两片8259芯片分别进行中断,通过实验箱上的两个脉冲开关发送信号到总线上开放的两个中断口,送入CPU内部的8259中。

此时按下脉冲开关kk1+,第一个中断发生,在16*16点阵上循环滚动显示“西北师大汇编设计李泓毅”,若按下kk2+则第二个中断发生,执行音乐模块子程序,开始响应预先编排好的音乐。

因为采用了级联的中断,所以在一号中断上采用MIR7即主片8259芯片7号口,二号中断上采用SIR1即从片8259芯片1号口响应中断。

第三章课程设计相关原理简述按照本设计需求可将本设计大致划分为三大模块分别设计。

第一模块即使用i386内集成的两片8259芯片进行级联的中断设计,使用了实验箱上开放的MIR7与SIR1两个接口。

并且利用试验箱上的两个脉冲信号开关进行中断发生操作。

第二模块则是在MIR7中断响应时完成图像显示功能。

使用了16*16点阵来完成此操作,此点阵由4个8*8点阵构成,显示时采用自下而上滚动显示的方法,逐行刷新。

第三模块是在SIR1中断响应时完成音乐发声功能。

使用8254芯片方式3方波发生器对应扬声器达到响应音乐的目的。

第四章设计实现4.1 系统设计框架结构以8086CPU为主架构,其中添加两个由8259芯片控制的中断,第一个中断响应时实现图像显示功能,第二个中断响应时实现音乐发声功能。

4.2 系统硬件设计中断模块硬件设计:图像显示模块硬件设计:音乐发声模块硬件设计:总体硬件连线:4.3 系统软件设计4.4 程序流程图整体程序流程图参照上方软件总体设计16*16液晶点阵显示程序流程图:音乐发声模块流程图:4.5 核心数据结构ROW1 EQU 0600H ;端口定义ROW2 EQU 0640HCOL1 EQU 0680HCOL2 EQU 06C0HIOY3 EQU 06C0HMY8254_COUNT0 EQU IOY3+00H ;8254计数器0端口地址MY8254_COUNT1 EQU IOY3+02H ;8254计数器1端口地址MY8254_COUNT2 EQU IOY3+04H ;8254计数器2端口地址MY8254_MODE EQU IOY3+06H ;8254控制寄存器端口地址;初始化主片8259MOV AL, 11HOUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4;初始化从片8259MOV AL, 11HOUT 0A0H, AL ;ICW1MOV AL, 30HOUT 0A1H, AL ;ICW2MOV AL, 02HOUT 0A1H, AL ;ICW3MOV AL, 01HOUT 0A1H, AL ;ICW4MOV AL, 0FDHOUT 0A1H,AL ;OCW1 = 1111 11014.6 关键代码片段分析MOV AL,20HOUT 20H,AL中断结束的标志,通过在具体操作中放置位置的不同达到不同的效果第五章设计验证5.1 验证步骤及结果无论按下哪个中断都会响应具体程序,不会表现出MIR7优先级大于SIR1优先级。

在中断程序进行时,如果再次按下中断则该程序会重新进行。

5.2 数据分析优先级考量如下:因为软件流程设计将两片8259初始化都放在了循环等待程序中,所以每次执行中断后都会进行一次初始化,这样的话实际上是每次对ICW4中的EOI位置进行一次置位,也就是说8259A只要向CPU发送了中断号就会将ISR中的相应位清零,这样一来实际表现出没有优先级即可以让两个中断相互抢优先级。

5.3 遇到的问题及解决在16*16LED液晶点阵显示中,对于字模的取法是A51,横向取模字节倒序的方式,因为对其刷新方式及ROW1、ROW2、COW1、COW2表示的不理解,出现了反向显示,中心对称相反等等问题,现已解决。

在中断控制中,因为对于中断的理解有误,在中断程序中使用了死循环,即LED点阵显示循环和音乐循环,导致中断不能正常进行,这是对于中断结构的不理解,在中断程序中不能有死循环,现已解决。

5.4 需要讨论的其它问题重点还是在于对于硬件设备的理解不够,通过实验时遇到具体问题去查资料到完成报告时,通过对问题的分析再一次详尽的阅读资料才对8259芯片的运作方式有了进一步的了解。

5.5 结论因为软件流程设计将两片8259初始化都放在了循环等待程序中,所以每次执行中断后都会进行一次初始化,这样的话实际上是每次对ICW4中的EOI位置进行一次置位,也就是说8259A只要向CPU发送了中断号就会将ISR中的相应位清零,这样一来实际表现出没有优先级即可以让两个中断相互抢优先级。

第六章设计总结从本次设计中我体会到了计算机科学的精确性,尤其是由于我使用了汇编语言,这就使得必须对于硬件本身的运作方式有一定的了解。

从刚开始实验时对于8259芯片模糊的概念,到遇到问题时查询资料,再到设计完成时可以说对于8259的架构都不能说完全了解。

最后到现在完成设计报告时又一次的阅读8259的运作方式才算是对这一个芯片有浅薄的了解。

可以肯定的是汇编语言绝对是相对于其他,例如c语言之类语言而言,最适宜了解计算机的语言。

因为想要达到最终设计目标你就必须去了解硬件的运作方式,一步一步都必须有所了解。

否则即使作出了相应结果也无法从科学的角度进行精准的解释。

但是也必须承认硬件架构是最麻烦最精准最不好学,当然也是最不可思议的设计。

通过学习几十年前的硬件工程师设计出的芯片可以说窥一斑而知全豹,可以说无比佩服那些工程师精妙而万无一失的设计。

尤其是基于现在去看几十年前的技术,会有无数资料还有网上很多有识之士的讲解,都可以说很难学习,可以想见真正前沿的没有多少资料的研究和学习是无比困难的。

总而言之,要说体会的话就是计算机是一个精妙的设计,想要真的搞懂就得踏踏实实一点一点学习,但是这个东西经过这么多年的发展可以说太繁琐太复杂,又容不得一点模糊,实在是很难。

第七章本课程教学建议以后的话希望督促大家抓紧时间吧,前几周大家都会因为觉得还有时间而浪费大量宝贵的时间,到最后才觉得时间紧张,当然这是人性了。

不能说真的改变,可以从要求前多少周必须拿出例如整体设计中一小部分的成果或者模块设计之类来让前几周的课程不至于过得浑浑噩噩。

第八章参考文献1.唐都仪器,唐都仪器微机原理接口实验指导2.何小海.微机原理与接口技术:科学出版社,2006:302-3153.8259A中断控制器,百度百科,2016.11.6http://baike.baidu../link?url=bGP-QGFNyp3ak2rDcy5vqdPXQ0QojtBGtH2HVsqlNsWDSBH _78COklwsAgDV4sOWUUECj_sQMgBx7GOmigJ9-zd-ktsKVdpgBLV6QCrhcQHNvKdzWYd bAhgUACuelLw1第九章附录:源代码;================================================ =========; 文件名: A82593.ASM; 功能描述: 8259级联中断实验,中断源为主片8259的IR7,; 从片8259的IR1。

从片8259通过主片8259的IR2; 进行级联。

; 主片每产生一次中断进行16*16LED液晶点阵显示,从片; 每产生一次中断输出进行音乐发声模块响应。

;================================================ =========ROW1 EQU 0600H ;端口定义ROW2 EQU 0640HCOL1 E QU 0680HCOL2 E QU 06C0HIOY3 EQU 06C0HMY8254_COUNT0 EQU IOY3+00H ;8254计数器0端口地址MY8254_COUNT1 EQU IOY3+02H ;8254计数器1端口地址MY8254_COUNT2 EQU IOY3+04H ;8254计数器2端口地址MY8254_MODE EQU IOY3+06H ;8254控制寄存器端口地址SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDS;定义为数据段INCLUDE DATA.ASM ;数据字段为汉字点阵库和音乐文件, 在DATA.ASM;文件中CODE SEGMENTASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7 ;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV [SI], AX ;填IRQ7的偏移矢量MOV AX, CS ;段地址MOV SI, 003EHMOV [SI], AX ;填IRQ7的段地址矢量MOV AX, OFFSET SIR1MOV SI, 00C4HMOV [SI], AXMOV AX, CSMOV SI, 00C6HMOV [SI], AXCLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL ;ICW1 MOV AL, 08HOUT 21H, AL ;ICW2 MOV AL, 04HOUT 21H, AL ;ICW3 MOV AL, 01HOUT 21H, AL ;ICW4;初始化从片8259MOV AL, 11HOUT 0A0H, AL ;ICW1MOV AL, 30HOUT 0A1H, AL ;ICW2MOV AL, 02HOUT 0A1H, AL ;ICW3MOV AL, 01HOUT 0A1H, AL ;ICW4MOV AL, 0FDHOUT 0A1H,AL ;OCW1 = 1111 1101MOV AL, 6BHOUT 21H, AL ;主8259 OCW1STIAA1: NOPJMP AA1JMP AA1;******************************MIR7:STIPUSH DSCALL DELAYMOV AX, DATAMOV DS, AXMOV DX, ROW1MOV AL, 00HOUT DX, ALMOV DX, ROW2OUT DX, ALMOV AL, 0ffHMOV DX, COL1OUT DX, ALMOV DX, COL2OUT DX, ALBG0: MOV AX, 160MOV SI, OFFSET HZDOThtBG1: CALL DISPADD SI, 2DEC AXMOV AL, 20HOUT 20H, ALJZ BG0JMP BG1MOV AL, 20HOUT 20H, AL ;中断结束命令STIPOP DSIRET;*******************************SIR1: STIPUSH DSCALL DELAYMOV AX,DATAMOV DS,AXMOV DX,MY8254_MODE ;初始化8254工作方式MOV AL,36H ;定时器0、方式3OUT DX,ALBEGIN: MOV SI,OFFSET FREQ_LIST ;装入频率表起始地址MOV DI,OFFSET TIME_LIST ;装入时间表起始地址PLAY:MOV DX,0FH ;输入时钟为1MHz,1M = 0F4240HMOV AX,4240HDIV WORD PTR [SI] ;取出频率值计算计数初值,0F4240H / 输出频率MOV DX,MY8254_COUNT0OUT DX,AL ;装入计数初值MOV AL,AHOUT DX,ALMOV DL,[DI] ;取出演奏相对时间,调用延时子程序CALL DALLYADD SI,2INC DI;CMP WORD PTR [SI],0 ;判断是否到曲末?MOV AL, 20HOUT 0A0H, ALOUT 20H, ALJZ BEGINJMP PLAYSTIPOP DSIRETDALLY PROC ;延时子程序D0: MOV CX,0010HD1: MOV AX,0FF0HD2: DEC AXJNZ D2LOOP D1DEC DLJNZ D0RETDALLY ENDPDELAY: PUSH CXMOV CX, 0F000HAA0: PUSH AXPOP AXLOOP AA0POP CXRET;======显示汉字子程序======;入口参数: SI = 存放汉字起始地址DISP: MOV CX, 000FHPUSH AXML0: PUSH CXMOV BL, 01HMOV CX, 0008HML1: MOV DX, ROW1 ;控制0--7行MOV AL, 00HOUT DX, ALMOV AL, [SI]not alMOV DX, COL1 ;0--7列OUT DX, ALINC SIMOV AL, [SI]not alMOV DX, COL2 ;8--15列OUT DX, ALINC SIMOV DX, ROW1 ;控制0--7行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAY16LOOP ML1MOV DX, ROW1MOV AL, 00HOUT DX, ALMOV CX, 0008HML2: MOV DX, ROW2 ;控制8--15行MOV AL, 00HOUT DX, ALMOV AL, [SI]not alMOV DX, COL1 ;0--7列OUT DX, ALINC SIMOV AL, [SI]not alMOV DX, COL2 ;8--15列OUT DX, ALINC SIMOV DX, ROW2 ;控制8--15行MOV AL, BLOUT DX, ALROL BL, 1CALL DELAY16LOOP ML2MOV DX, ROW2MOV AL, 00HOUT DX, ALSUB SI, 32POP CXLOOP ML0POP AXRETDELAY16: PUSH CX ;延时子程序MOV CX, 0100HDL1: PUSH AXPOP AXLOOP DL1POP CXRETCODE ENDSEND START以下是DATA.ASM 即数据段;本文件为16×16点阵中文字库文件,字的横向8点构成一字节, ;左边点在字节的低位,字符点阵四角按左上角→右上角→左下;角→右下角取字DATA SEGMENT;西HZDOTht DB 000H,000H,0FFH,07FH,0FFH,07FH,060H,003H DB 060H,003H,0FEH,03FH,0FEH,03FH,066H,033HDB 066H,033H,036H,03FH,01EH,03EH,006H,030HDB 0FEH,03FH,0FEH,03FH,006H,030H,000H,000H;北DB 20H,02H,20H,02H,20H,02H,20H,22H DB 20H,72H,3EH,1AH,20H,06H,20H,02H DB 20H,02H,20H,02H,30H,02H,2CH,42H DB 27H,42H,22H,42H,20H,7CH,00H,00H;师DB 10H,00H,0D0H,7FH,12H,04H,12H,04H DB 0D2H,7FH,52H,44H,52H,44H,52H,44H DB 52H,44H,4AH,44H,4AH,54H,48H,24H DB 04H,04H,02H,04H,01H,04H,00H,04H;大DB 80H,00H,80H,00H,80H,00H,80H,00H DB 80H,00H,0FFH,7FH,80H,00H,40H,01H DB 40H,01H,40H,02H,20H,02H,20H,04H DB 10H,08H,08H,18H,04H,70H,02H,20H;汇DB 04H,00H,0C8H,3FH,48H,00H,40H,00H DB 42H,00H,54H,00H,54H,00H,50H,00H DB 48H,00H,48H,00H,4EH,00H,48H,00H DB 48H,00H,48H,00H,0C8H,7FH,08H,00H;编DB 08H,01H,18H,02H,0C4H,3FH,44H,20HDB 52H,20H,0DFH,3FH,48H,00H,0C4H,3FHDB 0DEH,2AH,0C0H,2AH,0A0H,3FH,0ACH,2AH DB 0A3H,2AH,90H,2AH,88H,30H,00H,00H;设DB 02H,00H,84H,0FH,8CH,08H,84H,08HDB 80H,08H,80H,08H,47H,70H,0A4H,1FHDB 84H,10H,84H,10H,04H,09H,04H,09HDB 14H,06H,0CH,09H,0C4H,70H,30H,20H;计DB 02H,04H,04H,04H,0CH,04H,04H,04HDB 00H,04H,0CFH,7FH,08H,04H,08H,04HDB 08H,04H,08H,04H,08H,04H,48H,04HDB 28H,04H,18H,04H,08H,04H,00H,04H;李DB 80H,00H,80H,00H,0FEH,3FH,0C0H,01HDB 0A0H,02H,90H,0CH,8CH,70H,0FBH,27HDB 00H,01H,80H,00H,0FEH,7FH,80H,00HDB 80H,00H,80H,00H,0A0H,00H,40H,00H;泓DB 02H,08H,0E4H,09H,04H,09H,10H,09HDB 0F1H,09H,2AH,08H,2AH,08H,28H,08HDB 0E4H,05H,04H,05H,07H,05H,04H,25HDB 04H,23H,04H,7FH,44H,41H,84H,00H;毅DB 08H,00H,10H,1EH,0FEH,12H,44H,12HDB 28H,12H,7FH,61H,08H,00H,4CH,3EHDB 3BH,11H,74H,12H,0B3H,0AH,2CH,04HDB 23H,0AH,20H,11H,0D4H,70H,08H,20HFREQ_LIST DW 371,495,495,495,624,556,495,556,624 ;频率表DW 495,495,624,742,833,833,833,742,624DW 624,495,556,495,556,624,495,416,416,371DW 495,833,742,624,624,495,556,495,556,833DW 742,624,624,742,833,990,742,624,624,495DW 556,495,556,624,495,416,416,371,495,0TIME_LIST DB 4, 6, 2, 4, 4, 6, 2, 4, 4 ;时间表DB 6, 2, 4, 4, 12, 1, 3, 6, 2DB 4, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 12, 4, 6, 2, 4, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 12, 4, 6, 2, 4, 4DB 6, 2, 4, 4, 6, 2, 4, 4, 12 DATA ENDS。

相关文档
最新文档