导航:首页 > 操作系统 > 51单片机流水灯依次熄灭位移法

51单片机流水灯依次熄灭位移法

发布时间:2022-08-21 00:50:50

㈠ 51单片机流水灯,一开始全亮然后逐个熄灭,怎么编程序,大一c语言

#include<reg51.h>
void delay(int a)
{
while(a--);
}
main()
{
unsigned char i;
while(1)
{
P0=0xff;
for(i=0;i<8;i++){P0=P0<<1;delay(30000);}
P0=0x00;
for(i=0;i<8;i++){P0=(P0>>1)|0x80;delay(30000);}
}
}

㈡ 单片机c51流水灯一亮一闪依次左移编程

下面是采用定时器定时1S(时钟晶振是11.0592MHz)的流水灯程序。采用左移函数_crol_(),此函数包含在intrinsic.h的头文件内。有不懂得再问,需要汇编的话,留言,再写给你。
#include<reg52.h>
#include<intrins.h>
unsigned
int
a,temp;
void
main()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
temp=0xfe;
while(1)
{
if(a==20)
{
a=0;
P1=temp;
temp=_crol_
(temp,1);
}
}
}
void
T0_time0()interrupt
1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
a++;
}

㈢ 请运用位移法利用单片机的P2口实现的8个LED流水灯功能。要求:1.流水的顺序是从左到右 2.每次只亮一盏灯

用红色的替换对应语句,即可得反方向了,去试试吧;

㈣ 51单片机编程:先循环一遍流水灯,然后熄灭后蜂鸣器响三下停止

就拿三个灯来说吧
#include"reg52.h"

#include"intrins.h"

sbit led1=P2^0;

sbit led2=P2^1;
sbit led3=P2^2;//led灯
sbit ring=P2^3;//蜂鸣器
void Delay1000ms() //@11.0592MHz

{

unsigned char i, j, k;

_nop_();

_nop_();

i = 43;

j = 6;

k = 203;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}
void main(){
led1=0;led2=0;led3=0;//初始化为零
//下面开始
goto B:
A:while(1){;}//跑完一遍程序后执行死循环
B:
led1=1;Delay1000ms();led1=0;
led2=1;Delay1000ms();led2=0;
led3=1;Delay1000ms();led3=0;//流水灯
ring=1;Delay1000ms();ring=0;
ring=1;Delay1000ms();ring=0;
ring=1;Delay1000ms();ring=0;//蜂鸣
goto A;//跳转到死循环执行

}

㈤ 单片机,让流水灯逐个灭怎么办

你流水灯都写好了
全亮全灭还不简单啊,设置
p0=0x00
(假设低电平亮,高电平灭)
在延迟一下
在p0=0xff
在延时
不就ok了
把这几个指令打包下放到一个子程序里
你用按键控制的时候就让按键执行这个子程序
如果是
主程序循环的
话就放进主程序

㈥ 单片机,流水灯

下图为主控芯片和流水灯模块的原理图。流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。要实现流水灯功能,我们只要将LED1~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。

基于单片机的流水灯介绍_51单片机流水灯的五种实现方法

基于单片机的流水灯介绍_51单片机流水灯的五种实现方法

实现8个LED流水灯程序用中文表示为:P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高、P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。

1、通过改变赋值实现流水灯

void main()

{ while(1) {

P2=0xfe;

delay1ms(500); P2=0xfd; delay1ms(500); P2=0xfb;

delay1ms(500); P2=0xf7; delay1ms(500); P2=0xef; delay1ms(500); P2=0xdf;

delay1ms(500); P2=0xbf; delay1ms(500); P2=0x7f;

delay1ms(500); } }

2、通过公式运算实现流水灯

void main() {

while(1) {

uinta,b=1; P2=0xfe; delayms(500); for(a=0;a<7;a++)

P2-=b; // P2=P2-b delayms(500); b=b*2; //都化为同一类型进制运算 } } }

3、通过操作符<<与“|”实现流水灯 (通过移位实现流水灯)

void main() {

uchara,i;

while(1) {

a=0xfe; //点亮第一位LED灯 for(i=0;i<8;i++)

{ P2=a;

a=a<<1; //左移一位

a=a|0x01; //左移一位后与0x01相或,保证左移后最低位为1 delay_ms(500); } } }

4、通过库函数_crol_(字符左移)实现流水灯

void main()

{

uint a; a=0xfe; while(1) {

P2=a;a=_crol_(a,1); delay_ms(500); } }

5、采用数组实现流水灯

uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void main(void) {

uchari;

while (1) {

for(i=0;i<8;i++) //循环点亮8只LED灯 {

P2=table[i];

delay_ms(500); //延时500毫秒 } } }

㈦ 51单片机,16个灯依次点亮后依次熄灭,跪求!!!

#include "REG52.H"

#define LEDH8 = P1;//所有LED 阳极接电源
#define LEDL8 = P2;//所有LED 阳极接电源

u8 LED_Status = 0xfe; // LED灯指示状态
u8 LED_bit = 0; //LED指示灯位 0-15

void Init_GPIO()
{
LEDH8 = 0xff; LEDL8 = 0xff; //熄灭所有LED
}
void Delay( u16 dat )
{
u16 i, j ;
for( i = dat; i>0; i-- )
for( j=100; j>0; j--);
}
int main ()
{
Init_GPIO();
while(1)
{
switch (LED_bit)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7: LEDL8 &= LED_Status ; break ;
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15: LEDH8 &= LED_Status ; break ;
default : break;
}
Delay( 1000);
LED_bit++;
LED_Status = (LED_Status <<1);
}
}

㈧ 51单片机控制16个led灯,要求16个灯依次点亮后依次熄灭

假设16个灯接P0和P1,高电平点亮,每次亮一个灯
程序大致这样:
uint b;//16位变量对应16个灯
uchar i;
while(1)
{
for(i=0;i<16;i++)
{
b=0x01<<i;
P0=b;//自动取低8位

P1=b<<8;//取高8 位
delayms(200);
}
}

阅读全文

与51单片机流水灯依次熄灭位移法相关的资料

热点内容
ubuntu1404安装php 浏览:628
lua能编译吗 浏览:106
思仙怎么看服务器 浏览:656
php微信图片防盗链 浏览:796
安卓1怎么读音 浏览:287
农业app怎么开通快捷支付 浏览:908
pythonredisdict 浏览:383
如何攻击别人网赌服务器 浏览:878
隐私与应用加密的图案密码 浏览:34
陈情令王一博解压 浏览:35
c编译器使用说明 浏览:705
郑州前端程序员私活有风险吗 浏览:14
小型螺杆机压缩机 浏览:518
成人解压最好的方法 浏览:50
最小制冷压缩机 浏览:490
xampp支持python 浏览:367
深圳周立功单片机 浏览:61
圆上点与点之间角度算法 浏览:869
怎么知道微信关联了哪些app 浏览:702
android事件驱动 浏览:888