资讯详情

80C51单片机:2.初学点亮发光二极管,流水灯案例

80C51单片机系列

  1. 80C51单片机介绍
  2. 照亮第一个发光二极管,流水灯案例

文章目录

  • 80C51单片机系列
  • 前言
  • 照亮第一个发光二极管
    • 程序烧录等操作
  • 二极管流水灯
  • 下一章:数字管显示、包装和消隐


前言

先看原理图,学单片机首先要了解原理图!

在这里插入图片描述

照亮第一个发光二极管

首先从原理图上找到 LED模块

我们LED八个二极管连接,MCU单片机芯片(即800C51单片机),P八串两口(P2^0 ~ P2^7)。

所以我们只需要操作P两口的八个串口可以控制LED二极管的发光和熄灭。

这里就不多说创建项目和文件了。

#include<reg52.h>sbit LED1 =  P2^0;void  main(){       LED1 =  0;}  

这里

然后下载到单片机!

程序烧录等操作

具体操作,如烧软件、项目配置(设置操作)MHZ)、生成hex文件等,烧软件请自行在线搜索下载。

生成项目配置hex这里的截图说明文件!

首先,项目配置,设置

请添加图片描述

在刚才的基础上,勾选生成hex文件即可!

请添加图片描述

最后,用烧录软件下载到单片机!

开机即可!

这样,单片机上的第一个发光二极管就会发光!

:有的可能只亮一下,在LED1 = 0;后面加一个while(1);死循环!

不是很简单吗?

二极管流水灯

有了以上简单的实验,我们就写一个二极管流水灯。

#include<reg52.h>#include<intrins.h>#define  GPIO_LED  P2void  Delayms(unsigned  char);void  main(){       unsigned  char  i;  GPIO_LED =  0xfe;  Delayms(10);  //流水灯  while(1){         for(i = 0; i<7; i++){
      //左移7次			GPIO_LED = _crol_(GPIO_LED,1); //GPIO_LED 左移1位			Delayms(10);		}		for(i = 0; i<7; i++){
      //右移7次			GPIO_LED = _cror_(GPIO_LED,1); //GPIO_LED 右移1位			Delayms(10);		}			}}/*//手动实现轮流赋值void main(){ unsigned char i,led_list[8]= {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0xBF}; while(1){ for(i = 0; i<8; i++){ //循环 GPIO_LED = led_list[i]; Delay10ms(2); } }}*///延时函数void Delayms(unsigned char c){
     	unsigned char a,b;	for(;c>0;c--)		for(b=76;b>0;b--)			for(a=130;a>0;a--);}

程序中注释部分为,手动实现赋值P2操作。

而导入的**#include<intrins.h>**头文件,可以直接进行位移操作。

调用_crol_进行左移。

调用_cror_进行右移。


下一章:数码管显示及封装与消隐

下一章:

标签: 0805发光二极管封装

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台