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 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 单片机原理及其应用——单片机控制8只发光二极管交替闪烁 -> 正文阅读

[嵌入式]单片机原理及其应用——单片机控制8只发光二极管交替闪烁

一、实验要求

【实验内容】
1.用Proteus绘制硬件原理图,并设置元件参数。
2.用KeilC51软件编写点亮一个发光二极管的程序。
3.Keil C51与Proteus联调,仿真调试和硬件调试观察实验现象。
4.实现P2口连接的8只LED灯交替闪烁。
【硬件要求】
连接方法:P2.0-P2.7采用“拉电流”方式连接8只LED灯,LED的阴极通过保护电阻连接到地端。
【软件实现】
1.编程实现点亮一个发光二极管的程序。
2.编程实现P2口连接的8只LED灯交替闪烁。

二、分析

1、本实验是通过单片机的P2口做相关实验,P2口当作为输入接口时与P0、P1一样,要先向其锁存器写入1,其目的是使场效应管截止;作为输出接口时与P1口一样,因为其内部有上拉电阻即不需要另外外接上拉电阻。
2、画电路的工作原理是通过P2.0-P2.7八个口输出高低电平状态,由单片机控制8只发光二极管,使每只发光二极管点亮。因为发光二极管具有单向导通性,当加在发光二极管两端的电压超过其导通电压时,它就会导通;而超过一定的电流时,发光二极管点亮。通过单片机的I/O口连接,因为选择的是P2口,即P2.0-P2.7八个口与8只发光二极管连接,这里采用的是“拉电流”方式连接,即单片机P2各口的各引脚与发光二极管的阳极相连,而发光二极管的阴极接地,即通过保护电阻连接到地端。

三、利用Proteus仿真软件画原理图

在这里插入图片描述

四、Keil编程软件编写程序

本次实验是通过实现P2口连接的8只LED灯交替闪烁,且连接方法是通过单片机的并行输入/输出接口的P2端口P2.0-P2.7,其中各发光二极管的阴极通过保护电阻连接到地端。
通过循环依次点亮各发光二极管,且点亮一盏时其它发光二极管是熄灭的,通过一个for循环写一个可依次每一个发光二极管轮流的循环,然后该循环中通过取数组中的元素来对P2端口的P2.0-P2.7输出高低电平状态组成的十六进制数据,从而实现依次循环点亮各发光二极管,另外还要设置一个延时,即设置一个延时函数从而设置每次循环点亮的间隔时间,实现每隔一段时间点亮一盏灯,首先单片机P2口输出高电平1时对应的发光二极管点亮,而输出低电平0时对应的发光二极管熄灭,采用数组建立数组存储各端口输出高低电平状态组成的十六进制数据,且字节操作法,即unsigned char LED[]={0x01,0x02,0x04,0x08,0x10,
0x20,0x40,0x80},比如十六进制0x01表示的是二进制0000 0001,即此时点亮LED0,其它LED熄灭,十六进制0x02表示的是二进制0000 0010,即即此时点亮LED1,其它LED熄灭,依次进行下去,另外其中还要加上延时函数使各灯延时一段时间。
程序代码如下:

#include<reg51.h>
void delay()
{
	unsigned int i,j;
	for(i=0;i<1000;i++)
		for(j=0;j<125;j++);
}
void main()
{
	unsigned char LED[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//定义LED[]数组P2口输出数据
	unsigned char a;
	while(1)
	{
		for(a=0;a<8;a++)
		{
			P2=LED[a];
			delay();
		}
	}
}

如下:
在这里插入图片描述
通过for(a=0;a<8;a++)循环语句,即每次通过P2=LED[a]调用建立的LED[]数组,数组中的元素分别为8只发光二极管轮流点亮时,单片机P2口各个位输出高低电平状态组成的十六进制数据,并通过调用先前创建的delay()延时函数延时,下图生成.HEX可执行文件:
在这里插入图片描述

五、实验结果

将.HEX可执行文件导入到单片机内,并点击开始仿真,仿真结果如下,第一盏灯D1亮,而其它灯是熄灭的,随后,第一盏灯D1熄灭,第二盏灯D2亮,第二盏灯D2熄灭,第三盏灯D3亮……,第三盏灯D3熄灭,依次这样下去。
仿真结果如下:
在这里插入图片描述
由于程序中使用while(1)无限循环所以一直会这样循环下去:
在这里插入图片描述
按照电路图来连接实物,使用排线直接将P2.0-P2.7接口和LED&交通灯模块的D1-D8灯连在一起,接线如下图,要注意排线对应的各端口。
在烧录软件中设置单片机型号、串口号、最低最高波特率,然后点击“打开程序文件”,选择之前生成的可执行文件,然后打开开发板上的开关,然后点击“下载/编程”,然后右边框就会显示操作是否成功,此时就可以观察板子上LED&交通灯模块的D1-D8灯的情况:
在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:46:40  更:2021-11-30 15:47:05 
 
开发: 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 10:47:53-

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