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

西北师范大学计算机科学与工程学院微机原理与汇编语言课程设计报告设计题目:中断控制点阵显示与音乐模块姓名:学号:专业班级:系所中心:指导老师:起讫时间:设计地点: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(具体题目要求)将键盘输入的小写字母转换为大写字母的设计为了解小写字母和大写字母在计算机内的表示方法,并学习如何进行转换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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。