当前位置:文档之家› IO练习

IO练习

IO练习
IO练习

1. (File 类)以下关于File 类说法正确的是:ABC

A.一个File 对象代表了操作系统中的一个文件或者文件夹

B.可以使用File 对象创建和删除一个文件

C.可以使用File 对象创建和删除一个文件夹

D.当一个File 对象被垃圾回收时,系统上对应的文件或文件夹也被删除

2. (File 类)有如下代码:

public class TestFile{

public static void main(String args[]){

File file = new File(“chp13/corejava.txt”);

}

}

请选择一个正确答案:B

A. corejava.txt 文件在系统中被创建

B. 在windows 系统上运行出错,因为路径分隔符不正确

C. corejava.txt 文件在系统中没有被创建

D. 如果corejava.txt 文件已存在,则抛出一个异常

3. (File 类)将下列代码补充完整

class TestMyFile{

public static void main(String args[]) throws Exception{

File file;

//创建一个File 对象表示当前目录下的“hello.txt”文件

file=new File(“hello.txt”);

//判断该文件是否存在

file.exists();

//如果该文件存在,则输出该文件的完整路径

Syso(file.getAbsolutePath());

}

}

4. (流的分类)对于FileInputStream 来说,从方向上来分,它是____输入_____流,从数据单

位上分,它是___字节___流,从功能上分,它是__基本_____流。

5. (字节流, FileInputStream)FileInputStream 有三个重载的read 方法,其中

1) 无参的read 方法返回值为_int__类型,表示___下一个数据字节;如果已到达文件末尾,则返回 -1。

2) int read(byte[] bs)方法返回值表示___读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。,参数表示存储读取数据的缓冲区

3) int read(byte[] bs, int offset, int len) 方法返回值表示读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1,参数分别表示b - 存储读取数据的缓冲区。off - 目标数组 b 中的起始偏移量。 len - 读取的最大字节数6. (FileInputStream)下面关于FileInputStream 类型说法正确的是:

A.创建FileInputStream 对象是为了读取硬盘上的文件

B.创建FileInputStream 对象时,如果硬盘上对应的文件不存在,则抛出一个异常C.利用FileInputStream 对象可以创建文件

D.FileInputStream 对象读取文件时,只能读取文本文件。

7. (FileOutputStream)填空:

创建FileOutputStream 对象时,如果对应的文件在硬盘上不存在,则会_自动创建___;如果对应的文件在硬盘上已经存在,则__覆盖______;

如果使用FileOutputStream(String path, boolean append) 这个构造方法创建FileOutputStream 对象,并给定第二个参数为true,则效果为____可以添加数据______。创建FileOutputStream 时__不会_(会|不会)产生异常。

8. 代码改错

class TestFileInputStream{

public static void main(String args[]){

FileInputStream fin = new FileInputStream(“test.txt”);//文件输入流应该放入try/catch中

try{

System.out.println( fin.read() );

fin.close();

}catch(Exception e){}

}

}

9. (FileInputStream 和FileOutputStream)利用FileInputStream 和FileOutputStream,完成下面的要求:

1)用FileOutputStream 在当前目录下创建一个文件“test.txt”,并向文件输出“Hello World”,如果文件已存在,则在原有文件内容后面追加。

2)用FileInputStream 读入test.txt 文件,并在控制台上打印出test.txt 中的内容。

3)要求用try-catch-finally 处理异常,并且关闭流应放在finally 块中。

FileInputStream fin;

FileOutputStream fon;

try{

fin = new FileInputStream("hello.txt");

on = new FileOutputStream("test.txt",true);

fon.write(“Hello World”);

System.out.println( fin.read() );

fin.close();

}catch(Exception e){}finally{fin.close();}

10. (Data 流)利用Data 流,完成下面操作:

1)判断当前目录下是否存在一个“test.dat”的文件,如果该文件不存在,则往该文件

中写入一个long 类型的数值:10000L

2)如果该文件存在,则从该文件中读出数值,并把该数值加1 之后,再存回文件中。

11. (字符流、桥转换)要想从某个文件中获得一个字符输出流,则至少有以下三种方式

A. 利用FileWriter 类

B. 利用PrintWriter 类

C. 利用FileOutputStream 类,并通过OutputStreamWriter 类获得Writer

请简述这三种方式获得Writer 的区别。

12. (字节流、字符流)以下几种文件格式,应当使用字节流还是字符流?

1) .java 源文件

2) .class 字节码文件

3) .html 网页文件

4) .jpg 图像文件

5) .mp3 音乐文件

6) 配置文件.bash_profile

7) .jar 文件

13. (过滤流)连线题。把过滤流和相应的功能用线连起来。注意,左右两边不是一一对应的关系。

ObjectInputStream 字节流ObjectOutputStream 字符流

BufferInputStream 读八种基本类型BufferedOutputStream 写八种基本类型DataInputStream 读对象

DataOutputStream 写对象

PrintWriter 缓冲功能

PrintStream 读入一行文本

BufferedReader 写字符串并换行

BufferedWriter 写字符串

14. (对象序列化)

为了让某对象能够被序列化,要求其实现______Serializable___接口;

为了让该对象某个属性不参与序列化,应当使用_transient_修饰符。

15. *(字符流、桥转换)完成下面功能:

事先在当前目录下准备好一个test.txt 的文本文件,要求该文本文件是使用GBK 编码的

多行文本文件。如:

test.txt

窗前明月光

疑是地上霜

举头望明月

低头思故乡

利用字节流+桥转换读入这个文本文件,然后按照行的顺序,以UTF-8 的编码方式,写

到test2.txt 文件中,例:

test2.txt

低头思故乡

举头望明月

疑是地上霜

窗前明月光

16. *(Data 流)有以下代码

public class Check{

public static void main(String args[]) throws Exception{

FileOutputStream fout = new FileOutputStream(“test.dat”);

DataOutputStream dout = new DataOutputStream(fout);

dout.writeInt(1);

dout.writeDouble(0.01);

dout.close();

}

}

问:这个程序总共往文件中写入了多少字节?C

A. 2

B. 8

C. 12

D. 16

E. 字节数取决于具体平台

17. *(对象序列化)

在PrintWriter 中,有一个方法print(Object obj)

在ObjectOutputStream 中,有一个方法writeObject(Object obj) 请简述这两个方法的区别

18. *(对象序列化)写出下面代码运行结果

import java.io.*;

class Address implements Serializable{

private String addressName;

private String zipCode;

//构造方法

//set/get 方法

public String toString(){

return addressName + “ ” + zipCode;

}

}

class Student implements Serializable {

private String name;

private transient int age;

private Address addr;

//构造方法…

//set/get 方法…

public String toString(){

return name + “ ” + age + “” + addr.toString();

}

}

public class TestObjectStream{

public static void main(String args[]) throws Exception{ Address addr = new Address(“Beijing”, “100000”);

Student stu = new Student(“Tom”, 18, addr); ObjectOutputStream oos = new ObjectOutputStream(

new FileOutputStream(“stu.dat”) );

oos.writeObject(stu);

oos.close();

ObjectInputStream oin = new ObjectInputStream(

new FileInputStream(“stu.dat”) );

Student stu2 = (Student) oin.readObject();

oin.close();

System.out.println(stu2);

}

}

19. *(对象序列化)有以下代码:

import java.io.*;

class Address{

private String addressName;

private String zipCode;

//构造方法…

//get/set 方法…

}

class Worker implements Serializable{

private String name;

private int age;

private Address address;

//构造方法…

//get/set 方法…

}

public class TestSerializable {

public static void main(String args[]) throws Exception{

Address addr = new Address("Beijing", "100000");

Worker w = new Worker("Tom", 18, addr);

ObjectOutputStream oout = new ObjectOutputStream(

new FileOutputStream("fout.dat") );

oout.writeObject(w);

oout.close();

}

}

选择正确答案

A. 该程序编译出错

B. 编译正常,运行时异常

C. 编译正常,运行时也正常。

20. *(字节流,BufferedReader)完成下面操作。

在当前目录下创建一个worldcup.txt 的文本文件,其格式如下:

2006/意大利

2002/巴西

该文件采用“年份/世界杯冠军”的方式保存每一年世界杯冠军的信息。

要求:读入该文件的基础上,让用户输入一个年份,输出该年的世界杯冠军。如果该年

没有举办世界杯,则输出“没有举办世界杯”

21. **(Buffered 流,缓冲区)有下面代码

import java.io.*;

public class TestBufferedWriter{

public static void main(String args[]) throws Exception{

FileWriter fw = new FileWriter(“test.txt”);

BufferedWriter bw = new BufferedWriter(fw);

String str = “Hello World”;

bw.write(str);

}

}

在处放入什么代码,能够使得test.txt 文件被正确写入?

A. bw.close()

B. bw.flush();

C. fw.close();

22. **(Data 流)在原有自动分配id 的Account 对象基础上,利用Data 流,完成下面的要

求:

要求每次启动程序时,id 的自动分配都能在上一次运行的基础上继续。例如,假设有以

下代码:

public class TestAccount{

public static void main(String args[]){

Account a1 = new Account();

Account a2 = new Account();

Account a3 = new Account();

System.out.println(a1.getId() );

System.out.println(a2.getId() );

System.out.println(a3.getId() );

}

}

编译之后,第一次运行

java TestAccount

时,输出

100001

100002

100003

第二次运行

java TestAccount

时,输出

100004

100005

100006

23. **(综合)

从命令行中读入一个文件名,判断该文件是否存在。如果该文件存在,则在原文件相同路径下创建一个文件名为“copy_原文件名”的新文件,该文件内容为原文件的拷贝。例如:读入

/home/java/photo.jpg

则创建一个文件

/home/java/copy_photo.jpg

新文件内容和原文件内容相同。

24. ***(可选,综合)用两种方式保存对象。

有Worker 对象,部分代码如下:

class Worker{

private String name;

private int age

private double salary;

//构造方法

//get/set 方法

//toString 方法

}

1)完善Worker 对象,并使其能使用对象序列化机制。

2)利用ObjectOutputStream 存入两个Worker 对象,然后使用ObjectInputStream 读出这两个对象,并打印这两个对象的信息。

3)写一个方法saveWorkerToFile(Worker w, File file),该方法完成下面的

功能:

假设有一个Worker 对象w1,File 对象f1 如下:

Worker w1 = new Worker(“Tom”, 30, 5000);

File f1 = new File(“test.txt”);

则调用saveWorkerToFile(w1, f1),会在test.txt 中增加一行:

Tom/30/5000

4)写一个方法List readWorkerFromFile(File file),该方法读某

个文件,从文件信息中创建一个Worker 类型的List。

例如,假设文件内容如下:

Tom/30/5000

Jim/25/3000

Terry/33/4500

则返回一个包含三个Worker 对象的List。

java之IO技术

java之IO技术 java的输出功能来自java.io包的InputStream类,OutputStream类,read 类和writer类,以及继承他们的各种子类,这些类以流的形式处理数据。 1.Inputstream类 Inputstream类是字节输入流的抽象类,是所有字节输入的父类。 2.Outputstream类 Outputstream类是字节输出流的抽象类,是所有字节输入的父类。 3.Reader类 该类是字符输入流的抽象类,定义了操作字符输入流的各种方法4.Writer类 用于解决字符输出流的类 下面是使用上述类的例子代码 public class ShuRuShuChu { public static void main(String [] args){ /*InputStream is=System.in; byte[] b=new byte[50]; try { System.out.println("请输入内容 "); is.read(b); is.read(b,1,3);

System.out.println(new String(b).trim()); System.out.println(is.available()); is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ ShuRuShuChu ac=new ShuRuShuChu(); //ac.intPut(); //ac.outPut(); //ac.intPutread(); ac.outPutwriter(); } void outPut(){ OutputStream out=System.out; try{ String ass="456789"; byte[] s=ass.getBytes(); //byte[] s="ssyssyss".getBytes(); out.write(s); out.close(); }catch(IOException e)

《8259中断控制器实验》的实验报告

实验六8259中断控制器实验 6.1 实验目的 (1) 学习中断控制器8259的工作原理。 (2) 掌握可编程控制器8259的应用编程方法。 6.2 实验设备 PC微机一台、TD-PIT+实验系统一套。 6.3 实验内容 1. 单中断应用实验 (1)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。 (2)编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“Hello”,中断5次后退出。 2.扩展多中断源实验 利用实验平台上8259控制器对扩展系统总线上的中断线INTR进行扩展。编写程序对8259控制器的IR0和IR1中断请求进行处理。 6.4 实验原理 1. 8259控制器的介绍 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图6-1所示。 8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图6-2所示,

微机接口实验报告-8259中断控制器应用实验

姓名 院专业班 年月日实验内容8259中断控制器实验指导老师 【实验目的】 (1)学习中断控制器8259的工作原理。 (2)掌握可编程控制器8259的应用编程方法。 【试验设备】 PC微机一台、TD-PIT+实验系统一套。 【实验内容】 (1) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示一个字符。 (2) 编写中断处理程序,利用PC机给实验系统分配的中断线,使用单次脉冲单元的KK1+按键模拟中断源,每次PC机响应中断请求,在显示器上显示“9”,中断显示6次后退出。 【实验原理】 1. 8259控制器的介绍 中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需增加其他电路的情况下,通过多片8259A的级连,能构成多达64级的矢量中断系统。它的管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。8259A的内部结构和引脚如图6-1所示。 8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1- OCW3分别写入初始化命令寄存器组和操作命令寄存器组。ICW1-ICW4各命令字格式如图6-2所示,OCW1-OCW3各命令字格式如图6-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。 图6-1 8259内部结构和引脚图

8259中断控制实验

本科实验报告 课程名称:接口实验 姓名: 学院: 系: 专业: 学号: 指导教师: 2015年12 月26 日

浙江大学实验报告 课程名称:接口实验实验类型:普通实验 实验项目名称:8259中断控制实验 学生姓名:专业:学号: 同组学生姓名:指导老师: 实验地点:实验日期:2015年12月22日 一、实验目的和要求: 1.掌握中断的工作原理及编程方式,掌握8259中断控制器工作原理,了解中断控制芯片的初始化及工作方式的设定,熟悉实验中涉及到的各寄存器的使用方法,学会中断程序的编写。 2.学会中断控制器8259接口电路的应用和中断服务程序的编写。 3.了解PCI总线目标接口适配器PCI9052的使用,学会其中断及状态的控制。 二、实验内容和原理 8259中断控制电路: 在PC机中,主板上的两片8259可编程中断控制芯片以主从结构为系统提供了15级中断(每片8级,其中一级作为级联)。从片的中断请求信号INT 与主片的IRQ2相连。其中给用户保留的中断号有IRQ10、IRQ11、IRQ12、和IRQ15,这些中断级都设置在从片上。 主片:IRQ0——T/C0 IRQ1——键盘中断 IRQ2——8259从片 IRQ3——串口2 IRQ4——串口1 IRQ5——并行口2 IRQ6——软盘控制器 IRQ7——并行口1

从片:IRQ8——实时时钟中断 IRQ9——RE —DTNECT IRQA ——保留 IRQB ——保留 IRQC ——保留 IRQD ——协处理器 IRQE ——硬盘控制器 IRQF ——保留 70H 73H 77H 76H 75H 74H 72H 71H PC 机中8259中断管理设有相应的矢量地址,主片的IRQ0—IRQ7对应为08H —0FH ,从片的IRQ8—IRQ15对应为70H —77H 。主片的中断控制寄存器ISR 和中断屏蔽寄存器IMR 的端口地址分别为20H 和21H ,从片的中断控制寄存器ISR 和中断屏蔽寄存器IMR 的端口地址分别为0A0H 和0A1H 。 中断初始化编程时,若使用主片中的中断级,只需打开主片屏蔽寄存器的相应屏蔽级,并在中断处理完毕后发中断结束命令EOI ;而使用从片中的中断级,除对从片相应的级作出处理,还需打开主片IRQ2相应的屏蔽寄存器位,并在中断处理完毕后对主片和从片都要发中断结束命令EOI 。 9052的中断控制寄存器: 偏移地址为4CH 的32位寄存器。其中高19位为保留位,低13位可根据需要进行8位、16位操作。实验仪上的中断源信号必须通过9052控制器

IO-LINK技术简介

IO-LINK技术简介 合肥安胜智能电子有限公司 2018-08-04

内容 ?一、发展背景 ?二、IO-LINK介绍 ?三、IO-LINK系统组成?四、IO-LINK协议 ?五、IO-LINK技术方案?六、小结

一、发展背景 ?工业4.0 ?是指利用物联信息系统(Cyber—Physical System 简称CPS)将生产中的供应,制造,销售信息数据化、智慧化,最后达到快速,有效,个人化的产品供应。 ?工厂转型升级是一个复杂的过程,很多企业要考虑在旧和自动化设备引入新技术时遇到的兼容问题。智慧型工厂需要连接工业现场所有的设备,如传感器、变送器、执行器、PLC控制器等。因此,通信技术是这场升级的关键。

内容 ?说到工业通信,我们会想起:EtherNet/IP、PROFINET、EtherCat、Modbus、TCP/IP、CC-Link等,这些协议已有15多年,且成本较高。?IO-Link是一个动态的新开放协议标准,在点对点串口通信获得更大使用。它是2008年由西门子研发并开始投用,在近年获得飞速的发展。 它的目标是在于工业4.0智能化生产,它特别适合与执行器和传感器的通信。 ?PLC和传感器制造商联合在一起组成国际联盟共同推进IO-Link通信。 便IO-Link得到了很多公司的支持,如Allen Bradley和西门子。很多大玩家都是这个联盟的一部分。 ?IO-Link背后有一个很好的推动。截至去年4月,已经有124家公司已经加入这个联盟,并在工业现场占有350万个节点。因此,IO-Link技术将为传感器及工业4.0的发展带来新的发展。

实验二:8259 中断控制器实验

实验二 8259A中断控制器实验 1、编制程序:拨动单脉冲开关,“”送给8259A的IR0,触发中断, 8088计数中断次数,显示于G5区的数码管上 2、运行程序 3、上下拨动单脉冲开关,拨动二次,产生一个“”,观察结果, 数码管上显示的次数与拨动开关次数是否对应。 .MODEL TINY EXTRN DISPLAY8:NEAR IO8259_0 EQU 0F000H IO8259_1 EQU 0F001H .STACK 100 .DATA BUFFER DB 8 DUP(?) COUNTER DB ? REDISPLAYFLAG DB 0 .CODE START: MOV AX,@DATA MOV DS,AX MOV ES,AX NOP CALL INIT8259 CALL WRIINTVER MOV COUNTER,0 MOV REDISPLAYFLAG,1 STI ;?a?D?? START1: CMP REDISPLAYFLAG,0 JZ START1 CALL LEDDISPLAY MOV REDISPLAYFLAG,0 JMP S TART1 INIT8259 PROC NEAR MOV DX,IO8259_0 MOV AL,13H OUT DX,AL MOV DX,IO8259_1 MOV AL,08H OUT DX,AL MOV AL,09H OUT DX,AL MOV AL,0FEH OUT DX,AL

RET INIT8259 ENDP WRIINTVER PROC NEAR PUSH ES MOV AX,0 MOV ES,AX MOV DI,20H LEA AX,INT_0 STOSW MOV AX,CS STOSW POP E S RET WRIINTVER ENDP LEDDISPLAY PROC NEAR MOV AL,COUNTER MOV AH,AL AND AL,0FH MOV BUFFER,AL AND AH,0F0H ROR A H,4 MOV BUFFER + 1,AH MOV BUFFER + 2,10H ;??áù??2?Dèòa??ê? MOV BUFFER + 3,10H MOV BUFFER + 4,10H MOV BUFFER + 5,10H MOV BUFFER + 6,10H MOV BUFFER + 7,10H LEA SI,BUFFER CALL DISPLAY8 RET LEDDISPLAY ENDP INT_0: PUSH DX PUSH AX MOV AL,COUNTER ADD AL,1 DAA MOV COUNTER,AL MOV REDISPLAYFLAG,1 MOV DX,IO8259_0 MOV AL,20H

8259A中断实验

实验8259单级中断控制器实验 一、实验目的 ⒈掌握8259中断控制器的接口方法。⒉ 掌握8259中断控制器的应用编程。 二、实验内容 利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。 三、实验接线图 图6-6 四、编程指南 ⑴8259芯片介绍 中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统。

⑵本实验中使用3号中断源IR3,“”插孔和IR3相连,中断方式 为边沿触发方式,每拨二次AN开关产生一次中断,满5次中断,显示“8259——good”。如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。 五、实验程序框图 IR3中断服务程序: IR7中断服务程序: 六、实验步骤 1、按图6-6连好实验线路图。

⑴8259的INT连8088的INTR;⑵8259的INTA连8088的INTA;⑶“” 插孔和8259的3号中断IR3插孔相连,“”端初始为低电平;⑷8259的CS端接FF80H孔。 2、运行实验程序,在系统处于命令提示符“P.”状态下,按SCAL键,输入12D0,按EXEC键,系统显示8259-1。 3、拨动AN开关按钮,按满l0次显示good。 七、实验程序清单 CODE SEGMENT ;H8259.ASM ASSUME CS: CODE INTPORT1 EQU 0FF80H INTPORT2 EQU 0FF81H INTQ3 EQU INTREEUP3 INTQ7 EQU INTREEUP7 PA EQU 0FF20H ;字位口 PB EQU 0FF21H ;字形口 PC EQU 0FF22H ;键入口 ORG 12D0H START: JMP START0 BUF DB ?,?,?,?,?,? intcnt db ? data1: db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h, 0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH START0: CLD ;递加 CALL BUF1 ;写显示缓冲初值 CALL WRINTVER ;写中断向量 MOV AL,13H ;写ICW1 MOV DX,INTPORT1 OUT DX,AL MOV AL,08H ;写ICW2 MOV DX,INTPORT2 OUT DX,AL MOV AL,09H ;写ICW4 OUT DX,AL MOV AL,0F7H ;写OCW1 OUT DX,AL MOV intcnt,01H ;中断计数初值 STI ;开中断 WATING: CALL DISP ;DISP 8259-1

8259中断实验

XX学院 实验报告 实验名称 姓名 学号 班级 教师 日期

一、实验内容与要求 1.1 实验内容 本次实验分为如下3个子实验: (1)单中断请求实验:利用系统总线上中断请求信号MIR7,设计一个单一中断请求实验; (2)双中断优先级实验:利用系统总线上中断请求信号MIR6和MIR7,设计一个双中断优 先级应用实验,观察8253对中断优先级的控制; (3)级联中断实验:利用系统总线上中断请求信号MIR7和SIR1,设计一个级联中断应用 实验。 1.2 实验要求 本次实验中三个子实验的实验要求如下: (1)单中断请求实验:单脉冲KK1+与主片8259的IR7相连。每按KK1+,进入一次中断, 输出7; (2)双中断优先级实验:单脉冲KK1+连主片8259的IR7,KK2+连其IR6。每当KK1+按 下时显示“7”,每当KK2+按下显示“6”; (3)级联中断实验:单脉冲KK1+连主片8259的IR7,KK2+连从片的IR1。每当KK1+按 下时显示“M7”,每当KK2+按下显示“S1”。 二、实验原理与硬件连线 2.1 实验原理 (1)中断控制器8259简介 在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。 在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图1-1:

实验六 8259A硬件中断实验

实验六8259A硬件中断实验 一.实验要求 编写中断程序,在请求8259A中断1时,能够响应8259A的硬件中断,并在数码管上显示“Irq0…”字样,中断结束时,显示“E..IRQ”。 二.实验目的 1. 了解8259A中断控制器的工作原理。 2. 了解PC机中断的原理和过程。 3. 学会中断处理程序的编写。 三.实验电路及连线 20模块中的+PLUSE接第8模块中的INT_0,第8模块中的INT接模块中的88INTR,第8模块中的INTA接实验机内核模块中的88/INTA 。CS8259接200H,CS8279已固定接至238H。 四.实验说明 1、运行该实验程序的方法是:先通过加载选项将8259A的初始化程序与中断处理程序送到RAM中。 2、本实验指导书只提供硬件中断0实验,中断方式为边沿触发、单片、全嵌套中断方式,且中断号从中断8开始。使用者可以根据自己的需要设定为其他中断方式,且中断号可以设定从任一中断号开始。

3、实验方法:以硬中断0为例,先加载8259A主中断程序(注意加载地址为8100:0),然后再加载中断程序IRQ0程序(加载地址为8200:0)。然后进入TALK WITH 88ET选项下,键入SW 0:0020↙0000,8200↙,再执行G8100:0↙Y即可。这样设计的目的是为了让学生们更能理解中断的执行原理与过程。 五.实验程序框图 六.实验程序如下: (2)8259A主程序: ;ORG 8100:0 INT00 EQU 200h INT01 EQU 201h Z8279 EQU 239H D8279 EQU 238H LEDMODE EQU 00H SCANFRQ EQU 38H data segment data ends stack segment sta dw 50 dup(?) top equ length sta stack ends CODE SEGMENT

实验五 8259A中断控制器实验

南昌大学实验报告 学生姓名:林海金学号:6100210178 专业班级:卓越通信101班 实验类型:验证□综合□设计□创新实验日期:2012-5-22 实验成绩: 一、实验项目名称 实验五8259A中断控制器实验 二、实验目的 (1)了解8259A中断控制器的工作原理。 (2)了解PC机中断的原理和过程。 (3)学会中断程序的编写。 三、实验要求 编写中断程序,在请求8259A1时,能够响应8259A的硬件中断,并在数码管上显示“IRQ0…”字样,中断结束时,显示“E…IRQ”。 四、实验仪器及连线方式 1)实验仪器:AEDK-T598D实验系统。 2)连线方式:INT0连接至+PULSE;8259A的片选接至试验箱的200H;8279的片选接至210H~217H。 五、实验说明 以中断0为例,先加载主中断程序,然后再加载中断程序IRQ0程序,然后打开对话窗口,输入“SW 0:0020,<回车>0000,””8200<回车>”,在执行“G8100:0<回车>Y”即可。

六、实验参考程序 INT00 EQU 200H INT01 EQU 201H Z8279 EQU 239H D8279 EQU 238H LEDMODE EQU 00H SCANFRQ EQU 38H DATA SEGMENT DATA ENDS STACK SEGMENT STA DW 50 DUP(?) TOP EQU LENGTH STA STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: CLI MOV AL,13H MOV DX,INT00 OUT DX,AL NOP NOP MOV AL,8 MOV DX,INT01 OUT DX,AL MOV CX,0FFFH L00: LOOP L00 MOV AL,3 MOV DX,INT01 OUT DX,AL MOV CX,0FFFH MOV CX,0FFFH L01: LOOP L01 NOP NOP MOV DX,Z8279 MOV AL,LEDMODE OUT DX,AL MOV AL,SCANFRQ OUT DX,AL MOV DX,INT01 MOV AL,00H OUT DX,AL MOV CX,0FFFH L02: LOOP L02 MOV DX,INT00 MOV AL,20H OUT DX,AL MOV CX,0FFFH L03: LOOP L03 MOV DX,Z8279 MOV AL,90H OUT DX,AL MOV AL,0D0H OUT DX,AL MOV CX,0FFFFH L2: LOOP L2

IO_Link技术规范简介

IO-Link技术规范简介
菲尼克斯电气中国公司 自动化产品经理:孙林宝

1
1 2 3
目录
目录 .........................................................................................................................................2 IO-Link 系统概述......................................................................................................................3 2.1 上电后...........................................................................................................................4 IO-Link 协议.............................................................................................................................5 3.1 过程数据(PD) ...........................................................................................................5 3.2 服务数据(SD) ...........................................................................................................5 3.3 事件 ..............................................................................................................................6 3.4 传输质量、重试、QoS..................................................................................................6 3.5 传输速率和同步率 .........................................................................................................6 3.6 报文类型和结构.............................................................................................................6 参数数据交换...........................................................................................................................8 IO-Link 系统结构....................................................................................................................10 5.1 IO-Link 设备 ................................................................................................................10 5.2 IODD 和翻译工具........................................................................................................10 5.3 IO-Link 主站 ................................................................................................................ 11 图...........................................................................................................................................13 表...........................................................................................................................................13 索引 .......................................................................................................................................13
4 5
6 7 8
2

利用8259A中断实现LED灯和数码管显示实验

实验三:利用8259A中断实现LED灯和数码管显示实验 安全0901 王宇航 09283020 实验报告 1.实验目的: 了解8259中断控制器的基本使用,掌握中断程序编程技术。同时使同学掌握中断和其它接口芯片配合来完成某一特定任务的方法。 2.实验步骤: 8254A的OUT1输出接到8259A的MIR5上,每秒产生一次中断信号向8259A发出中断请求,在中断程序里将连接在8255A口的LED灯按照中断次数二进制点亮(即中断一次L0亮,中断两次L1亮,中断三次L1L0亮,中断四次L2亮……)。同时在数码管低位上显示中断次数。满10次后停止。 1.8254A在主程序中初始化。 CLK0工作在方式3,则控制字为00110110B,计数常数设为1000; CLK1工作在方式3,则控制字为01110110B,计数常数设为1000,则OUT1输出为1HZ 的方波。 2.8255A在使用前需要在主程序中初始化。 A口方式0输出,B口方式0输入,则控制字为10000011B。 3.8259A不用初始化,但在程序中需要包含以下几个部分: (1)8259A的MIR5对应的中断向量号为35H,需用此来设置中断入口地址。 (2)设置中断入口地址之后,需设置中断屏蔽字OCW1,使IR5请求被允许,其他请求被禁止。 (3)中断服务程序结束之前写OCW2,送中断结束命令EOI。 4.中断服务程序的主要功能是LED指示灯和数码管显示。

图3-1 实验连线图 注意:实验系统的主8259A的片选信号为20H。 3.实验代码: .Model small .386 DATA SEGMENT DATA0 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;分别对应字符0-9 COUNT DB 10;计数值为10 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX;DS装入段基址 LEA SI,DATA0;取操作数DATA0的16位偏移地址送到寄存器SI中;8254初始化 MOV DX,203H;8254命令口 MOV AL,00110110B;控制字--0通道、方式3(方波发生器)、二进制计数OUT DX,AL;将控制字写入命令口 MOV DX,200H;0通道的数据口 MOV AX,1000;计数常数=1000 OUT DX,AL;先写入低字节 MOV AL,AH OUT DX,AL;再写入高字节 MOV DX,203H;8254命令口 MOV AL,01110110B;控制字1通道、方式3(方波发生器)、二进制计数OUT DX,AL MOV DX,201H;1通道的数据口 MOV AX,1000;计数常数=1000 OUT DX,AL MOV AL,AH OUT DX,AL;8255初始化

模拟IO与数字IO 技术文档

模拟I/O与数字I/O 简介 本期节目介绍测试测量的接线方式,如何使用NI数据采集板卡及底层的DAQmx VI来完成模拟输入输出以及数字输入输出功能。 参考的,如图4-2所示,AIGND引脚以及放大器本身是以系统地作为参考的,但两个输入端均不以地作为参考。这里需要注意的是,当我们使用差分方式时,对于一个输入信号需要使用两个模拟输入通道,于是整个可用通道数就减半了,对于一个16通道的数据采集设备,处于差分模式下的时候,只能采集8路输入信号了,输入信号的配对规则如图所示, ACH(N)与ACH(N+8) 组成一对差分输入通道。

? ACH5 因为 图4-3 差分输入通道对 ? 参考单端模式(RSE):

16接到ACH10 此外, 扰,如图 图4-5 多个AIGND防止由于输入连线搭接所造成的信号间串扰 ?非参考单端模式(NRSE):

NI NRSE,非参考单端模式, RSE 接到AISENSE上的电压是浮地的。 图4-7 图4-7 AISENSE引脚图 介绍了NI产品提供的三种不同终端模式后,我们根据不同的信号源来分析一下应该使用哪一S

种接线方式。对于接地信号源来说,图4-8中列出了三种模式的优点和缺点。 较好 + 抑制共模电压 - 可用通道数减半 Differenti al 不推荐 - 接地环路引起误差甚至损坏设备 R S 好 + 保证最大的可用通道数 - 无法抑制共模电压 图4-8 对于接地信号三种模式的优点和缺点 1.差分模式(Differential):虽然该模式会使可用通道数减半,但是它具有非常好的共模 电压和共模噪声抑制能力,是不错的选择。 2.其次是参考单端(RSE),对于接地信号,参考单端是不推荐使用的终端模式,因为接地 环路的电势差会造成测量误差,并将交流噪声以及直流偏移量引入到测量系统当中。 除此乊外,当信号源正端不小心接到RSE测量系统的AIGND上时,还会造成信号源短路以至于损坏。 3.第三是非参考单端(NRSE),由于测量系统的负端以AISENSE为参考而不是直接以地 作为参考,对于接地信号,NRSE模式可以保证最大的可用通道数,然而它无法像差分模式那样抑制共模信号。 也就是说对于接地信号的情冴,我们只有差分和NRSE两种模式可选,如果您的剩余可用通道数足够多的话,首先推荐使用差分模式,如果您想尽可能多地使用模拟输入通道,那么可以选择NRSE模式。 对于浮地信号,三种终端模式均可以选择,他们的优缺点如图4-9所示,首选推荐差分模式,在牺牲了通道数的情冴下能够提高测量的质量。其次可以使用RSE模式,因为该方式下,不需要连接偏置电阻。最后才选择NRSE模式。

8259A中断实验报告

实验十一8259A中断实验 一、实验目的 1、学习8086/8088与8259A的连接与控制方法,掌握其工作原理。 2、完成程序设计题,学会编写中断服务程序。 二、实验原理 8259A是一种可编程序中断控制器,与8088/86微机兼容,能处理8级向量优先权中断,亦可以通过级联构成64级向量优先权中断系统。具有可编程控制中断方式,并能分别屏蔽各个中断请求。通过4个初始化命令字(ICW1——ICW4)及3个操作命令字(OCW1——OCW3)使用8259A可编程序中断控制器。 三、实验内容 用8066/86控制8259可编程中断控制器,实现对外部中断的响应和处理。要求程序中对每次中断进行计数,并将计数结果用8255的PA口输出到LED显示。 四、实验方法与步骤 (1)根据要求编写程序 modeequ 82h pa8255equ 8000h ctl8255equ 8003h icw1equ 00010011b icw2equ 00100000b icw4equ 00000001b ocw1equ 11111110b cs8259aequ 09000h cs8259bequ 09001h data segment cntdb 0 data ends code segment assumecs:code,ds:data ienterproc near push ax push dx mov dx,pa8255 inccnt mov al ,cnt outdx,al mov dx,cs9259a mov al,20h outdx,al pop dx pop ax iret ienterendp iinitproc near mov dx ,cs8259a mov al ,icw1 out dx ,al mov dx, cs8259b mov al,icw2 outdx,al mov al,icw4 outdx,al mov al,ocw1 outdx,al

socket.io技术分享文档

聊天组功能实现技术分享 关于nettysocket.io技术实现讨论组聊天 一、前期准备 二、技术实现讲解 三、出现的问题 (一)前期准备: Netty-SocketIO是什么? Netty-SocketIO是一个开源的、基于Netty的、Java版的即时消息推送项目。通过Netty-SocketIO,我们可以轻松的实现服务端主动向客户端推送消息的场景。 Socket.IO除了支持WebSocket通讯协议外,还支持许多种轮询(Polling)机制以及其它实时通信方式,并封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。 (二) 技术实现: 1.在项目中需要导入netty-socket.io的jar包, 2.生成一个可通过访问的配置,绑定一个ip和端口号 Hostname可以不做设置,如果不做设置,则默认绑定0.0.0.0 我们在springboot项目的启动文件中增加一个bean

将生成的这个server交给spring容器 3.然后我们可以通过spring容器得到server,并初始化,通过server创建namespace, 并添加监听, //创建一个名为chat1的namespace SocketIONamespace namespace = server.addNamespace("/chat1”); addEventListener()这个方法是对namespace添加监听的方法, message参数:监听的事件,需要前后台一致 ChatObject:可以理解为监听的数据对象,在聊天组中对数据对象的数据进行监听 当一个用户发送一个消息过来时,我们就可以在onData方法中,通过ChatObject 的对象取出发送者的基本信息作为聊天记录存储起来 4.前端页面需要引入一个js 连接创建的namespace 至此,我们的聊天组已经可以聊天了。 5.对room的定时销毁 每天0点执行,判断活动结束时间和当时时间对比,对于过期的room,先移除掉

IO接口技术的基本知识

I/O接口技术的基本知识 CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。 一、I/0接口的概念 1.接口的分类 I/O接口的功能是负责实现CPU通过系统总线把I/O电路和外围设备联系在一起,按照电路和设备的复杂程度,I/O接口的硬件主要分为两大类: 1)I/O接口芯片 这些芯片大都是集成电路,通过CPU输入不同的命令和参数,并控制相关的I/O电路和简单的外设作相应的操作,常见的接口芯片如定时/计数器、中断控制器、DMA控制器、并行接口等。 2)I/O接口控制卡 有若干个集成电路按一定的逻辑组成为一个部件,或者直接与CPU同在主板上,或是一个插件插在系统总线插槽上。 按照接口的连接对象来分,又可以将他们分为串行接口、并行接口、键盘接口和磁盘接口等。 2.接口的功能 由于计算机的外围设备品种繁多,几乎都采用了机电传动设备,因此,CPU 在与I/O设备进行数据交换时存在以下问题: 速度不匹配:I/O设备的工作速度要比CPU慢许多,而且由于种类的不同,他们之间的速度差异也很大,例如硬盘的传输速度就要比打印机快出很多。 时序不匹配:各个I/O设备都有自己的定时控制电路,以自己的速度传输数据,无法与CPU的时序取得统一。 信息格式不匹配:不同的I/O设备存储和处理信息的格式不同,例如可以分为串行和并行两种;也可以分为二进制格式、ACSII编码和BCD编码等。 信息类型不匹配:不同I/O设备采用的信号类型不同,有些是数字信号,而有些是模拟信号,因此所采用的处理方式也不同。 基于以上原因,CPU与外设之间的数据交换必须通过接口来完成,通常接口有以下一些功能: 1)设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异,接

IO红磷包覆技术

包覆红磷的生产及其应用 红磷又名赤磷,是塑料、橡胶、树脂和合成纤维等高聚物的高效阻燃剂。红磷本身易燃(着火点210℃),但因其受热易被氧化生成氧化磷,在高聚物燃烧时有水生成的环境中,又迅速转化为偏磷酸、磷酸和各种聚磷酸。生成的这种混磷酸,不仅覆盖在被燃物的表面,形成隔膜,起着屏蔽环境(空气)的作用,而且由于混磷酸在较高温度下,对高聚物有很强的脱水炭化作用,易在被燃物表面形成稳定的玻璃炭化层,更进一步增强了保护被燃物的阻燃效果。 但是,红磷难以直接作为阻燃剂使用,因其易燃、易爆、化学性质活泼,易吸湿氧化成酸,并放出剧毒气体磷化氢(PH3);在高聚物中不易分散等。因此,必须加以改性包覆方可实际应用。 目前,在发达国家,红磷表面包覆改性处理研究取得较大进展,包覆红磷已商品化。在我国,因其应用研究不够,所以还未得到广泛应用,目前只是依赖进口来满足国内的少量需要。 我们对包覆红磷的研究,从实验室到具有一定规模的中试生产,共做了近20次的试验。井在橡胶制品厂和塑料制品厂多次进行应用实验。使用我们研制的无机和有机双层包覆红磷(即IO红磷)生产的矿井用阻燃抗静电橡胶和橡塑导风筒布,都表现出良好的阻燃性能,达到产品的

技术标准,减少了卤系阻燃剂和三氧化二锑的用量,减弱了阻燃制品燃烧时所产生的气体对人的窒息作用。IO红磷的性能测试见表1。 表1 IO红磷与同类产品性能比较 阻燃剂 性能参数 含磷量(%)吸水率(%)PH 3 发生量(μg/g〃24h)着火点(℃) 未改性红磷98 4.7 >380 240 CPA15 85 2.9 400 300 IO红磷86 <1.6 1.5-3.4 340-350 从表1可见,与国外同类产品相比,IO红磷性能较好。贮存18个月再次测试,其性能几乎无变化,表现出良好的稳定性。 1、无机包覆红磷 1.1 工艺路线的选择 包覆红磷有两种方法: 一是制取可以作为红磷包覆材科的难溶性无机化合物饱和溶液,用红磷颗粒作为晶种,控制温度,使作为红磷包覆材料的无机化合物以红磷颗粒为核心,呈般晶析出,然后再过滤、洗涤、干燥得到产品。例如,合成水合硼酸锌的饱和溶液,用粉状红磷作为晶种,控制温度,使水合硼酸锌呈微晶析出,即得硼酸锌包覆红磷。 另一方法是制取某种难溶性且具有强吸附作用的无机化合物的胶 体溶液,将粉状红磷投入其中,使胶状无机化合物吸附红磷颗粒,井在其表面沉积、凝聚,从而达到将红磷颗粒包覆的目的。 1.2 无机包覆材料的选择

中断控制实验报告

实验六8259中断控制 、实验目的 1. 学习8086/8088 CPU 中断系统的知识。 2. 学习8259中断控制器的使用。 实验内容 1. 编写程序,使 8255的A 口控制LED 灯。CPU 执行主程序时四个绿灯亮。用脉冲信号 作为8259的IR3的输入信号,向 CPU 请求中断。CPU 在中断服务程序中熄灭绿灯, 并使4个红灯亮。中断服务程序结束,又返回主程序,再使绿灯亮。 2. 编写程序,使 8255的A 口控制LED 灯。CPU 执行主程序时四个绿灯亮。用脉冲信号 作为8259的IR3的输入信号,向CPU 请求中断。CPU 在中断服务程序中每中断一次, 使4个红色LED 灯中每次只亮一个灯, 并随每一次中断逐次移动一个灯的位置, 中断服 务程序结束,又返回主程序,再使绿灯亮。 三、实验区域电路连接图 8259 (1) 8259 的 INT 连8088的 INTR (XI5); (2) 8259 的 INTA 连8088的 INTA (XI2); (3) “插孔和8259的3号中断IR3插孔相连;(单脉冲与时钟单元 ); (4) 8259 的 CS 端接 EX1 (60H ); (5) 连 JXA JX17。 (6) IOWR T IOWR ; (7) IORD^ IORD; 01^34567 DQ M 葩仍D4D5M IJT ISO 舉琵摆 A RIFT I [ 一打- M /E 巴. 0 12 HCHCHC it-

(8) AO T A0;(9)PA0…PAIL2,L6, L1O, L14;PA4…PAh L3,L7,L 11,L15 四、程序框图 1. 2.

相关主题
文本预览
相关文档 最新文档