Ⅰ 单片机2脚7彩灯需要怎样的源程序

是用2个引脚,点亮7个彩灯?74HC164串口移位转并点亮

Ⅱ 急求在51单片机中用一个开关控制四种方式亮的彩灯的源程序

自己写哇,这都好意思问人。

Ⅲ 求:单片机控制的16路彩灯 汇编源程序

;位为1时亮灯
;其实原理就是单I/O口的移位处理,只不过是要衔接处专理
START:
MOV A, #80H
MOV P0, #0
MOV P1, #0
RLP0: ;处理P0口
RL A
MOV P0, A
ACALL DELAY
JNB ACC.7, RLP0
MOV P0, #0
RLP1: ;处理P1口
RL A
MOV P1, A
ACALL DELAY
JNB ACC.7, RLP1
MOV P1, #0
SJMP RLP0
DELAY: ;延时,可做调属整
MOV R4, #2FH
D1:
MOV R3, #2
D2:
DJNZ R3, D2
DJNZ R4, D1
RET

END

Ⅳ 求彩灯控制系统源代码

既然上面10分的回答了,这个15分也答下吧。


我说下思路,

  1. 你做的彩灯要求是能够渐明渐暗内。所以,必容须使用中断来做比较方便。使用PWM的方式进行调光。PWM信号,有此单片机,有此定时器,可以直接产生,级数有些可以达到65535级。但是你这有8路,一般单片机没有那么多定时器可用的。所以,还是使用中断来做吧。

  2. 频率和速度怎么计算?这个就需要经验了。

  3. 一般情况下,对LED来说,做成100级调光,就不会产生明显的跳光了。

  4. 要做人眼看到LED不闪烁,PWM的频率应在60Hz以上。

  5. 以上。O了。

Ⅳ 急求在51单片机中用一个开关控制两种方式亮的彩灯的源程序。。谢谢

unsigend char LED1[k]={彩灯花样代码,你可以自己编写}; //k值是花样的数目回 unsigend char LED2[k]={彩灯花样代码,你可以自己编写};
......
......
void main(void)
{
unsigend char i;
while(1)
{
if(p1.0==0) // 假设按键在p1.0口答
{
for(i=0;i<k;i++)
{
p1.0=LED1[i];
delay(N);
}
if(i>k)i=0;
}
else
{
for(i=0;i<k;i++)
{
p1.0=LED2[i];
delay(N);
}
if(i>k)i=0;
}
}
}

Ⅵ 51单片机节日彩灯代码及电路图

这个,有来程序和电自路图:

http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/5adeb99112822680a877a415.html

如果编译不能通过,可以留言。

Ⅶ c51单片机节日彩灯编程(每个问题5分,选择最佳答案哦)

同意楼上,就算是来钱,给你15块钱自让你抄一千遍自己的名字你干不,基本就是这个量的代码,难度也和抄自己名字一样,完全没意思啊。
关于这个程序给你个思路,16个灯用一个16位的int型变量表示,定时50ms将你需要的图形刷新到这个变量上,再把这个变量分别赋值到两个端口,需要哪里亮就哪里亮,很简单的,只需要掌握定时器部分和端口赋值部分,总共不超过100行的代码,真的很简单,自己试试,乐趣就在尝试的过程中。

Ⅷ 单片机编程 8个彩灯间隔闪烁

LED正接电源,负接专属P1口

org 00h
mov sp,#80h

_main_loop:
mov p0,#055h
call _delay_500ms
mov p0,#0aah
call _delay_500ms
ajmp _main_loop

_delay_500ms:
mov r0,#50
_d0:
mov r1,#100
_d1:
mov r2,#100
djnz r2,$
djnz r1,_d1
djnz r0,_d0
ret
end

Ⅸ 彩灯控制系统代码

MOV B,#08H
MOV A,#80H
LOOP;MOV P1,A
ACALL YS
RR A
DJNZ B,LOOP

右移的
其他请自己做吧,
提示专:左移属用 RL A

Ⅹ 急求一个彩灯控制的VHDL程序

跟你说的有点区别,原理一样,自己动脑搞定~~~·~
--********************************************
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

--********************************************
ENTITY light is
PORT(
clk1 : IN STD_LOGIC;
light: buffer std_logic_vector(7 downto 0)
);
END light;

--*********************************************
ARCHITECTURE behv OF light IS
constant len : integer:=7;
signal banner : STD_LOGIC:='0';
signal clk,clk2: STD_LOGIC;
BEGIN
clk<=(clk1 and banner) or (clk2 and not banner);
process(clk1)
begin
if clk1'event and clk1='1' then
clk2<=not clk2;
end if;
end process;
process (clk)
variable flag: bit_vector(2 downto 0):="000";
begin
if clk'event and clk='1' then
if flag="000" then
light<='1' & light(len downto 1);从左向右点亮
if light(1)='1' then
flag:="001";
end if;
elsif flag="001" then
light<=light (len-1 downto 0) & '0';从右向左逐渐灭
if light(6)='0' then
flag:="010";
end if;
elsif flag="010" then
light(len downto 4) <=light (len-1 downto 4)&'1';从两侧向中心亮
light(len-4 downto 0) <='1'& light(len-4 downto 1);
if light(1)='1' then
flag:="011";
end if;
elsif flag="011" then
light(len downto 4) <='0'& light(len downto 5);从两侧向中心逐渐灭
light(len-4 downto 0) <= light(len-5 downto 0)&'0';
if light(2)='0' then
flag:="100";
end if;
elsif flag="100" then
light(len downto 4)<='1'&light(len downto 5);7-4+3-0顺序点亮
light(len-4 downto 0) <='1'& light(len-4 downto 1);
if light(1)='1' then
flag:="101";
end if;
elsif flag="101" then
light<="00000000";全灭
flag:="110";
elsif flag="110" then
banner<=not banner;
flag:="000";重复
end if;
end if;
end process;
end behv;