IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 【Proteus】梦开始的地方〔LED灯〕 -> 正文阅读

[嵌入式]【Proteus】梦开始的地方〔LED灯〕

?🚩write in front🚩

🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎
🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家 ^ 星级博主~掘金?InfoQ创作者~周榜44?总榜2569🏅
🆔本文由 謓泽 原创 CSDN首发 🙉 如需转载还请通知?
📝个人主页-謓泽的博客_CSDN博客💬
🎁欢迎各位→点赞👍 + 收藏?? + 留言📝?
📣系列专栏-『proteus』_謓泽的博客-CSDN博客🎓
??我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
?

💡『Protues LED灯?💡de目录

?🚩write in front🚩

🍀前言

🌳二极管

🌺导入hex文件

🌳LED灯点亮

🌺流水灯

🌳LED灯仿真图

🍈注释

🍀作业

🌺仿真图

🍀终极作业?花式流水灯?

🌱最后🌱

🍀前言

这个系列是带大家从单片机和Protues这个软件一起结合进行学习的,如果你是一名新手小白那么在学习之前你可以先去了解下什么是C语言和单片机相关的知识点哟(●'?'●) 当然也需要使用到这个[Protues]EDA仿真工具,那么我推荐你可以先看看辉哥的这篇手把手教你上手Protues写的真的非常之详细(? ?_?)?

手把手教你上手Proteus(下载安装+仿真51单片机程序)_小辉_Super的博客-CSDN博客_proteushttps://blog.csdn.net/weixin_43772810/article/details/121993865?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164966837616780271570335%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=164966837616780271570335&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-121993865.142%5Ev7%5Epc_search_result_cache,157%5Ev4%5Econtrol&utm_term=proteus&spm=1018.2226.3001.4187

之所以要配合单片机一起是因为[Protues]这款仿真从原理图布图以及代码调试到单片机与外围电路协同仿真和一键切换到PCB设计是真正实现了从概念到产品的完整设计。

因此配合(Proteus) ? 单片机来一起学习。

🌳二极管

正片开始之前,我们先来学习了解一下二极管。二极管的最大的特点就是具有:单向导电性!电流只允许从一个方向通过,二极管当中的正向电流是从无色环当中流向有色环当中『重点★』

?

而在这里我们用到的发光二级管也就无非是当导通的时候就会点亮,亮度的颜色和工作电压根据你所选择的发光二极管来决定的,越鲜艳的颜色二极管的工作电压也就越高。?

🍅注?二极管是工作在正向电压区的,而稳压二极管工作在反向电压区上的。

🌺导入hex文件

这个是要配合keil软件去使用的,如果你还不清楚keil软件的话可以看看博主这篇文章。

?keil5如何创建工程_謓泽的博客-CSDN博客_keil5怎么新建工程

?

🌳LED灯点亮

我们现在先对P2.0进行LED灯的点亮,如下图所示↓(注:我们这里LED灯点亮已共阳为标准)

?

点亮D1的LED灯达到点亮并且点亮1s后熄灭循环往复。?🍯 程序代码如下↓

#include <REGX52.H>
#include <INTRINS.H>    //_nop_();需要的头文件
sbit LED0=P2^0;
void Delay(unsigned int xms)		
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

int main(void)
{
	while(1)
	{
		LED0 = 0;		//点亮
		Delay(1000);//延迟
		LED0 = 1;		//熄灭
		Delay(1000);//延迟
	}
}

?

sbit?专门对进行控制的,sbit是C51单片机中位地址的定义指令。单片机的编程需要控制字节地址或位地址进行输入和输出,以控制其它设备,而位地址定义指令 sbit 可以使编程简洁易读。

看到这里张三同学此时想要实现一个流水灯的效果请你帮助它实现一下吧(o゚v゚)ノ

🌺流水灯

🍯 程序代码如下↓

#include <REGX52.H>
#include <INTRINS.H>//_nop_()所需头文件
void Delay(unsigned int xms)		
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

int main(void)
{
	int i = 0;
	while(1)
	{
		for(i=0;i<8;i++)
		{
			P2 = ~(0x01<<i);//1111 1110 按位左移操作符
			Delay(1000);
		}
	}
}

📙程序代码经过实验有效\^o^/

🍊注?单片机和C语言还是不一样的,我们单片机这里的死循环是必须要保证我们的单片机不断地工作运行的。

🍏拓展知识点?将一个运算对象的各二进制位全部左移若干位 (左边的二进制位丢弃,右边补0)~取反(~)号是取反操作[0变1、1变0]

🌳LED灯仿真图

🍎说明知识点→在单片机当中自带时钟频率(仿真)如果是实物的话就需要加上了。

?

⒈共阳极?低电平导通,二极管P极连接到电源。

⒉共阴极?高电平导通,二极管N极连接到接地。

🍈注释

注释的操作也是很简单的如下↓

?

🍀作业

📑作业内容→实现现点亮共阳和共阴的LED灯依次从第一个到最后一个,点亮之后结束共阳的点亮从而点亮共阴的LED灯从第一个灯到最后一个灯(共⑧个灯、延迟0.1s)循环往复。

🌺仿真图

?

🍯 程序代码如下↓

#include <REGX52.H>
#include <INTRINS.H> 
void Delay(unsigned int xms)		
{
	unsigned char i, j, k;

	_nop_();
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

int main(void)
{
	int i = 0;
	P1=0x00;
	while(1)
	{
		for(i=0;i<8;i++)
		{
			P2 = ~(0x01<<i);//1111 1110 按位左移操作符
			Delay(100);
		}
		P2 = 0xFF;//置1
		for(i=0;i<8;i++)
		{
			P1 = 0x01<<i;//0000 0001
			Delay(100);
		}
		P1 = 0x00;//置0
	}
}

🍀终极作业?花式流水灯

📋程序实现→花式流水灯的实现。

📝要求?随意发挥只要觉得花?就可以了以P2口和共阳为标准。

/*
	花式流水灯的实现方案
	0:延时0.1s
	一:从低位到高位
	二:从高位到低位
	三:全亮再全灭
	四:高位亮低位熄灭、低位亮高位熄灭。
	五:单数亮、双数灭。
	六:双数亮、单数灭。
	七:从边缘向中间靠近,再从边缘向中间扩散。
	八:依次熄灭灯从高位到低位、低位到高位。
*/

📚注→以上的花式流水灯的实现方案是博主自己写的一套花式流水灯当然也可以按照你的标准来写一套自己的花式流水灯哟ヾ(^▽^*)))

🍯 程序代码如下↓

#include <REGX52.H>
#include <INTRINS.H>

void Delay(unsigned int xms)
{
	unsigned char i, j;
	_nop_();
	while(xms)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
		xms--;
	}
}

int main()
{
	unsigned int i = 0;
	while(1)
	{
		//一:从低位到高位
		for(i=0;i<8;i++)
		{
			P2 = ~(0x01<<i);
			Delay(100);
		}
		//二:从高位到低位
		for(i=1;i<8;i++)
		{
			P2 = ~(0x80>>i);
			Delay(100);
		}
		//三:全亮0.2s全灭0.2s
		P2=0;
		Delay(100);
		P2=1;
		Delay(100);
		//四:高位亮低位熄灭、低位亮高位熄灭。(0.3s)
		P2 = 0x0F;
		Delay(100);
		P2 = 0xF0;
		Delay(100);
		//五:单数亮、双数灭。0.2S
		P2 = 0|(0xAA);
		Delay(100);
		P2 = 1;//清0
		//六:双数亮、单数灭。0.2S
		P2 = 0|(0x55);
		Delay(100);
		//七:从边缘向中间靠近,再从中间向边缘扩散。
		for(i = 0;i < 8;i++)
		{
			P2 = (0xFF & ~(0x01 << i)) & (0xFF & ~(0x80 >> i));
			Delay(100);
		}
		//八:依次熄灭灯从高位到低位、低位到高位。
		for(i=0;i<8;i++)
		{
			P2 = (0x80>>i);
			Delay(100);
		}
		for(i=1;i<8;i++)
		{
			P2 = (0x01<<i);
			Delay(100);
		}
	}
}

🍋花式流水灯视频如下所示↓

花式流水灯?????????

🌱最后🌱

那么今天的知识点就先到这里吧 如果觉得博主的这篇文章不错的话麻烦给博主一个三连。你的三连就是对我最大的支持^_+。这句话感觉好耳熟啊(doge)

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:49:32  更:2022-06-16 21:50:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:38:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码