ZKX's LAB

单片机彩灯控制 单片机控制彩灯

2020-10-18知识12

单片机的彩灯控制 这种问题。那你应该使用51的吧1.所谓几种彩灯效果,就是流水灯嘛,只是闪烁方式不同而已。2.请参考按键部分,去抖,按键判断,松手等函数。判断之后,执行某种流水灯就OK了。3.同上,可以用外部中断,(比如说设外部中断1为低电平触发,按键按下去,另一边接地就进入中断了),再在中断里写返回判断程序,都是一样的。4.比如说,一开始的时候检测你编写自动函数(按键)和手动函数(按键),比如自动函数成立,之后自动标志位,置1,然后就开始走流水灯,一个效果走完之后,判断手动标志位置1还是自动标志位置1,然后再判断如何下一步。(当然第三个题目可以不用外部中断的,把手动和自动都摆在外部中断就方便多了)5.没明白什么意思,应该是定时器的应用,不知道题目里要用它干嘛。6.太多了,比如你有木有想过把彩灯做成4*4甚至更多(不知道命题组让不让用8X8点阵),反正花样嘛,比如双色LED灯,这个可以亮瞎他们一下。新手乱支招,勿喷。

单片机彩灯控制 单片机控制彩灯

用单片机设计彩灯控制器设计 8路彩灯也可以呀电路图很简单照课本抄程序如下ORG 0000HSJMP MAINORG 0030HMAIN:MOV TMOD,#21H;设定T0为16位定时模式T1为8位自动重装计数模式SETB TR0;开定时器SETB TR1MOV R7,#4;设置N路彩灯这里设置为4路MOV R6,#4MOV R5,#4MOV A,#00HLOOP:MOV P1,A;从做到右逐次点亮RL AINC AACALL MAIN0;调用延时DJNZ R7,LOOPMAIN1:MOV A,#0FFHMOV P1,ARR ASUBB A,#08H;各路彩灯在这里设置立即数不同ACALL MAIN0DJNZ R6,MAIN1MAIN2:MOV A,#00HMOV P1,ACPL AACALL MAIN0DJNZ R5,MAIN2LJMP MAINMAIN0:MOV DPTR,#15536;设定T0定时50ms的初值MOV TL0,DPLMOV TH0,DPHMOV TL1,#236;设定t1计数20次即20*50ms=1sMOV TH1,#236JNB TF0,$;0ms未到等待CLR TF0;0ms到清除标志位CPL P3.5JNB TF1,MAIN0;20次未到继续计数CLR TF1RET这个写的急没调试如果不可以下面的顺序要自己调也就是先闪烁再逐个点亮熄灭延时都是一秒…ORG 0000HLJMP MAINORG 0030HMAIN:MOV P1,#0FFHMOV A,#0FFHMOV R4,#8MOV R3,#9MAIN1:CPL AMOV P1,ALCALL AADJNZ R4,MAIN1MAIN2:RL AINC AMOV P1,ALCALL AADJNZ R3,MAIN2MOV R3,#9MAIN3:RR AMOV P1,ADEC A。

单片机彩灯控制 单片机控制彩灯

单片机彩灯控制程序 说具体点?

单片机彩灯控制 单片机控制彩灯

单片机控制彩灯

单片机 设计 控制6个彩灯 设用P1.0作供电控制,P1.1-P1.6分别控制6只LED,“1”亮,“0”灭。MOV P1,#0;置灯全暗JNB P1.0,$;P1.0=0时则等待通电STA:SETB P1.1;点亮1号LED(开始状态1)LCALL LLL1;延时1分钟CLR P1.1;灭1号LEDSETB P1.2;点亮2号LEDLCALL LLL1;延时1分钟CLR P1.2;灭2号LEDSETB P1.3;亮3号LEDLCALL LLL1;延时1分钟CLR P1.3;灭3号LEDSETB P1.4;点亮4号LEDLCALL LLL1;延时1分钟CLR P1.4;灭4号LEDSETB P1.5;点亮5号LEDLCALL LLL1;延时1分钟CLR P1.5;灭5号LEDSETB P1.6;亮6号LEDLCALL LLL1;延时1分钟CLR P1.6;灭6号LEDSETB P1.1;点亮1号LED(开始状态2)LCALL LLL30;延时30SCLR P1.1;灭1号LEDSETB P1.3;点亮3号LEDLCALL LLL30;延时130SCLR P1.3;灭3号LEDSETB P1.5;亮3号LEDLCALL LLL30;延时30SCLR P1.5;灭5号LEDSETB P1.2;点亮2号LED(开始状态3)LCALL LLL30;延时30SCLR P1.2;灭2号LEDSETB P1.4;点亮4号LEDLCALL LLL30;延时130SCLR P1.4;灭4号LEDSETB P1.6;亮6号LEDLCALL LLL30;延时30SCLR P1.6;灭6号LEDSJMP STA;转入状态1LLL1:.一分钟延时子程序LLL30:.30S延时子程序序(延时程序请自己编,我这里也只是提供参考,。

单片机彩灯控制 ORG 0000HMOV R1,#0FEH;使左1灯亮的信号MOV R6,#8;设置循环次数LOOP:MOV P1,R1LCALL DEL_1SMOV A,R1RL AMOV R1,ADJNZ R6,LOOP;当最右灯亮后结束循环MOV R6,#8;再次设置循环次数LOOP1:MOV A,R1RR AMOV R1,AMOV P1,R1LCALL DEL_1SDJNZ R6,LOOP1;当最左边的灯亮后结束循环MOV R6,#4;第三次设置循环的次数;这里不用R6。LOOP2:MOV P1,#0;全亮LCALL DEL_05SMOV P1,#0FFH;全灭DJNZ R6,LOOP2;四次后结束循环AJMP$

四花样自动切换的彩灯控制器设计 不要用单片机编程实现。(单片机编程我已会) 我用的 是51单片机 我现在写一个吧:includesbit K1=P1^0;按键1sbit K2=P1^1;按键2sbit K3=P1^2;按键3void delay(unsigned int t)/延时函数{while(t-);}void main(){while(1){if(K1=0){P0=0x01;delay(10000);P0=0x03;delay(10000);P0=0x07;delay(10000);P0=0x0f;delay(10000);P0=0x1f;delay(10000);P0=0x31;delay(10000);P0=0x71;delay(10000);P0=0xf1;delay(10000);}if(K2=0){P0=0xff;}if(K3=0){P0=0x00;}}}说明:看你使用的是什么样的发光二极管,我的qq347838006

单片机彩灯控制 一、C语言程序中存在的问题1.“for(i=0;i;i=i+2)”是“左移4次”而不是“左移3次”,i=0,i=2,i=4,i=6,当i=8时结束for循环。2.“LED=(LED)|0x03;的含义是:将LED左移2位后,将最低两位置1。3.“LED=(LED>;>;2)|0xc0;的含义是:将LED右移2位后,将最高两位置1。4.两者结合,将“LED=(LED)|0x03;重复运行4次后,LED=0xff,其中不再存在值等于0的位。之后无论“LED=(LED>;>;2)|0xc0;还是“LED=(LED)|0x03;都不会再有值等于0的位产生。看你的程序,发光二极管应该是低电平点亮,所以以后无论如何移位都不再有发光二极管点亮了。5.解决方法:将“for(i=0;i;i=i+2)”改成“for(i=0;i;i+)”即可。二、反汇编实际含义的问题对“LED=(LED)|0x03;的反汇编:38:LED=(LED)|0x03;左.移2位,并设定最低两位元为11C:0x000D E5B0 MOV A,P1(0x90)C:0x000F 25E0 ADD A,ACC(0xE0)C:0x0011 25E0 ADD A,ACC(0xE0)C:0x0013 4403 ORL A,#0x03C:0x0015 F5B0 MOV P1(0x90),A1.C程序中有从LED取值的指令“=.LED.”,因为LED在宏定义中为P1口,所以其对应汇编指令为“MOV A,P1”。2.在单片机实验中,P1口控制LED,常用灌电流直接驱动的方法。在这样的电路下,即使引脚被内置置0,其对应外部引脚实际上。

设计一个基于单片机的彩灯控制器 P0.0接SA P1接LED 串口接数码管 需要改动延时 数码管采用的是共阴的 org 0000H ajmp start org 0060h start:jNb P0.0,loop2 mov a,#01h mov dptr,#tab1 movc a,@a+dptr 。

#单片机

随机阅读

qrcode
访问手机版