文档库 最新最全的文档下载
当前位置:文档库 › 电梯实验报告

电梯实验报告

电梯实验报告
电梯实验报告

一、个人承担工作

本次嵌入式实验是基于Linux系统下运用电机正反转、指示灯、键盘等模块模拟电梯的简单运行。在程序的编写中,个人主要参与设计编写按照规定要求的指示灯闪烁程序和键盘程序,以及对程序的进一步的优化工作比如延时程序的选择和程序的简化;同时在PC机上对程序调试运行,组织讨论并解决调试中出现的问题;利用课后时间浏览嵌入式相关知识。

二、遇到的问题及解决方案

俗话说的好,“冰冻三尺非一日之寒,滴水石穿非一日之功”,整个电梯工程从程序编写、PC机端调试直到最后的完工经历了两个星期,本人也从对嵌入式的一无所知的小白,到现在掌握了嵌入式的基本知识。因此,整个阶段我们小组遇到了各种各样的问题,有的是基本的函数使用错误,还有的是程序框架的顺序的错误等等,但是我和队友不惧挑战,迎难而上。下面是我在工作中遇到的问题以及个人提出的解决方案,同时附上电梯完整的工程的顺序流程图(图一)。

1、嵌入式基本知识欠缺

由于之前很少接触Linux系统,所以一些嵌入式最基本的命令都不会。不过,通过自己查阅资料和阅读嵌入式方面的书籍对一些常见的嵌入式命令有了清楚的理解,并且也会使用了。由于以前使用比如VC++6.0、Visual Studio等软件,都可以进行单步调试,并观察一些变量的值,而在这次实验,没有提供这样的手段,这就需要在编程时,注意细节。

2、指示灯的闪亮及转换

本电梯实验一共用到了五个指示灯,根据实际的硬件设计按照顺序依次表示的相对应的1~5楼层数。根据之前设计的电梯的顺序功能模块的要求,当随机按下键盘数,随后根据相应的判断子程序启动电机的正反转,经过一段时间,电机停止,则蜂鸣声响起,对应楼层的指示灯需要立刻亮起,进行下面一些动作。若到达楼层后再按下其他键位,则最后显示的是新的指示灯亮,之前的必须指示灯熄灭,为达到该效果采用以下:

(1)staticint state=1;

定义变量state(指的是电梯的当前楼层数),其中设置该变量为全局变

量,为下面的步骤做准备。

(2)DisplayTimer=new QTimer();

connect(DisplayTimer,SIGNAL(timeout()),this,SLOT(LcdDisplay()));

DisplayTimer->start(200);

该程序的功能为LCD显示屏的不断刷新显示,为了能够正确的让指示灯与所到楼层数一一对应,采用LCD显示屏中的子程序函数,编写如下:void MainWindow::LcdDisplay()

{

lcd->flush();

lcd->clearBuffer();

switch(state)

{case1:

lcd->display_letter(6,6,'1');system("echo1,0,0>/sys/devices/platf orm/davinci_ctr.2/traffic_lights/north");break;

case2:

lcd->display_letter(6,6,'2');system("echo0,1,0>/sys/devices/platf orm/davinci_ctr.2/traffic_lights/north");break;

case3:

lcd->display_letter(6,6,'3');system("echo0,0,1>/sys/devices/platf orm/davinci_ctr.2/traffic_lights/north");break;

case4:

lcd->display_letter(6,6,'4');system("echo1,0,0>/sys/devices/platf orm/davinci_ctr.2/traffic_lights/east");break;

case5:

lcd->display_letter(6,6,'5');system("echo0,1,0>/sys/devices/platf orm/davinci_ctr.2/traffic_lights/east");break;

}

}

把指示灯的显示程序放到LCD刷新显示子程序中,又因设置了state为全局变量,这样这比较好的实现了要求设计。

3、时间输入设置

本电梯一共采用了电机模块、蜂鸣模块、指示灯等模块,每个模块之间的连接以及本身模块的功能运行都需要设置准确的时间,最后才能实现整体的功能,于是有以下方面处理:

(1)由于到达楼层的不同,则需要电机正反转转动的时间是不一样的,编写程序有

dcmotorclockwise(2);

delay(?);

dcmotorstop();

“?”中的数值由到达的楼层与此时所在楼层数的差值的绝对值确定,若差值的绝对值分别为1、2、3、4数字,则“?”对应的数值为1000、2000、3000、4000.

(2)对于指示灯的所需设置的时间可以根据上一个问题中有,

isplayTimer=new QTimer();

connect(DisplayTimer,SIGNAL(timeout()),this,SLOT(LcdDisplay()));

DisplayTimer->start(200);

该程序中包含显示屏刷新时间为0.2s,也就保证了指示灯按照功能要求的亮起。

三、个人工作自我评价

之前对于嵌入式系统的知识没有太多的接触,初次运用嵌入式系统进行设计时,感觉蛮难的,很多的概念都比较模糊。通过网上查资料阅读相关书籍及与同学的讨论,对嵌入式也有了浅层理解。在本次嵌入式实验中,我对于C++认识终于从理论提升到了实践,即使我们的所编的程序一定还有许多不够完美的地方,显示屏上的界面也并没有那么美观和灵活,所实现的功能也并没有那么的丰富。但是,通过这次的实验体验,能够将自己原定目标完成,我们心里还是有着小小的成就感,也让我更坚信了以后研究C++和嵌入式的决心。

通过本次实验,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。当然,这次实验我的感受不仅仅是知识的获得,更是人格的磨练和团队的合作。本次设计的完成不是只靠一个人的力量,我们三个人的合理分工,遇到问题时,大家互相讨论并及时解决,都是完成这次嵌入式实验的关键因素。

最后,感谢队友赵超、王杨雨以及樊卫华老师的帮助。

VHDL实验报告

《创新实验》实验报告 —基于VHDL的编程和硬件实现

一、实验目的 1.熟悉和掌握硬件描述语言VHDL的基本语法及编写; 2.掌握软件Xilinx ISE 10.1的使用; 3.熟悉SDZ-6电子技术实验箱的使用; 4.了解节拍脉冲发生器等基本电路的实现; 5.了解八位二进制计数器的功能与设计; 6.学习键盘和七段数码管显示的控制和设计。 二、实验内容 1.Xilinx ISE 10.1软件的使用; 2.节拍脉冲发生器等基本电路的实现; 3.八位二进制计数器的实现 4.键盘扫描及显示的实现 三、实验器材 1、PC机 2、SDZ-6电子技术实验箱 3、正负5V电源 4、I/O接口线 四、软件的使用 在安装Xilinx10.1软件时,需要一个ID号,其实这个ID号是可以重复使用的,几个同学在官网注册后就可以共享ID号了。 安装完成之后就可以使用这个软件编写相应的VHDL的程序。 1.新建工程 File—>New Project 弹出下面的对话框 输入工程名后单击Next。然后根据本实验的实验箱进行以下设置。

以后的步骤一般都是单击Next(有些资料上会介绍有些这些步骤的具体功能,但对于本实验不必用到),最后单击Finish,完成新建一个工程。在窗口的左边会出现刚刚新建的工程,如下: 2.新建一个VHDL的源文件。 在上图中,右击工程选择New Source ,弹出如下对话框。

在对画框的左边选择VHDL Module,输入文件的名字(改名字最好是你定义的实体的名字)。单击Next。出现下面的对话框。 该对话框主要是对外部端口的编辑。可以直接跳过,即单击Next,在源文件上编辑端口。然后在接下来的对话框中单击Finish。完成建立一个源文件。窗口右边就会出现刚才编辑的源文件。 3.编写和编译代码 将事先编好的代码复制到源文件里,然后保存文件。 选中左边的文件名,在窗体的左边出现如下编辑文档内容。

汇编语言实验报告 20112914讲解

合肥工业大学计算机与信息学院 实验报告 课程:汇编语言程序设计专业班级:信息安全11-1 学号:20112914 姓名:王佳淼

实验一Debug程序的使用 一.实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 二.实验内容 1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 三.实验过程和程序 1、启动DOS操作系统 2、运行https://www.wendangku.net/doc/f517631073.html,程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令) 3、用“A”命令编辑和汇编源程序 –A ↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙ 186E:0116 ↙ 4、用“U”命令反汇编验证源程序 –U CS:0100↙ 186E:0100 A10002 MOV AX,[0200] 186E:0103 8B1E0202 MOV BX,[0202] 186E:0107 03060402 ADD AX,[0204] 186E:010B 131E0602 ADC BX,[0206] 186E:010F A30802 MOV [0208],AX 186E:0112 891E0A02 MOV [020A],BX 186E:0116 –

PLC三层电梯实验报告

题目:三层电梯实验 一、实验目的 1、熟练地掌握PLC的编程和程序调试方法。 2、进一步熟悉PLC的I/O连接。 3、熟悉变频器的使用。 二、实验设备 名称类型数量名称类型数量PLC DVP20SX211 R 1 以太网模块DVPEN01-SL 1 网络模块DVPDNET-SL 1 远程I/O模块DVP16SP11T 1 台达VFD变频器VFD002EL21 A 1 台达RTU-DNET RTU-DNET 1 台达电源DVPPS02 1 三层电梯模型 1 人机界面DOP-10E615 1 计算机 1 三、实验内容 电梯由安装在各楼层厅门口的上升和下降呼叫按钮进行呼叫操纵,其操纵内容为电梯运行方向。电梯箱内设有楼层内选按钮,用以选择需停靠的楼层。电梯上升途中只响应上升呼叫,下降途中只响应下降呼叫,任何反方向的呼叫均无效。例如,电梯停在一层,在二层轿箱外呼叫时,必须按二层上升呼叫按钮,电梯才响应呼叫(从一层运行到二层),按二层下降呼叫按钮无效;反之,若电梯停在三层,在二层轿箱外呼叫时,必须按二层下降呼叫按钮,电梯才响应呼叫(从三层运行到二层),按二层上升呼叫按钮无效。

PLC 主机输入输出如表6-1所示。 表6-1 plc主机输入输出 名称输入点名称输出点箱内三层呼叫X0/M50 方向上Y0 箱内二层呼叫X1/M51 方向下Y1 箱内一层呼叫X2/M52 箱内三层呼叫指示Y2 手动开门X3/M53 箱内二层呼叫指示Y3 手动关门X4/M54 箱内一层呼叫指示Y4 一层上呼叫X5/M55 开门指示Y5 三层下呼叫X6/M56 二层上呼叫X7/M57 远程模块输入输出如表6-2所示。 表6-2 DVP-16SP输入输出 名称输入点名称输出点二层下呼叫X0/M110 关门指示Y0/M70 一层到位限位开关X1/M111 一层呼叫指示Y1/M71 二层到位限位开关X2/M112 三层呼叫指示Y2/M72 三层到位限位开关X3/M113 二层上呼叫指示Y3/M73 上限位X4 二层下呼叫指示Y4/M74 下限位X5 蜂鸣器Y5 X6 正转Y6/M76 X7 反转Y7/M77 电梯模型原理图如图6-1所示。 图6-1 电梯模型原理图

VHDL实验报告03137

VHDL实验报告 60 庄炜旭实验三. 4位可逆计数器,4位可逆二进制代码-格雷码转换器设计 一.实验目的 学习时序电路的设计,仿真和硬件测试,进一步熟悉VHDL设计技术 1. 学习4位可逆计数器的设计 2. 学习4位可逆二进制代码-格雷码转换器设计 二.实验内容 设计4位可逆计数器,及4位可逆二进制代码-格雷码转换器,并仿真,下载。 [具体要求] 1.4位可逆计数器 a)使用CLOCK_50作为输入时钟,其频率为50MHz(对于频率大于50Hz的闪烁, 人眼会看到连续的光),因而,对其进行225的分频后,再用于时钟控制。(可 利用实验一) b)使用拨码开关SW17作为模式控制,置‘1’时为加法计数器,置‘0’时为减 法计数器,同时使用LEDR17显示SW17的值。 c)使用KEY3作为异步复位开关(按下时为0,不按为1),当为加法计数器时, 置“0000”,当为减法计数器时,置“1111”。 d)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 2.4位可逆二进制代码――格雷码转换器 a)使用拨码开关SW17作为模式控制,置‘1’时为二进制代码―>格雷码转换, 置‘0’时为格雷码―>二进制代码,同时使用LEDR17显示SW17的值。 b)使用拨码开关SW3, SW2, SW1, SW0作为输入的被转换数,SW3为高位,SW0 为低位。 c)使用LEDR3,LEDR2,LEDR1,LEDR0作为转换后的输出结果显示,LEDR3为高 位,LEDR0为低位。 三.管脚设定 SW[0]PIN_N25 SW[1]PIN_N26 SW[2]PIN_P25 SW[3] PIN_AE14 SW[17] PIN_V2 LEDR[0] PIN_AE23 LEDR[1] PIN_AF23 LEDR[2] PIN_AB21 LEDR[3] PIN_AC22 LEDR[17] PIN_AD12 KEY[3] PIN_W26

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告) 内容: 实验一、六、七、八 院系专业:计算机学院计算机科学与技术 姓名:xxxxxxxxx 学号: 2011004xxxxx 完成时间:2012年12月1日

计算机组成与汇编语言实验报告 姓名xxxx 学号2011004xxxxx 计分 专业软件工程班级xxxx 实验日期2012年 12 月 1日实验名称实验一数制转换 实验目的 ●熟悉各种进制数据之间的相互转换方法。 ●掌握二-十进制数据的相互转换程序设计。 实验内容 1.将编写好的程序1输入、编译、连接并运行。 程序1清单 #include #include #include void main() { int i,l,s0=0,s=0; char a[17]; while(l!=16) { printf("请输入一个16位的二进制数:\n"); gets(a); l=strlen(a); for(i=0;i<16;i++) { if(a[i]!='0'&&a[i]!='1') {

printf("输入的二进制数不正确!!"); break; } } } if(a[15]=='1') s++; for(i=1;i<16;i++) { if(a[15-i]=='1') s+=(1<

说明:如果不是16位二进制则会提示错误。 2.将编写好的程序2输入、编译、连接并运行。 程序2清单 #include #include void main() { int t0,t1,t2,t3,i,j; int a[16]; printf("请输入一个十进制数:"); scanf("%d",&t0); t1=t0; for(i=0;i<16;i++) { t2=t1/2; if(t2>1) a[i]=t1%2; else if(t1==1) { a[0]=1; for(i=1;i<16;i++) a[i]=0; } else if(t1==2) { a[i]=0; a[i+1]=1; for(j=i+2;j<16;j++)

三层电梯控制设计

综合实训设计报告信息工程与自动化学院自动化系 设计题目:基于PLC的三层电梯控制系统设计 姓名: 学号: 专业:测控121班 指导老师: 二0一五年七月

引言 随着城市建设的不断发展,城市迅速的崛起,高层建筑的不断增多,电梯作为高层建筑中垂直运行的交通工具已与人们的日常生活密不可分。它是采用电力拖动方式,将载有乘客或货物的轿厢,运行于垂直方向的两根刚性导轨之间,运送乘客和货物的固定式提升设备。所以,电梯是为高层建筑运输服务的设备,它具有运送速度快、安全可靠、操作简便的优点。但传统的电梯控制系统主要采用继电器--接触器进行控制,其缺点是触点多,故障率高、可靠性差、维修工作量大等,而采用 PLC组成的控制系统可以很好地解决上述问题,使电梯运行更加安全、方便、舒适。 目前电梯的控制普遍采用了两种方式,一是采用微机作为信号控制单元,完成电梯信号的采集、运行状态和功能的设定,实现电梯的自动调度和集选运行功能,拖动控制则由变频器来完成;第二种控制方式采用可编程控制器取代微机实现信号控制。从控制方式和性能上来说,这两种方法并没有太大的区别,但PLC 可靠性高,程序设计方便灵活。 1.电梯的PLC控制方式 PLC是一种用于工业自动给控制的专用计算机。实质上属于计算机控制方式。PLC与普通微机一样,能通用或专用CPU作为字处理器,实现通道(字)的运算和数据存储,另外还有位处理器(布尔处理器),进行点(位)运算与控制。PLC控制一般具有可靠性高,易操作、维修和编程简单、灵活性强等特点。 1.1 PLC控制系统的可靠性 对可维修的产品,可靠性包括产品的有效性和可维修性。PLC不需要大量的活动元件和接线电子元件,它的接线大大减少,与此同时,系统的维修简单,维修时间短。PLC采用了一系列可靠性设计的方法进行设计,例如,冗余设计,断电保护,故障诊断和信息保护及恢复等,提高了MTBF,降低了MTTR,使可靠性提高。PLC是为工业生产过程控制而专门设计的控制装置,它具有比通用计算机控制更简单的编程语言,而为工业恶劣操作环境设计的硬件使可靠性大大提高。在PLC的硬件方面,采用了一系列提高可靠性的措施。例如,采用可靠性的元件,采用先进的工艺制造流水线制造,对于干扰的屏蔽、隔离和滤波等,对电源的断

汇编实验报告52352019

(此文档为word格式,下载后您可任意编辑修改!) 实验三循环程序设计 一、预习内容 1.多重循环程序和排序程序设计方法。 2.带符号数的比较转移指令:JL,JLE,JG,JGE 二、目的要求 1.掌握多重循环程序和排序程序设计方法。 2.掌握带符号数的比较转移指令:JL,JLE,JG,JGE 三、实验内容 建立学生名次表,以grade为首地址的数组中保存了学生的成绩,其中grade+i 保存学号为i+1的学生的成绩。要求建立一个10个字的rank数组,并根据grade中的学生成绩将学生名次填入rank数组中,其中rank+i的内容是学号为i+1学生的名次(提示:一个学生的名次等于成绩高于该学生的人数加1). 四、程序流程图

五、程序 DSEG SEGMENT grade dw 90,60 rank dw 10 dup(?) DSEG ENDS CSEG SEGMENT assume cs:CSEG, ds:DSEG start: mov ax, dseg mov ds, ax mov di,10 mov bx,0 lea bp,rank l: lea si,grade mov dx,1 mov cx,10 mov ax,[si+bx] next: cmp ax,[si] jge no_count inc dx no_count: add si,2 loop next mov [bp],dx add bp,2 add bx,2 dec di sub di,0 jne l mov ax, 4c00h int 21h CSEG ENDS end start 六、实验结果 JGE情况下的排序结果

三层电梯控制器实验报告

大连理工大学本科实验报告题目:三层电梯控制器 课程名称:数字电路与系统设计 学院(系):电子信息与电气工程学部 专业: 班级: 学生姓名: 学号: 完成日期:2012-7-5 成绩: 2012 年7 月05 日

题目:三层电梯控制器 1 设计要求 随着科技的发展,电梯的使用越来越普遍,在商业大厦、宾馆酒店、办公场所、居民住宅中广泛使用。并且随着生活水平的提高,人们对电梯功能的要求也不断提高,相应地其控制方式也在不停地方生变化。对于电梯的控制,传统的方法是使用继电器——接触器控制系统进行控制技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微机化控制的时代。 电梯的微机化控制主要由以下几种形式:1.PLC控制;2.单板机控制;3.单片机控制;4.单微机控制;5.多微机控制;6.人工智能控制。目前FPGA已广泛应用与电子设计与控制的各个方面。本设计就是使用一片FPGA来实现对三层电梯的控制。 电梯控制器是控制电梯按顾客的要求自动上下的装置。三层电梯控制器的功能如下: (1)每层电梯入口处设有上下请求开关,电梯内设有乘客到达层次的停站请求开关。 (2)设有电梯所处位置指示装置及电梯运行模式(上升或下降)指示装置。 (3)电梯每秒升(降)一层楼。 (4)电梯到达有停站请求的楼层后,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续运行,直至执行完最后一个请求信号后停在当前层。 (5)能记忆电梯内外的所有请求信号,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。 (6)电梯运行规则:当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如更高层有下楼请求,则直接升到有下楼请求的最高层接客,然后便进入下降模式。当电梯处于下降模式时与上升模式相反。 (7)电梯初始状态为一层开门。 (8)当收到报警信号时,电梯停止工作,电梯维持当前状态不动。报警信号解除时,电梯继续工作。 (9)电梯到达指定楼层时有声音提示。 2 设计分析及系统方案设计 电梯控制器的设计方法有很多,本文采用状态机来描述,其优点是思路清晰。可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。由于电梯又是每秒上升或下降一层,所以就可以通过一个以秒为周期的时钟来触发状态机。根

基于VHDL语言的EDA实验报告(附源码)

EDA 实验报告 ——多功能电子钟 姓名:张红义 班级:10级电科五班 学号:1008101143 指导老师:贾树恒

电子钟包括:主控模块,计时模块,闹钟模块,辅控模块,显示模块,蜂鸣器模块,分频器模块。 1.主控模块: 主要功能:控制整个系统,输出现在的状态,以及按键信息。 源代码: libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_arith.all; useieee.std_logic_unsigned.all; entity mc is port(functionswitch,k,set,lightkey: in std_logic; chose21,setout: out std_logic; lightswitch:bufferstd_logic; modeout,kmodeout : out std_logic_vector(1 downto 0); setcs,setcm,setch,setas,setam,setah:outstd_logic); end mc; architecture work of mc is signalmode,kmode:std_logic_vector(1 downto 0); signal light,chose21buf:std_logic; signalsetcount:std_logic_vector(5 downto 0); begin process(functionswitch,k,set,lightkey) begin iffunctionswitch'event and functionswitch='1' then mode<=mode+'1'; end if; iflightkey'event and lightkey='1' then lightswitch<=not lightswitch; end if; if mode="01" thenchose21buf<='0'; else chose21buf<='1'; end if; ifk'event and k='1' then if mode="01" or mode="11" then kmode<=kmode+'1'; end if;end if; if set='1' then if mode = "01" then ifkmode="01" then setcount<="000001"; elsifkmode="10" thensetcount<="000010"; elsifkmode="11" then setcount<="000100";

汇编实验报告

南华大学 实验名称:汇编语言程序设计实验 学院:计算机学院 专业班级:本2010 电气信息类03班 学号:20104030342 姓名:谢志兴 指导教师:刘芳菊 日期:2012 年 6 月10 日

实验一DEBUG的熟悉 一、实验目的 (1)学习使用DEBUG的命令; (2)使用DEBUG命令在数据段中查看程序运行的结果; (3)利用DEBUG运行简单的程序段。 二、实验内容 1)输入程序观察寄存器变化 使用DEBUG命令,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。注意用T命令执行时,CS: IP寄存器的内容。 MOV AX, 4E20 ADD AX, 1416 MOV BX, 2000 ADD AX, BX MOV BX, AX ADD AX, BX MOV AX, 001A MOV BX, 0026 ADD AL, BL ADD AH, BL ADD BH, AL MOV AH, 0 ADD AL, BL ADD AL, 9C 2)输入下面的程序,这是一个两个数相与的程序。结果存放在MSG2单元中,偏移地址为?值为多少? DSEG SEGMENT MSG1 DW 7856H, 2038H MSG2 DW? DSEG ENDS CSEG SEGMENT ASSUME CS: CSEG, DS: DSEG

START: MOV AX, DSEG MOV DS, AX MOV AX, MSG1 AND AX, MSG1+2 MOV MSG2, AX MOV AL, 0 MOV AH, 4CH INT 21H CSEG ENDS END START 程序的跟踪执行操作 在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢? 程序执行过程的跟踪操作步骤如下: (1)在DOS下输入:DEBUG 文件名.EXE (2)在DEBUG提示符下输入U命令 如果程序中有数据段,可以看到反汇编后第一句可执行语句为: A地址:B地址MOV AX, K地址如:1261:0000 MOV AX, 1260 其中:K地址就是数据段的段寄存器内容,A地址为代码段段寄存器地址,B地址为程序第一条指令的偏移地址。 (3)可以用T命令单步执行指令,执行到MOV AH, 4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000) (4)用D命令查看程序执行后数据段的变化 输入:D K地址:0 (如:D1260:0)

plc实验报告之三层电梯的运行

电气控制综合实验报告 项目:三层电梯PLC控制系统 班级:电132 姓名: 学号: 联系方式: 学期:2015-2016-2 第一章实验过程记录以及调试步骤及方法 1.1实验过程记录 1.好好复习老师之前讲的一些基本的电路,例如轿厢内锁存电路,门厅锁存电路等,将这些基本的电路搞懂之后,就可以开始设计接下来的电路啦。

2.认真查看电梯要求的7大原则,开始设计梯形图,并用GX Works2进行仿真,并及时发现问题,加以修改。 3.在GX Works仿真都没有问题后,去实验室,用组态软件再进行仿真,看电梯能否自如顺畅的运行,因为开门是通过延时来实现的,组态仿真,看之前设置好的定时器定时的时间是否能让电梯顺利的关门开门,若不行,修改定时器定时的时间,知道符合要求为止。这个可分为一下几小部分: a.打开计算机; b.打开GX Works2软件,将自己编写好的程序拷入电脑并打开; c.将PLC调为由RUN拨到STOP状态,然后将程序写入PLC; d.将PLC调为RUN(即运行状态)状态,然后打开组态; e.运行组态,点击启动; f.开始根据组态运行的结果来调试,找出错误并修改程序,直至完成设计要 求; 1.2实验调试步骤及方法 1.调试软件GX Works2介绍 GX Work2是三菱电机推出的三菱综合PLC编程软件,是专用于PLC设计、调试、维护的编程工具。与传统的GX Developer 软件相比,提高了功能及操作性能,变得更加容易使用。梯形图绘制时更加的简单明了,例如输入X000,只要打X000,然后按回车键就好了,输出Y001,只要打Y001,然后按回车键就好了,输入特别的简单,很方便。例如下图1.2.1:

VHDL实验报告论文

硬件描述语言期末实验报告 题目:硬件描述语言实现秒表功能 姓名xxxx 学号xxxxxxxxxx 年级专业xxxxxxxxxxxxx 指导教师xxxx 2012年6月20日

河北大学本科生VHDL硬件实验论文(设计) 硬件描述语言实现秒表功能 摘要 应用VHDL语言设计数字系统,很多设计工作可以在计算机上完成,从而缩短了数字系统的开发时间。我们尝试利用VHDL为开发工具设计数字秒表。 秒表的逻辑结构较简单,它主要由十进制计数器、六进制计数器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外整个秒表还需有一个启动信号,暂停信号和一个清零信号,以便秒表能随意停止及启动。 关键词:VHDL语言数字秒表时序仿真图

目录 一、实验目的 (1) 二、硬件要求 (1) 三、引脚说明 (1) 四、模块介绍 (2) 4.1.计数器(六、十进制) (2) 4.2.蜂鸣器 (2) 4.3.译码器 (3) 4.4.控制器 (4) 五、整体连接图 (5) 六、实验结果 (6) 七、实验总结 (6) 八、谢辞 (7) 九、附录 (7)

一实验目的 学习使用VHDL语言,以及EDA芯片的下载仿真。 二硬件要求 (1)主芯片EPF10K10LC84-4。 (2)蜂鸣器。 (3)8位八段扫描共阴极数码显示管。 (4)二个按键(暂停,开关)。 三引脚说明 3.1引脚设置 3.2信号说明 signal q:std_logic_vector(3 downto 0); --q是用于分频的信号。 signal state: std_logic_vector(3 downto 0); --state为状态信号,state为1时为暂停记录状态,为0时为正常显示计数状态。signal led: std_logic_vector(3 downto 0); --led为数码管扫描信号,通过对d1~d6的选择使数码管发光。

VHDL实验报告

专用集成电路实验报告 13050Z01 1305024237 刘德文

实验一开发平台软件安装与认知实验 实验内容 1、本实验以三线八线译码器(LS74138)为例,在Xilinx ISE 9.2软件平台上完成设计 电路的VHDL文本输入、语法检查、编译、仿真、管脚分配和编程下载等操作。下载芯片选择Xilinx公司的CoolRunner II系列XC2C256-7PQ208作为目标仿真芯片。 2、用1中所设计的的三线八线译码器(LS74138)生成一个LS74138元件,在Xilinx ISE 9.2软件原理图设计平台上完成LS74138元件的调用,用原理图的方法设计三线八线译 码器(LS74138),实现编译,仿真,管脚分配和编程下载等操作。 源程序: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; -- Uncomment the following lines to use the declarations that are -- provided for instantiating Xilinx primitive components. --library UNISIM; --use UNISIM.VComponents.all; entity ls74138 is Port ( g1 : in std_logic; g2 : in std_logic; inp : in std_logic_vector(2 downto 0); y : out std_logic_vector(7 downto 0)); end ls74138; architecture Behavioral of ls74138 is begin process(g1,g2,inp) begin if((g1 and g2)='1') then case inp is when "000"=>y<="00000001"; when "001"=>y<="00000010";

汇编实验报告

XXXX大学 实验报告 课程名称汇编语言程序设计成 绩 实验学时 评语: 指导教师: 年月日 班级: 学号: 姓名: 地点: 时间:

实验一汇编语言编程实验 一、实验目的 (1)掌握汇编语言的编程方法 (2)掌握DOS功能调用的使用方法 (3)掌握汇编语言程序的调试运行过程 二、实验内容 1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完 成必要提示信息的显示。 2. 在屏幕上显示自己的学号姓名信息。 3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输 入”Q”或“q”时结束。 4. 实验中使用的DOS功能调用: INT 21H AH 值功能调用参数结果 1 键盘输入并回显AL=输出字符 2 显示单个字符(带Ctrl+Break检查) DL=输出字符光标在字符后面 6 显示单个字符(无Ctrl+Break检查) DL=输出字符光标在字符后面 8 从键盘上读一个字符AL=字符的ASCII码 光标跟在串后面 9 显示字符串DS:DX=串地址, ‘$’为结束字符 4CH 返回DOS系统AL=返回码 例如,实现键盘输入并回显的完整代码: MOV AH 01H INT 21H 三、实验结果 1. 将指定数据区的字符串数据”Let us go !”以ASCII码形式显示在屏幕上,并通过 DOS功能调用完成必要提示信息的显示: 2. 在屏幕上显示自己的学号姓名信息 3.循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输 入”Q”或“q”时结束。

四、实验原理 DATA SEGMENT MES DB 'NUMBER: 03099018 ',0AH,0DH,'NAME: Feng Xiaokang',0AH,0DH,'$' CENT DB 'Let us go !','$' ENTE DB 0AH,0DH,'$' INFO DB 'Origin: ','$' ASCI DB 'ASCII : ','$' MSG1 DB 'If you want to quit please press...q/Q...',0AH,0DH,'$' MSG2 DB 0AH,0DH,'Char: $' RS DB ' ASCII: $' SD DB '' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA ;存储数据 MOV DS,AX MOV DX,OFFSET MES ;显示数据 MOV AH,09H INT 21H MOV DX,OFFSET MSG1 MOV AH,09H INT 21H MOV DX, OFFSET CENT MOV SI, DX T: MOV AL,[SI] CMP AL,'$' JZ C1 AND AL,0F0H ;取高4位 MOV CL,4 SHR AL,CL CMP AL,0AH ;是否是A以上的数 JB A ADD AL,07H A: ADD AL,30H MOV DL,AL ;show character MOV AH,02H INT 21H

vhdl实验报告--蜂鸣器

VHDL 实验报告 一、实验目的 1、掌握蜂鸣器的使用; 2、通过复杂实验,进一步加深对VHDL语言的掌握程度。 二、实验原理乐曲都是由一连串的音符组成,因此按照乐曲的乐谱依次输出这些音符所对应的频率,就可以在蜂鸣器上连续地发出各个音符的音调。而要准确地演奏出一首乐曲,仅仅让蜂鸣器能够发声是不够的,还必须准确地控制乐曲的节奏,即每个音符的持续时间。由此可见,乐曲中每个音符的发音频率及其持续的时间是乐曲能够连续演奏的两个关键因素。 乐曲的12 平均率规定:每2 个八度音(如简谱中的中音1 与高音1)之间的频率相差1 倍。在2个八度音之间,又可分为12个半音。另外,音符A(简谱中的低音6)的频率为440Hz, 音符B到C之间、E到F之间为半音,其余为全音。由此可以计算出简谱中从低音I至高音1 之间每个音符的频率,如表所示。 音名频率/Hz 音名频率/Hz 音名频率/Hz 低音1 中音1 高音1 低音2 中音2 高音2 低音3 中音3 高音3 低音4 中音4 高音4 低音5 392 中音5 784 高音5 1568 低音6 440 中音6 880 高音6 1760 低音7 中音7 高音7 表简谱音名与频率的对应关系 产生各音符所需的频率可用一分频器实现, 由于各音符对应的频率多为非整数, 而分频系数又不能为小数, 故必须将计算得到的分频数四舍五入取整。若分频器时钟频率过低, 则由于分频系数过小, 四舍五入取整后的误差较大;若时钟频率过高,虽然误差变小,但分频数将变大。实际的设计应综合考虑两方面的因素, 在尽量减小频率误差的前提下取合适的时钟频率。实际上,只要各个音符间的相对频率关系不变,演奏出的乐曲听起来都不会走调。 音符的持续时间须根据乐曲的速度及每个音符的节拍数来确定。因此, 要控制音符的音 长,就必须知道乐曲的速度和每个音符所对应的节拍数, 本例所演奏的乐曲的最短的音符为四分音符,如果将全音符的持续时间设为1s 的话,那么一拍所应该持续的时间为秒,则只需要提供一个4HZ的时钟频率即可产生四分音符的时长。 本例设计的音乐电子琴选取40MHZ的系统时钟频率。在数控分频器模块,首先对时钟频率进行40分频,得到1MHZ的输入频率,然后再次分频得到各音符的频率。由于数控分频器 输出的波形是脉宽极窄的脉冲波, 为了更好的驱动蜂鸣器发声, 在到达蜂鸣器之前需要均衡占空比, 从而生成各音符对应频率的对称方波输出。这个过程实际上进行了一次二分频, 频率变为原来的二分之一即。 因此,分频系数的计算可以按照下面的方法进行。以中音1为例,对应的频率值为 523. 3Hz,它的分频系数应该为: 0.375MHZ 0.375 106 716 523.3 523.3

plc实验报告之三层电梯的运行

电气控制综合实验报告 PLC控制系统目:三层电梯项 132 电班级: 名:姓 学号:联系 方式: 2015-2016-2 期:学 实验过程记录以及调试步骤及方法 第一章实验过程记录1.好好复习老师之前讲的一些基本的电路,例如轿 厢内锁存电路,门厅锁存电路等,将这些基本的电路搞懂之后,就可以开始设计接下来的电路啦。 2.认真查看电梯要求的7大原则,开始设计梯形图,并用GX Works2进行仿真,并及时发现问题,加以修改。 3.在GX Works仿真都没有问题后,去实验室,用组态软件再进行仿真, 看电梯能否自如顺畅的运行,因为开门是通过延时来实现的,组态仿真,看之前设置好的定时器定时的时间是否能让电梯顺利的关门开门,若不行,修改定时器定时的时间,知道符合要求为止。这个可分为一下几小部分:打开计算机;a. 软件,将自己编写好的程序拷入电脑并打开;打开GX Works2b. ;PLC拨到调为由RUNSTOP状态,然后将程序写入c.将PLC (即运行状态)状态,然后打开组态;RUNd.将PLC调为 运行组态,点击启动;e.

开始根据组态运行的结果来调试,找出错误并修改程序,直至完成设计要求;f. 实验调试步骤及方法介绍 1.调试软件GX Works2 编程软件,是专用于PLCPLC设计、调试、GX Work2是三菱电机推出的三菱综合维护的编程工具。与传统的GX Developer 软件相比,提高了功能及操作性能,变得更加容易使用。梯形图绘制时更加的简单明了,例如输入X000,只要打X000,然后按回车键就好了,输出Y001,只要打Y001,然后按回车键就好了,输入特别的简单,很方便。例如下图: 图 GX Works2新建工程后界面 2.程序的调试 用软件GX Works2软件进行调试,是很有必要的一部分,它能帮你发现一些画梯PLC形图时出现的问题,还有一些意想不到的问题,熟练掌握调试方法对我们以后 的编程很有意义。 调试步骤3. 软件中,输入好之后,点将自己设计好的梯形图一行一行的输入到GX Worksa.击菜单栏中的“调试”,如下图: 图调试下拉菜单 b.点击模拟开始,可进行软件调试,如图: 图开始加载调试图 等到加载到百分之百就可以开始调试了。 c.在梯形图上面右击,出现下拉菜单,如图:

vhdl实验报告

福建农林大学计算机与信息学院 信息工程类 实验报告 2013年11 月13 日

实验项目列表

福建农林大学计算机与信息学院信息工程类实验报告 系:电子信息工程系专业:电子信息工程年级: 2010级 姓名:学号:实验课程: VHDL数字系统设计 实验室号:__ 田C407 实验设备号: 07 实验时间: 11.12 指导教师签字:成绩: 实验一数控分频器的设计 1.实验目的和要求 学习数控分频器的设计、分析和测试方法。 2.实验原理 信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器设计完成的,方法是将计数溢出位与预置数加载输入信号相接即可,详细设计程序如例1所示。 数控分频器的仿真波形如图1所示:输入不同的CLK频率和预置值D,给出如图1的时序波形。 100.0μs200.0μs300.0μs400.0μs 图1 当给出不同输入值D时,FOUT输出不同频率(CLK周期=50ns) 3.主要仪器设备(实验用的软硬件环境) 实验的硬件环境是: 微机一台 GW48 EDA实验开发系统一套 电源线一根 十芯JTAG口线一根 USB下载线一根 USB下载器一个 示波器 实验的软件环境是: Quartus II 9.0软件

4.操作方法与实验步骤 (1)创建工程,并命名位test。 (2)打开QuartusII,建立VHDL文件,并输入设计程序。保存为DVF. (3)选择目标器件。Acex1k—EP1K100QC208-3。 (4)启动编译。 (5)建立仿真波形图。 (6)仿真测试和波形分析。 (7)引脚锁定编译。 (8)编程下载。 (9)硬件测试 5.实验内容及实验数据记录 在实验系统上硬件验证例5-20的功能。可选实验电路模式1(第一章图4);键2/键1负责输入8位预置数D(PIO7-PIO0);CLK由clock0输入,频率选65536Hz 或更高(确保分频后落在音频范围);输出FOUT接扬声器(SPKER)。编译下载后进行硬件测试:改变键2/键1的输入值,可听到不同音调的声音。 6.实验数据处理与分析 1)实验代码 【例1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DVF IS PORT ( CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC ); END; ARCHITECTURE one OF DVF IS SIGNAL FULL : STD_LOGIC; BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLK'EVENT AND CLK = '1' THEN IF CNT8 = "11111111" THEN CNT8 := D; --当CNT8计数计满时,输入数据D被同步预置给计数器CNT8 FULL <= '1'; --同时使溢出标志信号FULL输出为高电平 ELSE CNT8 := CNT8 + 1; --否则继续作加1计数 FULL <= '0'; --且输出溢出标志信号FULL为低电平 END IF; END IF; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULL'EVENT AND FULL = '1' THEN CNT2 := NOT CNT2; --如果溢出标志信号FULL为高电平,D触发器输出取反

汇编实验报告

汇编语言程序设计 实验报告 学号:100511530 班级:电气信息类1005 姓名:陆淑琴 指导老师:李诗高

实验一、汇编语言上机的基本过程及环境 【实验目的】 (1)熟悉汇编语言的编辑、汇编、连接及调试的全过程,重点掌握使用DEBUG调试程序的方法。 (2)了解汇编语言的程序结构。 【实验内容】 (1)在数据段中定义两个数(数据自拟,包含有正数和负数),要求编写程序分别计算出这两个数的和、差、积、商,并用Debug的相关命令查询计算结果(包括对CF,OF,SF,ZF的影响)。 (2)首先对AX,BX,CX寄存器赋初值(数据自拟),再将AX寄存器的中间八位,BX的低四位和CX的高四位拼接成一个新的字,并把结果存入偏移地址为0000H的存储单元。其中BX的低四位作为结果字的高四位,CX的高四位作为结果字的低四位。并用Debug的相关命令查询内存单元的结果字。 源代码: DA TA SEGMENT val1 DW 1000h val2 DW 2000h maxv DW ? DA TA ENDS STACK SEGMENT STACK 'STACK'

DB 100H DUP(?) STACK ENDS CODE SEGMENT 'CODE' ASSUME CS:CODE, DS:DATA,SS:STACK .386 MAIN: MOV AX, DATA; MOV DS, AX PUSH val1 PUSH val2 CALL MAX ; POP maxv ;栈顶返回值出栈 MOV AX, 4c00H INT 21H MAX PROC PUSH BP ;执行该指令前堆栈情况 MOV BP, SP ;执行后堆栈情况 MOV AX, [BP+4] CMP AX, [BP+6] JA EXIT MOV AX, [BP+6] EXIT: MOV [BP+6], AX ;用栈顶返回值 POP BP RET 2 ;执行后堆栈情况 MAX ENDP CODE ENDS END MAIN 【实验步骤】 (1)用编辑软件(记事本、UltraEdit等)编辑一个扩展文件名为ASM的汇编语言源程序。 (2)用汇编程序MASM汇编上述的汇编语言源程序,形成目标代码文件。(扩展名为OBJ) (3)用连接程序LINK连接目标代码文件,形成可执行文件。(扩展名为EXE)(4)用DEBUG32调试可执行文件,观察执行结果,以验证其正确性。

相关文档