微机原理加法器课程设计1

合集下载

微机原理课程设计

微机原理课程设计
微机原理课程设计
前言
加热器数字控制系统的设计与功能的实现要求学生在学习完微机原理及应用这门课的基础上,在对芯片类知识以及汇编语言有一定基础的前提下进行的一个非常体现学生综合能力的一个设计。要想很好的完成这个题目,必须对芯片的功能有很详细的了解,同时也要求学生的汇编语言基础要扎实。计算机技术的飞速发展,使的计算机知识和应用技能已成为人类知识经济的重要组成部分。《微型计算机原理》正是掌握计算机结构和工作原理的入门课程,它偏重于实际应用的课程,要求学生在学好理论知识的基础上,培养定的实践动手操作能力,学生将所学的理论知识和实践有机结合,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。微机原理课程设计是对《微型计算机原理》课程理论教学和实验教学的综合和总结。
[2]、徐建民·《汇编语言程序设计》[M]·北京:电子工业出版社
[3]、洪永强.微机原理与接口技术.北京:科学出版社. 2004年
课程设计图纸
程序清单
DATA SEGMENT
INTR_IVADDEQU01C8H;INTR对应的中断矢量地址(对应着中断程序入口地址)
INTR_OCW1EQU0A1H;INTR对应PC机内部8259的OCW1地址
MOV AX,SEG MYISR
MOV ES:[DI],AX;ห้องสมุดไป่ตู้置当前中断处理程序入口段地址
MOV DX,INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位
INAL,DX
MOV IM_BAK,AL;保存INTR原中断屏蔽字
AND AL,INTR_IM
OUTDX,AL
MOV DX,MY8259_ICW1 ;初始化实验系统中8259的ICW1
MOV DI,INTR_IVADD

微机原理 实验一 加法程序

微机原理  实验一 加法程序

实验一加法程序一、实验目的:学习数据传送和算术运算指令的用法。

二、实验内容:将两个多位十进制28056,47193相加,并显示加数,被加数,和。

要求两个加数均以ASCII码形式各自顺序存放在DATA1和DATA2内存单元中,结果送回DATA1处(低位在前,高位在后)。

三,程序流程图:程序流程如图2.1所示。

图2.1十进制数相加程序流程图SHOW MACRO BMOV DL,BMOV AH,02HINT 21HENDMDATA SEGMENTDATA1 DB 33H,39H,31H,37H,34HDATA2 DB 36H,35H,30H,38H,32HDATA3 DB '____ ',0DH,0AH,'$'DATA ENDSSTACK SEGMENT STACKSTA DB 20 DUP (?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK, ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA2MOV BX,05SHOW 20HCALL DISPLSHOW 0DHSHOW 0AHMOV SI,OFFSET DATA1MOV BX,05SHOW 2BhCALL DISPLSHOW 0DHSHOW 0AHS1: SHOW 2DHLOOP S1SHOW 0DH SHOW 0AHMOV SI,OFFSET DATA1MOV DI,OFFSET DATA2CALL ADDAMOV SI,OFFSET DATA1MOV BX,05SHOW 20HCALL DISPLMOV AX,4C00HINT 21HDISPL PROC NEARDS1: SHOW [SI+BX-1]DEC BXJNZ DS1RETDISPL ENDPADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05AD1: SUB BYTE PTR [SI+BX-1],30H SUB BYTE PTR [DI+BX-1],30H DEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05CLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALINC SIINC DIMOV SI,DXMOV DI,BPMOV BX,05AD3: ADD BYTE PTR [SI+BX-1],30HADD BYTE PTR [DI+BX-1],30HDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START编写完源程序后,保存为文件名为“JIAFA.ASM”的文件。

加法器课程设计电路

加法器课程设计电路

加法器课程设计电路一、课程目标知识目标:1. 学生能理解加法器的基本概念,掌握半加器、全加器的电路组成和工作原理。

2. 学生能运用所学知识,设计简单的加法器电路,并描述其功能。

3. 学生了解数字电路的基本分类,认识到加法器在数字电路中的应用。

技能目标:1. 学生能够运用所学知识,分析并解决实际加法器电路问题。

2. 学生通过小组合作,动手搭建加法器电路,提高实践操作能力。

3. 学生能够运用计算机辅助设计软件,绘制加法器电路图。

情感态度价值观目标:1. 学生对数字电路产生兴趣,培养主动探究科学知识的热情。

2. 学生在小组合作中,学会尊重他人意见,培养团队协作精神。

3. 学生通过学习加法器电路,认识到科技发展对生活的影响,增强社会责任感。

课程性质:本课程为电子技术基础课程,以理论教学和实践操作相结合的方式进行。

学生特点:学生为初中生,具有一定的物理知识和动手能力,对电子技术有一定的好奇心。

教学要求:结合学生特点,注重理论与实践相结合,提高学生的实践操作能力和创新能力。

在教学过程中,注重启发式教学,引导学生主动探究,培养科学思维。

二、教学内容1. 数字电路基础知识:介绍数字电路的基本概念、分类及特点,使学生了解加法器在数字电路中的应用。

- 教材章节:第一章 数字电路概述2. 加法器原理:讲解半加器、全加器的工作原理,引导学生理解加法器电路的组成及功能。

- 教材章节:第三章 组合逻辑电路;第四节 加法器3. 加法器电路设计:教授如何设计简单的加法器电路,让学生掌握电路设计的基本方法。

- 教材章节:第三章 组合逻辑电路;第五节 电路设计实例4. 实践操作:组织学生进行小组合作,动手搭建加法器电路,提高学生的实践操作能力。

- 教材章节:第五章 实践操作;第一节 电路搭建与测试5. 计算机辅助设计:介绍计算机辅助设计软件,教授如何绘制加法器电路图。

- 教材章节:第六章 计算机辅助设计;第一节 电路图绘制教学进度安排:第一课时:数字电路基础知识,介绍加法器在数字电路中的应用。

微机原理课程设计简易计算器

微机原理课程设计简易计算器

-O一一〜二O—二学年第一学期信息科学与工程学院自动化系课程设计计划书二o—年十二月六日一、课题名称简易计算器设计二、课题目的利用8088和8255设计一个简易计算器,并将其结果显示在LED数码管上。

熟悉系统设计的基本步骤,掌握8088与8255的接口设计,掌握通过8255设计键盘扫描技术,掌握通过8255显示七段共阴极数码管设计。

加强对8088数据总线,地址总线及接口寻址的理解,加深对8255的端口控制的理解。

三、需求分析(1)能够实现99以内的加减乘法运算,并显示在2位LED上。

(2)对于减法运算产生的负数,可在LED上显示号,若负量超过9,则显示“E0S四、方案选择方案一:该方案将LED显示电路直接接在8088的DB上,而键盘则采用8255进行扫描。

方案二:该方案则是将LED显示电路和键盘扫描电路分别接在两个不同的8255上,扫描和显示时,选中不同的8255。

方案三:该方案则只用一片8255驱动LED显示和键盘扫描电路。

方案评估:方案一:LED显示驱动电路实现起来较简单,但是很浪费系统总线资源,舍弃!方案二:释放了系统数据总线,但是方案缺乏经济性,因为采用了两片8255,与建设资源节约型社会初衷冲突!舍弃!方案三:此种方案较为经济,方便,具有模块化的特点(因为将计算和显示电路全部集成在了8255上,应用时,直接挂接8255即可实现要求!)综上所述:采用方案三!五、程序流程图程序总流程图:判断输入流程图: 断电开始I六. 系统原理图键盘映射图:键盘编码图:系统原理图:注:1、复位电路单独画在旁边,其参数设置符合6MHZo2、74HC04反相器由于位置不够,本人自己画了一个小型的74HC04。

3、IOW, IOR信号线由于采用了最大系统组态,故由8288的IORC 和AIOWC 代替。

4.8088的CLK由8284A提供,其电路连接方式参照Datasheet5、最大系统组态连接方式参照课本。

6、LED与键盘扫描电路的上拉电阻阻值统一采用,保证数码管有足够亮度。

设计加法器教学设计

设计加法器教学设计

设计加法器教学设计一、引言在数学教育中,加法是最基础的运算之一,而加法器是实现加法运算的关键工具。

设计合理的加法器教学设计,能够帮助学生理解加法的概念和运算规则,培养他们的逻辑思维和计算能力。

本文将针对小学低年级的学生,设计一个简单而有效的加法器教学设计。

二、教学目标1. 理解加法的概念和加法的基本性质;2. 能够使用加法器完成简单的加法计算;3. 培养学生的逻辑思维和计算能力。

三、教学准备1. 加法器模型(可以是物理模型或者在电脑上展示的虚拟模型);2. 数字卡片或者纸牌,上面写着加法算式;3. 白板、彩色粉笔。

四、教学过程1. 导入使用一个生活实例来引入加法的概念,例如:“小明手里有3颗苹果,小红给了他2颗苹果,现在他一共有多少颗苹果?”。

让学生思考并回答这个问题,引导他们发现和认识加法的运算过程。

2. 理解加法的性质通过探究加数交换律和加法结合律,让学生理解加法的基本性质。

可以使用加法器模型来进行示范,让学生自己操作,亲自验证。

3. 计算实例给学生发放数字卡片或纸牌,上面写着加法算式,让学生自己加法器上进行操作,计算出结果。

每道题目可以先让学生想一想,然后手动操作加法器得出答案。

教师可以在白板上记录学生的解题过程和答案,以便后面的总结和讨论。

4. 引导讨论在计算实例中,故意设置一些特殊的情况,例如相同的加数、其中一个加数为0等,引导学生思考这些特殊情况下的结果。

通过对这些情况的讨论,让学生更加深入地理解加法的运算规则。

5. 拓展应用引导学生将加法运算应用到实际生活问题中。

例如:“今天小明放了6个气球,小红放了3个气球,他们一共放了多少个气球?”。

通过这样的问题,让学生将加法运算与实际问题相联系,提高他们的实际应用能力。

6. 总结对于学生在计算实例中出现的错误或疑惑进行总结,澄清概念,加强记忆。

让学生回答一些关于加法的问题,巩固所学内容。

7. 实际操作让学生在加法器模型上进行实际操作,计算一些实际的加法题目。

微机原理 加法计算器设计及显示

微机原理 加法计算器设计及显示

实验报告课程名称:微机原理实验指导老师: 成绩:实验名称: 加法计算器及显示实验类型: 同组学生姓名: 一、实验目的与要求(必填)ﻩﻩ二、实验内容与原理(必填)三、主要仪器设备(必填) ﻩﻩ四、操作方法与实验步骤五、实验数据记录与处理ﻩﻩ六、实验结果与分析(必填)七、讨论、心得一、实验目的与要求1.掌握基于状态机的编程方法2.实现数字运算、键盘输入、LED显示的多任务协调编程二、实验内容与原理1.编写程序,输入两个两位十进制数并显示,按确认键后显示运算结果2.基本功能:能够输入输入数字(非数字无效)并显示结果3.附加功能:光标指示功能(通过LED闪烁实现)以及退格功能三、程序代码ORG 0000HSTART: MOV78H,#0 ;初始化:78H放0的段码,其余放熄灭码MOV 79H,#10MOV7AH,#10MOV7BH,#10MOV 7CH,#10MOVR5,#0 ;R5就是按键次数,初始置0MOV R6,#0;将0置入R6中MOVR7,#0;将0置入R7中MOV30H,#0;30H就是功能键存放单元,置为0MOV 31H,#0 ;31H单元初始置为0MOV 40H,#0;40H单元初始置为0MOV41H,#0 ;41H单元初始置为0LOOP: LCALL DIR;调用显示子程序LCALLKEY ;调用键盘检测程序INC R5 ;按键次数加1S1: CJNE A,#10,S2;不就是"+"键,跳到S2LJMP FUN ;就是"+"键,跳到FUNS2: CJNE A,#11,S3;不就是"-"键,跳到S3LJMPFUN ;就是"-"键,跳到FUNS3: CJNE A,#12,S4 ;不就是"*"键,跳到S4LJMPFUN; 就是"*"键,跳到FUNS4:CJNEA,#13,S5 ; 不就是"/"键,跳到S5LJMPFUN ; 就是"/"键,跳到FUNS5: CJNEA,#14,S6 ; 不就是"="键,跳到S6LJMP FUN ;就是"="键,跳到FUNS6:CJNE A,#15,N1 ; 不就是"CL"键,跳到N1LJMP START; 就是"CL"键,跳到STARTN1: CJNE R5,#1,N2 ;若按键次数不等于1,跳到N2LJMP D11 ;跳到D11N2:CJNE R5,#2,START;若按键次数不等于2,跳到STARTLJMPT1 ;跳到T1D11: MOV R4,A;将A写入R4MOV 78H,A;输入值送显示个位缓存MOV 79H,#10;将10送到79H单元LJMP LOOP ;跳转到循环T1:MOV 53H,A;将A写入53HMOV B,#10;将10置入BMOVA,R4;将上一次输入的R4写进AMUL AB;A乘以10ADD A,53H ;53H里面的值与A相加MOV R4,A ;将新的值置入到R4MOV 79H,78H ;个位到十位MOV78H,53H;新数为个位LJMPLOOP;跳转到循环FUN:MOV 78H,#10 ;将10置入到78HMOV79H,#10;将10置入到79HMOV R0,30H ;与上次功能键交换MOV 30H,AMOV A,R0CJNE A,#10,FUN1;判断功能键LJMPADDY;"+"FUN1: CJNE A,#11,FUN2LJMP SUBT ;"-"FUN2: CJNE A,#12,FUN3LJMP MULT ;"*"FUN3: CJNE A,#13,FUN4LJMP DIVI;"/"FUN4: CJNE A,#14,FUN5 ;首次按功能键,即A=#0LJMPEQUA ;"="FUN5:MOV 40H,R4;保存第一个数MOVR5,#0;按键次数清零LJMPBCD ;将其拆为BCD码,以便后来将其显示OF: LJMP START ;跳转回开始ADDY: MOVA,40H ;加法,第一个数送累加器ADDA,R4 ;第一个数加第二个数MOV 40H,A ;存本次结果MOV R5,#0 ;按键次数清零LJMP BCD ;跳转到BCD程序SUBT: MOVA,40H;减法,第一个数送累加器CLRC;借位清零SUBB A,R4;带借位的减法,第一个数减第二个数JB CY,BCD2 ;借位为1,跳转到BCD2MOV 40H,A;将减的结果送40HMOVR5,#0 ;按键次数清零LJMPBCD ;跳转到BCDMULT: MOV A,40H ;乘法,第一个数送累加器MOV B,A;将A送BMOV A,R4;将第二个数送累加器MUL AB;第一个数乘以第二个数MOV R5,#0;按键次数清零JB OV,BCD1 ;若乘法结果溢出,则跳转到BCD1MOV40H,A ;将A送40HLJMP BCD;跳转到BCDDIVI: MOV A,R4 ;除法,第二个数送累加器MOV B,A;将第二个数送BMOVA,40H ;将第一个数送ADIVAB ;A除以BJB OV,OF ;当B为0时跳到OFMOV40H,A;将A送40HMOV R5,#0 ;按键次数清零LJMP BCD ;跳转到BCDEQUA: MOV R5,#0;按键次数清零MOV 31H,A ;将A送31HLJMP BCD ;跳转到BCD;----乘法溢出时的处理程序BCD1: ;乘法溢出时的处理程序MOV 78H, B;将高8位送78HMOV 79H, A ;将低8位送79HLCALLHEX2BCD;调用子程序把78H、79H中的数字,转换成BCD码,送到7AH 7BH 7CHMOVA, 7CH;下面,把万千百十个位,分别存入7CH 7BH7AH79H78HMOV B, #16DIV AB ;除以16,目的就是分离出高、低四位MOV 79H, A ;存放十位MOV 78H, B ;存放个位MOV A, 7AHMOV7CH,A;存放万位MOV A, 7BHMOV B, #16DIV ABMOV7BH, AMOV7AH, BLJMP LOOPHEX2BCD: ;子程序:把78H、79H中的数字,转换成BCD码,送到7AH7BH 7CH CLR AMOV 7AH, A ;先清零MOV7BH, AMOV7CH, AMOV R6, #16 ;共转换十六位数LOOPP:CLRCMOV A, 79H;从待转换数的高端移出一位到CyRLC AMOV79H, AMOVA, 78HRLC AMOV78H, AMOV A,7CH ;送到BCD码的低端ADDC A, 7CH ;带进位加。

(完整word版)微机原理加法器实训报告

(完整word版)微机原理加法器实训报告

沈阳工程学院课程设计课程设计题目:加法器设计系别信息工程系班级系统本101学生姓名闫浩学号2010414113指导教师衣云龙、王德君职称讲师、工程师起止日期:2012年5月21日起-—至2012年5月26日止沈阳工程学院课程设计任务书课程设计题目: 加法器设计系别信息工程系班级系统本101学生姓名闫浩学号2010414113指导教师衣云龙、王德君职称讲师、工程师课程设计进行地点:微机原理实验室任务下达时间:2012年5月18日起止日期: 2012年5月21日起—-至2012年5月26日止教研室主任王健2012年5月18日批准一、课程设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。

通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。

为以后学生结合专业从事微机应用设计奠定基础。

二、课程设计的原始资料及依据查阅可编程并行芯片8255或其他相关资料.用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。

三、课程设计的主要内容及要求内容:利用微机原理实验箱,采两组发光二极管来模拟A,B两路交叉路口的信号灯控制.要求:按实际交通灯控制规程控制.四、课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、程序代码及功能说明(程序及必要注释等)、遇到的问题及解决方法、设计总结、设计小组评语、参考文献等.一般不应少于3000字。

2.在适当位置配合相应的设计原理图、程序流程图、硬件电路接线图等图表进行说明。

应做到文理通顺,内容正确完整,书写工整,装订整齐.3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。

设计小组评语处注明设计组组长、设计组成员,并由设计组组长给出评语.4.课程设计说明书手写或打印均可。

计算机组成原理八位原码加减法器电路课程设计

计算机组成原理八位原码加减法器电路课程设计

计算机组成原理八位原码加减法器电路课程设计是一个重要的课题,它涉及到计算机内部数字运算的实现方式。

在加减法器电路的设计中,我们需要考虑到输入数据的编码方式以及运算的性质。

在这个设计中,我们将使用八位原码进行加减法运算。

首先,我们需要明确输入的数据格式。

原码表示法是一种最直观的数值表示方法,它直接反映了数值的正负和绝对大小。

对于八位二进制原码,它的取值范围是-256到255。

在这个范围内,数值的大小和其对应的二进制表示之间的关系是简单的线性关系。

接下来,我们来看一下加减法器的电路设计。

由于我们需要进行的是加法和减法运算,我们需要使用两个不同的电路模块:加法器和减法器。

对于加法器,我们可以使用异或门和与门组合的方式来实现。

八位二进制数的异或运算具有"无进位"的性质,因此在需要加法运算时,我们可以通过异或门来实现逐位相加。

由于输入的数据是以原码形式给出的,因此在输出端需要进行一次模2取反操作,将加法结果转化为实际的数值大小。

这个过程可以用一个简单的逻辑表达式描述如下:C[7:0] = A[7:0] XOR B[7:0]D[7:0] = 255 - C[7:0]其中,C[7:0]是异或运算的结果,D[7:0]是实际数值大小。

对于减法器,我们同样可以使用异或门和与门来实现。

由于减法运算涉及到负数的情况,我们需要引入进位信号来处理负数减法的溢出问题。

具体的实现方式可以参考加法器的设计,只是在输出端需要进行一次模2加操作,将减法结果转化为实际的数值大小。

在进行电路设计时,我们还需要考虑到一些细节问题,比如输入输出端的延迟问题、电路的稳定性和抗干扰能力等。

这些因素都可能影响到电路的性能和精度。

因此,在进行电路设计时,我们需要充分考虑这些因素,并通过实验和测试来验证我们的设计是否满足要求。

总的来说,八位原码加减法器电路的设计是一个复杂而又重要的任务。

通过这个设计,我们可以更好地理解计算机内部数字运算的实现方式,也可以为更高级的计算机组成原理课程设计打下基础。

微机原理与接口技术课程设计报告加减计数器完整版

微机原理与接口技术课程设计报告加减计数器完整版

目录1课程设计题目 (1)2. 课程设计任务及要求 (1)3. 总体方案与设计说明 (1)4. 硬件电路设计及描述 (3)5. 软件设计流程及描述 (6)6. 源程序代码 (8)7. 系统调试 (12)&结论与说明 (13)9 .课程设计体会 (13)10.参考文献 (13)一.课程设计题目加减计数器设计二.课程设计任务及要求通过键盘输入0到9之间的数字,可以在LED灯上显示出来;通过键盘进行简单的9之内的加减运算;运算过程和结果在LED灯上显示出来。

三.总体方案与设计说明3.1通过小键盘做加减运算。

七段数码管显示器作输入数据和结果数据的显示。

3.2数字用小键盘0~9, R, P, M G作功能键R 开始运算(包括撤销运算),显示‘ 0'P+m-g=E 退出返回dos3.3运算顺序:a. 输入一原始数据显示器跟随显示b. 按+或-显示器内容不变c. 再输入一数据,显示器跟随显示。

d. 按=显示器显示结果数据,当超出能显示的最大值,显示 F (溢出)e. 按R重新开始运算f. 按E,结束退出LED 显示器上。

设计思路:首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序实现2位十 进制数以内的及减法运算。

运算完成后将运算的结果储存并显示到 四.硬件电路设计及描述(含所需器件、硬件原理图)4.1 硬件电路键盘输入及LED 数码管通过8255A 接口与系统总线连接,键盘的16个按键组成8*2矩 阵,其中8根矩阵线作为8255A 的输出线与PB& PBO 连接,2根矩阵线作为8255A 的输入 线与PC7 PC6连接。

键盘采用逐次扫描原理,16个按键中0〜9座位数字健,+、-、=作为 加、减和等号功能键,C 为清零键。

4.2 键盘输入模块键盘是常用信息输入元件, 其实键盘也是由一个个按钮组成, 如果是独立按钮的话必须 要需要一个 I/O 口对它进行检测, 而键盘往往这需要键盘按钮数一半的 I/O 口数对它进行检 测,也许对一个比较简单的系统 I/O 口数一般不是问题,但对于一个大型、复杂的系统来说 I/O 资源就显得非常珍贵了,尽量减少 I/O 使用是非常利于降低成本,另外一方面键盘比用 独立按键要美观。

微机原理课程设计-四则运算

微机原理课程设计-四则运算

《微机原理与接口技术》课程设计电气与自动化工程系 通信工程2010年12月23院 系: 专 业: 年级班级: 学 号: 姓 名: 指导教师: 设计日期:微机原理与汇编语言课程设计一、课程设计目的进行程序设计的方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,打到独立编制和调试一定滚魔的汇编语言程序水平。

二、课程设计题目四则混合运算要求从键盘上输入数字参与运算,并在屏幕上显示结果,至少实现加法减法运算。

从键盘输入一个十进制两位数的四则运算表达式,如23*56-(8*19)/6+67-8=,编程计算表达式的值,输出十进制结果(有可能是三位或四位十进制),+-*/位置任意。

并要求程序能反复执行直道对“还要继续吗?(y/n)”之类的提示回答“n”或“N”为止三、报告内容1.设计主要内容根据题目的要求,该程序设计的关键是要根据四则运算中()、*、/、+、-、=的优先设置符号的权值,其中(、*、+、-、)、=的权值分别设置为5、4、4、3、3、1、0,然后根据权值大小进行运算。

程序使用数字标志SIGN1、括号标志SIGN2分别来判断数字是否输入完毕和括号是否配对,另外程序定义两个数据存储区域NUMB和MARK,其中NUMB用来保存输入的或运算的数值,MARK用来保存输入的符号及其对应的权值。

程序不断判断输入的符号是否是左括号‘(’,当遇到左括号是在存储区MARK保存其符号,紧跟着将‘(’的权值改为2并保存之,这是为了使程序运算括号内的表达式,当遇到右括号‘)’时括号内运算将结束。

可以把整个源程序大致划分为几个基本结构:程序加法、减法、乘法、除法、显示结果五个部分。

首先用1号功能以输入字符的形式接收输入的算式,再判断输入字符ASCII码,如果是+、-、*、/、=或数字,则跳转到相应功能模块,并把输入的字符转为数值传入BX寄存器,在各功能模块中继续用1号功能输入字符,执行以上操作,将输入号符转为数据存入DX中,由于*、/优先级要高,加、减模块的实现中要根据输入运算符号进行将BX入栈操作,如果是相同优先级运算符,则直接将BX,DX中的数据进行相应运算,输入=则输出运算结果,这时输出字符串Continue?,用户输入y/n执行继续计算和退出操作。

加减法运算电路的课程设计

加减法运算电路的课程设计

加减法运算电路的课程设计一、课程设计的目的和要求目的:1.了解加减法运算电路的原理、组成和性能。

2.熟悉加减法运算器的制作和调试过程。

3.提高学生的实际操作能力和实验调试能力,培养学生的创新意识和动手实践能力。

要求:1.合理规划实验内容,注重实际操作能力和实验调试能力的培养。

2.严格遵守实验安全规范,确保实验安全。

3.要注意实验设备和器材的选择和使用,确保实验结果的准确性和可靠性。

二、课程设计内容分析1.实验器材与工具(1)基于 MAX232 芯片的调试板。

(2)示波器、数字万用表、电烙铁等工具设备。

(3)Bread board(面包板)、LED 灯、电阻、电容等元器件。

2.实验原理(1)MAX232 介绍。

MAX232 是 MAXIM 公司推出的一款 RS232 界面通讯 IC,用于将 RS232 电平转换成 TTL 电平,实现 RS232 与 TTL 电平的转换。

MAX232 由四个电容和两个 RS232/TTL 翻译器组成。

电容用于同步时钟,翻译器用于转换信号电平。

一个翻译器的输入电路连接 RS-232 端口,另一个翻译器的输入电路连接 TTL 设备。

MAX232 可以混合工作,因此,它可以用于将 RS-232 端口连接到 TTL 设备,也可以将 TTL 设备连接到 RS-232 端口。

(2)加减法运算电路介绍。

加法器和减法器都是数字电路中常见的电路。

加减法器是计算机中运算器的组成部分。

加法器实现两个二进制数的加法运算,减法器实现两个二进制数的减法运算。

加法器的电路一般都由若干个半加器或全加器级联而成。

半加器是只能处理两个一位二进制数的加法电路,全加器可以处理三个一位二进制数的加法电路。

减法器的电路有反馈减法器和补码减法器两种。

反馈减法器专门用于二进制的减法,补码减法器则可以处理加法和减法。

3.实验过程(1)加法器电路将半加器和全加器级联,构成一个 4 位的加法器电路。

在电路板上布线,使用电子设备进行连接。

微机原理-加法计算器设计及显示

微机原理-加法计算器设计及显示

微机原理-加法计算器设计及显示实验报告指导老微机原理实验课程名称:成绩:师:实验类实验名称:加法计算器及显示同组学生姓名:型:二、实验内一、实验目的和要求(必填)容和原理(必填)四、操作方法三、主要仪器设备(必填)和实验步骤装六、实验结果五、实验数据记录和处理线与分析(必填)订七、讨论、心得实验目的和要求一、1.掌握基于状态机的编程方法2.实现数字运算、键盘输入、LED显示的多任务协调编程3.P二、实验内容和原理1.编写程序,输入两个两位十进制数并显示,按确认键后显示运算结果2.基本功能:能够输入输入数字(非数字无效)并显示结果3.附加功能:光标指示功能(通过LED闪烁实现)以及退格功能装线订三、程序代码ORG 0000HSTART: MOV 78H,#0 ;初始化:78H放0的段码,其余放熄灭码.4P.MOV 79H,#10MOV 7AH,#10MOV 7BH,#10MOV 7CH,#10MOV R5,#0 ;R5是按键次数,初始置0MOV R6,#0 ;将0置入R6中MOV R7,#0 ;将0置入R7中MOV 30H,#0 ;30H是功能键存放单元,置为0MOV 31H,#0 ;31H单元初始置为0 装0 ;40H单元初始置为 MOV40H,#0 线0 ;41H单元初始置为MOV 41H,#0 订 ;调用显示子程序LOOP: LCALL DIR;调用键盘检测程序KEY LCALL 1 按键次数加 ; INC R5S2 键,跳到不是?S1: CJNEA,#10,S2 ;FUN 键,跳到 ;是?LJMP FUNS3 ?S2: CJNE A,#11,S3 ;不是键,跳到FUN 键,跳到是? LJMPFUN ;S4 键,跳到; S3: CJNE A,#12,S4 不是?FUN 键,跳到?; LJMP FUN 是S5键,跳到屜尯不是; S4: CJNE A,#13,S55 P.FUN 屜尯键,跳到 ; 是LJMP FUN S6 ?键,跳到 ; 不是S5: CJNE A,#14,S6 FUN 键,跳到;是? LJMP FUNN1 键,跳到; 不是?屌S6: CJNEA,#15,N1START 键,跳到; 是?屌LJMP START N2,跳到若按键次数不等于1 N1: CJNER5,#1,N2 ;D11跳到 ; LJMP D11,跳到2R5,#2,START;若按键次数不等于N2: CJNE 装START线T1 跳到 ; LJMP T1 订R4D11: MOV R4,A ;将A写入 ;输入值送显示个位缓存MOV 78H,A单元10送到79H MOV 79H,#10 ;将 ;跳转到循环LJMP LOOP53H 写入;T1: MOV 53H,A 将AB;将10置入 MOV B,#10A R4写进将上一次输入的 MOVA,R4 ;10乘以 ;A MUL AB相加A里面的值与;53H ADDA,53H6P.MOV R4,A ;将新的值置入到R4 MOV 79H,78H ;个位到十位MOV 78H,53H ;新数为个位LJMP LOOP ;跳转到循环FUN:MOV 78H,#10 ;将10置入到78H MOV 79H,#10 ;将10置入到79H MOV R0,30H ;与上次功能键交换MOV 30H,AMOV A,R0装 ;判断功能键 CJNE A,#10,FUN1线尻+ LJMP ADDY 订CJNEA,#11,FUN2 FUN1:-尻LJMP SUBTCJNE A,#12,FUN3 FUN2:;* LJMP MULTCJNE A,#13,FUN4 FUN3:;\/LJMP DIVIA=#0 ;首次按功能键,即FUN4: CJNE A,#14,FUN5;=LJMP EQUA保存第一个数 ; FUN5: MOV40H,R4按键次数清零; MOV R5,#07.PLJMP BCD ;将其拆为BCD码,以便后来将其显示OF: LJMP START ;跳转回开始ADDY: MOV A,40H ;加法,第一个数送累加器ADD A,R4 ;第一个数加第二个数MOV 40H,A ;存本次结果MOV R5,#0 ;按键次数清零LJMP BCD ;跳转到BCD程序SUBT: MOV A,40H ;减法,第一个数送累加器装借位清零 ; CLR C 线带借位的减法,第一个数减第;SUBB A,R4 订二个数BCD2 1,跳转到 ;借位为JBCY,BCD240H 将减的结果送 ;MOV 40H,A ;按键次数清零 MOV R5,#0BCD跳转到; LJMP BCD乘法,第一个数送累加器 ;MULT: MOVA,40HB送 ;将A MOV B,A将第二个数送累加器 ; MOV A,R4;第一个数乘以第二个数 MUL AB按键次数清零; MOV R5,#0 8.PJB OV,BCD1 ;若乘法结果溢出,则跳转到BCD1MOV 40H,A ;将A送40H LJMP BCD ;跳转到BCD DIVI: MOV A,R4 ;除法,第二个数送累加器MOV B,A ;将第二个数送BMOV A,40H ;将第一个数送ADIV AB ;A除以BJB OV,OF ;当B为0时跳到OF 装40H 送将A ;MOV 40H,A线 ;按键次数清零MOV R5,#0订BCD ; 跳转到 LJMP BCD按键次数清零EQUA: MOVR5,#0 ;31H ;将A送 MOV 31H,A BCD 跳转到 ; LJMP BCD乘法溢出时的处理程序;---- 乘法溢出时的处理程序 ; BCD1:78H 位送;将高8 MOV 78H, B79H;将低位送8 MOV 79H, A中79H、78H调用子程序把; LCALLHEX2BCD9.P的数字,转换成BCD码,送到7AH 7BH 7CHMOV A, 7CH ;下面,把万千百十个位,分别存入7CH 7BH 7AH 79H 78H MOV B, #16DIV AB ;除以16,目的是分离出高、低四位 ;存放十位MOV 79H, A存放个位 MOV 78H, B ;7AHMOV A, 装 ;存放万位 MOV 7CH, A 线7BH MOV A, 订#16 MOV B,DIV ABMOV 7BH, AMOV 7AH, BLJMP LOOP79H78H:; HEX2BCD: 子程序把、中的码,送到BCD数字,转换成7AH 7BH 7CHCLR A先清零; MOV 7AH, A10.PMOV 7BH, AMOV 7CH, AMOV R6, #16 ;共转换十六位数LOOPP:CLR CMOV A, 79H ;从待转换数的高端移出一Cy 位到RLC AMOV 79H, A 装78H MOV A, 线RLC A 订MOV 78H, ABCD送到码的低端 ; MOV A, 7CHADDC A, 7CH ; 带进位加。

微机原理课程设计(加减乘除运算)

微机原理课程设计(加减乘除运算)

MODEL SMALLCode SegmentAssume CS:Code,DS:codeCR equ 000DHLF equ 000AHKBBack equ 0008H; -------------------------------------; 功能:显示指定地址(Str_Addr)的字符串; 入口:; Str_Addr=字符串地址(要求在数据段); 用法: Output Str_Addr; 用法举例:Output PromptStrOutput MACRO Str_Addrlea dx,Str_Addrmov ah,9int 21hEndM; ----------------------------------功能:输出一个字符; 入口:dl=要显示的字符Output_Chr proc Nearpush axmov ah,02hint 21hpop axretOutput_Chr endp; --------------功能:输出回车换行Output_CTLF proc Nearpush axpush dxmov ah,02hmov dl,0dhint 21hmov dl,0ahint 21hpop dxpop axretOutput_CTLF endp; --------------功能:取光标位置; 入口:无; 出口:DH=行号,DL=列号GetCursor Proc NearPUSH AXPUSH BXPUSH CXXOR BX,BXMOV AH,3INT 10HMOV Cursor_Row,DHMOV Cursor_Col,DLPOP CXPOP BXPOP AXRETCursor_Row DB ?Cursor_Col DB ?GetCursor EndP; ---------------revolver(39629840) 9:44:07postmessage 发送ctrl+x 组合键,有谁会的啊大叔(42947111) 9:44:17功能:置光标位置; 入口:Cursor_Row=行坐标; Cursor_Col: 列坐标)SetCursor Proc NearPUSH CXPUSH BXPUSH AXMOV DH,Cursor_RowMOV DL,Cursor_ColXOR BX,BXMOV AH,2INT 10HPOP AXPOP BXPOP CXRETSetCursor EndP; ---------------------功能:键盘输入一个指定位数的十进制数字,将其转换成二进制数并保存在指定的内存单元。

微机原理课程设计

微机原理课程设计

微机原理课程设计一、引言微机原理课程设计是计算机科学与技术专业领域的一门重要课程,其目的是培养学生对微机原理和体系结构的理解与应用能力。

本文将介绍一种基于协处理器的浮点运算单元的设计方案,旨在提高微机浮点运算的效率。

二、设计要求1. 设计一种符合IEEE 754标准的浮点运算单元,能够支持浮点数的加、减、乘和除运算。

2. 设计的浮点运算单元需要具有高精度和高速度的特点,尽可能减少运算误差和运算时间。

3. 设计的浮点运算单元需要具有较低的功耗和较小的面积,以便在实际应用中能够得到充分发挥。

三、设计方案1. 系统结构设计本方案采用协处理器结构,由浮点运算单元和主处理器组成。

主处理器负责整数运算和控制操作,而浮点运算单元负责执行浮点运算。

两个模块之间通过数据总线和控制总线进行通信。

2. 浮点运算单元浮点运算单元采用基于IEEE 754标准的浮点数表示,包括浮点数加法器、浮点数减法器、浮点数乘法器和浮点数除法器。

(1)浮点数加法器:采用流水线方式实现,包括数据输入、数据对齐、加法计算和溢出判断等阶段,能够处理浮点数之间的加法运算。

(2)浮点数减法器:与浮点数加法器结构类似,区别在于加法计算阶段改为减法运算。

(3)浮点数乘法器:采用快速乘法算法实现,将乘法计算分解为多个部分,同时进行并行计算,从而提高乘法运算速度。

(4)浮点数除法器:采用多精度除法算法实现,将除法计算分为多个部分,采用流水线方式进行计算,能够实现浮点数之间的除法运算。

四、实施步骤1. 完成浮点数加法器的设计与实现,包括各个阶段的功能模块设计、电路绘制和测试验证。

2. 在加法器设计基础上,完成浮点数减法器的设计与实现。

3. 在减法器设计基础上,完成浮点数乘法器的设计与实现。

4. 在乘法器设计基础上,完成浮点数除法器的设计与实现。

5. 将浮点运算单元与主处理器进行连接,设计数据传输和控制信号的接口。

6. 对设计的浮点运算单元进行整体测试和验证,确保其在不同运算场景下都能正常工作。

【免费下载】计算机组成原理实验 加减法运算器设计

【免费下载】计算机组成原理实验 加减法运算器设计

计算机组成原理与汇编语言实验报告实验二: 加减法运算器的设计与实现专业班级:xxxxxxxxxx学号:xxxxxxx 姓名:xxx学号:xxxxxxx 姓名:xxx实验地点:实验时间:实验二加减法运算器的设计一、实验目的1、理解加减法运算器的原理图设计方法2、掌握加减法运算器的VERILOG语言描述方法3、理解超前进位算法的基本原理4、掌握基于模块的多位加减运算器的层次化设计方法5、掌握溢出检测方法和标志线的生成技术6、掌握加减运算器的宏模块设计方法二、实验任务1、用VERILOG设计完成一个4位行波进位的加减法运算器,要求有溢出和进位标志,并封装成模块。

模块的端口描述如下:module lab2_RippleCarry 宽度可定制(默认为4位)的行波进位有符号数的加减法器。

#(parameter WIDTH=4)( input signed [WIDTH-1:0] dataa,input signed [WIDTH-1:0] datab,input add_sub, // if this is 1, add; else subtractinput clk,input cclr,input carry_in, //1 表示有进位或借位output overflow,output carry_out,output reg [WIDTH-1:0] result)2、修改上述运算器的进位算法,设计超前进位无符号加法算法器并封装成模块。

模块的端口描述如下:module lab2_LookaheadCarry // 4位超前进位无符号加法器(input [3:0] a,input [3:0] b,input c0,//carry_ininput clk,input cclr,output reg carry_out,output reg [3:0]sum);3、在上述超前进位加法运算器的基础上,用基于模块的层次化设计方法,完成一个32位的加法运算器,组内超前进位,组间行波进位。

微机原理实验指导书1-二进制多位加法运算

微机原理实验指导书1-二进制多位加法运算

微机原理实验指导书1-二进制多位加法运算实验一二进制多位加法运算一、实验目的1.熟悉实验系统键盘显示的使用。

2.掌握使用加法类运算指令编程及调试方法。

3.掌握加法类指令对状态标志位的影响。

二、实验设备与工具1.微机原理与接口技术实验箱。

2.微型计算机。

三、实验原理及方法实验内容:计算X+Y+Z=?(X、Y、Z为16位二制数)本实验是三个十六位二制数相加运算,因此,当X+Y时要考虑用ADC指令,把进位C加到结果的高16位中,当(X+Y)+Z时,再把进位C加到结果的高16位中,本实验如设定三个加数0FFFFH,计算结果应为2FFFDH。

四、实验步骤1.打开实验箱前盖。

检查:(1)JK(开关)置‘系统’:键盘/显示接口选择系统配置的8255接口芯片,进入监控状态。

(2)KB6:通讯选择开关,KB6开关拨向88一侧(单8086实验仪无KB6),选择PC机和8086系统通讯。

(3)不插或卸掉已装的CPU卡(单8086实验仪无CPU卡安装、插座)。

2.将随机配送的串行通讯线,一端与实验仪的RS232D型插座CZ1相连,另一端与PC机COM1或COM2串行口相连。

3.接通实验系统电源,+5V LED指示灯应正常发光,实验仪数码管应显示闪动P.,说明实验仪初始化成功,处于待命状态。

(否则应及时关闭电源,待修正常后使用)4.打开PC机电源,执行DJ8086K的集成调试软件,关于该软件的详细说明请参阅《DJ8086K实验系统与PC机联机操作部分》。

5.编写程序,在PC机和实验系统联机状态下,运行该实验程序。

如可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598k8Asm文件夹,点击S1.ASM 文件,单击“确定”即可装入源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或“单步运行”,即开始运行程序。

6.运行完后,运算结果保留在内存4100H~4102H单元中,点击DJ-8086K软件中存贮器RAM窗口,输入RAM的起始地址4100、4101、4102,当三个被加数为0FFFFH,三个单元内容应为FD、FF、02。

微机原理简易计算器课程设计.

微机原理简易计算器课程设计.

课程设计报告课程设计名称:简易计算器系别:三系学生姓名:***班级:11通信1班学号:***********成绩:指导教师:袁静开课时间:2013-2014 学年 1 学期一.设计题目简易计算器二.主要内容1、采用模块化程序结构设计软件,可将整个软件分成若干功能模块。

2、画出程序流程图。

3、根据流程图,编写源程序。

4、上机调试程序。

三.具体要求1、利用BIOS和DOS的中断来设计一个计算器,要求在屏幕上显示一个主菜单,提示用户输入相应的数字键,分别执行加、减、乘、除四种计算功能和结束程序的功能。

2、利用BIOS中断的10号功能调用来设置显示方式。

3、利用DOS中断的01号和02号子功能来完成键盘接收,结果显示。

四.进度安排五.成绩评定考核方法:现场验收(占50%),课程设计报告(占50%)。

考核内容:学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演示效果、设计报告质量。

成绩评定:优,良,中,及格,不及格。

特别说明:如发现抄袭,按照不及格处理。

目录前言 (4)1、设计题目 (5)2、设计内容 (5)2.1 基本内容 (5)2.2 主要功能 (5)3、设计原理及方案 (6)3.1 总体方案 (6)3.2 程序流程图 (7)3.2.1 主程序 (7)3.2.2 计算子程序 (8)3.3 系统模块详细设计 (9)3.3.1 界面设置 (9)3.3.2 算法选择设置 (10)3.3.3 数制转换设置 (11)4.汇编源程序代码 (13)5、调试运行结果 (20)5.1 操作说明 (20)5.2 调试运行结果 (20)6、心得体会 (23)7、参考文献 (24)前言课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要教学环节。

它具有动手、动脑和理论联系实际的特点,是培养在校工科大学生理论联系实际、敢于动手、善于动手和独立自主解决设计实践中遇到的各种问题能力的一个重要教学环节。

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

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

课程设计课程设计名称:微机应用系统课程设计专业班级:计科1204班学生姓名:张婷婷学号: 201216010433指导教师:王锋课程设计时间: 2014.12.22-2015.1.3计算机科学与技术专业课程设计任务书一.课程设计实验的目的课程设计的目的在于更好的锻炼我们的实践能力和考验平时学习的成果。

我们是计算机专业,离不开编写代码。

平时上课所学的知识来自于课本,上机实验相对比较少,所能锻炼的操作能力机会不多。

而课程设计是让我们综合平时课本和实验的知识及经验,自己设计和构造,编写一个相对完整的程序。

这不仅仅是对以前知识的巩固,更是锻炼我们的思维,我们的设计与编写程序的能力。

对于我们以后将会从事的计算机类工作,这能很好的为我们打下坚实的基础,所谓积少成多,每学期都做课程设计,到毕业时我们对于编写一个应用软件或许就能较容易驾驭了。

本次微机应用系统课程设计我的题目是加法练习程序设计,虽然只要求加法运算,但我在该程序里添加了减法运算,使得程序相对不会太单调。

虽然给的编程题目可能会与别人一样,但每个人的想法不一样,在设计时添加自己的想法或许就能使程序更加完善了,这也是课程设计对我们的一种锻炼。

二.实验设计的任务与要求加法练习设计程序的内容是:随机给出百位数以内的加法算式,并提示输入答案,若正确给出正确提示,若错误给出错误提示,并提示输入答案;按 R 键继续下一题,按 Q 键返回 DOS。

按照内容要求,在所学知识内容的基础上设计程序,具体的内容设计要求任务如下:1.设计一个菜单,选项为加法和减法的练习。

2.以获取系统中的秒和百分秒作为两个随机数进行加减运算。

3.将输入的答案和运行结果比较,若相等给出正确提示,若错误给出错误提示,并继续输入答案直到正确为止。

4.提示是否继续下一题,按R键继续下一题,按Q键返回 DOS。

这次课程设计是在完成设计要求的基础上,添加了减法练习运算,以仔细、认真、规范的态度完成自己课程设计。

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

中文摘要和关键词微机原理课程设计——8255,加法器设计2本实验是对加法器的输入、运算、输出而进行的编程,利用了8255芯片,通过8255的A,B端口输入两个八位二进制数,经CPU运算后,由C端口输出.通过编写相应程序用8086/8088的“OUT”指令可将8255的控制字送入其控制字寄存器所对应的地址,以达到将控制字送入8255的目的,以此来控制8255的工作方式以及A、B、C三个端口的输入,输出状态,格式化8255。

本实验8255工作在方式0,即基本输入输出状态,A、B端口是输入状态,C端口是输入状态。

再用相同方法可将8255的A、B两个端口的内容送入A、B两个端口。

通过A,B端口输入的两个二进制数经编程运算,然后在C口输出,通过循环语句实现两个二进制数求和的连续运算、输出. 关键字:循环、工作方式、编程、运算、格式化目录课程设计任务书1设计任务描述1.1 设计目的1.2 设计的要求1.3对设计说明书撰写内容、格式、字数的要求1.4设计完成后应提交成果的种类、数量、质量等方面的要求1.5时间进度安排2微机原理课程设计成绩评定表3 设计思路 (3)4 设计原理流程图.............………..….……..….………………….…..….…...…4~54.1主程序4.2键盘扫描子程序5 实际硬件接线图 (6)6 源程序清单及注释…………..………..….….……………………….…………7~9 7主要元器件介绍………………………………………………………………10~127.1键盘7.1.1键盘的工作原理7.1.2键盘输入信息的过程7.1.3键盘扫描(识别键)的过程7.2 可编程并行接口8255A7.2.1 8255简介7.2.2 8255的控制字参考文献 (13)设计总结 (14)3、设计思路本周课程设计中,我们组的设计题目是加法器设计1。

得知这个题目后,我们全组同学共同讨论研究了设计流程.从键盘输入数据开始,首先键盘清0,按四下分别输入两个二位十进制数,再利用8255的输入输出功能,输入数据,在CPU 中计算和,再经8255输出到LED显示器,用九盏灯显示结果.第一盏表示十位向百位是否有进位,即只能进行一百以内的显示,接下来的四位为BCD码显示的十位,最后四位显示个位.先设计子程序分别实现延时,扫描键盘,判断输入位,清屏等.程序开始后调用子程序.实现求和.4设计原理流程图4.1 .8255A与键盘接口程序流程图(a)主程序4.2键盘扫描子程序5实际硬件电路接线图6源程序清单及注释MYDATA SEGMENTNUM DB 4 DUP(0)SUM DB 3 DUP(0)MYDATA ENDSSTACK0 SEGMENT PARA STACK'STACK'DW 200 DUP(?)STACK0 ENDSMYCODE SEGMENTASSUME CS:MYCODE,DS:MYDATA,ES:MYDATA,SS:STACK0SOFTDLY PROC ;延时子程序PUSH BXPUSH CXMOV BL,50DELAY0:MOV CX,2801WAIT0:LOOP WAIT0DEC BLJNZ DELAY0POP CXPOP BXRETSOFTDLY ENDPMYCMIAO PROC ;键盘扫描子程序PUSH AXPUSH BXPUSH CXPUSH DXMOV DX,0600H ;设置8255PA端口地址MOV AL,00H ;行线输出全口OUT DX,ALLP1: MOV DX,0602H ;设置8255PB端口地址IN AL,DX ;读入列线值AND AL,0FH ;屏蔽无关位CMP AL,0FH ;测试列线值是否全为1JZ LP1 ;若列线值全为1,表明无键按下,等待按键 MOV CX,2000H ;设置循环次数DELAY1:LOOP DELAY1 ;若有按键按下,延迟2000ms,清除抖动IN AL,DX ;再察看列线,看键是否还按着AND AL,0FHCMP AL,0FHJZ LP1 ;已松开等待按键LP2:MOV BL,4 ;行数送BL,即行扫描次数MOV BH,4 ;列数送BHMOV AL,0FEH ;设置行扫描初值MOV CH,0FFH ;设置起始键号为FFHLP3:MOV DX,0600H ;设置8255PA端口地址OUT DX,AL ;输出行扫描初值ROL AL,1 ;修改扫描码为扫描下一行做准备 MOV AH,AL ;保持修改后的扫描码MOV DX,0602H ;设置8255PB端口地址IN AL,DX ;读入列值AND AL,0FH ;屏蔽无关位CMP AL,0FH ;查列线是否全位1JNZ LP4 ;有,则转去找该列线ADD CH,BH ;无,修改键号指向该行末列键号 MOV AL,AH ;取回扫描码DEC BL ;行值减1JNZ LP3 ;行末查完转下一行JMP LP2 ;重新开始扫描键盘LP4:INC CH ;键号加一,指向本行首列键号 RCR AL,1 ;右移一位JC LP4MOV [SI],CH ;键号送入[SI]中INC SIPOP DXPOP CXPOP BXPOP AXRETMYCMIAO ENDPSTART:MOV AX,MYDATAMOV DS,AXMOV ES,AXMOV SI,OFFSET NUMMOV DI,OFFSET SUMMOV DX,0606HMOV AL,82HOUT DX,ALMOV CX ,2YY1:CALL MYCMIAO ;输入第一个数CALL SOFTDLYLOOP YY1MOV CX,2YY2:CALL MYCMIAO ;输入第二个数CALL SOFTDLYLOOP YY2MOV CX,2MOV SI,OFFSET NUMCLCYY3:MOV AL,[SI+1] ;开始进行加法操作ADC AL,[SI+3]AAAMOV [DI+2],ALDEC DIDEC SILOOP YY3MOV AH,0 ;防止溢出,保存进位ADC AH,0MOV [DI+2],AHMOV DI,OFFSET SUMYY4:MOV DX,0604H ;8255PC口地址MOV AH,[DI+1]ROL AH,4MOV AL,[DI+2]ADD AL,AHOUT DX,AL ;将十位,个位输出到PC口以驱动LED灯显示 MOV AL,[DI]ROL AL,4MOV DX,0600HOUT DX,AL ;将百位输出到PC口高4位驱动LED灯显示 MOV CX,20YY5:CALL SOFTDLY ;延迟1s后清0LOOP YY5MOV AX,0OUT DX,AXMOV DX,0604HOUT DX,AXJMP STARTMYCODE ENDSEND START7主要元器件介绍7.1 键盘键盘是微机系统和其他实时控制系统中广泛使用的一种基本输入设备。

按键实际上就是一个开关;对大多数键盘而言,为了减少与微机间的连线,简化结构,按键被排成行和列的矩阵形式,称为矩阵键盘。

矩阵键盘根据识别键和键盘扫描实现方式的不同又分为两类:编码键盘和非编码键盘。

编码键盘主要是用硬件来实现键的识别和扫描,它功能强,可靠,但硬件复杂,一般微机系统使用编码键盘。

非编码键盘主要是用软件方法来识别键和绎键,本次课程设计主要应用非编码键盘的基本工作原理,及键盘控制程序的编制方法。

7.1.1 键盘的工作原理通常可采用两种方法来识别键盘上的闭合键:即行扫描与行反转法,本次课程设计采用的是行扫描法,其基本思想是:将行线接输出端口,列线接输入端口。

先将所有的行线输出低电平(A口),读入列线的值(B口),若此时列线上的值全为1,说明无键按下;若有某位为0,则说明对应列上有键按下,这时改变行扫描码,使行线逐行为0,依次输出行扫描码,读入列值。

当读入某一列线的值为0时,则可根据此时的行扫描码和列线的值唯一的确定按键的位置,同时也就确定了该键的扫描码。

7.1.2 键盘输入信息的过程:(1)CPU检查是否有键按下;(2)扫描检查各行和列,找到被按键的键号;(3)将键号转换成计算机能识别的代码并转入相应的键盘处理程序。

7.1.3键盘扫描(识别键)的过程:(1)识别是否有键按下:方法是使PA0~PA3输出全为0,读B口(列值)PB0~PB3,PB0~PB3中只要有一位为0,就说明有键按下,因为由于上拉电阻接+5V 的作用,无键按下时,列线被置成高电平。

当某键被按下,该键所在行线和列线接通,所以,当行线为低电平时,对应的列线也为低电平。

(2)消抖动:抖动就是键按下时由于手工操作,键的闭合和断开之间回跳几下才能稳定到闭合的位置,这就称为抖动。

抖动问题不解决回引起对闭合键的错误识别,所以当判别出有键按下时应消除抖动。

消除抖动的常用方法是在检测到有键按下后,延迟一段时间(通常为20ms),再检查该键是否仍然被按着,若是,才真正认为有键按下,而不是干扰。

(3)确定是哪个键被按下:即确定被按下键的行列号,因此可采用上述的行扫描法。

(4).根据找到的键号,转去执行该键功能的子程序。

7.2 可编程并行接口8255A7.2.1 8255简介并行接口是以数据的字节为单位与I/O设备或被控对象之间传递信息。

在实际应用中凡是CPU与外设之间同时需要传递两位以上信息时均需采用并行接口。

可编程并行通信接口(8255A)是一个具有两个8位(A口和B口)和两个4位(C口)并行输入/输出端口的接口芯片,为了适应多种数据传送方式的要求8255A设置了3种工作方式:方式0为基本输入输出方式,方式1为选通输入输出方式,方式2为双向传送方式。

本次为满足设计需要,将8255A设置为方式0。

本次课程设计用并行接口8255作为微机与键盘间的接口,采用行扫描法识别键。

将键盘中的各行与A口PA0~PA3相连,A口为输出;将各列与B口的PB0~PB3相连,B口为输入口。

7.2.2 8255的控制字说明:当控制字bit7=1时,控制字的bit6~bit3这4位用来控制A组,即A 口的8位和C口的高4位,而控制字的低3位bit2~bit0用来控制B组,包括B 口的8位和C口的低4位。

参考文献1.周明德.微型计算机系统原理与应用(第四版).北京:清华大学出版社2.王正洪.朱正伟.马正华.微机接口与应用.北京:清华大学出版社3.范会敏.李晋惠.微型计算机原理与接口技术应用.北京:科学出版社4.沈鑫剡.微机原理与应用学习辅导.北京:清华大学出版社5.韩进宏.贾鹏.微型计算机原理与接口技术实验指导书.北京:机械工业出版社设计总结回顾起此次微机原理课程设计,我感慨颇多,的确,从选题到定稿,从理论到实践,在整整1星期的日子里,可以说是很不容易的,但是可以学到很多很多的的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

相关文档
最新文档