当前位置: 首页 > ai >正文

51单片机点亮一个LED介绍

LED介绍

LED就是发光二极管,一般来说如果是直插式的,那就是长正短负,如果是贴片式的,那就带彩色标记是阴极,如果是三角形的,水平箭头指的就是阴极,通常一般的工作电压在3mA~20mA,当发光的时候,两端电压为1.7V

 

这是我们此次实验51单片机LED硬件资源,由图中可知,D1接在单片机P2.0口,并且LED采用共阳极接法,只需要让P2.0口接低电平就可以让LED点亮,RP9和RP10就是排阻,就是让一个个电阻组装到一个排阻里,可以使用更简单。

软件设计

本次要实现的功能是:点亮D1指示灯,即让P2.0管脚输出一个低电平。完成后再控制LED闪烁。

#include <REGX52.H>
sbit LED1=P2^0;//特殊寄存器位定义使用sbit关键字
void main()    //将P2^0重命名为LED1,程序从main函数执行
{LED1=0;//只需要将定义好的管脚赋值低电平就可以while(1){}
}

 

编译成功会先显示data=9,xdata=0,code=19,其中code表示占用程序flash字节,data表示数据存储器内部RAM占用字节,xdata表示占用外部数据存储器RAM字节

下面一行creating .hex files表示生成了.hex文件,将其烧录到单片机中即可运行

 

实验现象

闪烁软件设计

#include <REGX52.H>
typedef unsigned int u16;//将无符号整形重新定义为u16,以后程序看到u16就是unsigned int
sbit LED1=P2^0;//特殊寄存器位定义使用sbit关键字
void delay_10us(u16 ten_us)//当ten_us为1时,大约延时10us,这是使用循环语句占用CPU来延时,
{																										//并不是准确的延时,只是个大概while(ten_us--);
}
void main()    //将P2^0重命名为LED1,程序从main函数执行
{while(1){LED1=0;// 亮delay_10us(5000);//延时大约50msLED1=1;//灭delay_10us(5000);//执行完后继续在while循环永远执行,就可以一直亮灭}
}

实验现象

 

http://www.xdnf.cn/news/7350.html

相关文章:

  • C++ 函数对象、仿函数与 Lambda 表达式详解
  • 12.vue整合springboot首页显示数据库表-实现按钮:【添加修改删除查询】
  • 深入Java G1 GC调优:如何解决高延迟与吞吐量瓶颈
  • 嵌入式学习笔记 - STM32独立看门狗IWDG与窗口看门狗WWDG的区别
  • HTTPS实验室——TLS/TLCP一站式解决方案
  • C语言——深入理解指针(一)
  • rosbag使用记录
  • 搭建一个永久免费的博客
  • Java设计模式之组合模式:从入门到精通(保姆级教程)
  • Java 泛型详解
  • 黄仁勋Computex演讲:将于三季度推出下一代GB300系统,个人AI计算机DGX Spark已全面投产
  • 进程和线程有什么区别?多线程有什么优缺点?线程的创建方式有哪些?如何简单的使用线程?用户线程和守护线程有什么区别?start 和 run 方法有什么区别?
  • go 与面向对象编程(OOP)
  • 设置IDEA打开新项目使用JDK17
  • 【OpenCV基础2】图像运算、水印、加密、摄像头
  • 信号量基础入门:并发控制的核心概念
  • BGP选路
  • 常用ECSQL整理
  • ‌AT6558R-5N22北斗B1I单频导航芯片
  • 《深入理解数组名:sizeof(arr)、arr 和 arr 的区别》
  • 三种嵌入式开发常用的组网方式
  • 【C++】C++的IO流
  • 青岛地铁二号线列车运行图优化系统
  • AIGC与文本生成:人工智能写作的新纪元
  • Adminer:一个基于Web的轻量级数据库管理工具
  • Python | 需求预测模型
  • 使用 docker-volume-backup 备份 Docker 卷
  • plc基础知识整理(三菱)
  • PHP 实现连续子数组的最大和、整数中1出现的次数
  • 详解Oracle HASH CHAIN和HASH BUCKET