单片机流水灯简单C语言代码--位操作和字操作

本文详细介绍了如何使用C语言在单片机上实现流水灯控制,分别探讨了位操作和字操作两种方法,为初学者提供了清晰的步骤和代码示例。

单片机


之前都是在优快云查阅资料,第一次使用写博客,就想记录一下自己的学习。程序小白若有不足的地方还望多多指正,万分感谢!!嘿嘿~

流水灯位操作

#include<reg51.h>     //我这里用到的是51单片机
#include<intrins.h>
sbit LED0 = P1^0;   		
sbit LED1 = P1^1;
sbit LED2 = P1^2;
sbit LED3 = P1^3;
sbit LED4 = P1^4;
sbit LED5 = P1^5; 
sbit LED6 = P1^6;
sbit LED7 = P1^7;

//下方调用了一个延长时间为1秒的函数
void delay1s(void)   //误 差0us
{
    unsigned char a,b,c;
    for(c=167;c>0;c--)
        for(b=171;b>0;b--)
            for(a=16;a>0;a--);
    _nop_(); 
}

 
void delay(unsigned int);
 
void main()
{
	LED0 = 0;         			
	while(1)
	{
   LED0 = 0; 
	delay1s();
	LED0 = 1;					
	
	LED1 = 0;
	delay1s();
	LED1 = 1;	
 
	LED2 = 0;
	delay1s();
	LED2 = 1;	
	
	LED3 = 0;
	delay1s();
	LED3 = 1;	
	
	LED4 = 0;
	delay1s();
	LED4 = 1;	
	
	LED5 = 0;
	delay1s();	
	LED5 = 1;	
 
	LED6 = 0;
	delay1s();
	LED6 = 1;	
	
	LED7 = 0;
	delay1s();
	LED7 = 1;	
 
	
	}
}
 

流水灯字操作

#include <reg51.h>
#include<intrins.h>
void delay1s(void)   //误差0us
{
    unsigned char a,b,c;
    for(c=167;c>0;c--)
        for(b=171;b>0;b--)
            for(a=16;a>0;a--);
    _nop_();  
}
                                                                    
void main(void)
{
              while(1)
              {
                            P1 = 0xfe;                                          
                            delay1s();                                                        
                            P1 = 0xfd;                                          
                            delay1s();                                                             
                            P1 = 0xfb;
                            delay1s(); 
                            P1 = 0xf7;
                            delay1s(); 
                            P1 = 0xef;
                            delay1s(); 
                            P1 = 0xdf;
                            delay1s(); 
                            P1 = 0xbf;
                            delay1s(); 
                            P1 = 0x7f;
                            delay1s(); 
              }
}
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值