导航:首页 > 操作系统 > c51单片机爱心灯设计

c51单片机爱心灯设计

发布时间:2023-03-28 00:46:09

❶ 51单片机12展流水灯的程序怎么设计

我就写个顺时针亮的程序(详细解释,其它的你就自己写),全手打的哦,用慧槐的是汇编,我水平也不怎么高,但是你的问题也是入门级的,还肆薯有我假设是高电裂碧者位亮,一共12灯从P0.0开始到P1.4(P1.4和P0.0相接)。ORG 4000HSTART:CLR P0CLR P1 /P0 P1清零MOV P0,#80H/1灯亮LCALL DEL/调用延时程序MOV P0,#0C0HLCALL DELMOV P0,#0E0HLCALL DELMOV P0,#0F0HLCALL DELMOV P0,#0F8HLCALL DELMOV P0,#0FCHLCALL DELMOV P0,#0FEHLCALL DELMOV P0,#0FFHLCALL DELSTEB P0/P0口值位,前8灯全亮MOV P1,#080HLCALL DELMOV P1,#0C0HLCALL DELMOV P1,#0E0HLCALL DELMOV P1,#0F0HLCALL DELMOV P1,#0F8HLCALL DELLJMP START/程序跳到开始,进行循环DEL:MOV R7,#200MOV R5,#20DEL1:MOV R6,#123 NOPDEL2:DJNZ R6,DEL2DJNZ R7,DEL1DJNZ R5,DEL1RET/延时程序 共约1SSJMP $起始位4000H 可能不对 要自己找。

❷ 我想做一个心形流水灯,谁能告诉我用几个led合适,怎么用单片机控制

看你要多大的心形了,隐唤用LED排一下,自己看着舒服就行了,灶唯凯没有专门要求的。LED数目小于30个可以直接用单片机I/O口控制,山链大于30个最好用串转并芯片,164或者595均可。

❸ 51单片机89c51rc,怎么设计心形流水灯led至少30个,求电路图,和程序!步骤要具体

#include//51系列单片机定义文件

#defineucharunsignedchar//定义无符号字渗猜符

#defineuintunsignedint//定义无符号整数

voiddelay(uint);//声明延时函数

voidmain(void)

{

uinti;

uchartemp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++)//8个流水灯逐个闪动

{

P0=~temp;

delay(100);//调用延时函数

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++)//8个流水灯反向逐个闪动

{

P0=~temp;

delay(100);//调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++)//8个流姿喊陵水灯依次全部点亮

{

P0=temp;

delay(100);//调迹戚用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++)//8个流水灯依次反向全部点亮

{

P0=temp;

delay(100);//调用延时函数

temp>>=1;

}

}

}

voiddelay(uintt)//定义延时函数

{

registeruintbt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

❹ 51单片机组成的心形流水灯C语言 要求灯24个

24个灯很正常,仿真也可以给你做。

❺ 怎么样设计爱心闪光灯单片机控制爱心闪光灯的程序是什么

是那种从里亮到外面,然后从外面亮到里面的那种吗?先要知道你要达到什么效果,才可以设计硬件电路,最后再用程序来控制。

❻ 51单片机16个灯的心形流水灯编程

利用51单片机的p0,p1,p2口,分别驱动一个LED灯。然后,首先让它们都输出低电平0x00,再然后,按顺序位移输出高电平。

❼ 51单片机写心形灯的数组问题

如果是同一组IO口可以不这么定义,直接Px=...就可以了。
如果拦扒你是不同组的IO口分别接的话,这么定义确实很方便。因为每个IO口输出不是高就是低,所以在d1、d2...里要么赋值为1要么赋值为0,就是说你可以定义一个bit类型的数组,但是,C51又不支持定义bit类型的数组,所以你还是定义一个郑物unsigned char或者char的都可以,数组里边的数据也只是0或1了。
希望我的回答能帮助到你简丛昌。

❽ 求51单片机流水灯音乐盒C程序,两个按键(上一首,下一首)流水灯是4组,组成的一个爱心.

给你一个大致的,具体要求自己改一下吧。

/*-----------------------------------------------
名称:音乐播放
内容:
------------------------------------------------*/
#include<reg52.h> //包含头文件,一般情况不需要改动?
//头文件包含特殊功能寄存器的定义
/*------------------------------------------------
硬件端口定义
------------------------------------------------*/
sbit SPK1=P1^5; //定义音乐输出端口
unsigned char Timer0_H,Timer0_L,Time;
//世上只有妈妈好数据表
code unsigned char MUSIC[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,
6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,
6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,
5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0
};
// 音阶频率表 高八位
code unsigned char FREQH[]={
0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
} ;
// 音阶频率表 低八位
code unsigned char FREQL[]={
0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
};
/*------------------------------------------------
uS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
长度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{
while(--t);
}
/*------------------------------------------------
mS延时函数,含有输入参数 unsigned char t,无返回值
unsigned char 是定义无符号字符变量,其值的范围是
0~255 这里使用晶振12M,精确延时请使用汇编
------------------------------------------------*/
void DelayMs(unsigned char t)
{

while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
节拍延时函数
各调1/4节拍时间:
调4/4 125ms
调2/4 250ms
调3/4 187ms
------------------------------------------------*/
void delay(unsigned char t)
{
unsigned char i;
for(i=0;i<t;i++)
DelayMs(250);
TR0=0;
}
/*------------------------------------------------
定时器0中断
------------------------------------------------*/
void TIM0_ISR() interrupt 1
{
TR0=0;
SPK1=!SPK1;
TH0=Timer0_H;
TL0=Timer0_L;
TR0=1;
}
/*------------------------------------------------
歌曲处理函数
------------------------------------------------*/
void Song()
{
TH0=Timer0_H;//赋值定时器时间,决定频率
TL0=Timer0_L;
TR0=1; //打开定时器
delay(Time); //延时所需要的节拍
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main(void)
{
unsigned char k,i;
TMOD|=0x01; //置定时器0工作方式1
EA=1; //打开全局中断
ET0=1; //打开定时0中断
while(1)
{
i=0;
while(i<100)
{ //音乐数组长度 ,唱完从头再来
k=MUSIC[i]+7*MUSIC[i+1]-1;//去音符振荡频率所需数据
Timer0_H=FREQH[k];
Timer0_L=FREQL[k];
Time=MUSIC[i+2]; //节拍时长
i=i+3;
Song();
}
}
}

❾ 51单片机编程题单片机P1.0~1.7口接八个发光二极管(爱心图样)试编写流水灯的汇编程序使发光二极管逐个亮

;启动入口
ORG 0000H ;复位启动
LJMP START ;
ORG 000BH ;T0中断
LJMP T0INT ;
ORG 0100H ;
LJMP START ;
;
;主控程序
START: MOV SP,#80H ;初始堆栈值
MOV TMOD,#01H ;定时器0工作于方式1,50毫秒@12.000MHz
MOV TH0,#03CH ;定时器0定时时间=50mS
MOV TL0,#0B0H ;设置定时初值
MOV P1,#0FEH ;
MOV YSJS,#4 ;4*50mS=200mS
SETB ET0 ;允许定时器0中断
SETB EA ;开总中断
SETB TR0 ;定时器0启动,开悉卖键始定时
JMP $ ;死循环等待中断
;
;定时器0中断服务程睁巧序
T0INT: PUSH PSW ;保配槐护现场
PUSH ACC ;
;
DJNZ YSJS,QT0 ;
MOV YSJS,#4 ;4*50mS=200mS
MOV A,P1 ;
RL A ;
MOV P1,A ;
;
QT0: MOV TH0,#03CH ;定时器0定时时间=50mS
MOV TL0,#0B0H ;
POP ACC ;恢复现场
POP PSW ;
RETI ;
;
YSJS EQU 30H ;
END ;

阅读全文

与c51单片机爱心灯设计相关的资料

热点内容
编译阶段文件分为 浏览:96
数控编程大小头怎样调 浏览:682
单片机技术及工程实践 浏览:171
用手机编程用什么软件 浏览:915
看岛国片网址 浏览:420
男主叫叶天的小说 浏览:378
jdk目录下的文件夹 浏览:951
好看的带颜色的现代小说 浏览:699
怎么看app什么时候更新 浏览:220
各银行的官方app是什么 浏览:782
吴孟达买花给盲女的电影 浏览:471
你若安好便是晴天pdf 浏览:940
app上续保车险用什么方式付款 浏览:480
wps如何把pdf转成PPT 浏览:63
以太网pdf 浏览:194
泰国剧罪孽父亲出海 浏览:7
叶天明柳韵txt 浏览:825
bch主流算法 浏览:767
免费在线国产片 浏览:200
苹果平板为什么连接服务器错误 浏览:89