STC89C52RC单片机实现闪烁灯的几种编程实现。

摘要:

本文用STC89C52RC单片机实现LED灯的闪烁,串联点亮LED程序所用到的知识。
我们会讲到硬件原理图,讲解LED灯如何连接到单片机上,介绍单片机IO口的特性,什么是双态口,什么是三态口!我们会介绍STC89C52RC这一串名字的含义,会讲到不同领域芯片所要求的温度参数。讲完这些就可以选择多种方式实现闪烁LED。
在这里插入图片描述

STC89C52RC具体含义解释:

STC一前缀,表示芯片为 STC 公司生产的产品。
8一表示该芯片为8051内核芯片。
9一表示内部含 FlashEPROM 存器。还有如80C51中0表示内部含 MaskROM (掩模 ROM )存储器;如87C51中7表示内部含 EPROM 存储器(紫外线可擦除 ROM )。
C 一表示该器件为 CMOS 产品。还有如89LV52和89LE58中的 LV 和 LE 都表示该芯片为低电压产品(通常为3.3V电压供电);而89S52中的 S 表示该芯片含有可串行下载功能的 Flash 存储器,即具有 ISP 可在线编程功能。
5一固定不变。
1一表示该芯片内部程序存储空间的大小,1为4KB,2为8KB,3为12KB,即该数乘上4KB就是该芯片内部的程序存储空间大小。程序空间大小决定了一个芯片所能装入执行代码的多少。
RC 一 STC 单片机内部 RAM (随机读写存储器)为512B。
40一表示芯片外部晶振最高可接入40MHz。
C 一产品级别,表示芯片使用温度范围。 C 表示商业级,温度范围为0℃~+70C。
PDIP 一产品封装型号。 PDIP 表示双列直插式。
C :表示商业用产品,温度范围为0℃~+70℃。
I :表示工业用产品,温度范围为﹣40℃~+85C。
A :表示汽车用产品,温度范围为﹣40℃~+125C,
M :表示军用产品,温度范围为﹣55 C ~+150C。

DIP( Dual In - line Package )双列直插式封装

DIP 是指采用双列直插形式封装的集成电路芯片,绝大多数中小规模集成电路( IC )均采用这种封装形式,其引脚数一般不超过100个。采用 DIP 封装的 CPU 芯片有两排引脚,需要插入到具有 DIP 结构的芯片插座上。当然,也可以直接插在有相同焊孔数和几何排列的电路板上进行焊接。

硬件原理图讲解:

在这里插入图片描述

硬件原理图上的74HC573是一个锁存器,我们暂时按下不表,51单片机默认上电IO口输出5V高电平,我们此时可以把74HC573锁存器当作导线,直接导通即可。
LED是共阳极接法,P2是排阻,阻值1K,排阻的作用就是限流,目的是防止电流过大,LED击穿和。
此时我们明白,只要让P0口输出低电平就可以点亮LED灯了,那我们程序就非常好编写了。只要让P1口输出低电平即可。

程序:全局变量和头文件

#include<reg51.h>
  /*************************************************************************************
     第一行是一个"文件包含"处理。
  所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来
 这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行
*****************************************************************************/
sbit P1_0=P1^0;                   //定义IO口

程序:软件延时

void delay10ms()
  {
    for(a=100;a>0;a--)
      for(b=225;b>0;b--);
   }

程序:主函数

void main(void)   //每一个C语言程序有且只有一个主函数,
  {
	  while(1)   //循环条件永远为真,以下程序一直执行下去。
    {
     P1_0=0;     // I/O口P1.0输出低电平,小灯被点亮。
	 delay10ms();
	P1_0=1;     // I/O口P1.0输出高电平,小灯被熄灭。
	 delay10ms(); 
    }
  }

知识点:reg51.h头文件的作用

在这里插入图片描述

在代码中引用头文件,其实际意义就是将这个头文件中的全部内容放到引用头文件的位置处,免去我们每次编写同类程序都要将头文件中的语句重复编写。在代码中加入头文件有两种书写方法,分别为include <reg51.h>和include “reg51.h”,包含头文件时都不需要在后面加分号。两种写法区别如下:
当使用<>包含头文件时,编译器先进入到软件安装文件夹处开始搜索这个头文件,也就是Keil\C5I\INC这个文件夹下,如果这个文件夹下没有引用的头文件,编译器将会报错。
当使用双引号""包含头文件时,编译器先进入到当前工程所在文件夹处开始搜索该头文件,如果当前工程所在文件夹下没有该头文件,编译器将继续回到软件安装文件夹处搜索这个头文件,若找不到该头文件,编译器将报错。reg51.h在软件安装文件夹处存在,所以我们一般写成# include <reg51.h>。

程序写法二:直接操作IO口

#include<reg51.h>

  void main(void)   //每一个C语言程序有且只有一个主函数,
  {
	  while(1)   //循环条件永远为真,以下程序一直执行下去。
    {
     P1 = 0xfe;//给P1.0口低电平,点亮LED
 
     }
  }

这样我们不用sbit 特殊功能位寄存器再给P1口定义,直接赋值也是可以达到点亮Led效果的。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯烟火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值