PIC单片机led灯左移右移
广告灯(LED灯左移右移)电路设计

新疆农业大学机械交通学院《单片机技术与应用》课程设计说明书题目:广告灯(LED灯左移右移)电路设计专业班级:学号:学生姓名:指导教师:时间:目录1 设计目的 (3)2 设计内容 (3)2.1 设计任务及要求 (3)2.2 设计方案及原理 (3)3设计步骤 (3)3.1硬件电路设计 (3)3.2 硬件电路组成框图 (4)3.3 各个硬件电路及工作原理 (4)3.3.1 晶振电路 (4)3.3.2 LED灯电路 (5)3.3.3 复位电路 (5)3.4 绘制原理图 (6)3.5 元件参数计算 (6)3.6 元件清单列表 (6)3.7程序设计 (7)3.7.1 绘制程序原理图 (8)3.7.2汇编程序 (9)4 调试与仿真 (9)5 硬件调试结果 (10)5.1面包板电路的搭建测试 (11)5.2电路调试结果 (12)6 心得体会 (14)广告灯(LED灯的左移右移)电路设计作者:秦春旺指导老师:艾海提・赛买提李春兰1 设计目的(1)会利用软件绘制流水广告灯电路原理图。
(2)通过单片机课程设计,熟练汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力。
(3)会用Keil C51软件对源程序进行编译调试及与proteus软件联调,实现电路的仿真。
2 设计内容广告灯是一种常见的装饰,常用与街上的广告及舞台装饰灯场合。
最简单的流水广告灯就是各个灯依次发光。
本任务利用STC89C51单片机来实现这一功能。
2.1 设计任务及要求输出“0”时,发光二极管亮,开始时按照P1.0、 P1.1 、…P1.7的顺序依次点亮发光将8个发光二极管D1-D8接在单片机的P1.0-P1.7端口上,当对应的P1口二极管,然后再按照P1.7、P1.6… P1.0的顺序依次点亮发光二极管,重复循环。
2.2 设计方案及原理单片机CPU芯片STC89C51,工作环境为常温。
发光二极管,工作环境为常温通过对单片机STC89C51系统的学习,如果要让接在STC89C51芯片P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的灯熄灭,把P1.0口的电平变为低电平就可以;同理。
三菱PLC案例小灯循环闪烁(位左移位右移)

利用三菱SFTL和SFTR(位左移指令;位右移指令)实现小灯循环点亮的程序;
6个小灯循环点亮启动,可加快,可减缓。
X0减慢点亮速度;
X1加快点亮速度;
X2反转启动;
X3正转启动;
X4停止;
X5启动控制;
程序如下:
此种编程方法不唯一,也可以使用计数器编写此程序,只是相对来说比较复杂。
编程思路,上电初始化程序;防止再次启动时程序出错;
利用变量D0控制定时器的时间,控制循环周期,
利用累加器实现增长时间秒冲;
利用减计数器减少时间秒冲;
利用M30的起保停电路控制位左移、位右移指令的切换;利用M20再次复位M0使下次扫描到M0时为0.
利用M10、M15和M30的组合,使下次扫描到M0时为1.。
广告灯的左移右移

用单片机实现广告灯的左移右移摘要广告灯,就是所谓的光影传媒,是能把任何图案以光的形式投影在广场或各种楼体上,投影的图案既有动态效果,也有静态效果,各种图案都可以订做,很容易吸引众人的眼光,关注率非常高。
广告灯是一种新生的传媒,成本低,投射方便,是各种广告公司的新宠。
广告灯还能在一些传统媒体无法投放的地方发生作用,并会有意想不到的效果,如地面,马路边上。
广告灯可运用色彩的对比手法,从而产生与众不同的色彩感觉与色彩组合,并有助于作品形象区别于周围事物与环境,形成色彩视觉冲击力,引发注意。
不同的色彩对比组合,可以营造鲜艳夺目、明亮活泼,也可以是庄重高雅、雍容华贵,在作品与消费者接触的一刹那中,打动消费者,增强注意的力度,在形成广告的第一印象时,色先夺人,并留下深刻的印象。
广告灯主要应用于广告牌、建筑泛光照明、网球场、停车场、体育馆、堆场及码头等。
本文中的广告灯采用来了AT89C52单片机进行控制。
关键词:AT89C52单片机,广告灯的左移右移目录第一章引言 (1)1.1 广告灯的概述 (1)第二章器件介绍 (2)2.1 AT89C52单片机及其引脚说明 (2)2.2 功能特性描述 (3)2.3 AT89C52各引脚功能及管脚电压 (4)2.4 AT89C52的引脚图 (6)第三章系统硬件设计 (7)3.1 设计要求 (7)3.2 系统硬件连线 (7)3.3 硬件原理图 (8)第四章软件设计 (9)4.1 程序设计内容 (9)4.2 软件程序流程图 (10)4.3 延时程序的设计 (10)4.4 软件使用说明 (11)4.4.1 Keil软件使用说明 (11)4.4.2 Proteus 6 Professional软件使用说明 (11)4.5 设计任务仿真结果 (12)4.5.1 设计任务一仿真图如图4.5.1所示 (12)4.5.2 设计任务二仿真图4.5.2所示 (13)4.6 结论及其心得体会 (14)参考文献 (15)致谢 (16)附录 (17)附录1 程序清单 (17)设计任务一的程序 (17)设计任务二的程序 (18)附录2 元器件清单表 (20)附录3 原理图 (20)第一章引言当代计算机是微电子技术与计算机数学相结合的产物。
按键控制LED灯左右移动

按键控制LED 灯左右移动#include <reg51.h> //此文件中定义了51的一些特殊功能寄存器#include <intrins.h>sbit K1 = P1^0; //对应按钮K1sbit K2 = P1^1; //对应按钮K2#define GPIO_LED P0 //led使用P0口void Delay10ms(unsigned int c); //延时10msunsigned char Key_Scan();void main(void){unsigned char ledValue, keyNum;ledValue = 0x01;while (1){keyNum = Key_Scan(); //扫描键盘if (keyNum == 1) //如果键值返回1{ledValue = _crol_(ledValue, 1); //左循环}else if (keyNum == 2){ledValue = _cror_(ledValue, 1); //右循环}GPIO_LED = ledV alue;//点亮LED灯}}unsigned char Key_Scan(){unsigned char keyValue = 0 , i; //保存键值//--检测按键1--//if (K1==0) //检测按键K1是否按下{Delay10ms(1);//消除抖动if (K1==0) //再次检测按键是否按下{keyValue = 1;i = 0;while ((i<25) && (K1==0)) //检测按键是否松开{Delay10ms(1);i++;}}}//--检测按键2--//if (K2==0) //检测按键K1是否按下{Delay10ms(1);//消除抖动if (K2==0) //再次检测按键是否按下{keyValue = 2;i = 0;while ((i<50) && (K2==0)) //检测按键是否松开{Delay10ms(1);i++;}}}return keyValue; //将读取到键值的值返回}void Delay10ms(unsigned int c) //误差0us{unsigned char a, b;for (;c>0;c--){for (b=38;b>0;b--){for (a=130;a>0;a--);}}}。
C语言和单片机中的左移右移

1当左移移出的是“1”而不是0时,你该怎么想?2当左移的操作数是一个sign型是,你该怎么想?3在单片机中和在C语言中是完全一样的吗?4左移与右移在内存中的关系?5什么时候左移相当于乘2?6有兴趣的话可以研究一下单片机汇编中的循环左右移!左移先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如:int i = 1;i = i << 2; //把i里的值左移2位也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导致符号变化,下面解释原因)需要注意的一个问题是int类型最左端的符号位和移位移出去的情况.我们知道,int是有符号的整形数,最左端的1位是符号位,即0正1负,那么移位的时候就会出现溢出,例如:int i = 0x40000000; //16进制的40000000,为2进制的01000000 (0000)i = i << 1;那么,i在左移1位之后就会变成0x80000000,也就是2进制的100000...0000,符号位被置1,其他位全是0,变成了int类型所能表示的最小值,32位的int这个值是-2147483648,溢出.如果再接着把i左移1位会出现什么情况呢?在C语言中采用了丢弃最高位的处理方法,丢弃了1之后,i的值变成了0.左移里一个比较特殊的情况是当左移的位数超过该数值类型的最大位数时,编译器会用左移的位数去模类型的最大位数,然后按余数进行移位,如:int i = 1, j = 0x80000000; //设int为32位i = i << 33; // 33 % 32 = 1 左移1位,i变成2j = j << 33; // 33 % 32 = 1 左移1位,j变成0,最高位被丢弃在用gcc编译这段程序的时候编译器会给出一个warning,说左移位数>=类型长度.那么实际上i,j移动的就是1位,也就是33%32后的余数.在gcc下是这个规则,别的编译器是不是都一样现在还不清楚.总之左移就是: 丢弃最高位,0补最低位在keil c51中,内部函数库INTRINS.H中_crol_(m,n)表示将m循环左移n位,与m<<n的效果不同。
51单片机流水灯左移 右移控制程序

51 单片机流水灯左移右移控制程序电路很简单8 位流水灯接在单片机的P1 口.如下是源代码://============================================================= //程序名:LLL22_4.C //程序功能:流水灯控制左移右移//============================================================== #include//头文件L_M(); //流水灯左移控制程序R_M();//流水灯右移控制程序//=============================================================== main() //主函数{ while(1) //无限循环{L_M(); //调用左移程序R_M(); //调用右移程序} } //========左移控制程序============================================== L_M() //左移主函数{ unsigned char i,temp,a,b; //声明无符号字符型变量A,TEMP I,B unsigned int s; //声明无符号整型变量S temp=0xfe; //左移初始值P1=temp; //P1 输出信号点亮发光管for( s=0;s>(8-i) ; //数据右移(8-I)位P1=a|b ; //逻辑或运算,并输出到P1 口for(s=0;s>i;b=temp<<(8-i); //数据右移(8-I)位P1=a|b; //逻辑或运算,并输出到P1 口for(s=0;s<30000;s++); //延时程序} }//=======================================================================tips:感谢大家的阅读,本文由我司收集整编。
pic单片机流水灯循环右移c语言,PIC单片机LED流水灯程序

pic单⽚机流⽔灯循环右移c语⾔,PIC单⽚机LED流⽔灯程序PIC 单⽚机 LED流⽔灯程序;*************************************************************include;**************************************************__CONFIG 3F39H;设置配置位中振荡⽅式为XT,其它全部禁⽌或关闭;*----MODESEL equ 20hMODESELB equ 21hCount equ 22hCount1 equ 23hCount2 equ 24hPORTDB equ 25h;*-----org 0nopgoto startorg 4goto ISRorg 10startclrf PORTC ;清c⼝MOV lw 00hMOV wf MODESEL ;初始化模式选择寄存器MOV wf MODESELBMOV lw b'10010000'MOV wf INTCON ;初始化中断控制bsf STATUS,RP0clrf TRISC ;设C⼝全为输出MOV lw b'10111111'MOV WF OPTION_REG ;选择INT下降沿有效bcf STATUS,RP0call FMselMOV wf PORTDBMOV wf PORTCmainbtfsc PORTB,0 ;\goto $+6 ; \call Delay ; 按键去抖动btfsc PORTB,0goto $+3 ; /call FMsel ;/MOV wf PORTDBMOV f MODESELB,W ;MOV wf MODESEL ;call LongDelaybcf STATUS,Crlf PORTDB,1btfsc STATUS,Cbsf PORTDB,0MOV f PORTDB,WMOV wf PORTCgoto main;*----------Delay ; call指令占⽤2个指令周期clrf Count ; 清 Count占⽤1个指令周期Dloopdecfsz Count,f ; 这两⾏指令将延时goto Dloop ; (256 * 3) -1 个指令周期return ; return占⽤2个指令周期;*----------------LongDelayclrf Countclrf Count1MOV lw 0x01MOV wf Count2LDloopdecfsz Count,fgoto LDloopdecfsz Count1,f goto LDloopdecfsz Count2,f goto LDloopreturn;*---------------FMselMOV f MODESEL,w MOV wf MODESELB MOV f MODESEL,w addwf PCLretlw b'11111000' retlw b'11110000' retlw b'11100000' retlw b'11000000' retlw b'10000000' MOV lw 00hMOV wf MODESELB bsf INTCON,GIE retlw b'11111000' return;*-------------ISRbtfss INTCON,INTF goto $+3bcf INTCON,INTF incf MODESELretfieend。
PLC节日彩灯的各种设计_270

字节与字转换指令②ITB ITB IN,OUT
指令作用:ITB指令将字整数(IN)转换成字节,并将结果 置入OUT指定的存储单元。输入的字整数0至255被转换。超 出部分导致溢出,SM1.1=1。输出不受影响。 IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, 数据类型:整数 OUT:VB, IB, QB, MB, SB, SMB, LB, AC, 数据类型:字节
耀移位及时序的变化等。控制要求如下: 按起动按钮, L12→L11→L10→L8→L1→L1、L2、 L9→L1、L5、L8→L1、L4、L7→L1、 L3、L6→L1→L2、L3、L4、L5→L6、 L7、L8、L9→L1、L2、L6→L1、L3、 L7→L1、L4、L8→L1、L5、 L9→L1→L2、L3、L4、L5→L6、L7、 L8、L9→L12→L11→L10 ……循环下 去,直至按下停止按钮。
2、右移位指令 使能输入有效时,将输入IN的无符号数字 节、字或双字中的各位向右移N位后,将结果 输出到OUT所指定的存储单元中,移出位补0, 最后一移出位保存在SM1.1。如果移位结果为 0,零标志位SM1.0置1。
左 移 位 右 移 位
左移位指令举例:
移位前
SM1.1
移位后
0
右移位指令举例:
2、I/0分配
3、程序设计
提供0.5S的 脉冲
提供移位初值为1, 之后均为0,直到 下一次循环再次置 1
初始复位
数据转换指令和数据运算指 令
1、字节与字转换指令①BTI
BTI IN,OUT
指令作用: 将字节数值(IN)转换成整数值,并将结果置入OUT 指定的存储单元。 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, 数 据类型:字节 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC,数 据类型:整数