#include
#define uint unsigned int
sbit p1=P1^0;
void delay1s();
main()
{
while(1)
{
p1=0;//打开第一个发光二极管
delay1s();//延迟一秒
p1=1;//关闭第一个发光二级管
delay1s();
}
}
void delay1s()
{
uint i,j;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
}
因此需要延时函数
如下,灯亮200ms,暗800ms,时间在delayms中自己
#include
#define uint unsigned int
sbit p1=P1^0;
void delayms(uint);
void main()
{
while(1)
{
p1=0;
delayms(200);
p1=1;
delayms(800);
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //延时xms毫秒
for(j=110;j>0;j--);
}
用C51实现流水灯的操作需要用到移位操作
也就是C语言中的左移,右移运算符<<,>>,
该运算符是直接对二进制起作用的
但是在C51中,可以直接用“_crol_”函数实现
#include
#define uint unsigned int
uchar a;
main()
{
a=0xaa;
while(1)
{
a=a<<1;//右移变">>"
}
}
#include
#include//包含_crol_函数所在的头文件
#define uint unsigned int
#define uchar unsigned char
void delayms(uint);
uchar aa; //定义一个变量来给P1赋值
void main()
{
aa=0xfe;//赋初值11111110
while(1)
{
P1=aa;//点亮第一个灯
delayms(500);//延时500ms
aa=_crol_(aa, 1);//aa循环左移1位后再给aa
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
一个菜鸟的学习之路
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有