接口实验报告
- 格式:doc
- 大小:1.20 MB
- 文档页数:9
接口技术实验报告接口技术实验报告导言:接口技术在现代科技发展中扮演着重要的角色。
它是不同系统之间进行数据交换和通信的桥梁,为各种设备和软件提供了互联互通的能力。
本实验旨在通过实际操作,深入了解接口技术的原理和应用。
一、实验目的本次实验的目的是探索接口技术在实际应用中的作用和效果。
通过搭建一个简单的接口系统,我们可以了解接口的基本原理、数据传输方式以及如何进行接口的配置和测试。
二、实验设备和材料本次实验所需的设备和材料包括:一台计算机、一个串口转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芯片和微机接口原理和方法。
实验名称:编程接口技术应用实验日期:2023年X月X日实验地点:XX大学计算机实验室实验目的:1. 理解编程接口的基本概念和作用。
2. 掌握编程接口的常见类型及其应用场景。
3. 学会使用编程接口进行实际项目开发。
实验内容:一、实验背景随着计算机技术的飞速发展,编程接口(API)已成为软件开发中不可或缺的一部分。
编程接口允许不同的软件组件之间进行通信,提高了软件的可重用性和扩展性。
本实验旨在通过实际操作,加深对编程接口的理解和应用。
二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 编程语言:C#三、实验步骤1. 理解编程接口的基本概念编程接口是指一组预定义的函数、类、方法和数据结构,用于实现不同软件组件之间的交互。
编程接口包括以下几种类型:(1)函数接口:通过函数声明和函数调用实现接口。
(2)类接口:通过类定义和对象创建实现接口。
(3)接口:通过接口定义和实现接口实现接口。
2. 学习常见编程接口(1).NET Framework API:提供丰富的类库,包括Windows窗体、WPF、 等。
(2)Java API:提供Java标准库、Java Web开发库等。
(3)Python API:提供Python标准库、第三方库等。
3. 使用编程接口进行实际项目开发(1)创建一个简单的Windows窗体应用程序。
(2)在应用程序中添加一个按钮,并为按钮添加点击事件处理程序。
(3)在事件处理程序中,使用编程接口实现以下功能:- 显示一个消息框,提示用户“按钮被点击了!”。
- 获取当前时间,并显示在应用程序的标签控件中。
4. 实验结果与分析通过本实验,我们成功创建了一个简单的Windows窗体应用程序,并实现了以下功能:- 使用函数接口实现按钮点击事件处理。
- 使用.NET Framework API显示消息框。
- 使用.NET Framework API获取当前时间,并显示在标签控件中。
一、实验目的1. 了解接口地址的概念和作用。
2. 掌握接口地址的制作方法。
3. 提高网络编程能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 网络工具:Wireshark三、实验原理接口地址,即IP地址,是计算机网络中用于标识每个网络设备的地址。
在互联网中,每个设备都需要一个唯一的IP地址才能进行通信。
接口地址的制作主要包括公网IP地址和私有IP地址。
1. 公网IP地址:由互联网服务提供商(ISP)分配,用于在互联网中唯一标识一个设备。
2. 私有IP地址:用于局域网内部,不会在互联网中公开。
四、实验步骤1. 制作公网IP地址(1)使用Python的socket库获取本机的公网IP地址。
```pythonimport socketdef get_public_ip():try:s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)s.connect(('8.8.8.8', 80))ip = s.getsockname()[0]except Exception as e:print("获取公网IP地址失败:", e)finally:s.close()return ippublic_ip = get_public_ip()print("公网IP地址:", public_ip)```(2)使用Wireshark抓包工具验证公网IP地址。
2. 制作私有IP地址(1)使用Python的socket库获取本机的私有IP地址。
```pythonimport socketdef get_private_ip():try:s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('192.168.1.1', 80))ip = s.getsockname()[0]except Exception as e:print("获取私有IP地址失败:", e)finally:s.close()return ipprivate_ip = get_private_ip()print("私有IP地址:", private_ip)```(2)使用Wireshark抓包工具验证私有IP地址。
一、实验目的1. 了解光纤接口的基本原理和结构。
2. 掌握光纤接口的测试方法和性能指标。
3. 熟悉光纤连接器的使用和维护。
4. 通过实验,加深对光纤通信原理的理解。
二、实验原理光纤接口是光纤通信系统中连接光纤与光纤、光纤与设备的关键部件。
其主要功能是实现光信号的传输和转换。
本实验主要研究单模光纤接口,包括光纤连接器、光纤耦合器、光纤适配器等。
光纤连接器是连接两根光纤的部件,常用的连接器有FC、SC、LC、ST等类型。
光纤耦合器用于连接两根或多根光纤,实现光信号的合并或分离。
光纤适配器用于连接不同类型的光纤连接器。
三、实验仪器与设备1. 光纤测试仪2. 光纤连接器(FC、SC、LC、ST等)3. 光纤耦合器4. 光纤适配器5. 光纤跳线6. 光纤光源7. 光功率计8. 光纤显微镜四、实验步骤1. 光纤连接器连接测试(1)将两根光纤分别插入FC连接器中。
(2)使用光纤测试仪检测两根光纤之间的连接质量,包括插入损耗、回波损耗等指标。
(3)记录测试数据,分析连接质量。
2. 光纤耦合器测试(1)将两根光纤分别插入光纤耦合器中。
(2)使用光纤测试仪检测两根光纤之间的耦合效果,包括耦合效率、插入损耗、回波损耗等指标。
(3)记录测试数据,分析耦合效果。
3. 光纤适配器测试(1)将不同类型的光纤连接器分别插入光纤适配器中。
(2)使用光纤测试仪检测适配器连接质量,包括插入损耗、回波损耗等指标。
(3)记录测试数据,分析适配器连接质量。
4. 光纤连接器外观检查(1)使用光纤显微镜观察光纤连接器的外观,检查光纤端面是否平整、是否有划痕等。
(2)记录观察结果。
五、实验结果与分析1. 光纤连接器连接测试结果显示,插入损耗和回波损耗均在可接受范围内,连接质量良好。
2. 光纤耦合器测试结果显示,耦合效率较高,插入损耗和回波损耗均在可接受范围内,耦合效果良好。
3. 光纤适配器测试结果显示,适配器连接质量良好,插入损耗和回波损耗均在可接受范围内。
p1口输入输出实验报告p1口输入输出实验报告引言:计算机科学领域的发展使得我们能够使用各种各样的设备与计算机进行交互。
而在这个过程中,输入输出接口的设计和实现显得尤为重要。
本篇文章将围绕p1口输入输出接口展开讨论,介绍其原理、实验过程以及实验结果。
一、p1口输入输出接口的原理p1口是一种通用输入输出接口,它可以连接各种外部设备,如键盘、鼠标、打印机等。
p1口的原理是通过电信号的传输来实现与外部设备的交互。
具体来说,p1口通过发送和接收电压信号来进行通信,从而实现输入输出的功能。
二、实验过程1. 准备工作在进行实验前,我们需要准备一台计算机和一些外部设备,如键盘、鼠标和打印机。
将这些设备连接到计算机的p1口上。
2. 输入实验首先,我们进行输入实验。
在连接好设备后,我们可以通过键盘向计算机输入一些字符。
计算机会将这些字符接收并进行处理。
我们可以通过编写一个简单的程序来实现字符的显示和处理。
在程序中,我们可以使用相应的函数来获取键盘输入,并将其显示在屏幕上。
通过这个实验,我们可以验证p1口的输入功能是否正常工作。
3. 输出实验接下来,我们进行输出实验。
在程序中,我们可以使用相应的函数来控制打印机输出指定的内容。
通过这个实验,我们可以验证p1口的输出功能是否正常工作。
4. 实验结果通过实验,我们可以得出以下结论:- p1口的输入功能正常工作,可以准确地接收键盘输入的字符。
- p1口的输出功能正常工作,可以控制打印机输出指定的内容。
三、实验总结p1口作为一种通用输入输出接口,具有广泛的应用。
通过本次实验,我们对p1口的原理和功能有了更深入的了解。
p1口的输入功能可以使计算机接收外部设备的输入信号,从而实现与用户的交互。
p1口的输出功能可以使计算机控制外部设备进行相应的操作,从而实现对外部环境的影响。
在今后的学习和工作中,我们可以进一步探索p1口的应用,提高计算机与外部设备的交互效率。
结语:通过本次实验,我们对p1口输入输出接口有了更深入的理解。
java接口实验报告实验报告:Java接口实验一、实验目的通过本次实验,我们希望达到以下目的:1. 深入理解Java接口的概念、特点和用途。
2. 掌握如何定义、实现和使用接口。
3. 理解接口在多态性中的作用。
4. 掌握如何使用接口来设计可扩展的代码。
二、实验内容1. 定义一个接口,并实现该接口。
2. 使用接口实现多态性。
3. 通过接口设计可扩展的代码。
三、实验步骤及结果步骤1:定义一个接口首先,我们定义一个名为"Shape"的接口,该接口包含一个计算面积的方法。
```javapublic interface Shape {double getArea();}```步骤2:实现接口接下来,我们创建两个类(Circle和Rectangle),分别实现Shape接口。
每个类都提供了一个计算面积的方法。
Circle类:```javapublic class Circle implements Shape {private double radius;private static final double PI = ;public Circle(double radius) {= radius;}Overridepublic double getArea() {return PI radius radius;}}```Rectangle类:```javapublic class Rectangle implements Shape {private double width;private double height;public Rectangle(double width, double height) {= width;= height;}Overridepublic double getArea() {return width height;}}```步骤3:使用接口实现多态性现在,我们创建一个名为"ShapeDisplay"的类,该类接受一个Shape对象,并使用该对象的getArea方法来计算面积。
实验名称:系统接口设计与实现实验日期: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. 实验结果本次实验成功实现了系统接口的设计与实现,包括接口需求分析、接口规范定义、接口协议设计、接口代码编写和接口测试。
一、实验目的1. 了解人机接口的基本概念和原理。
2. 掌握常见的人机交互设备的使用方法。
3. 通过实验,提高人机交互系统的设计能力和实际操作能力。
二、实验内容1. 人机接口基本概念和原理2. 常见的人机交互设备操作3. 人机交互系统设计三、实验环境1. 硬件环境:计算机、键盘、鼠标、触摸屏、显示器、打印机等。
2. 软件环境:操作系统、应用程序等。
四、实验步骤1. 人机接口基本概念和原理学习(1)了解人机接口的定义、作用和分类;(2)学习人机交互设备的原理和特点;(3)分析人机接口设计的原则和方法。
2. 常见的人机交互设备操作(1)键盘操作:学习键盘布局、按键功能、快捷键的使用;(2)鼠标操作:学习鼠标的基本操作、滚轮使用、鼠标指针的移动和定位;(3)触摸屏操作:学习触摸屏的原理、操作方法和注意事项;(4)显示器操作:了解显示器的分辨率、刷新率、色彩调整等参数;(5)打印机操作:学习打印机的连接、设置、打印文档等操作。
3. 人机交互系统设计(1)分析用户需求,确定人机交互系统的功能;(2)设计人机交互系统的界面布局、操作流程和交互方式;(3)实现人机交互系统功能,并进行测试和优化。
五、实验结果与分析1. 实验结果通过本次实验,我们掌握了人机接口的基本概念和原理,熟悉了常见的人机交互设备的操作方法,并成功设计了一个简单的人机交互系统。
2. 实验分析(1)人机接口是计算机系统的重要组成部分,直接影响用户的使用体验。
因此,在进行人机接口设计时,要充分考虑用户的需求,确保界面简洁、操作方便;(2)人机交互设备的选择和配置应根据实际应用场景和用户需求进行,以提高系统性能和用户体验;(3)在设计人机交互系统时,要遵循一定的设计原则,如一致性、直观性、易用性等,以降低用户的学习成本和误操作概率。
六、实验总结本次实验使我们对人机接口有了更深入的了解,提高了人机交互系统的设计能力和实际操作能力。
在今后的学习和工作中,我们将继续关注人机接口技术的发展,不断优化人机交互系统,为用户提供更好的使用体验。
第1篇一、实验目的1. 理解接口处理的基本概念和流程。
2. 掌握使用PHP编写API接口的方法和步骤。
3. 学习如何使用json-server模拟接口数据。
4. 熟悉使用Postman进行接口测试和自动化测试。
二、实验环境1. 操作系统:Windows 102. 编程语言:PHP3. 开发工具:Visual Studio Code4. API模拟工具:json-server5. 接口测试工具:Postman三、实验内容1. PHP API接口编写(1)创建接口文件首先,我们需要创建一个PHP文件作为API接口,例如`api.php`。
```php<?php// api.php// 设置返回内容为JSON格式header('Content-Type: application/json');```(2)处理请求在`api.php`中,我们需要获取客户端发送的请求,并根据请求类型(GET或POST)进行处理。
```php// 获取请求类型$method = $_SERVER['REQUEST_METHOD'];// 处理GET请求if ($method === 'GET') {// 获取请求参数$name = $_GET['name'];// 模拟从数据库查询用户信息$userInfo = ['name' => '张三','age' => 25,'email'=>'********************'];// 返回JSON数据echo json_encode($userInfo);}// 处理POST请求if ($method === 'POST') {// 获取请求数据$jsonData = file_get_contents('php://input');$userData = json_decode($jsonData, true);// 模拟保存用户信息到数据库// ...// 返回JSON数据echo json_encode(['status' => 'success']); }```2. 使用json-server模拟接口数据(1)安装json-server```bashnpm install -g json-server```(2)创建数据文件创建一个名为`db.json`的文件,并添加以下内容:```json{"users": [{"id": 1,"name": "张三","age": 25,"email":"********************"},{"id": 2,"name": "李四","age": 30,"email":"****************"}]}```(3)启动json-server```bashjson-server --watch db.json```3. 使用Postman进行接口测试(1)测试GET请求在Postman中创建一个新的请求,选择HTTP方法为GET,并设置请求URL为`http://localhost:3000/users`。
学号:0120810340834课程设计基于人工按钮声(1000HZ)光题目报警器的设计(C语言)学院计算机科学与技术专业计算机科学与技术班级计算机0808班姓名谢娟指导教师周银良2011 年7 月 5 日接口课程设计任务书学生姓名谢娟专业班级计算机0808班指导老师周银良工作单位计算机科学与技术学院题目:基于人工按钮声(1000HZ)光报警器的设计(C程序设计语言)一、内容:在MIFID微机实验台上按下SW3按钮,发出声音报警,同时指定发光二极管LED点亮报警。
接口硬件电路图见说明书。
二、要求:1、指定发光二极管LED点亮报警的数据存储在文件中。
2、按下SW3按钮,输出为0。
由并行接口8255A的PC2接收SW3按钮的开关量。
然后使并行接口8255A的PC6产生1000频率的方波,使喇叭发出声音报警,同时从文件中取出一个8位二进制数从PA口输出,点亮发光二极管LED报警。
3、如果键盘输入任意键,则退出声光报警。
4、设计程序运行时的界面友好。
三、进度安排:序号内容所用时间1 接口电路设计2天2 编写程序1天3 调试程序1天4 撰写课程设计报告1天合计5天指导教师签名:年月日系主任(责任教师)签名:年月日基于人工按钮声光报警器的设计(1000HZ,C语言)1设计内容与要求1.1内容在MFID微机实验台上按下SW3按钮,发出声音报警,同时指定发光二极管LED点亮报警。
1.2要求1、指定发光二极管LED点亮报警的数据存储在文件中。
2、按下SW3按钮,输出为0。
由并行接口8255A的PC2接收SW3按钮的开关量。
然后使并行接口8255A的PC6产生1000频率的方波,使喇叭发出声音报警,同时从文件中取出一个8位二进制数从PA口输出,点亮发光二极管LED报警。
3、如果键盘输入任意键,则退出声光报警。
4、设计程序运行时的界面友好。
2设计目的(1)对微机原理课程中所学的理论知识进一步巩固和加深。
(2)了解8255芯片和8253芯片的结构及编程方法(3)学会查阅相关手册与资料,培养独立分析与解决问题能力(4)学习并实践模拟声光报警器的实现方法3设计思想根据设计任务和要求,在设计前必须对微机原理与接口技术中的8255和8253芯片熟悉了解和掌握。
设计中主要要完成的是发声报警和发光报警这两个功能,故在程序设计中只要设计按下SW3按钮后,8个LED灯不停的闪烁,同时,扬声器发出警报声。
在设计中,利用芯片8253可编程定时计数器来实现发声报警,利用芯片8255来实现发声报警,结合使用这两个芯片完成声光报警器的实现。
4设计所用芯片及工作原理4.1芯片82554.1.1端口8255是可编程I/O扩展芯片,对8255输入不同的指令可改变I/O口的工作方式。
8255有3个输入输出端口:端口A,端口B,端口C。
8255端口引脚:PA0—PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0-PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0-PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
4.1.2工作方式与初始化方式选择命令字有方式0,方式1和方式2;8255A方式选择控制字格式如图所示:4.2芯片82534.2.1控制命令字4.2.2工作方式8253具有3个独立的16位计数器,6种不同的工作方式,在此次课设中,用到了计数器2,和工作方式3,工作方式3介绍如下:方式3—方波发生器方式3输出是周期性的。
方式3输出方波。
如果预置的处置N为偶数,则输出周期中高电平和低电平的宽度相等;如果N为奇数,则输出周期中高电平比低电平多一个CLK周期的时间,当N相当大时,也可认为是方波。
设置成方式3后,OUT变高电平,装入初值后便自动开始计数。
如初值为偶数,每个CLK使计数器减2,计到终点改变电平。
如初值为奇数,则输出为高电平时第一个CLK使计数器减1,随后每个CLK使计数器减2。
每当计数到终点都会改变电平,初值又被重新装入,并开始计数,如此循环下去。
5接口电路图硬件连线如下:从图中可以看出,PC6直接连接了扬声器的门控,扬声器的音调由芯片8253输出的频率来控制,计数器2的输出端out2直接连到扬声器的音调,芯片8253的工作方式为方式3,用来输出方波。
此电路图中省略了芯片8253的连线。
8255的A端口的8个引脚分别与8个LED灯相连,A口作为数据输出端口,LED灯用来显示A口的数据。
程序中通过cpu直接向A口写入数据,然后再输出到LED灯显示出来。
写入的数据由一个文件保存着,程序循环读取文件中的数据,用对应的8个发光二极管显示开关状态。
开关SW3直接与PC2相连,决定PC2的值。
单线连法如右图:6程序流程图声光报警器流程图:F 区PA0 PA7 PC6 PC2M 区Q 区SW3 L1L8 OE#74LS373控制(音调) T 区 GNDY NNSPK 发声(高)Call outSPK LED 全灭SPK 发声(低) Call outSPK熄灭LED 任意键按下?关闭SPK8253,8255初始化熄灭LED 关闭SPK SW3按下? LED 发光Call LEDflashY 开始 结束7源程序完整代码如下:8255//* Cexp.cpp(声-光报警器接口) *///* 声-光报警器 Source File *///* */#include <dos.h> //getvect(); setvect();#include <conio.h> //kbhit();#include <stdlib.h> //exit(0);#include <stdio.h> //printf();void main(){int xu[8]={0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18};//LED发光顺序unsigned long int i=0,j=0;printf("\nPress sw3 to start!\n");printf("if you want to quit,please hit Any Key!");outportb(0x303,0x83);//初始化outportb(0x300,0x00);//LED全灭outportb(0x303,0x0c);//关闭SPKdo{}while((0x04&inportb(0x302))!=0);//查SW按下do{outportb(0x300,xu[i]);//按顺序送发光信号i++;if(i==8) i=0;for(j=0;j<=100;j++){outportb(0x303,0x0d);//令PC6=1,发高频音delay(1);outportb(0x303,0x0c);//令PC6=0,关闭SPKdelay(1);}outportb(0x300,0x00);//LED全灭for(j=0;j<=10;j++){outportb(0x303,0x0d);delay(30);//令PC6=1,发低频音outportb(0x303,0x0c);//令PC6=0,消音delay(30);}}while(!kbhit());outportb(0x300,0x00);//LED全灭outportb(0x303,0x0c);//关闭SPK }8设计心得这次的课程设计总的来说,经过这几天的努力我终于按时完成了本次课程设计的任务,过程是艰辛的,但收获也是很大的。
首先,说到艰辛,因为学校里的调试设备只有少有的几台是好的,这对于调试过程中出现的问题,有时候分不清是设备坏了,还是程序行不通,这实在是令人厌烦,不过,好在有之前实验的经验,一些原理性的东西还是知道的,这样便给我节省了不少工夫。
至于收获,在这次课设后,对于芯片8253和8255的编程有更深的认识,对用其编程也更加的熟悉,一些原理性的东西也了解到了更多。
虽然程序的一些基本的功能都得到了实现,但是,主要参考了老师所给的程序,可以算是没有独立的完成程序的编写,也说得上是一种惰性,这点应该在以后的学习、生活中改进,不能偷懒,多加练习来能将知识掌握得更好。
通过改变这些不足之处,我想,我将会从中学到更多的东西。
9参考文献[1] 刘乐善胡盛斌叶济忠著,微机计算机接口技术[M]. 成都:电子科技大学出版社,1994[2] 周明德蒋本珊著,微机原理与接口技术[M]. 北京:人民邮电出版社,2007[3] 洪志全荣莹等编著,现代微机原理与接口技术[M]. 北京:机械工业出版社,2008本科生课程设计成绩评定表班级:姓名:学号:序号评分项目满分实得分1 学习态度认真、遵守纪律102 设计分析合理性103 设计方案正确性、可行性、创造性204 设计结果正确性405 设计报告的规范性106 设计验收10总得分/等级评语:注:最终成绩以五级分制记。
优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名:201 年月日。