实验四:输入输出实验

合集下载

单片机实验报告

单片机实验报告

单片机实验报告实验一:存储器块清零或赋值一、实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。

2 熟悉循环结构程序的编写。

3 熟悉编程环境和程序的调试。

二、实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。

例如将4000H开始的10个字节内容清零或全部赋值为33H。

注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。

2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。

5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。

三、实验仪器微机、VW,WA VE6000编程环境软件,(单片机实验箱)Lab6000/Lab6000通用微控制器MCS51实验四、实验步骤1、新建工程文件。

(注意:文件不要用中文名称保存时不要用中文路径)2、编写程序。

3、运行和调试过程。

外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH):单步执行程序,观察SFR中外部地址指针的变化;全速执行程序,可以看到外部数据存储器已赋值33H:五、实验结果可以看到外部数据存储器已赋值33H:六、问题讨论本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。

同时,学习掌握汇编程序的编写和调试过程。

实验二:存储块移动一、实验目的1 熟悉51汇编语言程序结构。

2 熟悉循环结构程序的编写,进一步熟悉指令系统。

3 熟悉编程环境和程序的调试。

二、实验内容将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。

实验四 P口输入、输出

实验四    P口输入、输出
思考:从左到右轮流循环点亮每只发光二极管;怎样改程序? 思考:从左到右轮流循环点亮每只发光二极管;怎样改程序?
4、编程完成:发光二极管循环显示二进制数00H至0FFH。 、编程完成:发光二极管循环显示二进制数 至 。
LED EQU 01H ORG 0 MOV A,#LED LOOP: MOV p1,A CALL DELAY INC A LJMP LOOP DELAY: MOV R6,#0 MOV R7,#0 DLLOOP: DJNZ R6,$ DJNZ R7,DLLOOP RET END
假设赋值给A为类似 的数据, 假设赋值给 为类似1BH、0AEH的数据,编程,利用查表功 为类似 、 的数据 编程, 能将高低半字节分别转换为ASCII码,存放在地址为30H、31H 能将高低半字节分别转换为 码 存放在地址为 、 数据区。 的值, 的RAM数据区。修改程序中给累加器 的值,重复实验,观察 数据区 修改程序中给累加器A的值 重复实验, 实验结果。 实验结果。 RESULT EQU 03H MOV A,B ORG 0 ANL A,#0FH LJMP START MOVC A,@A+DPTR ASCIITAB: MOV RESULT+1,A DB '0123456789ABCDEF' RET BINTOHEX: START: MOV DPTR,#ASCIITAB MOV SP,#40H MOV B,A MOV A,#1AH SWAP A CALL BINTOHEX ANL A,#0FH LJMP $ MOVC A,@A+DPTR END MOV RESULT,A
三、实验内容 1、⑴ 按图连接线路:P1.0—P1.7用插针连 、 按图连ห้องสมุดไป่ตู้线路: 用插针连 至L0-L7; ; 在闪动“ 状态 状态, ⑵ 在闪动“P.”状态,按PCDBG键; 键 双击DVCC图标,启动 图标, ⑶ 双击 图标 启动DVCC; ; 在系统设置选项中设定仿真模式为内程序、 ⑷ 在系统设置选项中设定仿真模式为内程序、 内数据; 内数据; 在主菜单中选择联接; ⑸ 在主菜单中选择联接; 新建文件,编辑实验源程序(1)和 ⑹ 新建文件,编辑实验源程序 和(2)(见附 见附 录),验证“八位逻辑电平显示”电路中的 ,验证“八位逻辑电平显示” 发光二极管的连接是共阴极还是共阳极。 发光二极管的连接是共阴极还是共阳极。

《C语言程序设计》实验设计习题答案

《C语言程序设计》实验设计习题答案

《C语言程序设计》实验设计习题答案C语言程序设计是计算机专业的一门基础课程,通过实验设计习题可以帮助学生巩固所学的C语言知识,并提升编程能力。

本文将为您提供《C语言程序设计》实验设计习题的答案,以帮助您更好地理解和掌握相关知识。

实验一:基本输入输出实验题目描述:请编写一个程序,实现输入两个整数并输出其和与积。

```c#include<stdio.h>int main(){int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);int sum = num1 + num2;int product = num1 * num2;printf("和:%d\n", sum);printf("积:%d\n", product);return 0;```实验二:判断奇偶数实验题目描述:请编写一个程序,实现判断输入整数是奇数还是偶数的功能,并输出结果。

```c#include<stdio.h>int main(){int num;printf("请输入一个整数:");scanf("%d", &num);if(num % 2 == 0){printf("%d为偶数\n", num);}else{printf("%d为奇数\n", num);return 0;}```实验三:求和实验题目描述:请编写一个程序,实现输入n个整数并输出其和。

```c#include<stdio.h>int main(){int n, num;int sum = 0;printf("请输入整数的个数:");scanf("%d", &n);for(int i = 0; i < n; i++){printf("请输入第%d个整数:", i+1);scanf("%d", &num);sum += num;printf("和:%d\n", sum);return 0;}```实验四:阶乘实验题目描述:请编写一个程序,实现输入一个整数并输出其阶乘。

plc实验报告总结

plc实验报告总结

plc实验报告总结近年来,工业自动化技术飞速发展,PLC(可编程控制器)也成为现代化生产领域不可或缺的设备之一。

在学习PLC时,我们进行了一系列实验,以下是本人对PLC实验的总结。

实验一:PLC硬件配置在这个实验中,我们学会了PLC的硬件配置和连接步骤。

我们用编程器连接PLC并将程序下载到PLC中。

这个实验直观地介绍了PLC的硬件构成和基本配置方法。

实验二:PLC基础操作这个实验教给我们PLC的基础操作,如如何创建程序,如何将输入/输出模块配置到PLC中,并编写程序将输入信号转换为输出信号。

这个实验让我们了解了PLC的基本功能和使用方法。

实验三:PLC计数器和定时器在这个实验中,我们学会了如何编程使用PLC的计数器和定时器。

我们能够利用计数器和定时器来控制输出电路和操作电机。

这个实验让我们明白了如何利用PLC控制多个输出和设备。

实验四:PLC组态软件和模拟仿真本次实验是在模拟环境中使用PLC。

我们用Simatic S7组态软件将我们的PLC机器仿真,观察程序的运作情况。

这个实验允许我们将PLC程序提前测试并进行模拟。

实验五:PLC通信在这个实验中,我们使用S7协议进行PLC通信。

我们了解了基本的通信协议,如何建立连接,如何在不同硬件设备之间传输数据。

这个实验展示了现实世界中PLC通信的应用。

PLC的应用范围非常广泛, 包括制造业,交通运输,电力建设等。

在现代制造设备中,几乎所有的电子控制系统都与PLC有关。

PLC逐渐取代了真空管、继电器和计时器等设备,成为可编程控制系统的主要顶替者之一。

总之,通过PLC的实践经验,我了解到PLC对于自动化控制是非常重要的。

它可以高效地控制机器人、传送带等设备,并且具有可编程、可靠、操作简便等优点。

PLC不仅提高了设备的生产效率和质量,而且缩短了制造周期,节省了成本。

我相信,在未来几年内,PLC将在更广泛的自动化控制领域发挥更为广泛和重要的作用。

电子电路实验四 实验报告

电子电路实验四 实验报告

实验四波形发生电路实验报告一、理论计算1.正弦振荡电路实验电路如图1所示,电源电压为±12V。

分析图1电路的工作原理,根据图中的元件参数,计算符合振荡条件的Rw值以及振荡频率f0。

该正弦振荡电路采用RC串并联选频网络,选频网络的示意图如下:当输入信号的频率足够低时,,超前,且当频率趋近于零时,相位超前趋近于+90°;当输入信号的频率足够高时,,滞后,且当频率趋近于无穷大时,相位滞后趋近于-90°。

因此,当信号频率从零逐渐变化到无穷大时,的相位将从+90°逐渐变化到-90°,故必定存在一个频率f0,当f= f0时,与同相。

RC串并联选频网络的反馈系数整理可得令,则代入上式,得出当f=f0时,,由正弦振荡电路的起振条件知,。

对于图1的正弦振荡电路,有将R3、R4代入上式,令之大于3,得Rw>10kΩ。

将R1=R2=16kΩ、C1=C2=0.01μF代入f0式,得f0=994.7Hz。

2.多谐振荡电路实验电路如图2所示。

深入分析图2所示电路的工作原理,画出Vo1、Vo2的波形,推导Vo1、Vo2波形的周期(频率)和幅度的计算公式。

再按图2中给出的元件参数计算Vo1、Vo2波形的周期(频率)、幅度,以备与实验实测值进行比较。

该电路为三角波发生电路,原理图如下:虚线左边为滞回电路,故Vo1为方波。

根据叠加原理,集成运放A1同相输入端的电位令,则阈值电压对于虚线右边的积分电路,其输入电压不是+U Z,就是-U Z,故积分电路的输出电压的波形为三角波。

设输出电压的初始值为-U T,终了值为+U T,则可解得T为矩形波、三角波共同的周期。

矩形波的幅度的理论值即为UZ,等于6V;将实验电路图中的各个参数代入各式,得UT=0.5*6=3V,故三角波的幅度理论值为3V,矩形波、三角波的周期 。

3.锯齿波发生电路锯齿波发生电路的原理图见仿真实验电路图。

设二极管导通时的等效电阻可忽略不计,当u o1=+U Z时,D3导通,D4截止,输出电压的表达式为uo随时间线性下降。

实验四 三态门逻辑功能测试

实验四 三态门逻辑功能测试

实验四三态门逻辑功能测试班级:计科三班学号:20100810323 姓名:夏雪一、实验准备(老师指导)1.测试5M脉冲信号能否使用将5M的脉冲信号加在实验箱上,输出显示在示波器上。

2.认识三态门的管脚记住三态门的管脚分配情况,便于实验进行:1使能,2输入,3输出;4使能,5输入,6输出;7接地;8使能,9输入,10输出;11使能,12输入,13输出;14接电源。

3.示波器中信号的合并一般示波器中波形的显示为信号与实间的关系,即为X—T(Y—T)关系图,如果要将示波器上两信号合并,则将显示选项改为X—Y。

4.对延迟时间的理解延迟时间的测试要用到示波器的延迟扫描,对波形展开放大后,观察波形上升点与下降点,上升10%开始记为上升时间,下降10%开始记为下降时间。

二、实验内容1.测试三态门的逻辑功能并测输入输出电压(静态测试);2.测试三态门的传输特性,输入端接在CP端;3.测三态门的传输延迟;4.输入端接入函数发生器的三角波(最小值为0V,最大值不超过5V),将输入输出信号显示在示波器上,并将两信号合并;三、实验条件实验箱,74LS125芯片,导线,示波器,信号发生器,万用表四、实验电路1.测三态门的逻辑功能并测输入输出电压2.测三态门的传输特性(输入信号为实验箱内的CP)3.传输延迟4.信号合成CP5MHZ五、实验结果及结论1.三态门的逻辑功能测试使能端1和输入端2接逻辑信号,按下灯亮表示输入信号为高电平1,未按下灯不亮表示输入信号为低电平0,输出3接在发光二级管上,发光为黄色表示输出信号为低电平,为红色表示输出信号为高电平输入的逻辑信号为00,输出信号灯不亮(实验中为发光二极管,显示为黄色),表示输出为低电平,即为0。

输入端2的输入电压为0V,输出3电压为24.6mV。

输入的逻辑信号为01,输出信号灯亮(实验中为发光二极管,显示为红色),表示输出为高电平,即为1。

输入端2的输入电压为4.98V,输出电压3为4.99V。

华工计组实验报告

华工计组实验报告

实验名称:计算机组成原理实验实验目的:1. 理解计算机组成原理的基本概念和原理。

2. 掌握计算机各个组成部件的功能和相互关系。

3. 通过实验加深对计算机组成原理的理解和应用。

实验时间:2023年X月X日实验地点:计算机实验室实验器材:1. 计算机组成原理实验箱2. 计算机组成原理实验指导书3. 计算器4. 计算机组成原理实验数据记录表实验内容:一、实验一:计算机硬件系统结构1. 实验目的:了解计算机硬件系统的基本结构,包括中央处理器(CPU)、存储器、输入输出设备等。

2. 实验步骤:(1)观察实验箱的硬件组成,识别各个硬件部件。

(2)了解各个硬件部件的功能和相互关系。

(3)记录实验数据。

3. 实验结果与分析:实验结果显示,计算机硬件系统主要由CPU、存储器、输入输出设备等组成。

CPU负责处理数据,存储器负责存储数据,输入输出设备负责与用户进行交互。

二、实验二:CPU工作原理1. 实验目的:了解CPU的工作原理,包括指令周期、时钟周期、数据通路等。

2. 实验步骤:(1)观察实验箱的CPU模块,识别各个部件。

(2)了解CPU各个部件的功能和相互关系。

(3)进行指令周期和时钟周期的实验,记录实验数据。

3. 实验结果与分析:实验结果显示,CPU的工作原理包括指令周期和时钟周期。

指令周期是指执行一条指令所需的时间,时钟周期是指CPU中时钟信号的周期。

实验数据表明,CPU通过数据通路进行指令的执行,完成数据处理。

三、实验三:存储器工作原理1. 实验目的:了解存储器的工作原理,包括随机存储器(RAM)、只读存储器(ROM)等。

2. 实验步骤:(1)观察实验箱的存储器模块,识别各个存储器。

(2)了解存储器的功能和特点。

(3)进行存储器读写实验,记录实验数据。

3. 实验结果与分析:实验结果显示,存储器包括RAM和ROM。

RAM具有读写功能,而ROM只能读。

实验数据表明,存储器通过地址译码器进行寻址,实现数据的读写。

C语言_实验四、函数程序设计

C语言_实验四、函数程序设计

实验四函数一、实验目的1.掌握函数的定义、函数的说明和调用。

2.掌握函数的参数及其传递方式,函数值的正确返回。

二、实验内容1.[目的]掌握标准库函数的说明和调用方法。

[题目内容]编写一个程序,首先显示一个菜单,然后根据用户的选择,输入数据后,执行相应的操作。

[输入]用户选择和函数自变量值[输出]如下菜单:=======MENU======1.。

sin2.。

cos3.。

pow4.。

sqrt0.。

exit==================[提示]使用标准库函数、多分支选择结构。

2.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有一个整型参数,函数的功能是:当这个整型数的值是偶数时,函数的返回值为0,当这个整型数的值是奇数时,返回值为1 。

编写一个程序,从键盘输入任意10个整数,分别调用用户自定义函数来判断这10个整数的奇偶性。

[输入]任意10个整数[输出]这10个整数的奇偶性[提示]在主函数中使用循环结构输入10个整数。

根据子函数的返回值输出相应的判断结果信息。

3.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]编写一个用户自定义函数,该函数有三个整数参数,函数的功能是:求解这三个整数的最大值,函数的返回值为三个参数的最大值。

编写一个程序,从键盘输入任意5个整数,分别两次调用用户自定义函数来求出这5个整数中的最大值。

[输入]任意5个整数[输出]这5个整数的最大值[提示]先用前三个整数调用函数,求出的最大值作为参数之一,再与另两个整数一起求出最大值即为所求。

4.[目的]掌握用户自定义函数的定义、函数的说明和调用方法。

[题目内容]nA表示从m各元素中抽出n个元素的排列的个数。

它的计算公式为:m)!(!n m m A n m -=。

编写一个用户自定义函数,该函数有一个整数参数,函数的功能是:求解这个整数的阶乘,函数的返回值为这个整数的阶乘。

大学c语言实验报告-1基本输入输出

大学c语言实验报告-1基本输入输出
分析题目
实现程序流程
写程序代码
调试验证代码
四、实验原始纪录(源程序、数据结构等)
11.原程序:
12.原程序:
13.原程序:
14.原程序:
五、实验结果及分析(计算过程与结果、数据曲线、图表等)
11题输出结果:
12题输出结果:
13题输出结果:1ຫໍສະໝຸດ 题输出结果:六、实验总结与思考
1.本次试验初步了解了输入与输出函数在实际程序中的运行及VC++的使用。
2.对逻辑运算了解的更加深刻。
教师评语:
二实验主要仪器和设备计算机三实验方法与步骤需求分析算法设计思路流程图等分析题目实现程序流程写程序代码调试验证代码四实验原始纪录源程序数据结构等11
实验报告
课程名称程序设计基础——c语言
实验项目名称实验1基本输入输出
实验学生班级
实验学生姓名
学 号
同组学生姓名\
实验时间
实验地点
实验成绩评定
指导教师签字年月日
一、实验目的和要求
1.理解该部分的概念。包括:
掌握该部分的用法,熟练编写程序应用
2.上机调试之前必须携带已经编写完毕的程序源代码,实验过程中主要是进行调试。
3.上机时间不足以完成实验项目的同学利用课外时间做完所有项目。
4.根据所选实验内容完成实验报告。
二、实验主要仪器和设备
计算机
三、实验方法与步骤(需求分析、算法设计思路、流程图等)

实验四:输入输出实验

实验四:输入输出实验

课程名称:计算机组成原理实验项目:输入输出实验姓名:李翠超专业:计算机科学与技术班级:计算机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-->DBUS7ALU7-->DBUS6ALU6-->DBUSSALUS-->DBUS4ALU4-->DBUS3ALU3-->DBUS2ALU2-->DBUS 1ALU1-->DBUSOCy与CN-->DBUS7当不带进位移位时(CN=0):0-->DBUS7当带进位移位时(CN=1):Cy-->DBUS7左移门将运算器的结果左移一位送总线。

当X2X1X0=110时运算器结果通过左通门送到数据总线。

具体连线是:ALU6-->DBUS7ALUS-->DBUS6ALU4-->DBUSSALU3-->DBUS4ALU2-->DBUS3ALU1-->DBUS2ALUO-->DBUS 1当不带进位移位时(CN=0):0-->DBUSO当带进位移位时(CN=1):Cy-->DBUSO3、在综合实验中,模型机作为一个整体来工作的,所有微程序的控制信号由微程序存储器uM输出,而不是由开关输出。

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

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

实验四输入输出流实验课程名:面向对象程序设计(C++)专业班级:学号:姓名:实验时间:实验地点:指导教师:代码分析:1)在输入时调用getline()以换行符作为输入姓名时的结束标志,已达到输入空格的目的2)输出时采用resetiosflags(ios::right)实现结束向左对齐,用setw(8)实现输出域宽为8,使用一系列的格式控制字符来实现输出格式的控制。

2. 重载运算符“<<”和“>>”,使其能够输入一件商品的信息和输出这件商品的信息。

商品的信息由编号、商品名和价格。

假如商品类Merchandise的框架如下:class merchandise{public:Merchandiss();~Merchandiss();friend istream& operator>>(istream& in,Merchandiss& s);friend ostream&operator<<(ostream& out,Merchandiss& s);private:int no;char *name;double price;};要求实现该类,并编写以下的main函数对该类进行操作。

int main(){ Merchandise mer;cin>>mer;cout<<mer;return 0;}实验代码:#include<iostream>using namespace std;class merchandise{out<<s.no<<' '<<<<' '<<s.price<<endl;return out;}int main(){merchandise mer;cin>>mer;cout<<mer;return 0;}实验结果:实验分析:先定义一个商品的类,构造函数定义为无参函数在函数体中将name置为空,其他为0.在重载>>时使用getline函数,输入name以’\n’作为结束标记重载<<时直接输出。

答案

答案

(必做题)MATLAB 实验一:矩阵的使用1. 略2. 在matlab 的命令窗口里完成如下计算,其中t 的值分别取-1,0,1,表达式如下:4/3)t y e π-= function myfun1t=-1:1;y=sqrt(3)/2*exp(-4*t).*sin( 4*sqrt(3*t)+pi/3 );disp(y);3.自行产生一个5行5列的数组,得到最中间的三行三行矩阵。

Function myfun3A=magic (5);B=A ([2:4],[2:4]);Disp(B);4. 用magic 产生一个5*5的矩阵,将这个矩阵的第二行与第三行互换位置function myfun4a=magic(5);b=a([1,3,2,4,5],:);disp(b);5. 求方程组的根 x 1+4x 2-3x 3=22x 1+5x 2-x 3=11x 1+6x 2+x 3=12A=[1 4 -3;2 5 -1;1 6 1];B=[2;11;12];X=inv(A)*B;disp(X);6. 已知:一个多项式的系数向量是p=[1 -6-72 -27],求这个多项式的根。

function myfun6p=[1 -6 -72 -27];y=roots(p);disp(y);7. 已经两个多项式的系数分别是:[1 2 3 4]和[1 4 9 16],请求这两个多项式的乘积,及商和余数。

function myfun7a=[1 2 3 4];b=[1 4 9 16];c=conv(a,b);[s,r]=deconv(a,b);disp(c);disp(s);disp(r);8.给定一个多项式的根是[-5 -3+4i -3-4i],求原来的多项式function myfun8r=[-5 -3+4i -3-4i];p=poly(r);disp(poly2sym(p)); %disp是用于程序中9. A=[2 3 4;1 5 7;6 2 5]用什么函数,保证第一列排序的时候,其他列跟着变化。

C语言实验报告

C语言实验报告

C语⾔实验报告上机要求:禁⽌玩游戏、看视频及从事与课程⽆关的活动。

实验内容按照指导书内容填写,可以把⾃⼰上机编写的程序、遇到的问题、解决办法写上(得到⾼分的条件)。

在有输⼊输出的程序部分,应该写上输⼊输出的结果,以表⽰程序能正确⼯作。

实验⼀编程环境的使⽤⼀、⽬的和要求1.了解编程环境的使⽤。

2.学会处理简单的错误,观察运⾏结果。

3.掌握基本的输⼊输出。

⼆、实验原理VisualC++6.0是⼀个集成的开发环境,包括编辑、编译连接和调试。

编写程序的主要过程是:建⽴⼯作区、建⽴⼯程、添加源⽂件、输⼊程序、运⾏程序、改正出现的错误直到有正确的输出结果。

三、实验内容及步骤1.编程环境的使⽤。

(1)打开VisualC++6.0开发环境。

(2)单击“⽂件-〉新建”菜单命令,显⽰出“新建”对话框(如图1-3)。

在新建对话框单击“⼯程”标签,选中Win32 Console Application项,然后在⼯程框中键⼊控制台应⽤程序项⽬名称,并且选中空⼯程。

(3)添加C++源⽂件,输⼊⽂件名。

(4)打开编辑窗⼝,输⼊程序,保存。

(5)编译运⾏程序,找到其错误位置,改正错误。

2.编写如下程序,从键盘读⼊两个整数,计算它们的和差积商,将结果输出在屏幕上。

3.编写如下程序,从键盘读⼊两个字符,并输出在屏幕上。

四、思考问题1.如何使⽤不同的数据类型。

2.如何处理输⼊输出。

3.如何查找程序中的错误?实验⼆选择结构⼀、⽬的和要求1. 掌握if ...else 及其嵌套的⽤法。

2. 掌握switch 的⽤法。

⼆、实验原理if 语句是专门⽤来实现选择结构的语句,是根据⼀个条件满⾜与否来决定是否执⾏某条语句或从两个语句中选择⼀个语句执⾏。

if-else 语句的⼀般格式为:if (表达式1) 语句1else if (表达式2)语句2……else if (表达式n )语句nelse 语句n+1当程序中有多个条件判断时,若使⽤if 语句可能使嵌套太多,降低了程序的可读性,switch 语句能很好的解决这个问题。

单片机4种实验设计

单片机4种实验设计

万方科技学院单片机实验报告题目:单片机实验报告院(系):电气自动化专业班级:计算机15升学生姓名:学号:1516353004 指导教师:苏百顺实验一键盘扫描显示实验OUTBIG EQU 8002H ; 位控制口OUTSEG EQU 8004H ; 段控制口KEYIN EQU 8001H ; 键盘读入口READY: MOV 20H,#3FH ;缓冲器设初值,赋值到6个数码管MOV 21H,#3FHMOV 22H,#3FHMOV 23H,#3FHMOV 24H,#3FHMOV 25H,#3FHMAIN: LCALL DISPLAY ;无键码输入,调用显示模块LCALL TESTJZ MAIN ;累加器为0即说明无按键,则转移继续显示LCALL SEARCH ;有键值输入,寻找输入键值所在的行和列MOV 20H,21H ;数码管显示出输入的键值MOV 21H,22HMOV 22H,23HMOV 23H,204MOV 24H,25HMOV DPTR,#LEDTABMOVC A,@A+DPTRMOV 25H,ASJMP MAINDISPLAY: ;显示模块MOV R0,#20H ;缓冲区从20H处开始MOV R1, #6 ;共 6个八段管MOV R2, #00100000B 从左边开始显示灯亮为1,灭为0,LOOP: MOV DPTR, #OUTBIGMOV A, #0MOVX @DPTR, A ; 位选码初值设为0,即关闭所有八段管MOV A, @R0 ;将以20H为首地址的内存值发送到段码输出口8004H MOV DPTR, #OUTSEGMOVX @DPTR,AMOV DPTR, #OUTBIG ;输出位选通信号,使每次只显示一位八段管MOV A, R2MOVX @DPTR, ALCALL DELAY ;延时MOV A, R2RR A ;位选信号右移一位,即动态显示下一个数码管MOV R2, AINC R0 ;内存地址加一,提供段码输出DJNZ R1, LOOPRETDELAY: MOV R7,#01H ; 延时子程序DEL1: MOV R6,#00HDEL2: DJNZ R6, DEL2DJNZ R7, DEL1RETTEST: MOV DPTR,#OUTBIG ;检测有无键值输入MOV A,#00HMOVX @DPTR,A ;输出线置为0MOV DPTR,#KEYINMOVX A,@DPTR ;读入键状态CPL A ;累加器求反ANL A,#0FH ;高四位不用RETSEARCH: ;找出键值所在的的位置(行和列)MOV R1,#00100000BMOV R2,#06HMOV R5,#00HMOV R4,#03HLSEARCH: ;找出列所在位置后MOV A,R1CPL AMOV DPTR,#OUTBIGMOVX @DPTR,ACPL ARR A ;通过判断循环几次进位为1来实现计数的功能,从而得知行所在位置MOV R1,AMOV DPTR,#KEYINMOVX A,@DPTRCPL AANL A,#0FHJNZ HSEARCH ;找到所在列,继续寻找行所在位置INC R5DJNZ R2,LSEARCHHSEARCH:MOV R7,#04HLOOP2: RRC AJC GETDEC R4DJNZ R7, LOOP2GET: ;确定输入的键码值MOV A,R4 ;键值=行*6+列,R4*6+R5->AMOV B,#6HMUL ABADD A,R5MOV DPTR,#KEYTAB ;取出键码所在位置MOVC A,@A+DPTRMOV 26H,A ;将取出键值暂时保存在内存中,以免数据丢失WAIT: MOV DPTR,#OUTBIG ;等键释放CLR AMOVX @DPTR,ALCALL DELAY LCALL TESTJNZ WAITMOV A,26H ;释放出键盘输入值RETLEDTAB: ; 八段管显示码DB 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hDB 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hKEYTAB: ;键盘码DB 07H,08H,09H,0AH,00H,00HDB 04H,05H,06H,0BH,00H,00HDB 01H,02H,03H,0CH,00H,00HDB 00H,0FH,0EH,0DH,00H,00HEND实验二八段数码管显示实验一、实验目的:1、了解数码管动态显示的原理。

实验四 自动售货机的模拟控制

实验四  自动售货机的模拟控制

实验面板图
实验步骤
1、输入3
QS
CF
ZL
I0.0 I0.1 I0.2 I0.3 I0.4 I0.5
输出
Y0 Q0.0
A Q0.1
B Q0.2
C Q0.3
D Q0.4
E Q0.5
F Q0.6
G Q0.7
❖ 2、打开主机电源开关将程序下载到主机中。
❖ 3、启动并运行程序观察实验现象。
实验四 自动售货机的模拟控制
❖ 实验目的 ❖ 实验说明 ❖ 实验面板图 ❖ 实验步骤
实验目的
❖ 了解并掌握可逆计数器CTUD在控制系统中 的应用,灵活运用定时器TON使他实现脉冲 的功能。
实验说明
M1、M2、M3三个复位按钮表示投入自 动售货机的人民币面值,YO货币指示(例如: 按下M1则Y0显示1),自动售货机里有汽水 (3元/瓶)和咖啡(5元/瓶)两种饮料,当 Y0所显示的值大于或等于这两种饮料的价格 时,C或D发光二极管会点亮,表明可以购买 饮料;按下汽水按钮或咖啡按钮表明购买饮 料,此时A或B发光二极管会点亮, E或F 发 光二极管会点亮,表明饮料已从售货机取出; 按下ZL按钮表示找零,此时Y0清零,延时 0.6S找零出口 G发光二极管点亮。
❖ L+--------1M、2M、V+; ❖ M--------COM、1L、2L、3L; ❖ 其余接线按照上述要求连线。

试验四典型非线性环节

试验四典型非线性环节

实验四典型非线性环节一、实验要求了解和掌握典型非线性环节的原理,观察和分析典型非线性环节的输出特性。

二、实验原理实验以运算放大器为基本元件,在输入端和反馈网络中设置相应元件(稳压管、二极管、电阻和电容)组成各种典型非线性的模拟电路。

(1)继电特性:见图2-4-1图2-4-1继电特性模拟电路理想继电特性如图2-4-1C所示。

图中M值等于双向稳压管的稳压值。

图2-4-1C理想继电特性(2)饱和特性:见图2-4-2A及图2-4-2B图2-4-2A饱和特性模拟电路图2-4-2B 理想饱和特性理想饱和特性图中特性饱和值等于稳压管的稳压值斜率K 等于前一级反馈电阻与输入电阻值之比,即:t RK R =(3) 死区特性死区特性模拟电路图:见图2-4-3A图2-4-3A 死区特性模拟电路死区特性如图2-4-3B 所示。

图2-4-3B 死区特性图中特性的斜率K 为:1R K R =死区2212()0.42()30R V R V ∆=⨯= 式中2R 单位为K Ω,且21R R =。

(实际∆还应考虑二极管的压降值) (4) 间隙特性间隙特性的模拟电路图:见图2-4-4A间隙特性如图4-4B 所示,图中空间特性的宽度∆(0A )为:2212()0.42()(44)30RV R V ∆=⨯=- 式中2R 单位为K Ω,且(21R R =)。

特性斜率tg a 为: 0(45)fi f R C t g a C R =∙- 根据式(4-4)和(4-5)可知道,改变2R 和1R 可改变空间特性的宽度:改变0iR R 或i f C C ⎛⎫ ⎪ ⎪⎝⎭值可调节特性斜率(tga )图2-4-4A 间隙特性模拟电路图2-4-4B 间隙特性三、实验步骤及内容准备:将B7信号发生器单元中的G 和G1用开关连接。

实验步骤:(1)按图2-4-1接线,图2-4-1中虚线处用导线连接好:(图2-4-1A )中用开关将A5中W5电位器的一端与+5V 连接,按模拟电路图由左至右的顺序运放依次由A1、A3、A4运放单元构建,其中第二级运放的反馈部分由A4中的IN 和OUT 之间的第五个开关拨至ON (由下至上)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程名称:计算机组成原理实验项目:输入输出实验姓名:李翠超专业:计算机科学与技术班级:计算机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-->DBUS7ALU7-->DBUS6ALU6-->DBUSSALUS-->DBUS4ALU4-->DBUS3ALU3-->DBUS2ALU2-->DBUS 1ALU1-->DBUSOCy与CN-->DBUS7当不带进位移位时(CN=0):0-->DBUS7当带进位移位时(CN=1):Cy-->DBUS7左移门将运算器的结果左移一位送总线。

当X2X1X0=110时运算器结果通过左通门送到数据总线。

具体连线是:ALU6-->DBUS7ALUS-->DBUS6ALU4-->DBUSSALU3-->DBUS4ALU2-->DBUS3ALU1-->DBUS2ALUO-->DBUS 1当不带进位移位时(CN=0):0-->DBUSO当带进位移位时(CN=1):Cy-->DBUSO3、在综合实验中,模型机作为一个整体来工作的,所有微程序的控制信号由微程序存储器uM输出,而不是由开关输出。

在做综合实验之前,先用8芯电缆连接J1和J2,这样实验仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器的控制端口。

此综合实验使用的指令是模型机的缺省指令/微指令系统。

等做完木综合实验,熟悉了此套指令/微指令后,用户可以自己设计的指令/微指令系统,有关自己设计指令/微指令系统的说明在下一章介绍。

在做综合实验时,可以用COP2000计算机组成原理实验软件输入、修改程序,汇编成机器码并下载到实验仪上,由软件控制程序实现单指令执行、单微指令执行、全速执行,并可以在软件上观察指令或微指令执行过程中数据的走向、各控制信号的状态、各寄存器的值。

COP2000软件的使用方法见第七章“COP2000集成开发环境使用”。

也可以用实验仪自带的小键盘和显示屏来输入、修改程序,用键盘控制单指令或单微指令执行,用LED或用显示屏观察各寄存器的值。

实验仪上的键盘使用方法见第六章“实验仪键盘使用”。

在用微程序控制方式做综合实验时,在给实验仪通电前,拔掉实验仪上所有的手工连接的接线,再用8芯电缆连接J1和J2,控制方式开关拨到“微程序控制”方向。

若想用COP2000 软件控制组成原理实验仪,就要启动软件,并用快捷图标的“设置”功能打开设置窗口,选择实验仪连接的串行口,然后再按“连接C OP2000实验仪”按钮接通到实验仪。

四、实验步骤1、将55H写入A寄存器二进制开关K23-K 16用于DBUS}}:o}的数据输入,置控制信号为:按住CLOCK脉冲键,CLOCK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A 寄存器。

放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据SSH被写入A寄存器。

S2S1S0=111注意观察:移位与输出门是否打开无关,无论运算器结果如何,移位门都会给出移位结果。

但究竟把那一个结果送数据总线由X2X1X0输出选择决定。

2、数据传送实验/输入输出实验2.1在COP2000软件中的源程序窗口输入下列程序MOV A, #12HMOV A, R0MOV A, @R0MOV A, 01HINOUTEND2.2将程序另存为EXI.ASM,将程序汇编成机器码,反汇编窗口会显示出程序地址、机器码、反汇编指令。

2.3按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,寄存器的输入/输出状态,各控制信号的状态,PC及uPC如何工作。

五、实验操作步骤实验结果分析每个程序的一开始的第一条微指令一定是取指令,此微指令的值为OCBFFFFH,对应到各个控制位就是EMRD, PCOE、及工REN为低,此二位有效,其它所有位都处于无效状态。

在程序第一次运行时或复位后,uPC和PC的值都为0, PCOE有效将PC值送到ABUS,做为程序存储器EM的地址,EMRD信号有效就是从程序存储器EM中读出程序指令,工REN将读出的指令送到工R寄存器和uPC,此微指令的作用就是:从程序存储器EM的0地址读出程序指令机器码7CH,并存入uPC中做为微程序存储器uM的地址,从微程序存储器uM的7CH单元中读出微控制码OC7FFF7H,同时PC加1为读下一条指令或数据做准备。

MOV A, #12:木指令为两个状态周期。

在T1状态时,上次读出的指令机器码为7CH,存入uPC中做为微程序存储器uM的地址,读出微指令的值为OC7FFF7H,对应到各个控制位就是EMRD, PCOE, EMEN及AEN为低,处于有效状态,其它控制位为无效状态。

由于上条微指令(取指操作)已将PC加1,此时PCOE是将加1后的PC输出到ABUS做为程序存储器EM的地址,EMRD就是从程序存储器EM中读出数据,木指令中读出的数据应为12H } EMEN将读出的数据送到DBUS总线上,AEN是将DBUS总线上的值存入累加器A中。

同时uPC加1为执行下条微指令做准备,PC加1为读取下一条指令做准备。

每条指令的最后一条微指令一定是取指令操作,木指令的TO状态周期即为取指令,执行上一条微指令时uPC已经加1,按照此uPC为地址从微程序存储器uM读出的微指令的值为OCBFFFFH,参照第一步的说明,此微指令从程序存储器EM中读取指令。

MOV A, RO:木指令为两个状态周期。

在T1状态时,由上条取指操作取出的指令机器码为70H,存入uPC后做为微程序地址访问微程序存储器uM的70H单元,读出微指令的值为OFFF7F7,各控制位的状态为RRD, AEN为低电平为有效状态,RRD有效表示从寄存器组RO-R3中读数送到DBUS上,在上条取指令操作时,工REN将取出的指令机器码70H送入工R寄存器,而工R寄存器的最低两位是用来选择寄存器R?的,此时工R寄存器最低两位为00,被读出的寄存器为ROo AEN有效表示将DBUS的数据写到累加器A中。

同时uPC加1,为执行下条微指令做准备。

木指令的TO状态也是取指令,完成的功能是取出下一条要执行的指令机器码,并存入uP C和工R寄存器中。

MOV A, CRO:木指令为二个状态周期。

在T2状态时,由上个取指操作读出的指令机器码为74H,打入uPC后,从微程序存储器74H单元读出的微指令的值为OFF77FFH,有效的控制位为MAREN和RRD, RRD 有效表示从寄存器组RO-R3中读出数据送到DBUS, MAREN有效表示将数据从DBUS总线上打入地址寄存器MAR o uP C加1取出下条微指令执行。

在T1状态时,由uPC做为微程序存储器地址,从uM的75H单元中读出微指令的值为OD7BFF7H,其中有效的控制位为EMRD, EMEN, MAROE和AENo MAROE表示程序存储器EM的地址由地址寄存器MAR输出,EMRD表示从程序存储器EM中读出数据,EMEN表示读出的数据送到地址总线DBUS上,AEN有效表示将数据总线DBUS上的值存入累加器A中。

此状态下uP C要加1,为取下条微指令做准备。

木指令的TO状态执行的是取指操作。

取指操作详细描述见程序开始部分的取指令的说明。

MOV A, O1:木指令为二个状态周期。

在T2状态时,由上条取指操作取出的指令机器码为78H,存入uPC和工R寄存器后做为微程序存储器uM的地址,读出微指令的值为OC77FFFH,相应的有效控制位为EMRD, PCOE, EMEN和MAREN, PCOE有效表示将PC值做为程序存储器EM的地址,EMRD表示从程序存储器中读出数据,在木指令中此数据值为O1H, EMEN表示将读出的数据送到DBUS总线,MAREN表示将DBUS总线上的数据打入地址寄存器MAR o uP C同时加1}取出下条微指令准备执行。

在T1状态时,由uPC 做为微程序存储器地址,从uM的79H单元中读出微指令的值为OD7BFF7H,可以参见上条指令的T1状态,此微指令的所完成的功能是,以MAR的值做为程序存储器的地址,读出数据并送到数据总线DBUS,同时将此数据存入累加器A中。

uPC加1取出下条微指令准备执行。

在TO状态,微指令执行取指令操作。

IN:木指令分两个状态周期。

在T1状态时,由上次取指操作取出的指令机器码为OCOH,以此做为微地址从uM中取出的微指令值为OFFFFI7H,有效控制位为AEN, X2X1X0=000,因为X2, X1, XO为低,被选中的寄存器为输入端口工N,也就是说,输入端口工N上的数据被允许送到数据总线DBUS上,AEN有效表示将此数据打入累加器A中。

同时uPC加1取出下条微指令准备执行。

在TO状态,微指令执行的是取指令操作,取出下条指令准备执行。

OUT:木指令分两个状态周期。

在T1状态,由上次取出的指令机器码为OC4H,以此为微地址从微程序存储器uM中读出的微指令为OFFDF9FH,有效控制位为OUTEN, X2X1X0=100(二进制),S2S1S0=111(二进制),S2S1S0=111表示运算器做“ALU直通”运算,也就是累加器不做任何运算,直接输出结果,而X2X1X0=100表示运算器的结果不移位直接输出到数据总线DBUS, OUTEN有效表示将数据总线上的数据打入输出端口寄存器OUT内。

uPC加1}取出下条微指令准备执行。

在TO状态,微指令执行的是取指操作,取出下条将要执行的指令。

相关文档
最新文档