11.2 跑马灯控制程序设计

厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
一、顺序控制设计法
所谓顺序控制,就是按照生产工艺预先规定的 顺序,在各个输入信号作用下根据内部状态和时间 的顺序,在生产过程中各个执行机构自动地有秩序 的进行操作。 。
一般使用顺序控制设计法,都要画出顺序功能 图,顺序功能图的结构有单序列、选择序列和并行 序列。如图所示,单序列没有分支与合并,选择序 列的分支不能同时激活,而并行序列的分支可以同 时激活。
下面我们按步来看一下程序的编写: (2)S1步:S1步是起始步,表示程序开始运行,满足 转换条件SB1可以进入S2步。SB1为启动按钮I0.0,按 下后程序开始运行,S2步激活。我们使用M0.0来指示 启停状态,M0.0为1表示启动,M0.0为0表示停止。这 段程序比较简单,使用置位线圈指令,当I0.0按下, 使M0.0置位为1。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
(4)S3步和S4步
S3步负责控制左移,S4步负责控制右移,这两步 是密切相关的。由于操作对象是MW20,是一个字的存 储空间,所以我们要选择字的移位指令。如图蓝色圈 中所示,使用移位脉冲T1,T1每1S产生一个下降沿, 检测这个下降沿使移位指令产生移位。如图红色圈中 所示,在写入初值后,一次移一位,先左移,就会看 到MB20的各个位,从M20.0至M20.7依次变1;等M20.7 变1了,再右移,一次移一位,就会看到MB20的各个 位,从M20.7至M20.0依次变0。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
(3)S2步 S2步负责程序的初始化工作,这里有两项工作
要做,一是提供移位脉冲,如图所示。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
当M0.0为1,也就是系统处于运行状态时,T0 和T1开始循环交替定时,循环的周期是1S,T0先, T1后,这两个定时器都可以作为我们的移位脉冲, 取的定时器不同,程序的编写会有所不同,这里取 T1作为移位脉冲。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
S3步至S4步的转换条件是左移达到8次,S4步返 回S2步的转换条件是右移达8次,这如何实现呢?如 图黄色圈中所示,通过计数器C0计数移位次数来实 现,移位次数存储在MW10中的,当它小于等于8时, 对MW20执行字左移;当它大于8而小于等于16时,对 MW20执行字右移。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
1、任务分析
根据控制任务说明,我们会想到,如果使用 Q0.0至Q0.7对应控制L0至L7这8盏灯,要实现L0至 L7的顺次亮起,我们只要使1顺次填入Q0.0至Q0.7 即可,简单说就是左移顺次填1;而要使L7至L0顺 次熄灭,我们只要使0顺次填入Q0.7至Q0.0即可, 简单说就是右移顺次填0。而实际编程中,我们可 以根据这个思想,画出移位的工作流程图来,以 便辅助我们设计。如图所示。
11.2 跑马灯控制程序设计
2017.2.27
Xiamen University 电气控制实践训练MOOC课程团队
跑马灯,即走马灯。一种供玩赏的灯。用纸片 剪成人马的形状,粘在灯壳里的纸轮上,由火焰推 动空气,使纸剪的人物转动,大家看到的是不断流 转的效果。所以在这里我们用它来指控制多盏灯按 照一定的顺序和时间不断循环亮灭,要达到的也是 这种流转的效果。当然这个任务不是十分复杂,但 是可以以点带面,其他复杂的灯光效果控制,比如 说美轮美奂的夜景工程、音乐喷泉等的控制都是同 样的原理。下面我们将结合顺序控制设计法,来讲 一讲跑马灯控制程序的设计。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
选择序列
单序列
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
ቤተ መጻሕፍቲ ባይዱ
并行序列
顺序功能图的组成元素
有向连线
转换
步 转换条件
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
1、步(step):把系统的一个工作周期划分为若干 个顺序相连的阶段,这些阶段称为步(step),每 一步用一个方框来表示。 2、有向连线:将各步相连的线,其方向代表了各步 成为活动步的先后次序。 3、转换:用与有向连线垂直的划线来表示,转换将 相邻两步分隔开。 4、转换条件:使系统由当前步进入下一步的条件。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
S4步返回S2步的转换条件为右移达到8次,换句 话说就是移位总次数达到16次,也就是一个亮灭过 程结束,我们再来看一看这个转换条件是如何编程 实现的。这里我们设置一个状态标志M0.5,用来标 识移位总次数达到16次这个状态。如图所示,当 MW10中的数值,也就是移位的次数大于15时,M0.5 为1,这说明移位总次数到达16。
移;当左移满8次时,开始启动右移
填0,如果右移不满8次,继续右移
,如果右移满8次说明一个完整的移
否
位过程结束,系统恢复到初始状态 ,准备再次左移。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
S1 SB1
提供移位脉冲
S2
为要移位的存储空间填入初值
S3
将指定存储空间每秒左移一位
左移达到8次
输入 名称 启动按钮SB1
停止按钮SB2
地址 I0.0 I0.1
名称 L0
输出
地址 Q0.0
L1
Q0.1
L2
Q0.2
L3
Q0.3
L4
Q0.4
L5
Q0.5
L6
Q0.6
L7
Q0.7
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
3、程序编写 (1)定义变量表
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
二、跑马灯控制程序设计 结合顺序控制设计法来设计跑马灯控制程序。
首先来看一下该任务的控制要求: 要求通过启动按钮SB1使得8盏灯按照L0、L1~L7的 顺序亮,每隔1S亮一盏灯;再按L7、L6~L1、L0的 顺序灭,每隔1S灭一盏灯;如此循环,直至按下停 止按钮SB2,全部灯熄灭,停止工作。
<2>停止功能 停止功能实际上包含了两部分的内容,一是使
系统停止运行,即取消运行状态。如图所示,I0.1 为停止按钮,使用复位线圈指令,当I0.1为1时,使 M0.0为0,取消运行状态。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
二是使系统回到初始状态,等待再次运行,如图 所示,当I0.1为1时,使用MOVE指令将初值W#16#FF传 送到MW20,再将MB20传送到QB0,从而使MW20、MB20 、QB0这些存储区域回到初始状态。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
(5)其余控制功能的实现
在进行程序的编写时,使用顺序功能图可以找 出程序的主体流程,实现主体功能,比如我们已经 实现了对移位对象MW20的左右移位。很多时候,只 实现主体功能是不行的,还要有一些程序来帮助完 成所有功能,这样整个控制才是完整的,这些程序 ,没有编入到顺序功能图中。在本例中,我们还需 要编写一些程序,实现如下功能。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
<1>刷新QB0 在移位时,我们的移位对象为MW20,而不是直接
对QW0来进行移位,如图所示,使用MOVE指令,每当 T1产生一个下降沿时,将MB20的数据传送给QB0,实 现对QB0的刷新。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
MW20 0000000011111111
MB20
MB21
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
当M0.0变为1 时,将初值 W#16#FF写入 移位对象MW20 ,这里使用上 升沿信号检测 指令,可以保 证初值只写入 一次。
S4
将指定存储空间每秒右移一位
右移达到8次
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
根据工作流程图 ,我们可以画出 顺序功能图,将 工作过程分成3个 顺序循环执行的 步S2、S3和S4, 另设一个初始步 S1。S2负责初始 化,S3负责控制 左移,S4负责右 移。
2、定义I/O分配
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
我们讲到了计数器C0,那么该计数器是如何控 制的呢?如图所示,当M0.0从0变1时,将初值C#0写 入计数器C0;当移位脉冲T1每产生一个下降沿时, 使C0加1;将C0的当前数值以整数格式存储于MW10, 同时使用M0.5来使C0复位。M0.5是什么呢?我们后 面会讲到。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
这时,应该返回到S2步,也就意味着要回到初始 化的状态,那么怎么才能回到这个初始化的状态呢? 如图所示,答案就是使用M0.5这个状态标志,当M0.5 从0变1时,进行初值的再传递以及使计数器C0复位。
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
厦电气门控大制学实物践理训与练M机O电OC工课程程学团院队
第二项工作是为移位对象写入初值,有的同学要 问了,移位对象不是输出Q0.0至Q0.7吗?应该这么说 ,控制Q0.0至Q0.7是我们的目的,怎么来达到这个目 的呢?为了避免直接控制输出所带来的误操作,我们 要使用一个中间存储空间MW20来作为移位对象,将移 位后的结果通过MB20来传送到QB0。我们来看看这个 MW20的空间,MW20包含MB20和MB21两个字节,给这个 空间填入初值W#16#FF,这时MB20的各个位为0,MB21 的各个位为1。
合集下载

单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计

单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告一、引言本课程设计旨在通过学习和实践单片机(MCU)编程,实现闪烁灯和跑马灯的控制。

我们将使用嵌入式C语言编程,通过了解单片机的内部结构、电路设计和编程流程,深入理解单片机的工作原理和应用。

二、系统硬件设计本课程设计选用51单片机作为主控芯片,外接8个LED灯和1个按键。

硬件电路设计如下:1.单片机:采用AT89C51,该芯片具有32K字节的Flash存储器,256字节的RAM,以及两个16位定时器/计数器。

2.LED灯:采用普通LED灯珠,与单片机引脚相连,通过编程控制LED灯的亮灭状态。

3.按键:采用机械按键,与单片机的外部中断0(EX0)相连,用于触发闪烁灯和跑马灯的切换。

三、系统软件设计1.闪烁灯模式:在此模式下,8个LED灯将按照一定的频率交替闪烁。

我们可以通过计时器和GPIO口控制LED灯的亮灭状态。

void blink_LED(void) {int i;while(1) {for(i = 0; i < 8; i++) {P1_0 = ~P1_0; // 翻转LED状态delay(500); // 延时,控制闪烁频率}}}2.跑马灯模式:在此模式下,8个LED灯将按照一定的顺序依次点亮。

我们可以通过计时器和GPIO口控制LED灯的亮灭状态。

void marquee_LED(void) {int i;int led_state[8] = {0, 1, 0, 1, 0, 1, 0, 1}; // LED状态数组,初始为交替亮灭while(1) {for(i = 0; i < 8; i++) {P1_0 = led_state[i]; // 设置LED状态delay(50); // 延时,控制跑马灯速度}}}四、按键处理程序我们通过外部中断0(EX0)接收按键信号,当按键按下时,将切换闪烁灯和跑马灯模式。

按键处理程序如下:void EX0_ISR(void) interrupt 0 { // EX0中断服务程序if (key_flag) { // 如果按键已经被按下过if (key_value == 0) { // 如果按键状态为低电平marquee_LED(); // 切换到跑马灯模式key_flag = 0; // 标记按键状态已经改变} else { // 如果按键状态为高电平blink_LED(); // 切换到闪烁灯模式key_flag = 0; // 标记按键状态已经改变}key_value = ~key_value; // 翻转按键状态值} else { // 如果按键还没有被按下过key_value = ~key_value; // 翻转按键状态值if (key_value == 0) { // 如果按键状态为低电平blink_LED(); // 切换到闪烁灯模式key_flag = 1; // 标记按键状态已经改变} else { // 如果按键状态为高电平marquee_LED(); // 切换到跑马灯模式key_flag = 1; // 标记按键状态已经改变}}}。

跑马灯控制(定时中断应用)

跑马灯控制(定时中断应用)

江 苏 省 盐 城 技 师 学 院教 案 首 页编 号:YJQD-0507-07 版 本:B/O 流水号: 编 制: 审 核: 批 准:课题: 跑马灯控制(定时中断应用) 教学目的、要求:1、学习使用定时/计数器实现精确延时。

2、 熟练掌握移位指令。

教学重点、难点:熟练掌握移位指令授课方法: 启发式教学、任务驱动型教学、实验教学 教学参考及教具(含电教设备):高职高专规划教材《单片机原理与控制技术》、多媒体设备、DVCC 系列单片机微机仿真实验系统实验指导书。

授课执行情况及分析:板书或教学设计:授课日期班 级课题:跑马灯控制(定时中断应用)一、知识回顾 二、任务引入 三、任务分析 四、相关知识 (1)电路功能 (2)硬件电路 (3)控制程序五、任务实施 六、任务拓展 七、巡回指导 八、结束指导课题 跑马灯控制(定时中断应用)课前准备:1、DVCC 系列单片机微机仿真实验系统2、安装有DVCC 实验系统软件的计算机、多媒体投影仪3、万用表及常用电工工具组织教学:检查学生人数、标志牌佩戴、工作服及工具准备情况。

知识回顾(复习提问):定时中断的设定方法是什么?任务引入:开始时P1.0亮,延时0.2S 后,P1.1亮,如此左移7次后至P1.7再延时0.2S 右移至P1.6,如此右移7次至P1.0,循环显示。

任务分析:一、硬件图EA/VP 31X119X218RESET 9RD 17WR 16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN 29ALE/P 30TXD 11RXD 10Vss 20Vcc 40U28051R1200R2200R3200R4200R5200R6200R7200R8200D1LED D2LED D3LED D4LED D5LED D6LED D7LED D8LEDT1XTALC130p FC230p Fa b f c g deVCC 1234567a b c d e f g 8dpdp9DS1AMBERCAa b f c g deVCC 1234567a b c d e f g 8dpdp9DS2AMBERCAA B C DR910K R1010K R1110K R1210K+5V+5VR0110k+5V+C0122u F二、功能说明开始时P1.0亮,延时0.2S 后,P1.1亮,如此左移7次后至P1.7再延时0.2S 右移至P1.6, 如此右易7次至P1.0,循环显示。

跑马灯控制系统

跑马灯控制系统

跑马灯控制系统
一、要求:将8(16)只发光管编队,按要求(点亮与熄灭的时间间隔、亮的灯与灭的
数量、循环的方向)。

二、分析(方案):要实现上述要求,8只发光管的“亮”与“灭”必须可控,因此,
可用单片机通过程序来实现。

三、硬件电路设计:
图1-1 跑马灯电路图
74LS245的真值表为:
根据电路图画出PCB图并制板,焊接。

四、控制软件设计
从硬件电路图和 74LS245真值表可知:P3口上为低电平的管脚对应的发光管亮,现设三只“亮”一只“灭”,且从上向下移动,则控制程序如下:
ORG 0
CLR C ;C是单片机中的进位标志位(在PSW中,PSW.7)
MOV A,#11H ;11H对应00010001B
LOOP: MOV P3,A ;控制发光管“亮三灭一”
LCALL DELAY ;延时
RL A ;移动,准备下一个状态
LJMP LOOP ;循环
DELAY: MOV R0,#0 ;延时子程序
D1: MOV R1,#0
DJNZ R1,$
DJNZ R0,D1
RET
END
五、建议修改:
1、实现准确定时
2、用16只LED实现
3、实现方向的改变
4、实现时间(速度)的改变
5、……。

单片机 跑马灯实验

单片机 跑马灯实验
}
void hold(){
n=8;
while(1){
if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯
oldK=K[4];
if(n==-1)n=7;//D0灯亮后点亮D7
while(n>=0){
out=D[n];
n--;
if(delay4(15))break;
}
}
if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯
void hold(){
n=8;
while(1){
if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯
oldK=K[4];
if(n==-1)n=7;//D0灯亮后点亮D7
while(n>=0){
out=D[n];
n--;
if(delay4(15))break;
}
}
if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯
图43键控的流水灯
五、实验思考题
1、采用I/O口作为输出口时要考虑哪些因素?为什么实验装置中LED要串联一个电阻?
当作为输出口时候就是单片机向外发出数据,或者再产生拉电流,单片机的拉电流一般要比灌电流小,基本上就能点亮2,3个LED,功率很有限,所以一般时候必须用驱动芯片来驱动单片机的外围器件。串联电阻是为了保护电路。
while(1){//开机即正序点亮流水灯
forward();
if(P2!=K[0]){
break;
}
}
while(1){
out=AllOff;
if((P2&0x0f)!=0x0f){//检测有键按下
delay10ms();//延时10ms再去检测

跑马灯控制设计与实现

跑马灯控制设计与实现
① GPIO_WriteBit ()函数是向指定IO口的引脚写0或者写1,也就是向寄 存器ODR相应位的写0或者写1
② GPIO_Write()函数是向指定IO口写数据,也就是是向寄存器ODR写数 据
n 例如:向PC8写1的代码是: GPIO_WriteBit(GPIOC, GPIO_Pin_8, 1);
n STM32的IO端口操作
n 输入输出函数
1. GPIO_ReadInputDataBit ()函数
n 是读取指定IO口的对应引脚值,也就是读取IDR寄存器的值 n 例如:读取GPIOA.6(既PA6)引脚值:
GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
2. GPIO_ReadInputData ()函数
n 常用的IO端口寄存器有6个:CRL、CRH、IDR、ODR、BSRR 和BRR。
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 在前面,我们围绕STM32的IO端口寄存器如何使用,进行了详 细的介绍。现介绍一下IO口的操作步骤,步骤如下:
1. 调用RCC_APB2PeriphClockCmd()函数,使能IO口时钟; 2. 调用GPIO_Init()函数,初始化IO口参数; 3. 使用IO口操作方法,对IO口进行各种操作。
STM32
项目二 跑马灯控制设计与实现
STM32的GPIO初始化和输入输出库函数
n STM32的IO端口操作
n 初始化函数
3. GPIO_ReadOutputDataBit ()和GPIO_ReadOutputData ()函数
① GPIO_ReadOutputDataBit ()函数是读取指定IO口某个引脚的输出值 ,也就是读取寄存器ODR相应位的值

跑马灯C语言程序

跑马灯C语言程序

跑马灯C语言程序在C语言中,跑马灯(Marquee)是一种在控制台或者命令行界面上实现文本滚动的效果。

跑马灯的实现可以使用循环迭代输出字符串的方案,每次输出完一个字符串后,将其从尾部剪切一个字符,然后再将其插入到字符串的首部。

这样不断循环,就能实现字符的滚动效果。

下面是一个简单的跑马灯程序的示例:```c#include <stdio.h>#include <string.h>#include <ctype.h>#include <unistd.h>#define WIDTH 40 // 控制台窗口宽度#define DELAY 200000 // 滚动速度(微秒)for (i = 0; ; i++) {// 输出字符串的截取部分for (j = i % len; j < WIDTH && j < i % len + len; j++) {putchar(pstr[j % len]);}// 输出空格使得字符串在窗口中滚动for ( ; j < WIDTH; j++) {putchar(' ');}putchar('\r');fflush(stdout); // 刷新输出缓存usleep(DELAY); // 暂停一段时间}return 0;}```程序中使用的usleep(DELAY)函数可以让程序在滚动过程中暂停一段时间,以控制滚动速度。

该函数接受一个以微秒为单位的参数,表示暂停的时间长度,其中1秒=1000000微秒。

在while循环内部,程序首先输出跑马灯字符串的一部分,然后输出一些空格,使得字符串向前滚动。

这里注意,当字符串的尾部超出了窗口的宽度时,需要从字符串的起始位置继续输出,因此要对输出字符的下标取模运算。

另外,程序中使用了Windows控制台的回车(CR)特性,即使用putchar('\r')输出CR字符可以让光标回到本行的开头,然后再输出下一次循环迭代的字符。

信息页: 跑马灯控制系统的设计与制作

项目一跑马灯控制系统的设计与制作信息页1:单片机系统基础一、什么是单片机?所谓的单片机就是在一块半导体芯片上集成了CPU、存储器、输入输出接口、定时器/计数器等功能部件的的微型计算机。

二、单片机的引脚三、单片机最小系统四、常用单片机C语言的结构:#include <reg51.h>void main(){}注:在C语言的程序结构中必须有一个主函数,即main函数。

函数名前加void的意思是只执行但不返回任何值,不加不会出错。

但如果该函数没有返回值,建议加上。

五、发光二极管基础发光二极管简称为 LED,它由镓(Ga)与砷(AS)、磷(P)的化合物制成,LED内部主要为一个PN结。

当PN结内的电子与空穴复合时,电子由高能级跃迁到低能级,电子将多余的能量以光子的形式释放出来,产生电致发光现象。

红色发光二极管的工作电压一般在1.8V左右,导通电流为10mA左右。

发光二极管的电气符号项目一跑马灯控制系统的设计与制作信息页2:单片机系统焊接一、焊接操作要领1、焊前准1.1、物料:含直接用料和辅料,留意焊接元件有否极性要求,元件脚有否氧化、油污等。

焊接时,对焊接温度,时间有否特别要求;1.2、工/器具:视焊接元件而定,应有锡线座、元件盒、焊枪、焊台、镊子、剪钳等。

如有防静电要求,应注意采用防静电工/器具,同时操作员应戴好防静电手腕带;2、实施焊接准备好焊锡丝和烙铁头,烙铁头要保持洁净;步骤:烙铁头对准焊点→烙铁接触焊点→加焊锡→移开焊锡丝→拿开电烙铁具体如下:○1加热焊件(同时加热元件脚和焊盘)○2熔化焊锡:当焊件加热到能熔化焊料的温度后,将锡线置于焊点,焊锡开始溶化并润湿焊点;○3在焊点加入适当的焊锡后,移开锡线;○4当焊锡完全湿润焊点后,以大致45°的角度移开烙铁;以上过程对一般焊点在大约2~3秒钟完成,应注意在焊锡尚未完全凝固以前不要晃动接元件,以免造成虚焊。

3、焊接后的处理当焊接结束后,应检查有无漏焊、错焊(极性焊反)、短路、虚焊等现象,清理PCB板上的残留物如:锡渣、锡碎、元件脚等。

PLC控制——跑马灯

PLC控制——跑马灯实验题目:跑马灯1、实验目的及要求实验目的:用PLC构成跑马灯系统控制要求:要求通过启动按钮SB1使得8盏灯按照L0、L1~L7的顺序亮,每隔1S亮一盏灯;再按L7、L6~L1、L0的顺序灭,每隔1S灭一盏灯;如此循环,直至按下停止按钮SB2,全部灯熄灭,停止工作。

I/O分配表:输入输出启动按钮I0.0L0Q0.0停止按钮I0.1L1Q0.1L2Q0.2L3Q0.3L4Q0.4L5Q0.5L6Q0.6L7Q0.72、实验环境(使用的软硬件)PC机,博图软件3、实验原理(1)移位指令移位指令包括无符号数移位和有符号数移位。

其中无符号数移位包含字左移指令、字右移指令、双字左移指令和双字右移指令;有符号数移位包含整数右移指令和双整数右移指令。

*无符号数移位指令。

1字左移指令当允许输入EN位为高电平“1”时,将执行字左移指令,将IN端指定的内容送入累加器1低字中,并左移N端指定的位数,然后写入OUT端指定的地址中。

②字右移指令当允许输入EN的状态为“1”时,将执行字右移指令。

(2)顺序控制设计法所谓顺序控制,就是按照生产工艺预先规定的顺序,在各个输入信号作用下根据内部状态和时间的顺序,在生产过程中各个执行机构自动地有秩序的进行操作。

一般使用顺序控制设计法,都要画出顺序功能图,顺序功能图的结构有单序列、选择序列和并行序列。

单序列没有分支与合并,选择序列的分支不能同时激活,而并行序列的分支可以同时激活。

顺序功能图的组成元素:4、方案设计(程序流程图)5、程序代码6、实验结果(PLCSIM仿真结果)1、按下起动按钮,跑马灯按照顺序点亮;……………………………………………………经过一段时间全部点亮然后跑马灯按照顺序熄灭……………………………………………………经过一段时间全部熄灭然后又重新按照顺序循环点亮:2、按下停止按钮,系统停止运行:7、实验总结1.通过使用顺序功能图可以找出程序的主体流程,实现主体功能,并利用一些程序来帮助完成所有功能;2.通过本次实验,我熟练使用移位功能。

单只跑马灯移控制程序设计

单只跑马灯控制程序设计一:电路原理图二:题意分析:根据电路原理图可知,若P2口送出高电平,经74ls240反相后为低电平时,发光二极管亮;反之发光二极管不亮。

若要我们的眼能看清亮或灭的效果,必须保证高低电平各稳定1秒的时间。

为便于功能调试控制,按功能分成主程序和延时子程序两个程序模块设计。

其中主模块实现二极管亮或灭控制信号的输出及调整;延时子程序通过执行一段与端口无关的指令实现耗时1秒钟,来达到延时的目的。

三:程序设计流程图:单只跑马灯效果就是单只发光二极管来回跑的效果。

1.主程序设计步骤:整个运行效果为:由效果示意图可知,先执行左移,当左移到边D7位后,再执行右移,当右移到边D0位后,重复上述操作。

控制字有左移初值和右移初值两个。

1)设定启动时发光二极管的初时状态控制字最右的D0位灯亮(左移初始控制字),其他的为灭,其控制字为00000001B = 01H。

2)P2口送出发光二极管状态控制字。

3)稳定P2口信号。

4)检查左移控制字是否到了最左(到左移边界10000000B=80H),若没有到,则转5)执行,否则顺序执行。

a.设右移初始控制字01000000B=40H,b.右移的控制字输出c.稳定信号d.检查右移是否到最右(到右边界00000001B=80H)若有到了,则无条件转1)执行,否则顺序执行e..计算下一个右移控制字f. 无条件转b执行。

5)计算一下个发光二极管状态(亮)的控制字(即由上一个控制字左移1位产生)。

6)无条件返回到2)重复执行。

将上述设计步骤转换为程序设计流程如下图所示。

2.延时1秒钟设计步骤1)若单片机外接晶振频率为12MHz,则单片机的机器时期T=1us。

延时1s=1000000us相当于消耗机器时期数一百万个(执行指令来消耗时间)。

减1条件转移指令DJNZ每执行一次需2个T时间,则1秒钟就需执行指令DJNZ五十万次。

因51系列是8位的单片机,所以每次只最大能赋255,不能直接将五十万这个值赋给寄存器,故只能采用循环方式实现50万这个数。

PLC控制——跑马灯

实验题目:跑马灯1、实验目的及要求实验目的:用PLC构成跑马灯系统控制要求:要求通过启动按钮SB1使得8盏灯按照L0、L1~L7的顺序亮,每隔1S亮一盏灯;再按L7、L6~L1、L0的顺序灭,每隔1S灭一盏灯;如此循环,直至按下停止按钮SB2,全部灯熄灭,停止工作。

I/O分配表:输入输出启动按钮I0.0L0Q0.0停止按钮I0.1L1Q0.1L2Q0.2L3Q0.3L4Q0.4L5Q0.5L6Q0.6L7Q0.72、实验环境(使用的软硬件)PC机,博图软件3、实验原理(1)移位指令移位指令包括无符号数移位和有符号数移位。

其中无符号数移位包含字左移指令、字右移指令、双字左移指令和双字右移指令;有符号数移位包含整数右移指令和双整数右移指令。

*无符号数移位指令。

1字左移指令当允许输入EN位为高电平“1”时,将执行字左移指令,将IN端指定的内容送入累加器1低字中,并左移N端指定的位数,然后写入OUT端指定的地址中。

②字右移指令当允许输入EN的状态为“1”时,将执行字右移指令。

(2)顺序控制设计法所谓顺序控制,就是按照生产工艺预先规定的顺序,在各个输入信号作用下根据内部状态和时间的顺序,在生产过程中各个执行机构自动地有秩序的进行操作。

一般使用顺序控制设计法,都要画出顺序功能图,顺序功能图的结构有单序列、选择序列和并行序列。

单序列没有分支与合并,选择序列的分支不能同时激活,而并行序列的分支可以同时激活。

顺序功能图的组成元素:4、方案设计(程序流程图)5、程序代码6、实验结果(PLCSIM仿真结果)1、按下起动按钮,跑马灯按照顺序点亮;……………………………………………………经过一段时间全部点亮然后跑马灯按照顺序熄灭……………………………………………………经过一段时间全部熄灭然后又重新按照顺序循环点亮:2、按下停止按钮,系统停止运行:7、实验总结1.通过使用顺序功能图可以找出程序的主体流程,实现主体功能,并利用一些程序来帮助完成所有功能;2.通过本次实验,我熟练使用移位功能。

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