计算机接口实验报告
接口技术实验报告

接口技术实验报告接口技术实验报告导言:接口技术在现代科技发展中扮演着重要的角色。
它是不同系统之间进行数据交换和通信的桥梁,为各种设备和软件提供了互联互通的能力。
本实验旨在通过实际操作,深入了解接口技术的原理和应用。
一、实验目的本次实验的目的是探索接口技术在实际应用中的作用和效果。
通过搭建一个简单的接口系统,我们可以了解接口的基本原理、数据传输方式以及如何进行接口的配置和测试。
二、实验设备和材料本次实验所需的设备和材料包括:一台计算机、一个串口转USB线缆、一块开发板、一根网线。
三、实验步骤1. 连接计算机和开发板将串口转USB线缆的USB接口插入计算机的USB接口,然后将串口转USB线缆的串口接口插入开发板的串口接口上。
2. 配置串口参数打开计算机的设备管理器,找到串口转USB线缆所对应的串口号,记录下来。
然后打开开发板上的串口配置界面,将串口号设置为与计算机上一致。
3. 编写测试程序使用C语言编写一个简单的测试程序,通过串口与开发板进行通信。
程序中包括发送数据和接收数据的功能,可以进行双向通信测试。
4. 运行测试程序将编写好的测试程序下载到开发板上,然后在计算机上运行相应的接收程序。
通过观察计算机上的输出和开发板上的LED灯状态,判断数据的传输是否成功。
5. 测试结果分析根据实际测试结果,分析接口技术的稳定性和可靠性。
如果数据传输成功率较高,说明接口配置正确,接口技术应用良好。
四、实验结果与讨论通过本次实验,我们成功搭建了一个简单的接口系统,并进行了数据传输测试。
实验结果显示,接口技术在数据传输方面表现出较高的稳定性和可靠性。
通过合理的配置和编程,我们能够实现计算机与外部设备之间的数据交换和通信。
接口技术的应用范围非常广泛,涉及到计算机、通信、自动化控制等领域。
例如,USB接口被广泛应用于外部设备的连接,如打印机、扫描仪等;串口接口则常用于嵌入式系统和单片机的通信;网口接口则用于实现计算机之间的局域网通信等等。
计算机接口技术实验报告优选全文

最新精选全文完整版(可编辑修改)《计算机接口技术》实验报告专业:电信息科学与技术班级:姓名:学号:年月日实验一:8255A并行口实验实验目的:掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。
实验内容:一、实验原理实验原理图如图5-9所示,PB4 ~ PB7和PC0 ~ PC7分别与发光二极管电路L1~ L12 相连,本实验为模拟交通灯实验。
交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。
8255A的PB4~ PB7对应黄灯,PC0 ~ PC3对应红灯,PC4~ PC7对应绿灯。
8255A 工作于模式0,并置为输出。
由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。
二、实验线路连接(1) CS-8255插孔连译码输出Y7插孔。
(2) L1 - PC4 L4 - PC5 L7 - PC6 L10 - PC7L2 - PB4 L5 - PB5 L8 - PB6 L11 - PB7L3 - PC0 L6 - PC1 L9 - PC2 L12 - PC3三、实验软件清单见随机光盘,文件名为H8255-2.ASM四、实验步骤1、按图5-9连好实验线路2、运行实验程序在DVCC-8086JHN上显示"8255-2"。
同时L1~L12 发光二极管模拟交通灯显示。
CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073H ;设置控制端常量IOAPT EQU 0070H ;设置数据端口A地址常量IOBPT EQU 0071H ;设置数据端口B地址常量IOCPT EQU 0072H ;设置数据端口C地址常量IOBDATA EQU 0500HCONTPORT EQU 00DFHDA TAPORT EQU 00DEHDA TA1 EQU 0640HSTART: JMP IOLEDIOLED: CALL FORMATCALL LEDDISPMOV AX,0HMOV DS,AXMOV AL,82HMOV DX,IOCONPT ;写8255控制字,三个口均工作于方式0OUT DX,AL ;往控制端口写控制字,设置A口工作在方式0输入,B方式0输出MOV DX,IOBPT ;读PB口数据存0601H单元IN AL,DXnot almov al,00hnopnopMOV BYTE PTR DS:[0501H],ALMOV DX,IOCONPT ;写方式控制字均为输出MOV AL,80HOUT DX,ALMOV DX,IOBPT ;置PB0,PB4~PB6为1,其余为0MOV AL,DS:[0501H]OR AL,0FH ;使PB0~PB3为1,PB4~PB7为0OUT DX,AL ;即熄灭红灯,点亮绿灯MOV DX,IOCPT ;使PC1,PC4~PC6为1,其余为0MOV AL,0FH ;使PC0~PC3为1,PC4~PC7为0OUT DX,ALCALL DELAY1 ;延时IOLED0: MOV AL,01011010B ;使2,4路口绿灯亮,1,3口红灯亮MOV DX,IOCPTOUT DX,ALCALL DELAY1CALL DELAY1and AL,0FH ;灭2,4路口绿灯OUT DX,ALMOV CX,8H ;只计数器值为8IOLED1: MOV DX,IOBPTMOV AL,DS:[0501H]or AL,01011111B ;点亮2,4路口黄灯OUT DX,ALCALL DELAY2 ;短暂延时and AL,00000000B ;灭掉黄灯OUT DX,ALCALL DELAY2LOOP IOLED1 ;黄灯闪烁8次MOV DX,IOCPTMOV AL,0FH ;点亮4个绿灯,灭掉4个红灯OUT DX,ALCALL DELAY2MOV AL,10100101B ;点亮1,3口红灯和2,4路口绿灯OUT DX,ALCALL DELAY1CALL DELAY1and AL,0FH ;灭掉红灯OUT DX,ALMOV CX,8HIOLED2: MOV DX,IOBPTMOV AL,DS:[0501H]or AL,10101111B ;点亮1,3路口黄灯OUT DX,ALCALL DELAY2and AL,00000000B ;灭掉黄灯OUT DX,ALCALL DELAY2LOOP IOLED2MOV DX,IOCPTMOV AL,0FH ;点亮4个绿灯,灭掉4个红灯OUT DX,ALCALL DELAY2JMP IOLED0 ;循环DELAY1: PUSH AXPUSH CX ;延时子程序MOV CX,0030HDELY2: CALL DELAY2LOOP DELY2POP CXPOP AXRETDELAY2: PUSH CXMOV CX,8000HDELA1: LOOP DELA1POP CXRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:[0600H],00LED1: CMP BYTE PTR DS:[0600H],07H JA LED2MOV BL,DS:[0600H]MOV BH,0HMOV AL,CS:[BX+DATA1]MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:[0600H],01HJNZ LED1LED2: RETFORMAT: MOV BX,0MOV WORD PTR DS:[BX+0640H],405BHADD BX,2MOV WORD PTR DS:[BX+0640H],4040HADD BX,2MOV WORD PTR DS:[BX+0640H],6D6DH ADD BX,2MOV WORD PTR DS:[BX+0640H],7F5BHRETCODE ENDSEND START实验二:定时/计数器实验目的:1. 学会8253芯片和微机接口原理和方法。
简单io口扩展实验报告

简单IO口扩展实验报告1. 背景在实际应用中,我们经常需要扩展计算机的输入输出(IO)接口,以满足不同的需求。
而简单IO口扩展就是一种常见且重要的扩展方式。
通过简单IO口扩展,我们可以将计算机连接到更多的外部设备,如传感器、执行器等,从而实现更多功能和应用。
2. 分析2.1 简单IO口介绍简单IO口是指通用输入输出接口,它可以通过数字信号来进行数据的输入和输出。
每个简单IO口通常包括一个输入引脚和一个输出引脚。
通过控制这些引脚的电平状态,我们可以实现数据的输入和输出。
2.2 简单IO口扩展方法简单IO口可以通过不同的方法进行扩展,常见的方法包括:•并行接口:使用并行接口可以同时传输多个位的数据。
它通常使用多条数据线和一些控制线来实现高速数据传输。
•串行接口:使用串行接口可以逐位地传输数据。
它通常使用一条数据线和一些控制线来实现较低速率但更简洁的数据传输。
•USB接口:USB(Universal Serial Bus)是一种常见的数字串行总线接口,它可以连接多种设备,并提供高速数据传输和供电功能。
•SPI接口:SPI(Serial Peripheral Interface)是一种常用的串行外设接口,它可以连接多个外设,并以主从模式进行数据传输。
•I2C接口:I2C(Inter-Integrated Circuit)是一种常见的串行通信接口,它可以连接多个外设,并使用两条线路进行数据传输。
2.3 简单IO口扩展实验本次实验旨在通过简单IO口扩展方法,将计算机与外部设备进行连接,并实现数据的输入和输出。
具体步骤如下:1.确定要使用的简单IO口扩展方法,如并行接口、串行接口等。
2.根据选择的扩展方法,准备相应的硬件模块和连接线缆。
3.将硬件模块与计算机进行连接,确保电气连通性。
4.编写相应的驱动程序或使用现有的驱动程序,以实现与硬件模块的通信。
5.运行程序并测试扩展功能。
3. 结果经过实验测试,我们成功地实现了简单IO口扩展,并达到了预期的结果。
NEUQ 计算机接口技术实验报告

计算机接口技术实验报告学号:姓名:提交日期:成绩:东北大学秦皇岛分校计算机与通信工程学院实验1、IO地址译码一、实验目的掌握8253的基本工作原理和编程方法。
二、实验内容按图16虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
三、编程提示8253控制寄存器地址283H计数器0地址280H计数器1地址281HCLK0连接时钟1MHZASM程序:ioport equ 0d400h-0280hio8253a equ ioport+283hio8253b equ ioport+280hcode segmentassume cs:codestart: mov al,14h ;设置8253通道0为工作方式2,二进制计数mov dx,io8253aout dx,almov dx,io8253b ;送计数初值为0FHmov al,0fhout dx,allll: in al,dx ;读计数初值call disp ;调显示子程序push dxmov ah,06hmov dl,0ffhint 21hpop dxjz lllmov ah,4ch ;退出int 21hdisp proc near ;显示子程序push dxand al,0fh ;首先取低四位mov dl,alcmp dl,9 ;判断是否<=9jle num ;若是则为'0'-'9',ASCII码加30Hadd dl,7 ;否则为'A'-'F',ASCII码加37Hnum: add dl,30hmov ah,02h ;显示int 21hmov dl,0dh ;加回车符int 21hmov dl,0ah ;加换行符int 21hpop dxret;子程序返回disp endpcode endsend start实验现象:开始时代表低电平的灯亮,按单脉冲信号5次后高电平的等亮实验2、简单并行接口一、实验目的掌握8253的基本工作原理和编程方法。
江苏大学接口实验报告

通信网络接口编程实验报告学院:计算机科学与通信工程学院班级:姓名:学号:2014.05.08实验一、简单的客户机/服务器程序的实现一、说明1、建立项目时选择创建windows控制台程序,同时选择包含MFC类库。
所谓控制台程序指模拟的DOS字符提示,而不是windows应用程序的图形界面。
2、头文件说明 #include<....> 表示引用标准库的头文件。
(#include"..." 表示引用非标准库的头文件)3、每次做实验时都看一下“实验说明”文档。
二、实验要求1、读懂参考程序,说明客户机/服务器的地址定位、while(true)的作用等。
①客户机/服务器的地址定位的作用:发起通信连接的称为客户端,而等待呼叫请求的是服务器;②While(ture)的作用:连续监听是否有客户端连接,如果有客户机接入就可以向它发送信息。
2、调试参考程序,打印运行结果①客户端:3、(合理)调整客户机/服务器的端口,检查可行性4、改服务器的输送字符为控制台输入方法(用gets函数)运行结果:①服务端:②客户端:5、将客户机/服务器分开运行(客户机用本机地址运行,服务器安装到另一台机器上)多客户同时访问服务器,说明运行结果答:能同时进行访问。
6、说明并分析实验过程中遇到的问题、原因及解决方法答:遇到的问题:①修改了buf[]的容量后还是出现“烫烫烫……”。
原因:没改IP地址。
解决方法:将IP地址改成匹配的地址。
7、按以上要求完成实验报告8、思考实验中输入、输出缓冲区的匹配问题与TCP字节流传输方式有没有矛盾答:没有矛盾,因为输入、输出缓冲区的匹配问题导致了最终客户端接收的信息不完整,而TCP字节流传输方式是一种可靠的传输方式,也就是说保证了字节流在传输过程中不会存在比特信息位的丢失问题,所以两者并不矛盾。
三、参考程序客户端:#pragma comment(lib, "ws2_32.lib")#include<winsock2.h>#include<stdio.h>void main(){WSADATA wsaData;WSAStartup(MAKEWORD(2,2),&wsaData);SOCKET connSock=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_IN servAddr;char buf[50];servAddr.sin_family=AF_INET;servAddr.sin_port=htons(9878);servAddr.sin_addr.s_addr=inet_addr("202.195.167.96");connect(connSock,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN));recv(connSock,buf,50,0);printf("%s",buf);getchar();}服务器端:#pragma comment(lib,"ws2_32.lib")#include<winsock2.h>void main(){WSADATA wsaData;WSAStartup(MAKEWORD(2,2),&wsaData);SOCKET servSock,cliSock;SOCKADDR_IN servAddr;servAddr.sin_family=AF_INET;servAddr.sin_port=htons(9878);servAddr.sin_addr.s_addr=htonl(INADDR_ANY);servSock=socket(AF_INET,SOCK_STREAM,0);bind(servSock,(SOCKADDR*)&servAddr,sizeof(SOCKADDR_IN));listen(servSock,5);while(true){cliSock=accept(servSock,NULL,NULL);send(cliSock,"欧燕秋,加油↖(^ω^)↗",50,0);}}实验二、参数backlog测试一、实验内容与步骤1、send和recv函数中参数len的作用调整实验一中len值的大小,使其分别小于、大于实际写入/读出的值运行结果:①len值小于实际写入值,能显示实际值的部分的信息,大于实际值的出现“烫烫烫……”,如图:②len值大于实际写入值,能显示所有信息,如图:2、Listen函数中参数backlog的作用a) 将实验一中backlog的值设为5,分别让5个、6个、6个以上的客户端同时或间隔访问一个服务器,观察访问情况;答:将实验中的backlog的值定为1,让2个客户端同时或间隔访问一个服务器,两个客户端均能接收到信息。
系统接口实验报告

实验名称:系统接口设计与实现实验日期:2023年3月10日实验地点:计算机实验室一、实验目的1. 理解系统接口的概念和作用。
2. 掌握系统接口的设计原则和实现方法。
3. 学会使用常用的接口技术,如API、Web服务等。
4. 提高编程能力和团队协作能力。
二、实验内容1. 系统接口概述2. 系统接口设计3. 系统接口实现4. 系统接口测试三、实验原理系统接口是软件系统中各个模块之间进行交互的桥梁,它定义了模块之间通信的规则和方式。
良好的系统接口设计可以提高系统的可维护性、可扩展性和可复用性。
四、实验步骤1. 系统接口概述首先,我们需要了解系统接口的概念和作用。
系统接口是软件系统中各个模块之间进行交互的桥梁,它定义了模块之间通信的规则和方式。
良好的系统接口设计可以提高系统的可维护性、可扩展性和可复用性。
2. 系统接口设计(1)确定接口需求:根据系统需求分析,确定各个模块之间需要交互的数据和功能。
(2)定义接口规范:根据接口需求,定义接口的输入、输出参数、返回值等。
(3)设计接口协议:根据接口规范,设计接口的通信协议,包括数据格式、传输方式等。
(4)编写接口文档:将接口规范和协议整理成文档,以便其他开发者理解和使用。
3. 系统接口实现(1)选择编程语言:根据项目需求和团队熟悉程度,选择合适的编程语言进行接口实现。
(2)编写接口代码:根据接口规范和协议,编写接口代码,实现模块之间的交互。
(3)测试接口:编写测试用例,对接口进行测试,确保接口功能的正确性和稳定性。
4. 系统接口测试(1)编写测试用例:根据接口规范和协议,编写测试用例,涵盖接口的所有功能。
(2)执行测试用例:使用测试工具或手动执行测试用例,检查接口的输出是否符合预期。
(3)分析测试结果:对测试结果进行分析,找出接口中存在的问题,并进行修复。
五、实验结果与分析1. 实验结果本次实验成功实现了系统接口的设计与实现,包括接口需求分析、接口规范定义、接口协议设计、接口代码编写和接口测试。
接口试验6实验报告

南通大学实验报告院、系计算机科学与技术年级专业大二计算机科学与技术实验名称:数码管(LED)实验一.实验目的1.理解8段数码管(LED)的基本原理(如图5-3和图5-4)。
2.理解8段数码管(LED)的显示和编程方法。
3.理解4连排共阴极8段数码管LG5641AH与MCU的接线图(如图5-5和如图5-6)。
二.知识要点本实验所使用的是四连排8段共阴极数码管(如图2-9所示)。
该数码管共有两种引线:8根数据线和4根位选线。
数码管的显示原理和小灯点亮相同,如图5-6所示。
a、b、c、d、e、f、g、h是数码管的数据线,为8段的阳极引脚,是不同位数码管的数据线共享,CS3、CS2、CS1、CS0是位选线,为8段阴极的公共引脚。
为了使每个时刻只能让一个数码管有效,即CS3、CS2、CS1、CS0只能有一个为0,例如令CS3=0,CS2、CS1、CS0=111,则数据线上的数据显现在数码管的第一位,其他位则不受影响。
要让各个数据管均显示需要的数字,则必须逐个使相应位选信号为0,其他位选信号为1,并将要显示的一位数字送到数据线上。
这种方法叫“位选线扫描法”。
但是数码管采用图5-5所示与MCU的IO引脚直接相连,显示亮度不足,为了提高亮度,将位选线各自经过三极管连接,提高位选线的电流,IO引脚与三极管的基极相连。
具体如图2-10所示。
则位选信号改为1,即为选中。
但是实际中需要让每位都显示数字,则只能依据“视觉暂留效应”(约100ms左右),看起来则是同时显示的,放电影原理也如此。
LED所用的接口是普通IO口,功能也是IO口的普通功能。
所以编程也是先确定接口的方向,然后将所显示的开关量送给LED,LED是将成形的小灯组合成相应的数字。
各步骤如下:(一)LED的C语言编程,首先初始化:1)初始化2)设定显示码表和片选表,为了成形的小灯组合成相应的数字3)使用LED(其实就是小灯点亮的原理)三.实验内容在光盘资料中提供读者数码管(LED)实例程序文件夹。
《计算机接口与通信技术》综合实验报告

《计算机接口与通信技术》综合实验报告《计算机接口与通信技术》综合实验报告院系部:专业班级:组长:组员:实验台号:指导教师:成绩:实验日期:实验1 8255A小键盘实验一. 实验目的(1)掌握8255A编程原理。
(2)了解键盘结构,学会读取键盘输入的方法。
二. 实验内容用8255A来实现一个小键盘的输入识别(用行扫描法或反转法均可)。
(1)基于图再完成下述连接,即将8255A的CS端与218~21F插孔相连,此时:8255A的端口A地址为218H端口B地址为219H端口C地址为21AH控制口地址为21BH(2)编写程序,使得在小键盘上按键后,微机屏幕上有相应字符显示出来。
三. 仪器用具四.实验接线图五. 程序设计流程图:程序代码:DA TA SEGMENTTABLE1 DW 0101H,0102H,0104H,0108H,0110H,0120H,0140H,0180HDW 0201H,0202H,0204H,0208H,0210H,0220H,0240H,0280HDW 0401H,0402H,0404H,0408H,0410H,0420H,0440H,0480H CHAR DB 'CDEFBA9845673210WXYSRPMG'MESS DB 'PRESS A KEY ON THE SMALL KEYBOARD!',0AH,0DH DB 'IT WILL DISPLAY ON THE SCREEN ! ',0AH,0DHDB 'PRESS R KEY, RETURN TO DOS !',0AH,0DH,'$' IOPORT EQU 0DC00H-200HIO8255A EQU IOPORT+218H ;8255A口IO8255B EQU IOPORT+219H ;8255B口IO8255C EQU IOPORT+21BH ;8255控制端口DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACKSSTART: MOV AX,DA TAMOV DS,AXMOV DX,OFFSET MESSMOV AH,09INT 21H ;显示提示信息Q1: MOV AL,82H ;送8255控制字,A出口,B入口MOV DX,IO8255COUT DX,ALQ2: MOV AL,00MOV DX,IO8255AOUT DX,AL ;A口输出行值MOV DX,IO8255BIN AL,DX ;B口读入列值AND AL,0FFHCMP AL,0FFHJZ Q2MOV BL,AL ;有键入,保存键值MOV DI,0040 ;延迟,等待释放BB: MOV CX,6000HAA: LOOP AADEC DIJNZ BBMOV DX,IO8255C ;送8255控制字,B口出,A口入MOV AL,90HOUT DX,ALMOV DX,IO8255BMOV AL,BLOUT DX,AL ;B口输出列值MOV DX,IO8255AIN AL,DX ;A口读入行值CMP AL,0FFHJNZ KEYNKEYN: PUSH AX ;去抖MOV DX,IO8255ARELEA: IN AL,DXCMP AL,0FFHJNZ RELEAPOP AXMOV AH,BL ;AH=列值,BH=行值NOT AX ;键值AX求反MOV SI,OFFSET TABLE1 ;送键值表指针MOV DI,OFFSET CHAR ;送字符表指针MOV CX,24Q4: CMP AX,[SI] ;键值查表JZ Q5ADD SI,02 ;未查到,修改表指针INC DILOOP Q4JMP Q1Q5: MOV DL,[DI] ;查到,显示该字符CMP DL,'R'JZ Q6MOV AH,02HINT 21HJMP Q1Q6: MOV AX,4C00H ;键值='R',返回DOSINT 21HCODE ENDS六.试验方法与步骤1.按实验要求连线将8255A的CS端与218~21F插孔相连2.编程,程序如上3.运行程序七.实验结果八.讨论与结论操作实验板上的小键盘按键会在计算机屏幕上进行显示,对键盘上的WXYS键都以空格响应,R退出,其余显示对应字符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机接口技术实验电子与信息工程班级:电子0911姓名:学号:2012年5月9日实验一、I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容实验电路如图1-1所示,图中线路两端有节点的信号线需要用户用实验导线连接起来。
其中74LS74为D触发器,可直接使用实验台上部系统板上的D触发器。
74LS138为地址译码器。
译码输出端Y0~Y7在实验台中间系统板上引出,每个输出端包含8个地址,即:Y0:280H~287H;Y4:2A0H~2A7H;Y1:288H~28FH;Y5:2A8H~2AFH;Y2:290H~297H;Y6:2B0H~2B7H;Y3:298H~29FH;Y7:2B8H~2BFH;当CPU执行I/ O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
例如:执行下面两条指令,对应的译码输出脚输出一个负脉冲。
MOV DX,PORT1OUT DX,AL(或IN AL,DX)执行下面两条指令,对应的译码输出脚输出一个负脉冲。
MOV DX,PORT2OUT DX,AL(或IN AL,DX)利用这个负脉冲控制发光二极管L0闪烁发光(亮灭循环),时间间隔通过软件延时实现。
注意:命令中的端口地址PORT1、PORT2 是根据DVCC卡的I/O基址再加上偏移量计算出来的,不同的微机DVCC卡的I/O基址可能不同,需要事先查找出来,详细见《用户手册》第五章节5.3中第10~12点介绍的查找方法。
计算公式如下:PORT1 = 查找出的DVCC卡的I/O基址 + 偏移量其中:偏移量 = Y0~Y7中所选定的任意一个译码地址值-280H。
下面的程序用到Y4,即2A0H。
假设DVCC卡的I/O基地址=0C400H,经计算PORT1= 0C420H。
三、编程提示1.实验电路中D触发器的CLK 端输入脉冲时,上升沿使Q端输出高电平,L0发光,CLR端加低电平L0灭。
四、原理图五、程序;*******************************; ;* I/O地址译码 *; ;*******************************;ioport equ 0c400h-0280h outport1 equ ioport+2a0h outport2 equ ioport+2a8hcode segmentassume cs:codestart:mov dx,outport1out dx,alcall delay ;调延时子程序mov dx,outport2out dx,alcall delay ;调延时子程序mov ah,1int 16hje startmov ah,4chint 21hdelay proc near ;延时子程序mov bx,2000lll: mov cx,0ll: loop lldec bxjne lllretdelay endpcode endsend start六、实验心得通过此次I/O地址译码实验,让我对硬件的连线有了进一步的熟化,在做第一个实验的时候,我们将clk接口接在了Y0和clr接在了Y1上面,发现接在L4灯上信号没有反应,后来在反复的检查中发现它们应该接在Y4和Y5上,这与程序的编译的地址有关,在许老师的解释下我们终于搞懂了。
虽然我们习惯了C语言的编程,而且现在所有的设计题都是用的C语言,但是汇编也是比较重要的语言,所以今后学习还得熟化。
实验二、可编程定时计数器1一、实验目的掌握8253的基本工作原理和编程方法。
二、实验内容1.按图接线,将计数器0设置为方式0,计数器初值为N(N≤0FH,本例程中为0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用L0或逻辑笔观察OUT0电平变化,初始时OUT0为高电平,当输入N个脉冲时,OUT0变为低电平,当输入N+1个脉冲后OUT0变高电平)。
三、原理图四、实验流程图五、程序;*************************;;* 8253方式0计数器实验 *;;*************************;ioport equ 0C400h-0280hio8253k equ ioport+283hio8253a equ ioport+280hcode segmentassume cs:codestart:mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253kout dx,almov dx,io8253a ;送计数初值为08Hmov al,08hout dx,allll: in al,dx ;读计数初值call disp ;调显示子程序push dxmov ah,06hmov dl,0ffhint 21hpop dxjz lllmov ah,4ch ;退出int 21hdisp proc near ;显示子程序push dxand al,0fh ;首先取低四位mov dl,alcmp dl,9 ;判断是否<=9jle num ;若是则为'0'-'9',ASCII码加30Hadd dl,7 ;否则为'A'-'F',ASCII码加37Hnum: add dl,30hmov ah,02h ;显示int 21hmov dl,0dh ;加回车符int 21hmov dl,0ah ;加换行符int 21hpop dxret ;子程序返回disp endpcode endsend start六、实验心得本实验的实验现象是在实验箱上按动按键,在电脑屏幕上出现的字符由程序设定,然后按键以后,电脑上的字符会相应的变化,当计数到零时L0灯会亮起,但程序的缺点是无法再次计数使L0灯熄灭。
通过此次实验,让我们对可编程定时计数器8253A的0方式编程有了进一步的认识,正所谓学有所用,只在书本上看程序不如在实际中应用的有感觉,而且,所有的学科都来源于生活,没有生活的具体要求,所有的研究都是徒劳,所以我们应该将书本的知识与实际联系起来才能更加的深刻。
实验三、可编程定时计数器2一、实验目的掌握8253的基本工作原理和编程方法。
二、实验内容1.按图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用电平指示灯L0或逻辑笔观察OUT1输出电平的变化,要求输出频率1HZ的分频信号。
三、原理图四、实验流程图、五、程序;*******************;* 8253分频 *;*******************ioport equ 0C400h-0280hio8253a equ ioport+280h io8253b equ ioport+281h io8253k equ ioport+283hcode segmentassume cs:codestart:mov dx,io8253k ;向8253写控制字mov al,36h ;使0通道为工作方式3out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节mov al,ahout dx,al ;后写入高字节mov dx,io8253kmov al,76h ;设8253通道1工作方式2out dx,almov ax,1000 ;写入循环计数初值1000mov dx,io8253bout dx,al ;先写低字节mov al,ahout dx,al ;后写高字节mov ah,4ch ;程序退出int 21hcode endsend start六、实验心得本实验的实验现象是电脑上程序运行一遍以后,电脑屏幕会退出编译界面,L4灯会闪烁,分析程序后发现,原来程序没有加入循环环节,所以只能向芯片发送一次程序,这些都是可以通过程序来改进的。
连接电路时,我是把所有线全部拆了再连接这个电路的,最后发现其实有好多的连线与上一个实验相同,这就告诉我们,在做一件事之前,我们得做好充分的准备再做事才能事半功倍。
实验四、可编程并行接口一、实验目的掌握8255方式0的工作原理及使用方法。
二、实验内容1.按图接线,8255C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。
2. 编程从8255C口输入数据,再从A口输出。
3.由于DVCC卡使用PCI总线,所以分配的IO地址每台微机可能都不同,编程时需要了解当前的微机使用那段IO地址并进行设置,获取方法见《用户手册》第五章节5.3第10~12点中的介绍。
下面的程序D8255_1.ASM(在文件夹“ASM_汇编例程”中)是需要用户自己根据查找到的DVCC卡的I/O基址替换到程序中带下划线的位置(0C400H)。
三、编程提示1.8255控制寄存器端口地址 28BH,A口的地址 288H,C口的地址 28AH。
四、原理图五、实验流程图六、程序;*******************************;;* 8255方式0的C口输入,A口输出 *; ;*******************************;ioport equ 0C400h-0280hio8255a equ ioport+288hio8255b equ ioport+28bhio8255c equ ioport+28ahcode segmentassume cs:codestart: mov dx,io8255b ;设8255为C口输入,A口输出mov al,8bhout dx,alinout: movdx,io8255c ;从C口输入一数据in al,dxmov dx,io8255a ;从A口输出刚才自C口out dx,al ;所输入的数据mov dl,0ffh ;判断是否有按键mov ah,06hint 21hjz inout ;若无,则继续自C口输入,A口输出mov ah,4ch ;否则返回int 21hcode endsend start七、实验心得在做并行口8255C的实验的时候,我们将8255CS信号线连接在一个开关上,这就使得选通8255芯片的控制权交到了实验者得手上,只有拨动开关时才能使8255工作,为了方便起见,我们只连接了一盏灯和一个开关来进行实验的,拨动开关时,看到相应接的灯有亮灭的变化。
实验五、七段数码管显示程序1一、实验目的掌握数码管显示数字的原理二、实验内容1. 静态显示:数码管为共阴极,通过BCD码译码驱动器CD4511驱动,其输入端A~D输入4位BCD码,位码输入低电平选中。
按图连接好电路,将8255的A口PA0~PA3与七段数码管LED1的BCD码驱动输入端A1~D1相连,8255的A口PA4~PA7与七段数码管LED2的BCD码驱动输入端A2~D2相连),8255的B 口PB0~PB3与七段数码管LED3的BCD码驱动输入端A3~D3相连,8255的B口PB4~PB7与七段数码管LED4的BCD码驱动输入端A4~D4相连,8255的C口PC0~PC3分别与七段数码管LED1~LED4的位驱动输入端DG1~DG4相连。