北邮微机原理与接口技术硬件实验报告
北邮微原硬件实验报告

2014—2015学年第一学期《微机原理硬件》实验报告专业电子信息工程班级姓名申宇飞学号班内序号 03报告日期 2015年1月目录实验一I/O地址译码 (3)一、实验目的 (3)二、实验内容及原理,实验硬件接线图 (3)三、程序流程图及源代码 (5)1、程序流程图: (5)2、源代码: (5)四、实验结果 (6)五、实验收获与心得体会 (6)实验二简单并行接口 (7)一、实验目的 (7)二、实验内容及原理,实验硬件接线图 (7)三、程序流程图及源代码 (9)1、程序流程图: (9)2、源代码: (9)四、实验结果 (10)五、实验收获与心得体会 (10)实验四七段数码管 (10)一、实验目的 (10)二、实验内容及原理,实验硬件接线图 (10)三、程序流程图及源代码 (12)1、程序流程图: (13)2、源代码: (13)四、实验结果 (15)五、实验收获与心得体会 (15)实验八可编程定时器/计数器(8253/8254) (15)一、实验目的 (16)二、实验内容及原理,实验硬件接线图 (16)三、程序流程图及源代码 (17)四、实验结果 (24)五、实验收获与心得体会 (24)实验十六串行口8251A实验 (24)一、实验目的 (24)二、实验内容及原理,实验硬件接线图 (25)三、程序流程图及源代码 (32)1、程序流程图 (32)2、源程序: (32)四、实验结果 (34)五、实验收获与心得体会 (35)实验一I/O地址译码一、实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。
2.掌握I/O地址译码电路的工作原理。
二、实验内容及原理,实验硬件接线图图 1-1 实验硬件接线图1、硬件接线提示:Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D角发器接 +5VQ/D触发器接 L7(LED灯)或逻辑笔2、实验内容及原理:实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告实验报告一:I/0地址译码和简单并行接口——实验一&实验二一、实验目的掌握I/O地址译码电路的工作原理;掌握简单并行接口的工作原理及使用方法。
二、实验原理及内容a) I/0地址译码1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。
利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔经过软件延时实现。
2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D触发器接 +5VQ/D触发器接L7(LED灯)或逻辑笔b) 简单并行接口1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。
74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。
2、编程从键盘输入一个字符或数字,将其ASCⅡ码经过这个输出接口输出,根据8个发光二极管发光情况验证正确性。
3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。
74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。
4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。
北邮微机原理硬件实验报告

北邮微机原理硬件实验报告实验目的本次实验主要是通过对微机原理的学习,掌握多种硬件器件的基本使用,包括程序寄存器(PRG)、数据寄存器(DR)、累加器(AC)等,也希望能够初步了解微机系统的结构和工作原理。
实验内容1. 按以下程序编写汇编程序ORG 0HLOOP: MOV A,NUMADD BINC R5MOV MEM,R5SJMP LOOPENDNUM: DB 50HB: DB 35HR5: EQU 25HMEM: DS 1编写程序后,运行该程序,观察程序在8051微处理器上执行的情况。
2. 制作简易流水灯电路使用LED等元器件,制作一个简单的流水灯电路。
同时,编写相应的汇编程序,实现流水灯的基本效果。
3. 实现双向流水灯效果在完成流水灯电路的基础上,通过改变程序实现双向流水灯的效果。
在这个过程中,需要仔细分析程序的实现方式,并且结合8615芯片的具体情况,理解程序在底层机器中的工作方式。
4. 实现用数码管显示数字的功能使用7段数码管,将程序输出的结果显示在数码管上。
在这个过程中,我们需要灵活处理I/O端口和存储器的读写,以及处理各类中断信号。
实验过程1. 编写并调试汇编程序我们首先使用Keil软件编写了相应的汇编程序,并在8051单片机上运行。
在运行过程中发现,程序能够成功地对NUM与B进行加法运算,并将结果存储在MEM中。
2. 制作流水灯电路我们使用LED、电阻等元器件,制作了一个简单的流水灯电路,并测试了该电路的基本工作情况。
由于电路较为简单,因此没有出现特别明显的问题。
3. 实现双向流水灯效果为了实现双向流水灯效果,我们对程序进行了修改。
在这个过程中,初步出现了一些问题,包括倒计时初始值不正确、程序中断启动终止不及时等。
经过反复调试,我们成功地实现了这一功能。
4. 实现用数码管显示数字的功能最后,我们将流水灯程序变更为用数码管显示数字的程序。
在这个过程中,我们主要用到了表格查找和存储器读写等基本操作,成功将结果在数码管上显示。
微机原理与接口技术实验报告

微机原理与接口技术实验报告
本次实验是关于微机原理与接口技术的实验报告,通过本次实验,我们将深入
了解微机原理与接口技术的相关知识,并通过实际操作来加深对这些知识的理解和掌握。
实验一,微机原理。
在本次实验中,我们首先学习了微机的基本原理,包括微机的组成结构、工作
原理和基本功能。
通过实际操作,我们了解了微机的主要组成部分,如中央处理器(CPU)、内存、输入输出设备等,并学习了它们之间的工作原理和相互配合关系。
同时,我们还学习了微机的基本指令系统和数据传输方式,加深了对微机工作原理的理解。
实验二,接口技术。
在接口技术的实验中,我们学习了微机与外部设备之间的接口技术,包括并行
接口、串行接口和通用接口等。
我们通过实际操作,了解了这些接口技术的工作原理和应用场景,学会了如何通过接口技术实现微机与外部设备的数据交换和通信。
实验三,实验综合。
在本次实验的最后,我们进行了一个综合实验,通过实际操作来综合运用微机
原理和接口技术的知识,实现一个具体的功能。
通过这个实验,我们加深了对微机原理与接口技术的理解,掌握了如何将理论知识应用到实际操作中。
总结。
通过本次实验,我们深入学习了微机原理与接口技术的相关知识,并通过实际
操作加深了对这些知识的理解和掌握。
微机原理与接口技术作为计算机科学与技术的基础知识,对我们今后的学习和工作都具有重要意义。
希望通过这次实验,能够对大家的学习和工作有所帮助,并为今后的学习打下坚实的基础。
以上就是本次实验的实验报告,希望对大家有所帮助。
感谢大家的阅读!。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在通过实际操作,加深对微机原理与接口技术的理解,掌握接口技术的基本原理和应用方法,提高学生的动手能力和实际应用能力。
实验内容:1. 学习并掌握微机原理与接口技术的基本知识;2. 了解并熟悉常见的接口技术及其应用;3. 进行实际操作,设计并完成一个简单的接口电路。
实验仪器与设备:1. 个人电脑;2. 电子元件,电阻、电容、集成电路等;3. 实验板、示波器、示教电脑等。
实验步骤:1. 阅读相关的微机原理与接口技术的教材,了解基本原理;2. 学习常见的接口技术,例如并行接口、串行接口等;3. 进行实际操作,设计一个简单的接口电路,包括硬件设计和软件编程;4. 调试电路,确保接口电路能够正常工作;5. 编写实验报告,总结实验过程和实验结果。
实验结果与分析:经过实际操作,我们成功设计并完成了一个简单的接口电路。
在实验过程中,我们深入理解了微机原理与接口技术的相关知识,掌握了接口技术的基本原理和应用方法。
通过调试电路,我们验证了接口电路的正常工作,加深了对接口技术的理解。
结论:本次实验使我们更加深入地了解了微机原理与接口技术,提高了我们的动手能力和实际应用能力。
通过设计和完成接口电路,我们对接口技术有了更加直观的认识,为今后的学习和工作打下了坚实的基础。
总结:微机原理与接口技术是计算机专业的重要课程,通过实验学习,我们不仅加深了对知识的理解,还提高了动手能力和实际应用能力。
希望同学们能够认真对待每一次实验,不断提升自己的能力,为未来的发展打下坚实的基础。
至此,本次微机原理与接口技术实验报告完毕。
《微机原理与及接口技术》课程硬件实验报告

图3-4双色LED结构原理图
4.基础型实验
如图 3-5 所示是采用 P1 口控制 4 个双色 LED 的接口电路。在 Keil 环境运行并调程程序,观察结果。
图3-5交通灯显示接口电路
分析:设4个双色LED为东南西北四个方向的交通指示灯,从上到下4个分别代表东南西北方向;设双色LED的1脚控制红色LED,3脚控制绿色LED
延时一段时间后(0.5s),再切换到东西路口的绿灯亮,南北路口的红灯亮;
不断重复以上过程,实现模拟交通灯控制。
硬件实验6八段数码管显示实验
1.实验目的
1)了解数码管实现显示字符的7段码编制方法;
2)掌握查表法获得0-F的7段码的方法;
3)掌握静态显示和动态显示的原理,硬件连接方式和程序编写方法。
2.预习要求
设流经每个LED的电流为3mA,则P0中每条口线上拉出的最大电流是3mA;而灌入P1口线的最大电流是一个数码管的8个LED全部显示的情况,即有24mA。
因此应该在P1口与数码管之间加入驱动芯片(该芯片要求至少能够灌入24mA电流,本图中未画出,实验箱设计图中是加了一个74573)。
5.设计型实验
(1)一个静态数码管的电路如3-14所示,编写程序,在该数码管上依次显示0-9数字,每个数字显示时间为1s。
当红色 LED 点亮、绿色 LED 不点亮时,发光二极管显示红色; 当绿色 LED 点亮、红色 LED 不点亮时,发光二极管显示绿色; 当红色 LED、绿色 LED 同时点亮时,发光二极管呈现的是黄色。
另外,当控制双色 LED 红、绿两个 PN 结流过不同比例的电流时,可以使其发出粉红、淡绿、淡黄、黄色等不同的色彩,达到简单的“彩色”显示效果。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验目的:本次实验旨在熟悉并掌握微机原理与接口技术的相关知识,通过实例操作和分析实验数据,加深对微机原理与接口技术的理解。
一、实验器材与软件1. 硬件器材:计算机主机、外设设备2. 软件工具:操作系统、编程软件二、实验步骤及结果分析1. 实验1:计算机开机自检在实验中,通过开机启动计算机,观察计算机进行自检的过程。
根据显示屏上的自检信息,可以判断计算机硬件的工作状态。
2. 实验2:串口通信测试在本实验中,通过串口通信实现计算机与外设设备之间的数据传输。
首先,将串口接口连接到计算机主机,然后进行相应的设置,包括波特率、数据位、停止位和校验位等。
在实验中,通过编写相应的程序,实现计算机与外设设备之间的数据交互。
通过观察实验结果,判断串口通信是否正常。
3. 实验3:并口通信测试本实验旨在通过并行口通信实现计算机与外设设备之间的数据传输。
首先,将并行口接口连接到计算机主机。
然后,根据实验要求进行相应的设置,包括数据总线的宽度、传输模式等。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断并口通信是否正常。
4. 实验4:USB接口测试在本实验中,通过USB接口实现计算机与外设设备之间的数据传输。
首先,将USB接口连接到计算机主机。
然后,在计算机中安装相应的驱动程序。
通过编写程序,实现计算机与外设设备之间的数据交互。
观察实验结果,判断USB接口是否正常工作。
5. 实验5:网络接口测试本实验旨在通过网络接口实现计算机之间的数据传输。
首先,将计算机连接到局域网中的其他计算机。
然后,进行相应的设置,包括IP地址、子网掩码等。
通过编写程序,实现计算机之间的数据交互。
观察实验结果,判断网络接口是否正常工作。
三、实验总结通过本次实验,我对微机原理与接口技术有了更深入的了解,掌握了串口、并口、USB接口和网络接口等常用接口的使用方法。
通过实验的操作和分析,我对接口通信的原理和实现方式有了更详细的了解,对计算机与外设设备之间的数据传输有了更清楚的认识。
微机原理与接口技术实验报告

微机原理与接口技术实验报告实验一,微机原理实验。
1. 实验目的。
本实验旨在通过对微机原理的实验,加深学生对微机原理相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括微机原理的基本知识、微处理器的结构和功能、微机系统的总线结构、存储器与I/O接口。
3. 实验步骤。
(1)了解微机原理的基本知识,包括微处理器的分类、功能和工作原理。
(2)学习微机系统的总线结构,掌握总线的分类、功能和工作原理。
(3)了解存储器与I/O接口的基本概念和工作原理。
(4)进行实际操作,通过实验板进行微机原理实验,加深对微机原理知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了微机原理的基本知识,掌握了微处理器的结构和功能,了解了微机系统的总线结构,以及存储器与I/O接口的工作原理。
通过实际操作,我对微机原理有了更深入的认识,提高了自己的动手能力和实验技能。
实验二,接口技术实验。
1. 实验目的。
本实验旨在通过对接口技术的实验,加深学生对接口技术相关知识的理解,提高学生的动手能力和实验技能。
2. 实验内容。
本实验主要包括接口技术的基本知识、接口电路的设计与调试、接口技术在实际应用中的作用。
3. 实验步骤。
(1)了解接口技术的基本知识,包括接口的分类、功能和设计原则。
(2)学习接口电路的设计与调试,掌握接口电路设计的基本方法和调试技巧。
(3)了解接口技术在实际应用中的作用,包括各种接口的应用场景和实际案例。
(4)进行实际操作,通过实验板进行接口技术实验,加深对接口技术知识的理解。
4. 实验结果。
通过本次实验,我深刻理解了接口技术的基本知识,掌握了接口电路的设计与调试方法,了解了接口技术在实际应用中的作用。
通过实际操作,我对接口技术有了更深入的认识,提高了自己的动手能力和实验技能。
总结。
通过微机原理与接口技术的实验,我对微机原理和接口技术有了更深入的理解,提高了自己的动手能力和实验技能。
希望通过今后的学习和实践,能够更加深入地掌握微机原理与接口技术的知识,为将来的工作和研究打下坚实的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微原硬件实验报告班级:07118 班学号:070547班内序号:26姓名:杨帆实验一熟悉实验环境及IO的使用一,实验目的1. 通过实验了解和熟悉实验台的结构,功能及使用方法。
2. 通过实验掌握直接使用Debug 的I、O 命令来读写IO 端口。
3. 学会Debug 的使用及编写汇编程序二,实验内容1. 学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,2.用汇编语言编写跑马灯程序。
(使用EDIT 编辑工具)实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的IO 端口地址为EEE0H在Debug 下,I 是读命令。
(即读输入端口的状态---拨码开关的状态)O 是写命令。
(即向端口输出数据---通过发光管来查看)进入Debug 后,读端口拨动实验台上八位拨码开关输入I 端口地址回车屏幕显示xx 表示从端口读出的内容,即八位开关的状态ON 是0,OFF 是 1 写端口输入O 端口地址xx (xx 表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0 是灯亮,1 是灯灭。
2. 在Debug 环境下,用a 命令录入程序,用g 命令运行C>Debug -amov dx, 端口地址mov al,输出内容out dx, almov ah, 0bhint 21hor al, aljz 0100int 20h-g运行查看结果,修改输出内容再运行查看结果分析mov ah, 0bhint 21hor al, aljz 0100int 20h该段程序的作用3.利用EDIT 工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON 为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮) C>EDIT 文件名.asm录入程序按Alt 键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug 进行调试。
四,程序流程图Begin点亮第8盏灯调用延时子程序检测拨码开关状态最低位拨码开关被打开?向右依次点亮LED 向左依次点亮LED检测键盘缓冲区有按键行为?结束,返回DOSNO YESNO YES图表 1:实验1的程序流程图 五,源程序代码DATA SEGMENT;数据段 BB DB 0FFH ;DATA ENDS STACK SEGMENT PARA STACK 'STACK';堆栈段 DB 100 DUP(?)STACK ENDS CODE SEGMENT;代码段ASSUME CS:CODE, SS:STACK ,DS:DATA BEGIN:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV BL,7FHBEG:MOV DX,0EEE0HMOV AL,BLOUT DX,AL ;点亮第8盏灯CALL COUNT ;延时MOV BL,ALIN AL,DXTEST AL,01H ;最低位拨码被按下?方向选择MOV AL,BLJZ RLRR: ROR AL,1 ;未按键,则向右点亮JMP R1RL:ROL AL,1 ;按下则向左点亮R1:MOV BL,ALMOV AH,0BHINT 21H ;检查键盘缓冲区OR AL,ALJZ BEGINMOV AX,4C00HINT 21HCOUNT PROC NEAR ;延时子程序PUSH AXMOV DX,0EEE0HIN AL,DX ;检测拨码状态MOV AH,0MOV BX,0ADD BX,AXPOP AXCOU1: MOV CX,0FFFFHCOU2: LOOP COU2COU3: DEC BX ;调速JNZ COU1RETCOUNT ENDPCODE ENDSEND BEGIN六,思考题通过实验说明用debug 中的 a 命令录入实验中给出的小程序中,有些语句可以不写出“h”字符的原因。
通过观察可以发现,编码时,凡是十六进制数据都是要加H的,而地址则不用。
这是因为编译时所能识别的数据有多种,为了保证编译正常进行,必须要告诉编译器数据的类型。
而地址只有默认的16进制形式,所以不需指定类型就能完成正确的编译,所以无须加H。
而在DEBUG环境下,它的默认数据格式就是十六进制的,所以就不需要写出“H”字符;否则通不过编译。
七,实验收获和体会在这次实验中,我们初步熟悉了在Debug环境下使用I/O命令,实现了对拨码开关状态的读取以及对发光二极管亮灭的控制,即初步尝试了对于微机接口的控制。
通过控制发光二极管的亮与灭,结合相关程序的设计,我们实现了一个简单的跑马灯程序。
结合查询拨码开关的状态,能够实现点亮发光二极管的方向、模式和速度的调整。
这个跑马灯实验的程序使用的是简单的分支结构。
这次实验的要点是对I/O接口译码电路的理解以及使用,通过在Debug环境下的I/O命令,我们测试了外设功能,这使我们了解了地址与端口的对应情况,从而明确了跑马灯程序编写的流程和注意事项。
通过该译码电路实验,我掌握了地址译码电路的设计方法和实现原理,对硬件的I/O接口技术有了进一步的认识。
这次实验也为以后的实验打下了基础,特别是,应先理解了译码电路的工作原理,然后才能进行编程。
实验二8255A并行接口应用一,实验目的1.掌握8255A 的功能及方式0、1 的实现2.熟悉8255A 与CPU 的接口,以及传输数据的工作原理及编程方法。
3.了解七段数码管显示数字的原理。
4.掌握同时显示多位数字的技术。
二,实验内容在实验一的基础上学习PIO 芯片(8255)编程应用,熟悉平台的主要内容。
CS 用Y0 (EE00H)(一) 简要说明:在方式0(输入/输出)下,以 A 口为输出口,B 口为输出口, A 口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段, B 口接数码管的位选(即要使哪个数码管亮), 高电平选中某一位数码管点亮。
8255A 中A 端口地址E E00HB 端口地址E E01HC 端口地址E E02H控制地址EE03H 八段数码管的显示规律及数码管的位选规律自己查找,可用实验一中,学过的I、O 命令来做。
(二)6 位数码管静态显示在数码管电路上静态地显示6 位学号,当主机键盘按下任意键时,停止显示,返回DOS。
提示:该电路 6 个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型编码之后,6 个数码管都有可能显示出相同的数字。
如果要使 6 个数码管“同时”显示不同的数字,必须采用扫描显示的方法,通过选位寄存器选择某一位数码管,显示其数字(对应段值为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位数码管都能显示30 次以上,则人眼看到的是几位数码管同时在显示。
实验证明,在扫描显示过程中,每一位显示延迟1ms 是最佳选择。
(三)6 位数码管动态显示要求在数码管电路 1-6 位数码管上按图 3.2 所示的规律,动态显示字符串 HELLO,当 主机键盘按下任意键时结束。
二, 程序流程图程序一:静态显示学号 8255初始化第1位输出[BX]延时第2位输出[BX+1]延时第3位输出[BX+2]延时第4位输出[BX+3]延时第5位输出[BX+4]延时第6位输出[BX+5]延时键盘输入?退出当前输出字符地址赋给BXYESNO图表 2:静态显示学号的程序流程图四,源程序代码程序一:显示静态学号DATA SEGMENT ;数据段SHOW DB 0EDH,61H,0EDH,0d9H,39H,61H;”0”,”7”,”0”,”5”,”4”,”7”COUNT EQU $-SHOWCAT DB 01H ;8段数码管选通信号DATA ENDSSTACK SEGMENT STACK'STACK'DB 100H DUP(?)STACK ENDS ;代码段CODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACK START PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXNEXT: MOV CX,COUNTLEA BX,SHOWMOV CAT,01H ;最先点亮第1个数字AGAIN:MOV AL,80H ;8255的方式选择MOV DX,0EE03H ;A口方式0输出OUT DX,AL ;B口方式0输出MOV AL,CATMOV DX,0EE01H ;B口为数码管选通端口OUT DX,ALMOV AL,[BX]MOV DX,0EE00H ;A口为8段数码管OUT DX,AL ;依次显示学号数字MOV AL,00HMOV DX,0EE00HOUT DX,AL ;熄灭INC BXSHL CAT,1 ;左移点亮数字位置LOOP AGAINMOV AH,0BH ;检测键盘缓冲区INT 21HOR AL,ALJZ NEXTRETSTART ENDPCODE ENDSEND START程序二:动态显示HELLODATA SEGMENT ;数据段COUNTDOWN DW ? ;时延计数器SPDCOUNT DW 00H ;控速计数器LEDCOUNT DB 00H ;LED COUNT CATCOUNT DB 00H ;CAT COUNT TMP DB 00HLED DB ?CAT DB 01H ;数码管选通信号SPEED DW 0000HDATA ENDSSTACK SEGMENT STACK 'STACK'DB 100 DUP(?)STACK ENDSCODE SEGMENT ;代码段ASSUME CS:CODE, DS:DATA, SS:STACK;延时子程序DELAY1 PROCMOV COUNTDOWN,03FFH LOOPD: DEC COUNTDOWNJNZ LOOPDRETDELAY1 ENDP;给变量LED赋值的子程序ENCODE PROC;根据LEDCOUNT的当前值,给变量LED赋值;使其显示相应的字符CMP LEDCOUNT,00HJA EN1MOV LED,00H ;BLANK "_"JMP NEXTEN1: CMP LEDCOUNT,01HJA EN2MOV LED,00H ;BLANK "_"JMP NEXTEN2:CMP LEDCOUNT,02HJA EN3MOV LED,00H ;BLANK "_" JMP NEXTEN3:CMP LEDCOUNT,03HJA EN4MOV LED,00H ;BLANK "_" JMP NEXTEN4:CMP LEDCOUNT,04HJA EN5MOV LED,00H ;BLANK "_" JMP NEXTEN5: CMP LEDCOUNT,05HJA EN6MOV LED,00H ;BLANK "_"JMP NEXTEN6: CMP LEDCOUNT,06HJA EN7MOV LED,3DH ;”H”JMP NEXTEN7: CMP LEDCOUNT,07HJA EN8MOV LED,0DCH ;”E”JMP NEXTEN8: CMP LEDCOUNT,08HJA EN9MOV LED,8CH ;”L”JMP NEXTEN9:CMP LEDCOUNT,09HJA ENAMOV LED,8CH ;”L”JMP NEXTENA:CMP LEDCOUNT,0AHJA ENBMOV LED,0EDH ;”O”JMP NEXTBENB:MOV LED,00H ;BLANK "_"NEXTB: RET;这里请注意:若要改变LED点亮的模式,改变ENCODE子程序中;变量LED的赋值模式即可ENCODE ENDP;循环点亮控制子程序;CAT是8段数码管的选通信号,这个子程序将;根据当前CATCOUNT的值给CAT赋值CATENCO PROCCMP CATCOUNT,00HJA EB1MOV CAT, 01HJMP NEXTEB1: CMP CATCOUNT,01HJA EB2MOV CAT, 02HJMP NEXTEB2: CMP CATCOUNT,02HJA EB3MOV CAT, 04HJMP NEXTEB3: CMP CATCOUNT,03HJA EB4MOV CAT, 08HJMP NEXTEB4:CMP CATCOUNT,04HJA EB5MOV CAT, 10HJMP NEXTEB5: MOV CAT, 20HNEXT: RETCATENCO ENDP;主程序START:MOV AX, DATAMOV DS, AXMOV ES, AXMOV AL, 80H ;8255初始化MOV DX, 0EE03HOUT DX, AL;A口方式0输出,B口方式0输出,C口无关S1S:MOV DX,0EEE0H ;检测拨码开关状态IN AL, DX ;若拨码开关最低位置位MOV SPEED,0FFFH ;则选择快速模式AND AL, 01H ;未被置位则选择慢速模式JZ FL3MOV SPEED 07FFH ;快速模式FL3:INC CATCOUNTCMP CATCOUNT,06H ;一轮是否显示完毕?JB FL1MOV CATCOUNT,00H ;CATCOUNT值回零INC SPDCOUNTMOV DX,SPEEDCMP SPDCOUNT,DX ;根据速度选择,JB FL1 ;控制改变CAT的频率MOV SPDCOUNT,00HINC TMPCMP TMP,06HJB FL1MOV TMP,00HFL1: MOV DL,CATCOUNTADD DL,TMPMOV LEDCOUNT,DLCMP LEDCOUNT,0CHJB FL2SUB LEDCOUNT,0CHFL2: CALL CATENCO ;依次点亮数码管MOV DX, 0EE01HMOV AL, CATOUT DX, ALCALL ENCODE ;选择此数码管显示的字符MOV DX, 0EE00HMOV AL, LEDOUT DX, ALCALL DELAY1 ;调用延时子程序MOV AH, 0BH ;检测键盘缓冲区INT 21HOR AL, ALJZ S1SMOV AX, 4C00HINT 21HCODE ENDSEND START五,实验心得与体会这次实验中,我们使用8255A并行接口芯片和数码管实现了一个数码管的静态和动态显示字符的程序。