基于Intel8086的键盘显示系统

合集下载

8086汇编语言程序设计——第一个程序

8086汇编语言程序设计——第一个程序

8086汇编语⾔程序设计——第⼀个程序本系列以80X86系列微型计算机为基础,以MASM5.0为汇编上机实验环境,重点介绍Intel8086指令系统。

Intel8086指令系统中有100多条指令,利⽤这些指令可以编写出复杂的程序实现更多功能。

汇编语⾔是直接控制计算机硬件⼯作的最简便的语⾔。

学习了汇编语⾔可具有在CPU寄存器级上进⾏控制和操作的能⼒,可获得直接对计算机硬件底层编程的经验。

⼀个计算的例⼦例 *编写⼀个汇编语⾔程序,实现下列公式计算。

假设X=4,Y=5汇编指令如下:如果在DEBUG下⽤A命令输⼊这些指令,必须把X、Y换成具体的数值;Z、Z1是存储单元地址,最后两条指令可写为MOV [0],AL和MOV [1],AH,这样才能⽤T命令执⾏。

D:\dos〉DEBUG-AMOV AL,4ADD AL,5MOV BL,8IMUL BLMOV BL,4MOV BH,0SUB AX,BXMOV BL,2IDIV BLMOV [0],ALMOV [1],AH采⽤DEBUG的A命令输⼊程序的做法明显不⽅便,⼀是⽆法给出变量名即符号地址,⼆是调试修改程序不便。

1. 编写⼀个完整的汇编语⾔源程序需要增加段定义伪指令和定义数据存储单元伪指令等必须有的伪指令。

伪指令与C语⾔等⾼级语⾔中的说明性语句的含义类似,起到说明作⽤。

⽤记事本gedit或者vi编写,保存到dos⽬录下注释符号为;号2. 汇编、链接、执⾏汇编语⾔源程序既可以⽤⼤写字母也可以⽤⼩写字母书写。

汇编语⾔程序建⽴及汇编过程如图所⽰。

⽤户编写的源程序要经汇编程序MASM汇编(翻译)后⽣成⼆进制⽬标程序,⽂件名默认与源程序同名、扩展名为.OBJ;再经过LINK连接⽣成可执⾏程序,⽂件名默认与源程序同名、扩展名为.EXE。

注意:源程序⼀定要和MASM和LINK⽂件放在同⼀个⽂件夹中。

执⾏MASM和LINK命令时需要按多次回车。

3. 在DEBUG下执⾏程序MOV AH,4C指令对应的偏移地址是0023,这就是断点(所谓断点,就是程序执⾏到该处停下来不再继续)。

8086指令系统总结

8086指令系统总结

8086指令系统总结8086是一种x86架构的微处理器,由Intel公司于1978年推出。

它是16位的,拥有20位的物理寻址能力,可以访问1MB的内存空间。

8086指令系统是其所支持的一系列指令集合,下面将对8086指令系统进行详细总结。

数据传输指令是8086指令系统中的基础指令之一,用于将数据从一个位置传输到另一个位置。

其中包括mov指令、xchg指令、push指令和pop指令等。

mov指令用于将数据从一个存储位置复制到另一个存储位置;xchg指令用于交换两个存储位置中的数据;push指令用于将数据压入栈顶;pop指令用于将栈顶的数据弹出。

算术运算指令是用于进行各种算术运算的指令。

8086支持包括加法、减法、乘法和除法等多种算术运算指令。

例如,add指令用于将两个操作数相加,sub指令用于将第二个操作数从第一个操作数中减去,mul指令用于将两个操作数相乘,div指令用于将第一个操作数除以第一个操作数,并将结果保存在指定的寄存器中。

逻辑运算指令用于进行逻辑运算,包括与、或、非、异或等运算。

例如,and指令用于对两个操作数进行按位与运算,or指令用于对两个操作数进行按位或运算,not指令用于对一个操作数进行按位非运算,xor指令用于对两个操作数进行按位异或运算。

控制转移指令用于控制程序的执行流程。

包括无条件转移指令、条件转移指令和循环指令。

无条件转移指令用于无条件地跳转到指定的地址,例如jmp指令;条件转移指令用于根据一些条件是否成立来进行跳转,例如je指令(跳转到指定地址,如果上一次比较操作相等);循环指令用于循环执行指定的指令块,例如loop指令。

I/O指令用于进行输入输出操作,包括从外部设备读取数据和将数据写入外部设备。

例如,in指令用于将输入端口的数据读取到指定的寄存器中,out指令用于将指定的寄存器中的数据写入到输出端口。

此外,8086还支持一些特殊的指令,如访问标志寄存器的指令,控制指令(如hlt指令、nop指令)和字符串指令(如movsb指令、cmpsb指令)等。

823计算机原理

823计算机原理

823计算机原理全文共四篇示例,供读者参考第一篇示例:823计算机原理是指一种基于Intel 8086微处理器架构的计算机原理,在上世纪80年代广泛被应用于个人电脑领域。

823计算机原理具有独特的特点和功能,对计算机技术的发展起到了重要的推动作用。

本文将详细介绍823计算机原理的构成、工作原理以及应用领域等方面的内容,以便读者更全面地了解这一重要的计算机原理。

823计算机原理的构成1.微处理器:823计算机原理采用Intel 8086微处理器作为核心处理器,8086微处理器是Intel公司推出的一种16位微处理器,具有较高的性能和可靠性。

8086微处理器具有16位的数据总线和地址总线,能够处理16位的数据,提供了更好的计算和运算性能。

2.存储器:823计算机原理包含了内存和外存储器两部分。

内存用于存储计算机程序和数据,外存储器则用于存储大容量的数据和文件。

823计算机原理的存储器主要采用静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM),具有较快的读写速度和较大的存储容量。

3.输入输出设备:823计算机原理的输入输出设备包括键盘、鼠标、显示器、打印机等,用于实现计算机与用户之间的交互和数据传输。

这些输入输出设备通过中断控制器和DMA控制器与计算机进行连接和通信,实现数据的输入输出和处理。

4.系统总线:823计算机原理的系统总线是连接微处理器、存储器和输入输出设备的数据传输通道,负责在各个部件之间传递数据和控制信号。

系统总线主要包括地址总线、数据总线和控制总线,用于实现不同部件之间的数据交换和通信。

823计算机原理的工作原理主要包括以下几个步骤:1.启动系统:当计算机开机时,首先会执行BIOS程序,进行系统自检和初始化,然后加载操作系统到内存中,并实现系统启动和准备工作。

2.执行指令:当系统启动完成后,计算机会从内存中读取指令并执行,根据指令对数据进行处理和运算,并将结果输出到显示器或其他输出设备上。

2_第3章 8086指令系统_加减运算指令比较指令52

2_第3章 8086指令系统_加减运算指令比较指令52
4
3.4.2 算术运算指令
算术运算指令涉及两种类型数据,即无符号数和有符号数 对加法指令和减法指令而言,无符号和有符号数可采用同
一套指令,其先决条件有两个: 一是参加的操作数必须同为无符号数或同为有符号数 二是要采用不同标志位来检查无符号数和有符号数的 运算结果是否溢出
而乘除运算指令则需要区分无符号数和有符号数
11 11
ADC指令的使用价值
主要用于由于数据较大(多字节),需要多次运算的加法 运算中。 例:有两个4字节的无符号数相加:
2D568F8CH+3C9E489BH=? 设 被加数存放在BUF1开始的存储区内
加数存放在BUF2开始的存储区内 要求和放回BUF1存储区 假设CPU进行8位的加法运算,为此将进行4次加法运算
.386
……
MOVZX AX, A
MOVZX BX, B
ADD
AX, BX
MOVZX BX, C
ADD
AX, BX
MOV
SUM, AX
;取第一个数,扩展0传送 ;取第二个数 ;加第二个数 ;取第三个数 ;加第三个数 ;保存三个数的和
20 20
[例] P,Q,R均为8位有符号数,求它们的和,送入TOTAL
这个问题的另一种方法:
MOV AL, A
;取第一个数
MOV AH, 0
;高8位清零,准备存放和的高8位
ADD AL, B
;加第二个数
ADC AH, 0
;如果有进位,存入AH
ADD AL, C
;加第三个数
ADC AH, 0
;如果有进位,加入AH
MOV SUM, AX ;保存三个数的和
19 19
这个问题的第三种方法:

基于8086电子琴的设计与实现

基于8086电子琴的设计与实现

基于8086电子琴的设计与实现介绍电子琴是一种使用数字技术而非声学原理来产生声音的乐器。

与传统音乐乐器不同,电子琴可以通过自带音效、合成器、音色等多种设置,同时,它还可以与计算机互联,实现更多其他乐器无法实现的功能。

8086是英特尔公司推出的一种16位微处理器。

该处理器广泛用于计算机、工业控制和嵌入式系统等领域,具有处理速度快、性能稳定、兼容性高等特点。

本篇文档将介绍基于8086的电子琴的设计与实现过程。

设计硬件设计在硬件设计中,我们需要一个键盘矩阵、8086单片机、扬声器等元器件。

键盘矩阵是由若干个按键组合而成的矩阵,在电子琴中,每一个按键对应一个频率,从而实现不同的音调。

8086单片机将键盘矩阵读取,声音的产生则使用扬声器。

具体的硬件设计如下:1.键盘矩阵:16个按键组成的4x4矩阵,其中每个按键对应不同的频率。

2.8086单片机:应使用具有16位数据总线和20位地址总线的微处理器,可采用8086、8088或80186等型号。

3.扬声器:直径为3英寸,阻抗为8欧姆。

软件设计在软件设计中,我们需要实现键盘扫描、音频输出等功能。

具体的软件设计如下:1.键盘扫描:通过键盘矩阵的读取,得到按键的位置、行和列信息。

2.音频输出:使用扬声器输出不同频率的音调。

3.逻辑控制:根据键盘扫描的结果,控制音频输出的频率和音量等参数。

实现硬件实现硬件的实现并不复杂,只需要按照设计优先连接好元器件即可。

在本电子琴中,硬件的连接图如下:TODO: 添加硬件连接图软件实现在软件实现中,我们采用了汇编语言实现。

汇编程序主要包括键盘扫描模块、音频输出模块、中断服务程序和主程序等模块。

具体的软件实现如下:1.键盘扫描模块:先选定一行,然后针对这一行,将其中的列依次读取,如果有按键按下,就将此时的位置和按键信息存储在指定的寄存器中。

2.音频输出模块:选择相应的频率需要选择合适的参数来确定频率的大小,经过计算可确定参数的值,然后使用Pulse Width Modulation(PWM)模块来输出音频信号。

基于8086数码显示系统的设计与实现

基于8086数码显示系统的设计与实现

郑州科技学院《微机原理与接口技术》课程设计题目基于8086数码显示系统的设计与实现学生姓名郑州科技学院微机原理与接口技术课程设计任务书专业计算机科学与技术班级1班学号201215009 姓名彭立苏一、设计题目基于8086数码显示系统的设计与实现二、设计任务与要求1、基于8086系统;2、在数码管上静态显示“0-99”;3、在数码管上循环显示“0-99”。

三、参考文献1.张荣标,机械工业出版社,《微型计算机原理与接口技术第二版》[M] 2.张荣标,《微型计算机原理课程设计指导书》[M]3.李干林,李升等,北京大学出版社《微机原理及接口技术试验指导书》[M]4. 胡全. 51单片机的数码管动态显示技术[J] . 信息技术5. 胡汉才. 单片机原理及其接口技术(第2版)[M]. 北京:清华大学四、设计时间2014 年12 月29 日至2015 年1 月 4 日指导教师签名:年月日目录1 课程设计的目的 (1)2 课程设计的任务与要求 (1)3 设计原理及功能说明 (2)3.1 LED显示原理 (2)3.2 实验原理 (3)4 参考流程图 (4)5 单元电路的设计 (5)6 硬件的制作与调试 (6)6.1 静态显示数字的代码 (6)6.2 循环显示数字的代码 (7)7 总结 (10)参考文献 (11)附录1:总体电路原理图 (12)附录2:元器件清单 (12)1 课程设计的目的1.掌握LED数码管显示数字的原理。

2.掌握共阴极LED数码管的连接方法及其静态和动态显示方法。

3.进一步掌握并行接口芯片8255A的使用方法。

2 课程设计的任务与要求学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。

第4章Intel 80868088指令系统

第4章Intel 80868088指令系统

物理地址=30000H+1150H=31150H
执行后: (AX)=5678H。
第四章 Intel 8086/8088指令系统
5. 相对基址变址寻址
特点:操作数的有效地址是一个基址寄存器与一个变址寄 存器的内容之和再加上8位或16位位移量。同样,当基址寄存器 为BX时,用DS作为段寄存器; 而当基址寄存器为BP时,则用 SS作为段寄存器。因此物理地址为 (SI) 8位 位移量 物理地址=(DS)×16+ (BX)+ + (DI) 16位 (SI) 8位 位移量 + 物理地址=(SS)×16+ (BP)+ (DI) 16位
执行后: (AX)=1234H, (BX)不变。
第四章 Intel 8086/8088指令系统
4.1.4 存储器寻址
操作数在存储器中。存储器是分段管理的, 要找到操作数, 必须指明操作数所在的段(段基址由段寄存器指明)及段内偏 移地址(以有效地址EA的形成方式指出)。 1. 直接寻址方式 特点:指令中直接给出操作数在段内的偏移量,段基址隐 含给出或用段前缀指明。该寻址方式适用于处理单个变量。
4.1.1 8086/8088的通用指令格式 机器语言指令是由二进制代码组成的。一条指令是由操作 码与操作数字段构成的,其一般格式为 操作码字段 + 操作数字段 操作码字段指明计算机所要执行的操作(即功能);操作 数字段指出在指令执行过程中所需要的操作数。 例如: ADD AX, BX
第四章 Intel 8086/8088指令系统
变址寄存器内容之和。 (SI) 物理地址=(DS)×16+ (BX)+ (DI) (SI) 物理地址=(SS)×16+ (BP)+ (DI) 适用表格或数组处理,表格或数组首地址可存放在基址寄存器中。

基于8086 CPU的单芯片计算机系统的设计

基于8086 CPU的单芯片计算机系统的设计

基于8086 CPU的计算机系统的设计摘要:本文依据微机原理与接口设计方法学,探讨了一种基于标准I nt e1 8086微处理器的单芯片计算机平台的架构。

8086 CPU分析的基础上,采用遵从AMBA传输协议的系统总线代替传统的8086 CPU三总线结构,搭建了基于8086 的单芯片计算机系统。

关键词:微处理器;单芯片计算机;1、引言随着超大规模集成电路工艺的发展,在一颗芯片上集成上百万甚至上亿个晶体管已成为现实。

现在,芯片厂商都以而积最小化、功能最大化作为自己的发展方向,深亚微米效应理论及IP核技术越来越受到理论界和工业界的广泛关注,系统芯片是当前技术发展的必然趋势。

计算机的发展经历了电子管计算机、晶体管计算机、集成电路计算机和大规模集成电路计算机,它的发展一直是将越来越多的功能集成在越来越小的空间内。

可以预见,在某些特定领域,半导体制造业朝着整合型单芯片系统的总体趋势将会日益明显。

所谓单芯片计算机即是将传统PC机箱里的主板上的芯片组、CPU、内存、显卡、声卡和网卡等最大限度的集成在单个芯片中。

单芯片计算机与传统PC相比,重量、体积和功耗大幅下降,从而系统性能将得到很大地改善,同时带来价格的突破性下降,直接促进计算机的迅速普及。

近几年,Intel, AMD和vIa等微处理器制造商纷纷推出平台策略,将微处理器和芯片组组合在一起,形成一个完整的解决方案,并计划将来进一步推出集成所有芯片的单芯片微处理器。

Intel公司频推平台策略,计划进一步推出整合所有芯片的单芯片计算机,还聚集了一个由500名工程师组成的研发团队,开发其单芯片电脑产品,希望将目前电脑主板上的32颗芯片全部集成到单一的芯片中。

而在AMD四核皓龙处理器中,四个独立的CPU核集成到单一硅片上,每个核具有单独的64KB一级数据缓存、64KB一级指令缓存和512KB的二级缓存,四个核心共享2M}或者更大)的三级缓存。

这样每个CPU核都能够充分发挥各自的效能,从而大幅度提升整个处理器的性能。

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

基于Intel 8086的键盘显示系统
——“专业课程设计”设计报告
学院:机电工程及其自动化
专业:电气工程及其自动化
学号:0912XXXX
姓名:XXX
指导老师:汪西川
时间:2012年6月29日
1.课程设计要求
利用Intel 8086CPU、8259、8253、8255芯片和LED、按钮开关等元器件设计一个键盘显示系统。

其中:LED数码显示器共8位,要求每过10ms从右到左显示一遍。

键盘为4*8阵列(键名为:0~9,A~F,F1~F16),要求每过10ms 全盘扫描一遍,每当“F1”键按下时显示字符串“20120629”,其余各键扫描后的处理程序暂不考虑。

要求:画出系统连接图,并编写相关控制程序。

2.系统连接图
系统连接图如下页所示:
3.控制程序及简要说明
3.1 芯片初始化程序
8253:
MOV DX, 67H
MOV AL,00110101B
OUT DX,AL ;将定时器0设为工作方式2,采用BCD码
MOV AL,00H
MOV AL,01H ;让定时器0每10MS送出一个脉冲信号
8255(KEYBOARD):
MOV DX,6BH
MOV AL,10110110B
OUT DX,AL ;将8255(键盘)设为工作方式1,A、B口输入,可以查询中断
8255(LED):
MOV DX,6FH
MOV AL,10000000B
OUT DX,AL ;将8255(LED)设为工作方式0,A、B口输出8259:
MOV DX,60H
MOV AL,00011011B
OUT DX,AL ;ICW1初始化
MOV DX,61H
MOV AL,28H
OUT DX,AL ;ICW2初始化
MOV AL,00000001B
OUT DX,AL ;ICW4初始化
3.2 定时中断服务程序
利用8259的查询中断方式:
MOV DX,60H
MOV AL,00001100B
OUT DX,AL
IN AL,DX ;查询IR3,输入查询命令,读出查询字
3.3 键盘扫描程序
WALK:
MOV DX,68H
MOV AL,0
OUT DX,AL
MOV DX,6AH
IN AL,DX
CMP AL,0FFH ;扫描全0输出
JZ WALK ;无键合上继续等待
MOV BL,0 ;从PA0开始扫描
MOV BH,FEH
MOV CX,4
FNDROW:
MOV AL,BH
MOV DX,69H
OUT DX,AL
ROL BH,1
MOV DX,6AH
IN AL,DX
CMP AL,0FFH
JNZ RNDCOL
ADD BL,8 ;本行无键合上,扫描下一行,键号加8 LOOP FNDROW
JMP DONE
FNDCOL: ROR AL,1 ;本行有键合上,判断哪一位
JNC RIGHT ;键号在BL中
INC BL
JMP FNDCOL
RIGHT:CMP BL,17 ;判断是不是F1
JNZ DONE ;不是F1结束中断
. ;是F1,输出20120629
.
.
DONE:

3.4 显示控制程序
循环点亮8个LED:
MOV AL, 80H
OUT 6FH, AL
MOV AL, 0FFH
OUT 6CH, AL
MOV AL,0FEH ;第一盏灯亮,其余灭
AGAIN: OUT 0F8H, AL
CALL DELAY
ROR AL, 1 ;每盏灯依次亮
4.设计体会
在本次程序设计之前,我对用电脑进行单片机电路模拟和仿真的知识知之甚少,在进行本次设计的过程中,我不断寻找Proteus的教学资料并进行学习与使用,让我对Proteus仿真软件的使用技能有了很大提高。

同时,通过对这一比较复杂的单片机系统的设计与调试经验,让我对Intel 8086和8259等元器件有了更深的了解,让我发现了
对定时中断的编程不大熟悉的问题,并通过这一次编程设计解决了这一问题并有了提高。

总之,这次课程设计让我展开了设计的思路,对学过的知识有很好的强化和拓展,在临近毕业的时候,这次专业课程设计让我受益匪浅。

相关文档
最新文档