第一篇:机器人-红绿灯-仿真实验报告
“机器人控制”课程总结报告
机器人控制
综合仿真实验
——红绿灯
姓名:李铃
年级:2011级
系别:信息工程学院 计科(师)学号:1111000048
同组人姓名:杨晨
年级:2011级
系别:信息工程学院 计科(师)同组人学号:1111000054
2013年5月14日
第 1 页 【实验目的】
进一步熟悉keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和数码管的电路结构学会构建简单的红绿灯电路。掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
【实验要求】
利用proteus仿真软件和keil仿真软件实现交通信号灯的功能。
【实验环境】
Proteus与keil联合,语言环境为汇编语言。
【实验用品】
proteus仿真软件,keil仿真软件,个人计算机一台。
【实验内容】
一、利用proteus软件画出电路图
1、打开proteus软件,点击P选择电器元件(见图1.1),在keywords中搜索要用到的电器元件(见图1.2和图1.3),在本次试验中选择型号为AT89C51单片机。找到后双击元件名称,这样元件就显示在DEVICES中了(见图1.4),选好后点击“OK”关闭窗口。
图 1.1
图 1.2
图 1.3
图 1.4
2、选中左侧的AT89C51元件,在作图区域内单击鼠标左键,会出现图1.5左边的图象,再次单击鼠标左键,会出现图1.5右边的图像,此时已经安放好了AT89C51元件。
图
1.5
3、按照上述步骤找齐电路中还需要的电器元件,包括:电阻(RES17个,RESPACE1个),电容(CAP2个,CAPELEC1个),三极管(2N222 2个),发光二级管(LED-GREEN1个,LED-RED1个,LED-YELLOW1个),数码管(7SEG1个),开关(BUTTON1个),晶振(GRYSTAL1个)。
4、将各个元件组合,最终形成如图1.6的电路图。
二、利用keil软件编写程序并生成.asm文件和.hex文件
1、打开keil软件,选择工程->新建工程(见图1.7),并确定存放位置。
图 1.7
2、选择单片机:Atmel->AT89C51,之后的对话框选择“否”,如图1.8。
图 1.8
3、新建程序:文件->新程序文件,如图1.9.4、编辑程序文件如下:
ORG 0000H TEMP EQU 24H TEMN EQU 25H LJMP MAIN ORG 0003H LJMP T0_INT ORG 0013H LJMP TI_INT T0_INT: MOV A, P1 PUSH ACC MOV P1, #0FFH MOV P1, #0F3H MOV P0, #00H JNB P3.2,$ POP ACC MOV P1, ACC RETI TI_INT: MOV A, P1 PUSH ACC MOV P1, #0FFH MOV P1, #0DEH
图 1.9 MOV P0,#00H JNB P3.3,$ POP ACC MOV P1, A RETI MAIN: SETB EA SETB EX0 SETB EX1 CLR F0 START1: MOV TEMP, #25 MOV P1, #0F3H LOOP1: ACALL DELAY DEC TEMP MOV A,TEMP MOV P0, TEMP JNB P1.6,START3 JNB P1.7,START11 CJNE A,#0, NEXT1 LJMP START2 NEXT1: LJMP LOOP1 START11: MOV TEMP, #65 MOV P1, #0F3H LOOP11: ACALL DELAY DEC TEMP MOV A,TEMP MOV P0, TEMP JNB P1.6,START33 JNB P1.7,START1 CJNE A,#0, NEXT11 LJMP START11 NEXT11: LJMP LOOP11 START2: MOV P1, #0F5H MOV TEMN,#05 LOOP2: ACALL DELAY1 DEC TEMN MOV A,TEMN CJNE A, #0,NEXT2 LJMP START3 NEXT2: LJMP LOOP2 START3: MOV TEMP, #25 MOV P1,#0DEH LOOP3: ACALL DELAY DEC TEMP MOV A,TEMP MOV P0, TEMP JNB P1.6,START1 JNB P1.7,START33 CJNE A, #0,NEXT3 LJMP START4 NEXT3: LJMP LOOP3 START33: MOV TEMP, #65 MOV P1,#0DEH LOOP33: ACALL DELAY DEC TEMP MOV A,TEMP MOV P0, TEMP JNB P1.6,START11 JNB P1.7,START3 CJNE A, #0,NEXT33 LJMP START4 NEXT33: LJMP LOOP33 START4: MOV P1, #0EEH MOV TEMN,#05 LOOP4: ACALL DELAY1 DEC TEMN MOV A, TEMN CJNE A,#0,NEXT4 LJMP START1 NEXT4: LJMP LOOP4 RETI DELAY: MOV A,TEMP MOV B, #10 DIV AB MOV R5, A MOV R6, B MOV R0, #10 L0: MOV R1, #250 L1:MOV A,R5 MOV P0, A CLR P2.4 ACALL DIMS SETB P2.4 MOV A,R6 MOV P0,R6 CLR P2.5 ACALL DIMS SETB P2.5 DEC R1 DJNZ R1,L1 DEC R0 DJNZ R0,L0 RETI DELAY1: MOV A,TEMN MOV B, #10 DIV AB MOV R5, A MOV R6, B MOV R2, #10 L2: MOV R3, #250 L3:MOV A,R5 MOV P0, A CLR P2.4 ACALL DIMS SETB P2.4 MOV A,R6 MOV P0,R6 CLR P2.5 ACALL DIMS SETB P2.5 DEC R3 DJNZ R3,L3 DEC R2 DJNZ R2,L2 RETI DELAY11: MOV A,TEMP MOV B, #10 DIV AB MOV R5, A MOV R6, B MOV R0, #10 Y0: MOV R1, #250 Y1:MOV A,R5 MOV P2, A CLR P2.6 ACALL DIMS SETB P2.6 MOV A,R6 MOV P2,R6 CLR P2.7 ACALL DIMS SETB P2.7 DEC R1 DJNZ R1,Y1 DEC R0 DJNZ R0,Y0 RETI DIMS: MOV R7,#250 DJNZ R7,$ RET END
4、生成asm文件。文件->保存,如图1.10,注意后缀为.asm
图 1.10
5、生成hex文件。Target->source group 1->右键->Add Files to Group‘Source Group 1’,单击Add,然后单击Close。单击Build Toolbar->Options for Target,如图1.11进行设置。调试正常后,project->build target生成hex文件(十六进制文件)。
图 1.11
【实验小组分工情况】
李铃负责Proteus软件部分,杨晨负责keil软件和p-k联动部分。
【结论】
基本实现红绿灯电路,进一步熟悉了keil仿真软件、proteus仿真软件的使用。了解并熟悉单片机I/O口和数码管的电路结构。掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
【收获和体会】
考虑到本组的第一和第二个仿真实验分别为流水灯和数码管动态显示,我组成员决定这个综合的仿真实验结合这前两个仿真做一个红绿灯的仿真实验。本意是想根据实际情况,即红灯和绿灯亮起的时间较长为25秒,黄灯较短为5秒,根据红黄绿的顺序显示,并且有数字显示剩余时间。但是实验并未获得成功,最后数码管正常运转,灯却不亮,进行多次调试后也没能成功,这是本次实验的一个问题。此外,本次实验的汇编代码有些复杂,在编译时花了不少时间。
第二篇:红绿灯实验报告
实验报告
班级:
学号: 姓名:
日期:
实验
一、红绿灯控制
一、实验目的
熟悉软件的使用,掌握plc编程的方法,编写程序控制十字路口的红绿灯。
二、实验设备
一台安装有STEP 7-MivroWIN4.0与S7200_simulation的电脑。
三、控制要求分析
实验利用PLC控制十字路口的红绿灯。十字路口的红绿灯分为横向控制灯和纵向控制灯,每个方向有红、绿、黄3种颜色的控制灯。
当电路接通,双向红绿灯开始正常工作,横向的绿灯和纵向的红灯先亮。横向的绿灯亮维持8s,在横向绿灯亮的同时纵向的红灯也亮起,并维持10s。第8秒时横向的绿灯熄灭,同时亮起黄灯并维持2s后熄灭。第10s时,横向黄灯熄灭的同时亮起红灯并维持10s,同时纵向的绿灯亮起并维持8s。当纵向绿灯熄灭并亮起黄灯持续2s后红灯亮起,同时横向的绿灯也亮起并维持8s到此一个循环就此结束下一个循环开始。当按下紧停按钮时两路同时亮黄灯2s后,其中一路亮红灯另一路亮绿灯。本实验设置了两个紧停按钮。
四、PLC的I/O分析
I0.1,I0.2两个紧停按钮。M0.1,M0.2中间继电器。Q0.0横向绿灯,Q0.1横向黄灯,Q0.2横向红灯,Q0.3纵向红灯,Q0.4纵向绿灯,Q0.5纵向黄灯。T37、T41为8s定时器,T38、T42为2s定时器,T39、T40为10s定时器。
五、PLC梯形图程序及指令表程序 梯形图程序:
指令表程序:
LD I0.1 = M0.1 Network 2 LDN M0.2 AN M0.1 AN T37 LDN M0.1 A T38 A M0.2 OLD = Q0.0 Network 3 LDN M0.2 AN M0.1 AN T39 TON T37, 80 Network 4 LDN M0.2 AN M0.1 AN T38 A T37 LDN M0.2 AN T38 A M0.1 OLD LDN M0.1 AN T38 A M0.2 OLD = Q0.1 Network 5 LDN M0.1 AN M0.2 A T37 LDN M0.2 A M0.1 OLD LDN M0.1 A M0.2 OLD TON T38, 20 Network 6 LDN M0.2 AN M0.1 AN T39 A T38 LDN M0.2 A T38 A M0.1 OLD = Q0.2 Network 7 LDN M0.1 AN M0.2 A T38 TON T39, 100 Network 8 LDN M0.1 AN M0.2 AN T40 LDN M0.1 A T42 A M0.2 OLD = Q0.3 Network 9 LDN T42 AN M0.1 AN M0.2 TON T40, 100 Network 10 LDN M0.1 AN M0.2 AN T41 A T40 LDN M0.2 A T38 A M0.1 OLD = Q0.4 Network 11 LDN M0.1 AN M0.2 AN T42 A T40 TON T41, 80 Network 12 LD T41 AN M0.2 AN T42 AN M0.1 LDN T42 A M0.1 AN M0.2 OLD LDN T42 AN M0.1 A M0.2 OLD = Q0.5 Network 13 LDN M0.1 AN M0.2 A T41 LDN M0.2 A M0.1 OLD LD M0.2 AN M0.1 OLD TON T42, 20 Network 14 LD I0.2 = M0.2
六、实验过程记录及分析
根据实验要求,编写plc梯形图程序。打开软件录入程序,运行调试直到达到正确控制红绿灯的亮灭。模拟软件S7-200调试时,双向红绿灯开始正常工作,横向的绿灯和纵向的红灯先亮。横向的绿灯亮维持8s,在横向绿灯亮的同时纵向的红灯也亮起,并维持10s。第8秒时横向的绿灯熄灭,同时亮起黄灯并维持2s后熄灭。第10s时,横向黄灯熄灭的同时亮起红灯并维持10s,同时纵向的绿灯亮起并维持8s。当纵向绿灯熄灭并亮起黄灯持续2s后红灯亮起,同时横向的绿灯也亮起并维持8s到此一个循环就此结束,下一个循环开始。按下紧停按钮I0.1、I0.2时,Q0.1、Q0.5同时亮起并维持2s后熄灭,同时其中一路常亮绿灯,另一路常亮红灯。
说明实验程序正确,保存好实验数据,做好记录。关闭软件。
七、时序分析 正常无故障运行:
Q0.0横向绿灯,Q0.1横向黄灯,Q0.2横向红灯,Q0.3纵向红灯,Q0.4纵向绿灯,Q0.5纵向黄灯。
I0.1、I0.2为紧停开关
当按下紧停按钮I0.1:横向红灯(Q0.2)亮,纵向绿灯(Q0.4)亮。
当按下紧停按钮I0.2:横向绿灯(Q0.0)亮,纵向红灯(Q0.3)亮。
八、实验心得体会
通过实验操作,了解掌握了plc编程的原理和方法,同时实验前期遇到很多各类问题,均得到了解决,对plc产生了初步的兴趣。对以后进一步学习plc相关知识奠定了坚实的基础。
第三篇:仿真实验报告
仿真软件实验
实验名称:基于电渗流的微通道门进样的数值模拟
实验日期:2013.9.4一、实验目的1、对建模及仿真技术初步了解
2、学习并掌握Comsol Multiphysics的使用方法
3、了解电渗进样原理并进行数值模拟
4、运用Comsol Multiphysics建立多场耦合模型,加深对多耦合场的认识
二、实验设备
实验室计算机,Comsol Multiphysics 3.5a软件。
三、实验步骤
1、建立多物理场操作平台
打开软件,模型导航窗口,“新增”菜单栏,点击“多物理场”,依次新增:“微机电系统模块/微流/斯 托 克 斯 流(mmglf)”
“ACDC模块/静态,电/传导介质DC(emdc)”
“微 机 电 系 统 模 块/微流/电动流(chekf)”
2、建立求解域
工作界面绘制矩形,参数设置:宽度6e-5,高度3e-6,中心(0,0)。复制该矩形,旋转90°。两矩形取联集,消除内部边界。5和9两端点取圆角,半径1e-6。求解域建立完毕。
3、网格划分
菜单栏,网格,自由网格参数,通常网格尺寸,最大单元尺寸:4e-7。
4、设置求解域参数
求解域模式中,斯托克斯流和传导介质物理场下参数无需改动,电动流物理场下,D各向同性,扩散系数1e-8,迁移率2e-11,x速度u,y速度v,势
能V。
5、设置边界条件
mmglf—入口1和7边界“进口/层流流进/0.00005”
出口5和12边界“出口/压力,粘滞应力/0”;
emdc—入口1和7边界“电位能/10V”
出口5和12边界“接地”
其余边界“电绝缘”;
chekf—入口1“浓度/1”,7“浓度/0”
出口5和12“通量/向内通量-nmflux_c_chekf”
其余边界“绝缘/对称”。
6、样品预置
(1)求解器参数默认为稳态求解器,不用修改。
(2)求解器管理器设置求解模式:初始值/初始值表达式,点变量值不可解和线
性化/从初始值使用设定。
(3)首先求解流体,对斯托克斯流求解,观察求解结果,用速度场表示。
(4)再求解电场,改变求解模式,点变量值不可解和线性化/当前解,对传导介
质DC求解,观察求解结果,用电位能表示。
(5)再求解电动流,不改变求解模式,观察求解结果,用电动流浓度表示。
7、样品上样
(1)改变emdc进口,边界7电位能由10改为3。对传导介质DC求解,结果用
电位能表示。
(2)改变chekf进口,7边界改为“通量/向内通量-nmflux_c_chekf”
;求解域
中x速度和y速度改为0去除载流作用;求解器设置改为瞬态求解器,时间改为“0:0.00001:0.00001”。求解模式全部使用当前解,对电动流求解,结果用浓度表示。
再求两次解,完成上样。
8、分离样品
(1)改变chefk进口,7边界“浓度/0”,1边界“浓度/-nmflux_c_chekf”。
(2)改变cmdc进口,7边界“电位能/10”,1边界“电位能/3”。
(3)重新求解电场。求解模式为初始值表达式和当前解,对传到介质DC求解,结果用电位能表示。
(4)样品分离求解。求解模式全部为当前解,对电动流求解,结果用浓度表示。
四、实验结果
五、讨论
在本次试验中,每一步操作都必须严格正确,而且参数的把握也一定要
到位,只有对每一步的设置做到精确无误,才能保证最后的实验结果。我在样品上样时一直未能获得良好的上样结果,发现对瞬态求解器的时间比例进行修改,可以获得良好上样结果,同时,在样品分离改变chefk左进口浓度时发现修改数值导致结果错误,遂未修改浓度,得到了正确结果。因此,一定要在实验时对参数正确设置。
通过对仿真实验课程的学习,及本次试验,我体会到仿真技术对于实验的帮助非常巨大,使得实验室进行的许多实验可以通过计算机模拟直接完成,节省了资源消耗,并极大地提高了实验效率。本课程的学习也让我了解到了仿真及建模技术的要领。我也基本掌握了Comsol Multiphysics
这款软件,我相信在今后我会将我对本课程的学习运用到实际中。
第四篇:单片机,红绿灯显示实验报告
实
验
报
告
学生姓名:
学 号:
指导教师:
实验地点:
实验时间:2018年4月2日 实验 红绿灯显示实验
一、实验目的:
1.掌握程序控制指令。
2.掌握分支程序、子程序、循环程序的编写方法。
3.掌握软件延时的方法、了解机器周期和指令周期的概念。4.了解“静态显示”的含义。
二、实验内容:
在显示实验的基础上,如果将第7位,第3位,第1位分别看成红灯、黄灯和绿灯,红灯5秒(对应位显示0)后,显示黄灯1秒(对应位显示0),再显示绿灯3秒,编写对应程序,程序要求,延时使用子程序,最好使用标志位。其它内容见显示实验
三、实验步骤:
1.程序清单:
a)DpyDisplay.c: #include
typedef unsigned char u8;typedef unsigned int u16;
#define Dpy P0 sbit LSA = P2^2;sbit LSB = P2^3;sbit LSC = P2^4;
u8 code array[17] = {0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c,0x39, 0x5e, 0x79, 0x71,0x00};
void ls(u8 c, u8 b, u8 a)
{ LSA = a;LSB = b;LSC = c;}
void delay(u16 i){ while(i>0)i--;}
void Dpy1Display(u8 i){ ls(1,1,1);Dpy = array[i];delay(100);Dpy = 0x00;}
void Dpy2Display(u8 i){ ls(1,1,0);Dpy = array[i];delay(100);Dpy = 0x00;}
void Dpy3Display(u8 i){ ls(1,0,1);Dpy = array[i];delay(100);Dpy = 0x00;}
void Dpy4Display(u8 i){ ls(1,0,0);Dpy = array[i];delay(100);Dpy = 0x00;}
void Dpy5Display(u8 i){ ls(0,1,1);Dpy = array[i];delay(100);Dpy = 0x00;}
void Dpy6Display(u8 i){ ls(0,1,0);Dpy = array[i];delay(100);Dpy = 0x00;}
void Dpy7Display(u8 i){ ls(0,0,1);Dpy = array[i];delay(100);Dpy = 0x00;}
void Dpy8Display(u8 i){ ls(0,0,0);Dpy = array[i];delay(100);Dpy = 0x00;}
void DpyDisplay(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f, u8 g, u8 h){ Dpy1Display(a);Dpy2Display(b);Dpy3Display(c);Dpy4Display(d);Dpy5Display(e);Dpy6Display(f);Dpy7Display(g);Dpy8Display(h);} b)main.c: #include
typedef unsigned char u8;typedef unsigned int u16;
extern void DpyDisplay(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f, u8 g, u8 h);
void main(){ u16 i, j, n;n = 108;
while(1){ for(j=10;j>0;j--){
for(i=0;i DpyDisplay(j-1,16,16,16,16,16,16,16);} for(j=2;j>0;j--){ for(i=0;i DpyDisplay(16,16,j-1,16,16,16,16,16);} for(j=5;j>0;j--) } } { } for(i=0;i 2.实验现象: 开发板数码管第一位从9逐秒递减至0后,第三位从1逐秒递减至0,之后第五位从4逐秒递减至0。3.实验原理: a)通过发送段码选定某位后向该位发送位码以点亮一根数码管。b)数码管以非常短的时间重复点亮,利用人的视觉暂留给人以稳定显示字符之感。 c)利用for循环使数码管稳定显示,并使数字逐秒减少。4.实验中的注意事项、遇到的问题以及总结: a)点亮数码管的循环函数中语句尽可能少,防止数码管显示过程中的闪烁。b)最好制作编码表,设置输入值与显示字符的关系,后续即可通过查表完成显示,可大大减小工作量。 c)利用for控制每位显示可大大减少代码量。5.实验改进方向与设想 可外接不同色LED模拟红绿灯。 物理仿真实验报告 良导体热导率的动态法测量 日期 年 月 日 姓名 学号 班级 学院 评分 教师签名 实验简介: 在测量热导率的实验中,最普遍采用的方法是稳态法,即在保持被测样品各点温度不随时间变化的情况下测量热流,然后求出热导率,这种方法实验条件要求严格不易测准.而动态法就将难于测准的热学量的测量转变为容易测准的长度测量,从而显著降低测量误差. 实验原理: 实验采用热波法测量铜、铝等良导体的热导率。简化问题,令热量沿一维传播,周边隔热,如图1所示。根据热传导定律,单位时间内流过某垂直于传播方向上面积A的热量,即热流为为截面积,文中TxptkATx(1),其中K为待测材料的热导率,A是温度对坐标x的梯度,负号表示热量流动方向与温度变化 qtqtTx22方向相反.dt时间内通过面积A流入的热量dq=[()x()xdx]dtkAdxdt 若没有其他热量来源或损耗,据能量守恒定律,dt时间内流入面积A的热量等于温度升高需要的热量。dq=(cAdxTt)dt,其中C,ρ分别为材料的比热容与密度。所以任一时刻棒元热TtkTx22平衡方程为Cdxdx(2)由此可得热流方程 Tt=D Tx22(3)其中D= kC称为热扩散系数.式(3)的解将把各点的温度随时间的变化表示出来,具体形式取决于边界条件,若令热端的温度按简谐变化,即T=T0Tmsint(4)其中Tm是热端最高温度,为热端温度变化的角频率。另一端用冷水冷却,保持恒定低温,则式(3)的解也就是棒中各点的温度为2DT=T0xTmexsin(t2Dx)(5), 其中T0是直流成分,是线性成分的斜率,从式(5)中可以看出: 1)热端(x=0)处温度按简谐方式变化时,这种变化将以衰减波的形式在棒内向冷端传播,称为热波. 2)热波波速:V=2D(6)3)热波波长:22D(7)因此在热端温度变化的角频率已知的情况下,只要测出波速或波长就可以计算出 D.然后再由D=2kC2计算出材料的热导率K.本实验采用.式(6)可得V22kC则k=VC4fVC4T(8)其中,f、T分别为热端温度按简谐变化的频率和周期.实现上述测量的关键是:1)热量在样品中一维传播.2)热端温度按简谐变化. 实验仪器:实验仪器结构框图见图2(a),该仪器包括样品单元,控制单元和记录单元三大部分.实际仪器由两种工作方式:手动和程控.他们都含样品单元和控制单元,不同的只是记录单元.前者用高精度x-y记录仪,后者用微机实现对整个系统的控制、数据的采集、记录和绘图,仪器主机由用绝热材料紧裹侧表面的园棒状样品(实验取铜和铝两种样品)、热电偶列阵(传感器)、实现边界条件的脉动热源及冷却装置组成。 实验操作: 1. 打开水源,从出水口观察流量,要求水流稳定。2. 打开电源开关,主机进入工作状态。3. “程控”工作方式。 实验数据: 铜样品:铜的比热C:385 K 密度:8.92×103 Kg/m3 铝样品:铝的比热C:906J/KgK 密度:2.702×103Kg/m3 思考题: 1.如果想知道某一时刻t时材料棒上的热波,即T~t曲线,将如何做?请画出大概形状。答:观察测量状态显示中的运行时间,到待测时间,恩下操作栏中的暂停键即可得到某时刻材料棒上的热波。 2.为什么较后面测量点的T~t曲线振幅越来越小? 答:高次谐波随距离快速衰减,所以较后面测量点的的T~t曲线振幅越来越小。第五篇:物理仿真实验报告