单片机仿真电路

该博客介绍了如何使用AT89C51单片机设计一个控制系统,该系统根据开关按下次数控制8个发光二极管执行闪烁、摇摆、流水和累计点亮四种模式。通过Proteus仿真软件绘制电路图并编写程序来实现这一功能,强调在操作开关时需要注意保持按压时间超过设定的延时时间。
摘要由CSDN通过智能技术生成

某控制系统有1个开关,8个发光二极管,当开光按动1次时,8个发光二极管闪烁;当开光按动2次时,8个发光二极管摇摆;当开关按动3次时,8个发光二极管流水式点亮;当开关按动4次时,8个发光二极管累计式点亮,不断循环。设计出AT89C51与外设连接的Proteus仿真电路图,并编程实现题目所要求的功能。

代码:

#include<reg51.h>
typedef unsigned char uc;
typedef unsigned int ui;
sbit btn=P3^0;
uc num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

ui i,j;
uc k,dd,q;

void delay(uc N) //延时函数
{
	for(i=0;i<110;i++)
		for(j=0;j<N;j++);
}

void mod_1()  //模式1,闪烁
{
	P1=0x00;
	delay(1000);
	P1=0xff;
	delay(1000);
	if(btn==0) return;    //判断中断,返回函数
}
	
void mod_2()  //模式2,摇摆
{
	P1=0xfe;
	delay(500);
	for(k=1;k<8;k++)
	{
		P1=num[k];
		delay(500);
		if(btn==0) return;
	}
	for(k=6;k>0;k--)
	{
		P1=num[k];
		delay(500);
		if(btn==0) return;
	}
}
	
void mod_3()	//模式3,流水点亮
{
	P1=0xff;
	delay(10);
	for(k
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值