单片机 流水灯

单片机 流水灯单片机流水灯一、简述  通过Proteus仿真单片机最小系统+流水灯的显示电路。用Keil编写相应执行文件。  源码、仿真电路图打包:链接:https://pan.baidu.com/s/1ZetoHZGz-jebnAd_BQGAUg密码:h8jc二、效果三、工程结构1、Keil编程2、仿真电路图四、源文件LiuShui.c文件#i…

大家好,又见面了,我是你们的朋友全栈君。

单片机 流水灯

一、简述

    通过Proteus仿真单片机最小系统+流水灯的显示电路。用Keil编写相应执行文件。

    源码、仿真电路图打包:链接:https://pan.baidu.com/s/1ZetoHZGz-jebnAd_BQGAUg 密码:h8jc

二、效果

单片机 流水灯

三、工程结构

1、Keil编程

单片机 流水灯

2、仿真电路图

单片机 流水灯

四、源文件

LiuShui.c文件

#include<reg51.h>

//void Delay1ms(unsigned int count) //软延时count毫秒
//{
//	unsigned int i,j;
//	for(i=0;i<count;i++)
//	for(j=0;j<120;j++);
//}

void Delay1ms(unsigned int count)//延时count*50ms
{
	unsigned int i;
	TMOD=0x01;			   //选用定时器0且工作在方式1
	TH0=0x3c;			  //设置初值0x3cb0
	TL0=0xb0;
	TR0=1;      //开启定时器
	for(i=0;i<count;i++) //循环count次,每次定时50ms,总共count*50ms
	{	
		while(TF0!=1);// 每次定时50ms (溢出时才会跳出循环)
		TH0=0x3c;	 //重置初值0x3cb0
		TL0=0xb0;
		TF0=0;		   //软置溢出位
	} 
	TR0=0;      //关闭定时器
}

void main()
{
	unsigned char LEDIndex = 0;	  //指示第几个灯
	bit LEDDirection = 1; //控制流水灯依次亮灭的方向

	while(1)			  
	{
		if(LEDDirection)			//正方向,灯由上往下亮灭
			P1 = ~(0x01<<LEDIndex);	  //P1寄存器控制P1并口	 电压为0时灯亮,先将要亮灯的某一位置1,其余置0,然后取反,就变为只有指定位为0,然后移位实现其他位置0
		else
			P1 = ~(0x80>>LEDIndex);	
		if(LEDIndex==7)
			LEDDirection = !LEDDirection;	//到了最后一盏灯,改变灯的亮灭方向
		LEDIndex = (LEDIndex+1)%8;	 //	  每次加一,%8保证 LEDIndex	取值在0~7之间
		Delay1ms(2); //延时100ms
	}
}

 

五、代码说明

 

    选用单片机的P1端口8只引脚作为输出脚,1只引脚控制1只LED灯。设置P1_0脚为低电平,使得第1只LED灯点亮,并延时一点时间,然后设置P1_0脚为高电平,熄灭第1只LED,以此同理控制其余7只引脚。比如:

11111110   P1_0脚为低电平,使得第1只LED灯点亮

11111101   P1_1脚为低电平,使得第2只LED灯点亮

11111011   P1_2脚为低电平,使得第3只LED灯点亮

11110111   P1_3脚为低电平,使得第4只LED灯点亮

11101111   P1_4脚为低电平,使得第5只LED灯点亮

11011111   P1_5脚为低电平,使得第6只LED灯点亮

10111111   P1_6脚为低电平,使得第7只LED灯点亮

01111111   P1_7脚为低电平,使得第8只LED灯点亮

P1寄存器有8位,分别控制对应的8个引脚。

正方向:从第1只LED等–》第8只LED灯

我们可设置初值为11111110,然后每左移1位,得到下一个流水灯的设置值

而这个初值可以用 00000001的取反来表示即 11111110=~(00000001)=~(0x01)

反方向:从第8只LED等–》第1只LED灯    ~(0x80)=~(10000000)=01111111

六、工程建立

1、编写执行程序

(1)新建Project  (默认操作即可)

单片机 流水灯

(2)选择cpu型号

单片机 流水灯

(3)设置Project  属性

单片机 流水灯

单片机 流水灯

单片机 流水灯

(4)新建C文件,编写相应代码

单片机 流水灯

(5)将C文件添加到工程

单片机 流水灯

(6)编译生成hex文件

单片机 流水灯

2、仿真电路

单片机 流水灯

选择hex文件

单片机 流水灯

元件旋转翻转:

单片机 流水灯

快速添加标签(P1_0,P1_1,P1_2…),点击“LBL”标签,然后按”a”

单片机 流水灯

 

=================================回复 weixin_44582500 这位兄弟=============

搜索相关元件:

单片机 流水灯

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132648.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月1日 上午8:00
下一篇 2022年5月1日 上午8:00


相关推荐

  • .NET设计模式(11):组合模式(Composite Pattern)

    .NET设计模式(11):组合模式(Composite Pattern)

    2021年7月22日
    67
  • Pycharm使用教程 , 详细,实用[通俗易懂]

    Pycharm使用教程 , 详细,实用[通俗易懂]1、汉化:把resources_zh.jar(自行下载)拷贝到PyCharm的安装目录下的lib目录,重启Pycharm即可。2、整体结构:3、常用功能介绍:(1)如何更换Python解释器:在文件->设置->项目:xxx下找到ProjectInterpreter。然后修改为你需要的Python解释器。注意这个地方一定要注意的是:在选择Python解释器的…

    2022年8月26日
    8
  • vcl啥意思_oval

    vcl啥意思_ovalvcl grid原理

    2022年4月21日
    58
  • 什么是透传(虚拟服务器地址)

    moxa串口服务器配置点对点透传模式步骤MOXA串口服务器基本要点:使用TCP/IP通讯协议,需要2个串口服务器配对使用。将串口服务器A设置为Server模式(出厂默认模式),另一个串口服务器B设置为Client模式。将串口服务器B要连接的远程主机地址和端口,设置为A的IP地址和监听端口,即可完成配对。RS232/RS485串口服务器A(Client)串口服务器B(Server)RS232/RS4…

    2022年4月10日
    130
  • swoole源码安装步骤

    swoole源码安装步骤

    2022年2月12日
    43
  • 判别分析原理及R语言实现

    判别分析原理及R语言实现判别分析内容判别分析做的好能挖掘数据最大的价值 判别分析 discriminata 他要解决的问题是在一些已知研究对象已经用某种方法分成若干类的情况下 确定新的样品属于已知类别中的哪一类 如已知健康人和冠心病人的血压 血脂等资料 以此建立判别函数 对新样品分类进行预测 在模式识别领域 比如人脸识别 舰艇识别等图形图像识别领域 中有非常广泛的应用 判别分析在处理问题时 通常要给出

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号