单片机 利用 二进制左移的符号来实现心型流水灯的闪亮灭 的仿真

本文介绍了如何使用Protues电路设计软件和Keil C51编程环境,共同完成51单片机的LED显示程序。通过示例代码展示了如何控制P0、P1、P2口进行位移操作,点亮LED灯。同时,补充了在Protues中添加网络标签和低电平启动LED灯的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.protues 电路设计

2.Keil c51 设计

#include<reg51.h>
void det(int m)
{
	int i,j;
	for(i=100;i>0;i--)
		for(j=100;j>0;j--);
}
void m0(int j)
{
	  int i;
		unsigned char mm,kk;
		//P0=0xff;
		mm=0xff;
		P0=mm;
		det(1);
		for(i=1;i<=8;i++)
		{
			mm=mm<<1;
			kk=mm;
			P0=kk;
			det(1);
			
		}
}
void m1(int j)
{
		int i;
		unsigned char mm,kk;
		//P1=0xff;
		mm=0xff;
		P1=mm;
		det(1);
		for(i=1;i<=8;i++)
		{
			mm=mm<<1;
			kk=mm;
			P1=kk;
			det(1);
			
		}
}
void m2(int j)
{
		int i;
		unsigned char mm,kk;
		//P1=0xff;
		mm=0xff;
		P2=mm;
		det(1);
		for(i=1;i<=8;i++)
		{
			mm=mm<<1;
			kk=mm;
			P2=kk;
			det(1);
			
		}

}
void main()
{
	while(1)
	{
		m0(1);
		m1(1);
		m2(1);
		det(1);
		P0=0xff;
		P1=0xff;
		P2=0xff;
		det(1);
	}




}

3. 知识补充

1.无线连接。

用网络标签,比如你要给51单片机的P0口添加网络标签,第一步:先在P0口画一小段线,没画添加不了标签,点击左边对象拾取区的“LBL”(Wire Label )按钮;

第二步:按一下键盘的字母A键,弹出一个对话框,将String栏里的STRING修改成: net=P0#,#号的意思就是变化的数字,怎样变就靠下面的两个参数,Count(初始值) 和Increament (增量),Count(初始值)改0,Increament (增量)改1,按ok键后,移到单片机P0口,点下就能添加标签,每按一下就加1。

2.低电平启动LED灯,要加VCC电源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值