实验04 数据的有格式输入输出

实验04 数据的有格式输入输出
实验04 数据的有格式输入输出

实验四数据有格式输入输出

数据是程序处理的主要对象。一般情况下,在程序中要完成大量的数据输入输出任务,输入输出数据是否简洁、直观、醒目、规范,是评价程序质量的一项重要指标。如何组织数据的输入输出是程序设计时要认真考虑的一项重要工作。

FORTRAN90提供了强大的数据输入输出功能,其中数据有格式输入输出功能是FORTRAN90最具特色的功能之一。通过学习和掌握数据有格式输入输出功能,有帮于设计和编写高质量程序。

本实验是学习和掌握数据有格式输入输出功能的一次系统实验活动。

一.实验目的

1.了解数据有格式输入输出的主要作用、基本方法和使用规则。

2.掌握数据有格式输入输出语句(READ、PRINT、WRITE)的基本功能和语法规则。

3.掌握格式说明语句(FORMAT)的基本功能和语法规则。

4.掌握I、F、E、A、L、X、/、\等若干常用格式编辑符的格式要求和基本功能。

5.掌握数据有格式输入输出的数据组织和格式说明方法。

6.进一步掌握顺序结构程序设计方法。

7.进一步熟悉软件开发环境。

二.实验内容1

1.问题描述

有三个学生参加两门课程的补考,补考结束后,分别统计每个学生和每门课程的平均成绩,并输出统计结果。编写程序实现之。学生人数、课程门数和成绩数据通过键盘输入。

要求输入输出数据以规范、整洁、直观形式给出。程序中应采用数据有格式输入输出。学生人数和课程门数为2位整数,学号为长度等于4的字符串,成绩为小数1位域宽5位的单精度实数。

2.问题分析

问题对数据输入输出格式提出了严格的要求,程序应按照数据输入输出格式要求实现。按照问题中数据输入输出格式的有关要求,首先应设计好符合要求的数据输入输出格式。

下面给出已设计好的数据输入输出格式,下划线部分为键盘输入数据,非下划线部分为程序输出数据,灰色竖线间隔为一个英文字符,灰色横线间隔为一行,↙为回车键。

输出格式:

参加补考有3名学生。

有英语和数学两门补考课程。

学号英语数学平均

第1位学生成绩: A111 85.4 74.8 80.1

第2位学生成绩: A112 64.2 48.5 56.3

第3位学生成绩: A113 100.0 88.4 94.2

课程平均成绩: 83.2 70.6

求解算法比较简单,设计算法如下:

(1)开始。

(2)根据提示输入补考学生人数n。

(3)根据提示输入补考课程门数m。

(4)根据提示输入第1位学生学号number1、英语成绩english1、数学成绩math1。

(5)根据提示输入第2位学生学号number2、英语成绩english2、数学成绩math2。

(6)根据提示输入第3位学生学号number3、英语成绩english3、数学成绩math3。

(7)统计计算第1位学生平均成绩average1。

(8)统计计算第2位学生平均成绩average2。

(9)统计计算第3位学生平均成绩average3。

(10)统计计算英语平均成绩e_average。

(11)统计计算数学平均成绩m_average。

(12)按输出格式要求输出数据。

(13)结束。

m和n是整型变量,number1、number2、number3是长度为4的字符型变量,其余为实型变量。

3.程序编写

根据算法,设计和编写程序如下:

!班级:???

!姓名:???

!时间:???

!统计平均成绩,并输出

PROGRAM statistic

INTEGER(1) :: n,m

CHARACTER*4 :: number1,number2,number3

REAL :: english1,math1,english2,math2,english3,math3

REAL :: average1,average2,average3,e_average,m_average

WRITE(*,"(1X,'请输入学生人数(两位整数):',\)")

READ(*,"(I2)") n

WRITE(*,"(1X,'请输入课程门数(两位整数):',\)")

READ(*,"(I2)") m

WRITE(*,"(39X,'学号',2X,'英语',2X,'数学')")

WRITE(*,100) 1

READ(*,110) number1,english1,math1

WRITE(*,100) 2

READ(*,110) number2,english2,math2

WRITE(*,100) 3

READ(*,110) number3,english3,math3

average1=(english1+math1)/m

average2=(english2+math2)/m

average3=(english3+math3)/m

e_average=(english1+english2+english3)/n

m_average=(math1+math2+math3)/n

WRITE(*,"(1X,'参加补考有',I2,'名学生。')") n

WRITE(*,"(1X,'有英语和数学两门补考课程。')")

WRITE(*,"(19X,'学号',2X,'英语',2X,'数学',2X,'平均')")

WRITE(*,200) 1,number1,english1,math1,average1

WRITE(*,200) 2,number2,english2,math2,average2

WRITE(*,200) 3,number3,english3,math3,average3

WRITE(*,"(1X,'课程平均成绩:',F5.1,1X,F5.1)") e_average,m_average 100 FORMAT(1X,'请输入第',I2,'位学生成绩(数据间间隔一位): ',\)

110 FORMAT(A,1X,F5.1,1X,F5.1)

200 FORMAT(1X,'第',I2,'位学生成绩:',3X,A,1X,F5.1,1X,F5.1,1X,F5.1)

END

4.实验要求

●对问题进行详细分析,理解所设计的输入输出格式。

●了解算法设计的基本方法,理解给定算法的基本思想。

●了解程序编写的基本方法,理解给定程序的主要思路。

●理解格式说明和常用格式编辑符。

●在D盘上创建新工作区:shiyan04。

●在工作区shiyan04内创建新项目:xm41,项目文件夹创建在工作区文件夹内。

●在项目xm41内创建源程序文件:xm41.f90,并在源程序文件中编辑输入给定程序。

●编译、构建、运行程序。

●将输入数据和输出结果以注释形式编辑输入到源程序文件xm41.f90末尾。

5.实验步骤

●分析问题,理解算法和程序,亦可自行设计和实现。

●启动软件开发环境Microsoft Developer Studio。

●在D盘上创建新工作区shiyan04。

●在工作区shiyan04内创建新项目xm41。

●在项目xm41内创建源程序文件xm41.f90,编辑输入给定源程序文本。

●编译、构建、运行、调试程序。

输入数据:

3↙

2↙

A111 85.4 74.8↙

A112 64.2 48.5↙

A113 100.0 88.4↙

得到输出结果。

●将输入输出数据以注释形式编辑输入到源程序文件末尾。

三.实验内容2

1.问题描述

通常需要计算(a+b)n的展开式系数,展开式系数满足杨辉三角关系。计算并输出n=1,2,3,4,5时的展开式系数及系数之和,即下面的杨辉三角。编写程序实现之。字母“a”、字母“b”、二项式阶数n从键盘输入。

1 1

n=1 1 1 2

n=2 1 2 1 4

n=3 1 3 3 1 8

n=4 1 4 6 4 1 16

n=5 1 5 10 10 5 1 32

要求输入输出数据以规范、整洁、直观形式给出。程序中应采用有格式输入输出。二项式阶数n为2位整数,项符号为长度等于1的字符,系数为3位整数,系数和4位整数。

2.问题分析

问题对数据输入输出格式提出了严格的要求,程序应按照数据输入输出格式要求实现。按照问题中数据输入输出格式的有关要求,首先应设计好符合要求的数据输入输出格式。

输出格式:

下面给出(a+b)1到5次方的展开式系数及系数之和。

阶数杨辉三角系数之和

1

n= 1 1 1 2

n= 2 1 2 1 4

n= 3 1 3 3 1 8

n= 4 1 4 6 4 1 16

n= 5 1 5 10 10 5 1 32

求解算法比较简单,设计算法如下:

(1)开始。

(2)根据提示输入二项式第一项字母x。

(3)根据提示输入二项式第二项字母y。

(4)根据提示输入二项式阶数n。

(5)计算n=1时二项式系数c11,c12及系数和s1。

(6)计算n=2时二项式系数c21,c22,c23及系数和s2。

(7)计算n=3时二项式系数c31,c32,c33,c34及系数和s3。

(8)计算n=4时二项式系数c41,c42,c43,c44,c45及系数和s4。

(9)计算n=5时二项式系数c51,c52,c53,c54,c55,c56及系数和s5。

(10)按输出格式要求输出数据。

(11)结束。

n是整型变量,x和y是长度为1的字符型变量,其余为整型变量。3.程序编写

根据算法,设计和编写程序如下(在下划线空白处填写正确内容): !班级:???

!姓名:???

!时间:???

!计算并输出二项式系数(杨辉三角)

PROGRAM yanghui_triangle

INTEGER(1) :: n

:: x,y

INTEGER :: c11=1,c12=1,s1

INTEGER :: c21=1,c22,c23=1,s2

INTEGER :: c31=1,

:: c41=1,c42,c43,c44,c45=11,s4

INTEGER :: c51=1, ,s5

WRITE(*,"(1X,'请输入二项式第一项字母(1个字母):',\)")

READ(*,"(A)") x

WRITE(*,"( )")

READ(*,"(A)") y

WRITE(*,"(1X,'请输入二项式阶数(2位整数):',\)")

READ(*,"(I2)") n

s1=c11+c12

c22=c11+c12; s2=c21+c22+c23

c32=c21+c22; c33=c22+c23; s3=

; s4=c41+c42+c43+c44+c45

c52=c41+c42; c53=c42+c43; c54=c43+c44; c55=c44+c45; s5=c51+c52+c53+c54+c55+c56

WRITE(*,"(1X,'下面给出(',A1,'+',A1,')1到',I2, '次方的展开式系数及系数之和。')") x, ,n WRITE(*,"(1X,'阶数',9X,'杨辉三角',7X,'系数之和')")

WRITE(*,"(1X,14X,I3)") 1

WRITE(*,"(1X,'n=',I2,8X,2(1X,I3),9X,I4)") 1,c11,c12,s1

WRITE(*,"(1X,'n=',I2,6X,3(1X,I3),7X,I4)") 2,c21,c22,c23,s2

WRITE(*,"( )") 3,c31,c32,c33,c34,s3

WRITE(*,"(1X,'n=',I2,2X,5(1X,I3),3X,I4)") 4,c41, ,c45,s4

WRITE(*,"(1X,'n=',I2, 6(1X,I3), )") 5,c51,c52,c53,c54,c55,c56,s5

END

4.实验要求

●对问题进行详细分析,理解所设计的输入输出格式。

●了解算法设计的基本方法,理解给定算法的基本思想。

●了解程序编写的基本方法,理解给定程序的主要思路。

●理解格式说明和常用格式编辑符。

●完成程序填空,在程序下划线处填入正确内容。

●在工作区shiyan04内创建新项目:xm42,项目文件夹创建在工作区文件夹内。

●在项目xm42创建源程序文件:xm42.f90,在源程序文件中编辑输入正确程序。

●编译、构建、运行程序。

●将输入数据和输出结果以注释形式编辑输入到源程序文件xm2.f90末尾。

●如果将双引号改为单引号,去掉冒号,重新编译,会产生错误,分析原因并加以解决。5.实验步骤

●分析问题,理解算法和程序,完成程序填空,得到正确完整程序。

●在工作区shiyan04内创建新项目:xm42。

●在项目xm42内创建源程序文件:xm42.f90,同时编辑输入源程序文本。

● 编译、构建、运行、调试程序。

输入数据:a ,b ,5。

得到输出结果。

● 将输入数据和输出数据以注释形式编辑输入到源程序文件末尾。

● 将键盘输入改为赋值语句实现。修改程序。编译、构建、运行、调试程序。

四.实验内容3

1.问题描述

已知两个2×3矩阵A 和B ,计算两矩阵之和(对应元素之和)得到新的2×3矩阵C 。分别输出矩阵A 、B 、C 。编写程序实现之。矩阵A 和B 的数据从键盘输入。

矩阵A :12.5 20.4 10

4.4 18.2 8

要求输入输出数据以规范、整洁、直观形式给出。程序中应采用有格式输入输出。第1和第2列元素为小数为1位的实数,第3列元素为2位整数。

2.问题分析

问题对数据输入输出格式提出了严格的要求,程序应按照数据输入输出格式要求实现。按照问题中数据输入输出格式的有关要求,首先应设计好符合要求的数据输入输出格式。

输出格式:

矩阵A:

12.5 20.4 10

4.4 18.2 8

矩阵B:

21.3 15.2 19

11.5 9.3 12

矩阵C:

33.8 35.6 29

15.9 27.5 20

矩阵B :21.3 15.2 19 11.5 9.3 12

求解算法比较简单,设计算法如下:

(1)开始。

(2)根据提示输入矩阵行数m。

(3)根据提示输入矩阵列数n。

(4)根据提示输入矩阵A元素值。

(5)根据提示输入矩阵B元素值。

(6)计算矩阵A+B,得矩阵C。

(7)输出矩阵A、B、C

(8)结束。

m和n是整型变量,矩阵第1、2列元素为实型变量,矩阵第3列元素为整型变量。3.程序编写

根据算法,设计和编写程序如下(含有若干错误,请改正):

程序3:

!班级:???

!姓名:???

!时间:???

!计算矩阵A+B

PROGRAM matrix

INTEGER ::m,n

REAL ::a11,a12,a21,a22,b11,b12,b21,b22,c11,c12,c21,c22

INTEGER ::a13,a23,b13,b23,c13,c23

WRITE(*,"(1X,"请输入矩阵行数(1位整数):",\)")

READ(*,"(F1)") m

WRITE(*,*) "(1X,'请输入矩阵列数(1位整数):',/)"

READ(*,"(I1)") n

PRINT(*,"(1X,'请输入',A1,'×',A1,$

$'矩阵A和B的元素值,第1、2列元素为实数,第3列元素为整数。')") m,n PRINT*,'矩阵第1、2列元素为实数,域宽4,小数1位,第3列为2位整数,数据间间隔2位。' WRITE(*,"(1X,'请输入矩阵A第1行元素:')")

READ(100,*) a11,a12,a13

WRITE(*,"(1X,\)")

READ(100,*) a21,a22,a23

WRITE(*,"(1X,'请输入矩阵B第1行元素:'/)")

READ(*,100) b11,b13

WRITE(*,"(1X,'请输入矩阵B第2行元素:'/)")

READ(*,100) b22,b23

c11=a11+b11; c13=a13+b13

c21=a21+b21; c22=a22+b22; c23=a23+b23

WRITE("(1X,'矩阵A:')")

WRITE(200) a11,a12,a13

WRITE(200) a21,a22,a23

WRITE(*,"(1X,'矩阵B:')")

WRITE(*,200) b11,b12,b13

WRITE(*,200) b21,b23

WRITE(*,*,"(1X,'矩阵C:')")

WRITE(*,*,200) c11,c12,c13

WRITE(*,*,200) c21

100 FORMAT(E4.1,2X,E4.1,2B,I2)

200 FORMAT(1X,A4.1,2B,A4.1,2X,J2)

END

4.实验要求

●对问题进行详细分析,理解所设计的输入输出格式。

●了解算法设计的基本方法,理解给定算法的基本思想。

●了解程序编写的基本方法,理解给定程序的主要思路。

●理解格式说明和常用格式编辑符。

●改正程序错误或重新编写程序。

●在工作区shiyan04内创建新项目:xm43,项目文件夹创建在工作区文件夹内。

●在项目xm43创建源程序文件:xm43.f90,在源程序文件中编辑输入正确程序。

●编译、构建、运行程序。

●将输入数据和输出结果以注释形式编辑输入到源程序文件xm3.f90末尾。

5.实验步骤

●分析问题,理解算法和程序,修改程序错误。重点关注格式说明和格式编辑符。

●在工作区shiyan04内创建新项目:xm43。

●在项目xm43内创建源程序文件:xm43.f90,同时编辑输入源程序文本。

●编译、构建、运行、调试程序。

输入数据:

2↙

3↙

12.5 20.4 10↙

4.4 18.2 8↙

21.3 15.2 19↙

11.5 9.3 12↙

得到输出结果。

●将输入数据和输出数据以注释形式编辑输入到源程序文件末尾。

●将行数m和列数n输入改为赋值语句实现。修改程序。编译、构建、运行、调试程序。

五.实验小结

本次实验是学习、理解和掌握FORTRAN90数据有格式输入输出概念、格式说明方法和格式编辑符功能,以及简单顺序程序设计方法的一次实验,实验效果对今后掌握高质量程序设计方法至关重要。

通过本次实验,学生能够掌握格式说明方法、常用格式编辑符(X、I、F、E、A、\等)功能、FORMAT语句和有格式输入输出语句,掌握输入输出数据格式的组织和设计,初步掌握编写对数据输入输出格式有严格要求的简单顺序程序的基本方法。

六.课外练习

利用课后业余时间,完成以下练习,以巩固所学知识。

求解以下问题:

使用数据有格式输入输出功能,输出由4个字符abcd组成的图形。编写程序实现之。

a

b b

c c

ddddddddddddd

c c

b b

a

问题分析:(提示)

a、b、c、d四个字符可以是任意可显示字符,这四个字符从键盘输入得到。若输入的四个字符为*、#、&、$,则输出结果为:

*

# #

& &

$$$$$$$$$$$$$

& &

# #

*

由相同字符组成的字符串,可用标准函数REPEAT(str,I)得到。如REPEAT(‘$’,3)=‘$$$’。

根据上述分析,可设计算法,编写程序。

解题要求:

●分析问题,设计算法,编写程序。使用有格式输入输出控制字符输入和字符串的输出。

●创建新工作区:lianxi4。

●在工作区lianxi4中创建项目:lx4,项目文件夹名同项目名。

●在项目lx4中创建源程序文件:lx4.f90,同时编辑输入源程序文本。

●编译、构建、运行、调试程序。

实验一 数字量输入输出实验

实验一数字量输入输出实验 一、实验目的 1.熟悉教学板电路及其结构。 2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机 程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方 法。 3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。 4.掌握矩阵键盘、LED动态显示的工作原理。 二、实验设备 PC机一台、实验教学板一块。 三、实验准备 1.阅读实验讲义附录一、实验教学板电路图和附录二、μVision软件使用说明 2.按实验题目要求设计好硬件电路,画出电路原理图,设计出相应程序,并给程序加 上较详细的注释。 四、实验内容 1. 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P 2.4经 NPN三极管9011控制发光管的阳极。P3口支持一个8位行列式键盘,其中P3.4~P3.7 供键盘扫描输出,P3.2、P3.3作键盘扫描输入。 2.实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点 亮。 2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。 实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。 五、实验步骤 1.将实验板与PC机通过COM口连接。启动PC机,进入μVision软件环境,选择建立 新工程文件,即可开始输入源程序。 2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。 3.接上实验板上的电源。 3.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。操作的顺序是:1)选择单片机(MCU TYPE)型号。 如:“STC89C51RC”要与实验板上所装单片机的型号一至。 2)打开文件(Open File)。 即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲 区”有数字变化。 3)选择串行通信口。 选对时,软件上的小灯会变绿。否则小灯是灰色。且在左下窗口提示“出错信息”。

微机原理简单输入输出实验报告

东南大学 《微机实验及课程设计》 实验报告 实验四(1)简单输入输出 一. 实验目的与内容 (一)实验目的 1)进一步掌握TPC实验装置的基本原理和组成结构; 2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况; 3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能

和使用。 (二)实验内容及要求 1、输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(输出端口实验必做) 2、用逻辑电平开关预置某个字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来。(输入端口实验必做) 3、利用基本实验(1)中的输出锁存电路,设计L0~L7为流水灯,流水间隔时间由软件产生。(输出端口实验) 4、利用基本实验(2)中的输入电路,监测逻辑电平开关K0~K7的变换,当开关状态为全开时,在屏幕上显示提示信息并结束程序。(输入端口实验) 要求: 1、输入输出端口应该可以响应外设的连续变化。 2、输出按ESC键退出;输入按任意键退出。 3、内容3、4比做一题,选做一题 二. 实验基本原理 (一)基本原理 简单并行输出实验:八D触发器74LS273的八个输入端接数据总线D0~D7,从键盘输入一个字符或数字,通过2A8H~输出接口输出该字符或者数字代表的ASCII码,再通过8个发光二极管发光显示二进制数码,从而验证编程以及电路的正确性。 简单并行输入实验:八缓冲器74LS244的八个输出端接数据总线D0~D7,8个输入端分别接逻辑电平开关K0~K7,在逻辑电平开关上预置任意字符的ASCII码,编程将此ASCII码通过2A0H~输入,ASCII码对应字符显示在屏幕上,从而验证编程及电路的正确性。 (二)实验接线图

单片机数字量输入输出实验

一、实验目的 1.熟悉教学板电路及其结构。 2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方 法。 3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。 4.掌握矩阵键盘、LED动态显示的工作原理。 二、实验设备 PC机一台、实验教学板一块。 三、实验内容 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P 2.4经NPN 三极管9011控制发光管的阳极。P3口支持一个8位行列式键盘,其中P 3.4~P3.7供键盘扫描输出,P3.2、P3.3作键盘扫描输入。 实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点亮。 2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。 实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。 四、实验步骤 1.将实验板与PC机通过COM口连接。启动PC机,进入μVision软件环境,选择建立 新工程文件,即可开始输入源程序。 2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。 3.接上实验板上的电源。 4.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。操作的顺序是:1)选择单片机(MCU TYPE)型号。 如:“STC89C51RC”要与实验板上所装单片机的型号一至。 2)打开文件(Open File)。 即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲区”有数字变化。 3)选择串行通信口。 选对时,软件上的小灯会变绿。否则小灯是灰色。且在左下窗口提示“出错信息”。 4)下载:按“Download/下载”按键下载。 5)把实验板上的供电的直流电源拔掉或关掉3秒钟再插入或打开电源(为单片机上电复位)。 5.观察单片机运行情况,验证程序是否能完成题目给出的控制要求,若不能达到要求,分析原因、查找错误,修改源程序,再次汇编、连接,重新下载、运行,直至达到题目的控制要求。 五、遇到的问题及原因: 1.实验一,把程序烧进单片机后,发现按键时,LED灯乱亮,经检查是LED等亮的数

汇编语言-实验五 输入输出程序设计

实验五输入输出程序设计 一、实验目的 1) 掌握输入输出程序的编写方法。 2) 熟悉系统功能调用的方法。 3) 熟悉动画程序的编写方法。 二、实验内容 1)在CRT上每隔一秒连续显示字符0-9。 编程提示 为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND 0FH 指令屏蔽高4位。 2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 3)编制在屏幕上画线的子程序,调用该子程序画一矩形。 4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。 5)创建一磁盘文件,保存从键盘输入的字符串。 6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。 7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。 8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。 三、源程序 EXAM5-1 STACK SEGMENT STACK DB 1024 DUP(0)

STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START:MOV BL,0 LP:MOV DL,20H MOV AH, 2 INT 21H MOV AL,BL ADD AL, 0 DAA AND AL,0FH MOV BL,AL PUSH BX OR AL,30H MOV DL,AL MOV AH, 2 INT 21H MOV BX,3E8H LP2:MOV CX,176H ;延时1ms LP1:PUSHF POPF LOOP LP1 DEC BX JNZ LP2 POP BX INC BL JMP LP CODE ENDS END START 执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格: 0 1 2 3 4 5 6 7 8 9 …… EXAM5-2 STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DA TA SEGMENT BUFF DB 6,7 DUP(?),‘$’ DA TA ENDS INPUT MACRO BUFE MOV DX,OFFSET BUFE MOV AH,0AH INT 21H ENDM

C语言中文件_数据的输入输出_读写

C语言中文件,数据的输入输出,读写. 文件是数据的集合体,对文件的处理过程就是对文件的读写过程,或输入输出过程。 所谓文件是指内存以外的媒体上以某种形式组织的一组相关数据的有序集合。文件分类: 顺序文件,随机文件。 文本文件和二进制文件。 文本文件也称为ASCII文件,在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。 文本文件可以在屏幕上按字符显示,源程序文件就是文本文件,由于是按字符显示,所以能读懂文件内容。 二进制文件是按二进制编码方式来存放的。这里主要讨论文件的打开,关闭,读,写,定位等操作。 文件的存取方法 C程序的输入输出(I/O)有两种方式:一种称为标准I/O或流式I/O,另一种称为低级I/O。流式I/O是依靠标准库函数中的输入输出函数实现的。低级I/O利用操作系统提供的接口函数(称为底层接口或系统调用)实现输入输出,低级I/O 主要提供系统软件使用。 在C语言中用一个FILE类型的指针变量指向一个文件,(FILE类型是系统在stdio.h中定义的描述已打开文件的一种结构类型),这个指针称为文件指针。FILE *指针变量标识符; 如 FILE *fp; 文件的打开与关闭 所谓打开文件,指的是建立文件的各种有关信息,并使文件指针指向该文件,以便对它进行操作。 关闭文件则是断开指针与文件之间的联系,也就禁止再对该文件进行操作。 1、fopen 函数原型:FILE *fopen(const char *filename,const char *mode); Fopen函数用来打开一个文件,前一部分用来说明文件路径及文件名,后一部分mode指出了打开文件的存取方式;返回值是被打开文件的FILE型指针,若打开失败,则返回NULL。打开文件的语法格式如下: 文件指针名=fopen(文件名,使用文件方式); 文件指针名必须被说明为FILE类型的指针变量。 FILE *fp; fp=fopen(“C:\\Windowss\\abc.txt”,”r”); 注意用两个反斜杠\\来表示目录间的间隔符。 存取文件的模式是一个字符串,可以由字母r,w,a,t,b及+组合而成,各字符的含

实验四 输入输出流程序设计

C++面向对象程序设计课程实验报告 课程名称C++面向对象程序设计班级实验日期2014.5.16-2012 .5.23 姓名学号实验成绩实验名称实验四输入输出流程序设计 实验目的及要求1.理解输入输出流的基本概念,明确流是一个类 2.了解输入输出流类库基本结构和主要类,掌握主要层次,其中重 点理解fstream,iostream和iomanip 3.理解流缓冲区类的派生关系以及设备缓冲、文件缓冲和流缓冲 4.熟悉格式化的输入和输出,记住主要的常用的操作符,以及各种 应用(对齐) 掌握文件的输入和输出,区别C语言中的文件写入、打开等操作,会对一个文件进行I/O操作 实验环境硬件平台:普通的PC机 软件平台:Windows 操作系统编程环境:VisualC++ 6.0 实验内容1.文件数据的读取。编制一程序来显示并保存[2,1000]内的所有素数。显示、保存素数的格式为:每行10个素数,每一个素数占7个字符,右对齐,最后一行不足10个素数时按一行输出 2.编写一个单向链表的类模板,分别实现增加、删除、查找和打印操作 算法描述及实验步骤1、这个题主要考察了文件中数据的读取,还包括数据格式化输入输出。首先定义一个ofstream类的对象output,在main函数中打开文件后,再分别编写判断素数、每行输出10个数以及使辖域为7的代码,最后关闭文件。 2 这个题是C++与数据结构的结合,实现单向链表内各种功能。首先定义一个类ListNode,然后利用前插入法初始化链表,编写类模板的成员函数,再分别进行增加、删除和查找的操作

调试过程及实验结果 总结1.一旦文件被打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致 2.定义ifstream、ofstream、fstream流类对象时,应用对象名替代控制台文本信息输入/输出使用的输入流类对象(如cin)和输出流类对象(如cout)

带格式的输出语句及输入语句

带格式的输出语句及输入语句 一、输入语句(读语句) 在程序中可以用赋值语句给变量获得一个确定的值,但是变量的值经常变化,尤其初始化时,则必须使用输入语句──读语句,将更为方便。读语句是在程序运行时由用户给变量提供数据的一种很灵活的输入动作,它有两种格式: 1.读语句的一般格式: read(<变量名表>); readln[(<变量名表>)]; 其中变量名表是用逗号隔开的若干个变量名组成的。 功能:从标准输入(即INPUT,一般对应着键盘)中读入数据,并依次赋给相应的变量。 说明: ①read和readln是标准过程名,它们是标准标识符。 ②执行到read或readln语句时,系统处于等待状态,等待用户从键盘上输入数据,系统根据变量的数据类型的语法要求判断输入的字符是否合法。如执行read(a)语句,a是整型变量,则输入的字符为数字字符时是合法的,合法的情况下将输入的整数赋给变量a。 ③在输入数值型(整型或实型)数据时,数据间要用空格或回车分隔开各个数据,一定要输入足够个数的数据,否则仍要继续等待输入,但最后一定要有回车,表示该输入行结束,直到数据足够,读语句执行结束,程序继续运行。 例3. 设a、b、c为整型变量,需将它们的值分别赋以10,20,30,写出对应下列语句的所有可能输入格式。 Read(a,b,c); 解 根据③,即可列出所有可能输入格式 (a)10□20□30←┘ (b)10□20←┘ 30←┘ (c)10←┘ 20□30←┘ (d)10←┘ 20←┘ 30←┘ 其中"←┘"表示回车键。 ④read语句与readln语句的第一个区别是:

read语句是一个接一个地读数据,在执行完本Read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如: Read(a,b); Read(c,d); Read(e); 如果输入数据行如下: 1□2□3□4□5□6□←┘ 则a,b,c,d,e的值分别为1,2,3,4,5,如果后面无读语句则数据6是多余的,这是允许的。 Readln则不同,在读完本Readln语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。 例4 设要达到例1同样的目的,但语句改为: readln(a,b);readln(c) 则例3中的4种输入格式只有(b)(d)是有效的. ⑤readln语句与read语句的第二个区别是:read后一定要有参数表,而readln 可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车。 例5 设有下列语句: read(a,b,c); readln(d,e); readln; readln(f,g); 其中,所有变量均为整型。再设输入的数据如下: 1□2←┘ 3□4□5□6□7□8←┘ 9□10←┘ 11←┘ 12□13←┘ 列表给出每个变量的值.

微机原理实验五输入与输出程序设计

实验六输入与输出程序设计 一、实验目的 1.掌握常用DOS中断调用的功能以及在应用程序中的使用方法。 2.学习键盘输入和屏幕输出的基本方法。 3.宏指令、子程序在应用程序中的使用。 4.汇编语言程序设计的调试与完善。 二、设计指标与实验要求 1.设计内容 本实验要求设计完成:①屏幕输出提示(如“Want input(Y/N)?”),若键入N 则结束程序返回操作系统;键入Y则转2步;键入的是其它字母则回①步。②换行后输出提示(如“please input a strings:”),且在该提示后键入一字符串(输入到输入缓冲区)。 ③换行后输出提示(如“your inputting is:”),在该提示后输出由②步输入的字符串。 ④换行后输出提示“Want continue(Y/N)? ”,若键入Y则转②步;键入N则结束程序返回操作系统;其它字母则回第④步。 2.设计要求 ①按屏幕提示要求输入,从屏幕上获得正确结果。 ②把程序中常用的中断调用定义成宏指令(至少定义2个)。 ③字符串回显部分设计成子程序,可以选择用21H中断的2号或9号功能来实现,应 能显示由主程序指定的任一字符串。要注意这两种方法实现的设计过程是不同的。 采用2号功能的,子程序输入参数为“回显字符串地址”和“回显字符数”;采用 9号功能的,子程序输入参数为“回显字符串地址”。 ④屏幕的提示信息显示格式尽量做到兼顾美观。 3.实验步骤 ①.选用合适的程序文本编辑软件编辑源程序,并为文件取以.ASM为扩展名的文件存盘。 ②.用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。 ③.用LINK对由MASM汇编后产生的目标文件做连接,生成可执行文件;若有错误(同

实验四:输入输出实验

课程名称:计算机组成原理 实验项目:输入输出实验 姓名:李翠超 专业:计算机科学与技术 班级:计算机6班 学号:1609040307 计算机科学与技术学院 实验教学中心 2017年12 月13 日

实验项目名称:输入输出实验 一、实验目的 1、掌握计算机的I/O端口原理,注意实践观察 2、掌握程序编制及指令格式 二、实验内容 1、移位实验 2、数据传送实验/输入输出实验 三、实验原理及接线 1、COP2000 中有7 个寄存器可以向数据总线输出数据, 但在某一特定时刻只能有一个寄存器输出数据. 由X2,X1,X0 决定那一个寄存器输出数据. 图1 数据输出选择器原理图 表1 连接线表

置下表的控制信号, 检验输出结果

2、移位实验 ALU直接输出和零标志位产生原理图 ALU左移输出原理图

ALU右移输出原理图 直通门将运算器的结果不移位送总线。当X2X1X0=100时运算器结果通过直通门送到数据 总线。同时,直通门上还有判0电路,当运算器的结果为全0时,Z=1 右移门将运算器的结果右移一位送总线。当X2X1X0=101时运算器结果通过右通门送到数 据总线。具体连线是: Cy与CN-->DBUS7 ALU7-->DBUS6 ALU6-->DBUSS ALUS-->DBUS4 ALU4-->DBUS3 ALU3-->DBUS2 ALU2-->DBUS 1 ALU1-->DBUSO Cy与CN-->DBUS7 当不带进位移位时(CN=0): 0-->DBUS7 当带进位移位时(CN=1): Cy-->DBUS7 左移门将运算器的结果左移一位送总线。当X2X1X0=110时运算器结果通过左通门送到数据总线。具体连线是: ALU6-->DBUS7 ALUS-->DBUS6 ALU4-->DBUSS ALU3-->DBUS4 ALU2-->DBUS3 ALU1-->DBUS2 ALUO-->DBUS 1 当不带进位移位时(CN=0): 0-->DBUSO 当带进位移位时(CN=1): Cy-->DBUSO 3、在综合实验中,模型机作为一个整体来工作的,所有微程序的控制信号由微程序存储器uM输出,而不是由开关输出。在做综合实验之前,先用8芯电缆连接J1和J2,这样实验 仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器 的控制端口。此综合实验使用的指令是模型机的缺省指令/微指令系统。等做完木综合实验, 熟悉了此套指令/微指令后,用户可以自己设计的指令/微指令系统,有关自己设计指令/微指 令系统的说明在下一章介绍。 在做综合实验时,可以用COP2000计算机组成原理实验软件输入、修改程序,汇编成机

ControlLogix数字量输入输出控制

实验 ControlLogix数字量输入输出控制 一、实验目的 了解RSLinx软件的基本用法 了解RSLogix5000编程的基本方法与逻辑设计 使用ControlLogix进行数字量输入输出控制 二、实验任务 RSLogix5000编程仿真十字路口彩灯控制 三、实验设备和软件 实验设备: 网络控制平台、导线若干、380V电源、PC机 实验软件:RSLinx、RSLogix5000 四、实验步骤 步骤一:连线 本实验中,用导线将位于控制台上的数字输入区的I0插口与点动/自锁按钮区插孔C7,I1与插孔C8连起来,把SB7作为启动按钮,SB8作为停止按钮。数字输入区中的GND-0 (17)端口与24V电源-相连,C7,C8所对应的COM端口(即和其同一列的COM端口)与24V电源+相连。控制台中数字输出区的O0-O5分别用导线和指示灯区的L1-L3,L9-L11这个六个插孔一一对应相连;在指示灯区,从左端数起的三个COM端均应与24V(-)相连;数字输出区的DC-0插孔应与电源24V(+)相连,RTN OUT-0与电源24V(-)相连。 步骤二:RSLinx的设置 1、运行RSLinx,单击菜单栏中的“Communication/Configure Drivers…”,弹出“Configure Driver Types”的对话框(图 2.1)。单击“Available Driver Types”的下拉箭头,选择添加驱动程序,由于PC机和ControlLogix5555是通过以太网连接,所以这里选“Ethernet devices”。

图2.1 选好“Ethernet devices”后,单击“Add New”,就出现如图2.2的对话框,单击OK。 图2.2 2、单击“Add New”按钮,弹出“Add New RSLinx Driver”窗口。输入新驱动的名称,如:AB_ETH-1, AB_ETH1-2等。单击“OK”按钮,弹出如图2.3的窗口。在Station Maping窗口栏中,对应“Station 0”,填入“Host Name”。该PLC模块在内网的地址:192.168.0.211,相应填入,则组态成功。(注意,此时ControlLogix5555必须已加上电源)。

C语言程序设计实验报告

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++;

计算机输入输出系统_接口实验报告

计算机输入输出系统接口实验报告 姓名: 学号: 东南大学计算机科学与工程学院、软件学院 School of Computer Science & Engineering College of Software Engineering Southeast University 二0 16 年 6 月

实验一环境熟悉与I/O地址译码 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验内容 将接口实验包中所带的EX-138.DSN文件用ISIS 7打开。改变A9~A3的接线方法,从而得到Y0;388H~38FH;Y1:398H~39FH; ……;Y7:3F8H~3FFH。并修改上一问的程序,以同样使得Y4#有效。 1)源程序 .8086 .MODEL SMALL .stack .data address word 3c8h .code start: mov ax,@data mov ds,ax mov dx,address mov al,0 out dx,al jmp $ END start 2)电路原理图(138译码部分)

3)运行结果贴图(138译码及上面两个273的输出)

实验二可编程中断控制器8259 一、实验目的 1.掌握8259的基本工作原理和编程方法。 2.深入了解中断的概念和实地址模式下中断处理程序的编写方法。 二、实验内容 将接口实验包中所带的EX-8259.DSN文件用ISIS 7打开。按手册接线并执行。运行结果贴图(执行三次中断,每次中断后的8086寄存器的截图) ……

实验三可编程定时器计数器8253 一、实验目的 掌握8253的基本工作原理、编程方法及其应用。 二、实验内容 一)研究定时计数器(选) 1)源程序 .8086 .MODEL SMALL .DATA .CODE START:MOV AX,@DATA MOV DS,AX MOV DX,226H MOV AL,00010000B ;T/C0,least significant byte only,mode0,Binary OUT DX,AL MOV AL,5 ;Initial count=5 MOV DX,220H OUT DX,AL MOV AH,4CH INT 21H END START 2)讨论题 如果把方式0改成方式1,电路不动,则按下BUTTON后,计数器值会否减1?为什么? 不会,因为方式1下GATE=1或0没有影响,只有GATE的上升沿才会触发计数器开始计数,而该电路中GATE时钟为1,所以计数器不会减1. 二)信号发生器 1)源程序 .8086 .MODEL SMALL .DATA .CODE START:MOV AX,@DATA MOV DS,AX ;Initailize T/C0 MOV DX,226H MOV AL,00110110B ;T/C0,least significant byte first,mode3,binary OUT DX,AL MOV DX,220H MOV AX,1000 ;Initial count=1000 OUT DX,AL MOV AL,AH

pascal-带格式的输出语句及输入语句

1.文件的打开与保存 2.文件的输入与输出语句(结合常量与变量、数的科学记数法) 3.类型:溢出的理解 带格式的输出语句及输入语句 一、写语句的输出格式 在pascal语言中输出数据时是可以按照一定格式的,对整数隐含的输出形式为按十进制数形式。对实数的输出,隐含的形式是科学记数法形式(如果不想用科学记数法输出而用小数形式输出,要自己另行定义)。 事实上,输出语句中的每个输出项中的表达式之后可以加上格式说明,若输出项后没有加格式说明,则数据按系统隐含的格式输出,还可加上一定格式符号按特定格式输出。 ⒈隐含的输出格式 pascal语言为整型量、实型量、布尔型量和字符串( 用一对单引号括起来的字符序列)规定了每种数据所占的宽度(即一个数据占几列) ,一个数据所占的宽度称为"场宽"或"字段宽"。系统给出的隐含场宽称为标准场宽。每一种pascal版本给定的标准场宽不尽相同。下表给出标准pascal和pc机上两种pascal版所规定的标准场宽。 标准场宽 ━━━━━━━━━━━━━━━━━ 数据类型标准pascal Turbo pascal ───────────────── integer 10 实际长度 real 22 17 布尔型10 4或5 字符串串长串长 ━━━━━━━━━━━━━━━━━ 在Turbo Pascal系统中,对于整型字符串的输出都是按数据本身长度输出,对于布尔型数据(只有True和False两种值),TRUE为4列,FALSE为5列,一律采用大写输出。而real 型数据的输出时,则按17列输出,其中第一列为符号位,正号不显示,后四位为"E±nn",中间的12列为尾数部分。如: writeln(sqrt(75)); 则输出□8.6602540379E+00。 而writeln(sqrt(81)); 则输出□9.0000000000E+00。 有时,在程序中往往根据实际情况,需要自己定义场宽。 ⒉指定场宽 在写语句中输出项含有格式符号时,就是为了指定场宽。 ⑴指定单场宽. 格式:write(表达式:N)或writeln(表达式:N),其中N为自然数,指定单场宽后,所有数据不再按标准场宽输出,而按指定场宽输出。若数据实际长度小于指定场宽时,则一律"向右

实验一输入输出接口实验

实验一输入、输出接口实验 一、实验要求 1、P1 口做输出口,接八只发光二极管。 2、P3.0,P3.1 作输入口接两个拨动开关 3.要求若P3.0单独闭合,则LED灯从L7-L0循环闪烁,每次亮一个,若P3.1单独闭合,则led灯从L0-L7闪烁,每次亮一个。若P3.0 P3.1同时闭合,则所有灯一起闪烁,闪烁间隔为1S。若P3.0 P3.1全部断开,则所有灯全不亮。 4、将闪烁间隔修改为30MS,观察现象。 二、实验目的 1、学习 I/0 口的使用方法。 2、学习延时子程序的编写和使用。 三、实验设备 1、IPC-610研华工控机一台, 2、伟福LAB2000P教学实验系统。 四、实验电路及连线 五、实验说明 1、P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当 P1口用为输入口时,必须先对它置1。若不先对它置1,读入的数据是不正确的。 2、8051 延时子程序的延时计算问题,对于程序 Delay: MOV R6,#0H MOV R7,#0H DelayLoop: DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET 查指令表可知 MOV,DJNZ 指令均需用两个机器周期,在 6MHz 晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为: ((256×2+2)×256+4)×2=263176

六、实验报告 1、解释为什么P1端口作为输入口时,需先对它置1,才能读取正确的外部输入数据? 2、画出完整的实验电路原理图 2、整理实验程序

连线 连接孔 1 连接孔 2 1 P1.0 L0 2 P1.1 L1 3 P1.2 L2 4 P1.3 L3 5 单脉冲输出 T0 实验二 外中断及定时、计数器实验 一、实验目的 1、掌握外部中断的运用方法,本实验中采用边沿触发模式。 2、学习 8051 内部 T0 T1 定时/计数器使用方法。 3、掌握中断处理程序的编程方法。 二、实验内容及要求 1、用单次脉冲申请外中断INTO ,采用边沿触发模式,在外中断处理程序中对输出信号灯LED6(P3.1控 制)进行反转(采用CPL 指令) 2、8031 内部定时计数器 T0,按计数器模式和方式2工作,对 P3.4(T0)引脚进行计数。将其数值按二进制数在 P1 口驱动 LED 灯上(L0,L1,L2,L3)显示出来。 3、用 T1作定时器中断方式计时,实现每一秒钟LED7(L7)(P3.0控制)灯闪烁一次 三、实验设备 1、IPC-610研华工控机一台。 2、伟福LAB2000P 教学实验系统。 四、实验电路及连线 注意: 本实验中,“单次脉冲”同时作为计数脉冲输入T0引脚,同时也引到引脚INTO 申请外部中断,本实验中将要求同时开放外部中断INTO 和T1的定时中断这两个中断。 五、实验说明 1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验T0使用的是计数器。T1使用的是定时器。 2.本实验中内部T0起计数器的作用。外部事件计数脉冲由 P3.4 引入定时器 T0。 单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能 检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。 3、定时器有关的寄存器有工作方式寄存器 TMOD 和控制寄存器 TCON 。TMOD 用于设置定时器/计数器 连线 连接孔 1 连接孔 2 1 P3.0 L7

c语言程序设计基本输入输出和简单程序设计

实验3 基本输入输出和简单程序设计 实验目的 1.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。 2.理解C语言程序的顺序结构,掌握顺序结构设计的基本方法。 3.进一步熟悉C程序的编辑、编译、连接和运行以及调试跟踪的过程。 实验内容 1.准备实验环境: (1)启动Visual Studio 201X 或者Codeblocker等C程序开发的IDE (2)如果保留了实验1的工程项目,则可以直接双击工程项目文件夹中的.sln 文件打开它即可。否则,按实验1的做法,创建一个Win32控制台应用程序(即ConsoleApplication)工程,以自己的姓名全拼音为工程名称。可能有些同学已经忘记了,我们再指导一遍: 首先新建项目:

2.理解分析程序,熟悉基本的C程序输入输出。 1)给工程新建一个源程序文件,取名为"你的姓名全拼_3_1.c",并将以下程序编写进该源程序保存: #include int main() { int a=25; double d = 4321.123456789012345; char c = 'T'; printf("你的姓名_3_1:理解输出!\n");/* 改姓名哦*/ printf("a = :%d;%5d;%-5d;%+05d!\n",a,a,a,-a); printf("a = :%5x;%o!\n",a,a); printf("d = :%f;%15f;%8.3f;%20.15f;%.2f!\n",d,d,d,d,d); printf("c = :%c;%5c;%-5c!\n",c,c,c); } 运行该程序,将运行的结果截图放在下面: 程序运行的结果图:

C++输入输出流实验报告

深圳大学实验报告 实验课程名称:程序设计实验与课程设计 实验项目名称:实验10 C++流输入与流输出 学院:计软专业:计科 报告人:学号:班级: 3 同组人:无 指导教师:朱安民 实验时间:2014年6月16日提交时间:2014年6月16 声明: 本次实验内容由报告人和同组人独立完成,所有涉及到他人的工作均已说明。报告人和同组人均同意教师及学校为教学活动而引用本实验的内容,且无需事先征得同意和特别说明。 教务处制

一、实验目的 1.掌握标准输入输出(iostream库中标准对象cin、cout)的使用 2.掌握IO流类成员函数输入输出(cin.get, cin.getline, cin.read; cout.put, cout.write)的使用 3.掌握输出格式(标准控制符、IO流类成员函数、iomanip头文件中的控制符)控制方法 4.掌握磁盘文件的输入输出方法 二、实验说明和实验环境 1.在奥特曼类的基础上,编写一个程序,重载运算符“》”和“《”,使得用户可以直接(格式化)输出奥特曼的状态。在主程序中输入若干个(3个)奥特曼的状态,并分别将它们保存到文件RecordU.txt中。然后读取并显示文件中的内容。 2.奥特曼和怪物都具有属性:等级, 生命, 攻击, 经验, 金钱,都具有方法:初始化initial和显示状态display 在奥特曼的初始化中,需要接受外来等级参数,生命, 攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0 在怪兽的初始化中,需要接受外来等级参数,生命, 攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍 对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。 注意:为了实现运算符《重载,需要包含头文件 经常天降怪石会砸中奥特曼或怪兽,如果被幸运石砸中,就会处于“鸿运当头”状态,被砸对象除等级外其它属性全部翻倍;如果被厄运石砸中,就会陷入“倒霉透顶”状态,被砸对象除等级外其它属性全部减半。把“鸿运当头”封装成操作,并用重载运算符++来实现;“倒霉透顶”封装成操作,并用重载运算符--来实现。两个重载都需要用友元方法。 3.奥特曼和怪物经过一番战斗斗,需要中场休息,休息时把各自的属性值存放到一个文件中,休息结束时需要从文件中读取之前的状态继续战斗。 奥特曼和怪物都具有属性:等级, 生命, 攻击, 经验, 金钱,都具有方法:初始化initial和显示状态display 奥特曼和怪兽的属性值均来自于文件(文件的第一行是奥特曼的数据,初始状态为:等级是8,生命, 攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0,文件的第二行是怪兽的数据,初始状态为等级是4,生命, 攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍)对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。 把信息直接从文件读出来并赋值给奥特曼和怪兽,需要重载》运算符作为友元; 把奥特曼和怪兽的值写入文件,要求重载《运算符作为友元

汇编语言——输入输出程序设计实验

实验四输入/输出实验(2学时综合性实验) 1.实验目的 (1) 掌握输入输出程序设计的概念和方法。 (2) 了解PC机外围芯片8259的功能。 (3)学习如何在PC机上编写具有输入输出功能的程序,包括8259芯片的使用方法。 2.实验说明 本实验要求自行编写一个显示器输出处理程序,它可以完成内存中保存的一串字符在屏幕显示, 因此本实验既属于输入输出实验,也属于中断实验。 3.实验内容 编写一个显示器输出处理中断程序(名为NEW09),实现DOS 21H中断的9号功能,在屏幕上输出内存缓冲区BUF中以”$”结束的一串字符串。要求:缓冲区的偏移地址采用DX寄存器进行传递。 4.实验准备 (1) 预习输入输出程序设计的特点和方法。 (2) 仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。 5.实验步骤 (1) 建立源文件,并通过汇编和连接,产生可执行文件。 (2) 运行程序,观察常规字符键及功能键按下时程序的反应, DATAS SEGMENT buf db'li hongbin','$';此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS

main proc far START: mov al,68h mov ah,35h int 21h push es push bx push ds mov bx,offset buf mov dx,offset new09 mov ax,seg new09 mov ds,ax MOV AX,DATAS MOV DS,AX pop ds pop bx pop es sti mov al,68h mov ah,25h int 21h main endp

P1口输入输出实验

实验一P1 口输入输出 一.实验目的 (1)进一步熟悉51单片机外部引脚线路连接; (2)验证常用的51指令; (3)学习简单的编程方法; (4)掌握单片机全系统调试的过程及方法; (5)学习P1 口的有关功能作用以及使用方法。 二?实验说明 P1 口由于有内部上拉电阻,没有高阻抗输入状态,称为准双向口。作为输出口时,不需要在片外接上拉电阻,P1 口“读引脚”输入时,必须先向锁存器写1; 三?实验内容 P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序 读取开关状态,将此状态,在发光二极管上显示出来 四?实验原理 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。循环时间由定时器控制。 五?实验流程 ORG 0000H ;程序入口 AJMP RIGHT ;跳向标号RIGHT处 ORG 0030H ;程序

RIGHT: MOV R0,#08H ;置移位次数

MOV A,#0FFH ;置全 1 CLR C ;将Cy 清零 RIGHT1: RRC A ;由于进位Cy=0 ,所以带进位的循环右移会出现灯的亮灭 MOV P1,A ;输出至P1 口,控制LED CALL DELAY ;调用延时子程序 DJNZ R0,RIGHT1 ;R0-1,不为0则转移到标号 RIGHT1处 AJMP RIGHT ;绝对转移至RIGHT 处 ?***************************************************************************** 5 ; /*延时子程序*/ ?***************************************************************************** DJNZ R5,DELAY1 ;R5-1,不为 0 则转移至 DELAY1,执行 2*10us RET ;退出子程序执行 END 七?硬件设计 (1) P1 口某一 I/O 口线反转输出电路 (2) P1 口输出电路 DELAY: MOV R5,#10 DELAY1: MOV R6,#50 DELAY2: MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY2 ;R6-1,不为0则转移至 DELAY2,执行2*200*10us H-5V +5V Vcc P1.0 Pl 1 EA XI PL 2 Pl .3 Pl XS Pl.5 Pl.6 Pl .7 R.ST Vss ;使用不停的跳转来实现延时, 30 P 80CS1 LED 360fi + 5V

相关文档
最新文档