首页 > 其他分享 >初识单片机(以STC89C52RC小项目来讲解)

初识单片机(以STC89C52RC小项目来讲解)

时间:2024-06-16 23:57:53浏览次数:25  
标签:控制 LED 抖动 消抖 单片机 初识 按键 STC89C52RC

目录

单片机的概念:

亮灯实验:

怎么做才会闪烁:

按键控制灯:

两个按键控制灯:

添加消抖的原因主要体现在以下几个方面:

按键按下一次,灯状态改变:

状态位控制LED:


单片机的概念:

单片机(Single-Chip Microcomputer),也被称为单片微控制器(Microcontroller Unit,MCU),是一种集成电路芯片。它采用超大规模集成电路技术,将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上,构成一个小而完善的微型计算机系统。

单片机的特点如下:

  1. 结构:单片机将计算机系统集成到一块芯片上,包含了计算机的主要部分,如CPU、RAM、ROM等,但与计算机相比,单片机只缺少了I/O设备。
  2. 发展历程:从上世纪80年代的4位、8位单片机,发展到现在的300M的高速单片机,单片机的性能得到了极大的提升。
  3. 应用领域:单片机在工业控制领域得到广泛应用,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
  4. 主要特点:
    • 系统结构简单,使用方便,实现模块化。
    • 可靠性高,可工作到106 ~ 107小时无故障。
    • 处理功能强,速度快。
    • 低电压,低功耗,便于生产便携式产品。
    • 控制功能强。
    • 环境适应能力强。

STC89C52RC

STC89C52RC是一款基于8051架构的单片机芯片,由中国的STC公司生产。

命名规则:

用什么写代码?

C语言写代码,环境是keil软件。

用什么把代码放进单片机里面?

STC-ISP 是一款 单片机下载编程 烧录软件,是针对 STC系列单片机而设计的,可下载STC89系列、 12C2052系列和12C5410等系列的STC单片机,使用简便。 单片机通过type-C数据线和电脑连接(如果不识别,安装ch340驱动) 选择单片机型号STC89C52RC 选择生成的执行程序文件template.hex 点击”下载/编程“按钮 单片机开关拨动重新上电 自动检测并下载了程序,看到灯亮。如果失败,仔细对照 以上每一步内容。

基于IO口的控制:

89C52有5组这样的输入输出口,分别为P0,P1,P2,P3每组对应8个针脚,P4是RC系列才有,7个 针脚

怎么编程找到IO口呢:

sfr“指令”: 用来直接描述硬件地址,小白先理解成“一组IO口”的起始地址中数据 sfr P0 = 0x80;将SFR别名P0定义为地址0x80; P0 = 0;将P0端口的所有8个位都设置为0。把地址0x80处的8位寄存器的所有位都清零。

怎么找到IO口的具体一个引脚呢:

sbit“指令”:对应可位寻址空间的一个位,小白先理解成“一个IO口/针脚”的地址中数据 sbit led2 = P3^6;定义led2为P3寄存器的第6位。

89C52比较简单粗暴,关于引脚输入还是输出的功能不需要配置:

亮灯实验:

简单的串联电路,D4,D5,D6板子上有标记,D5一端通过电阻接5v,另外一端接着"LED1标志的线",我 们发现在89C52RC的电路图中也有LED1的标志,是在P3的IO口组中,在P3.7引脚,所以编程让P3.7出 低电平(0)就让D5灯完成一个串联电路,所以亮。

也就是说,给LED1对应标号的P3^7一个低电平,就能点亮灯。

怎么做才会闪烁:

使用STC-ISP自带延时函数。

按键控制灯:

查询法按键控制灯:

怎么知道sw1按键被按下?

KEY1位置和GND接通,表现为低电平,值为0。

怎么知道sw1按键没有被按下?

KEY1位置通过上拉电阻到5V,表现为高电平,值为1.

KEY1接到STC89C52RC的P2.1口,我们只要不断检测P2.1口的值(0-按下,1-松开)就知道按键是 否被按下

两个按键控制灯:

添加消抖的原因主要体现在以下几个方面:

  1. 抖动现象的解释
    • 当机械开关(如按键)进行切换时,由于开关的物理接触特性和机械弹性等因素,会在短时间内产生多次的通断现象,即所谓的“抖动”。这种抖动对于人眼来说可能是难以察觉的,但对于高速运行的单片机来说却是非常明显的。
    • 抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。这段时间内,单片机会接收到多次不稳定的信号。
  2. 抖动对单片机的影响
    • 不稳定的信号对单片机等微处理器来说,可能会引发误操作或系统不稳定。例如,在按键控制LED灯的程序中,如果单片机检测到抖动信号,可能会错误地认为按键被多次按下,导致LED灯闪烁或者出现其他不期望的行为。
  3. 消抖处理的目的
    • 为了确保CPU对键的一次闭合仅作一次处理,需要在程序中添加消抖处理。这样可以确保在按键稳定闭合或释放时读取键的状态,避免由于抖动而引发的误操作。
  4. 消抖处理的方法
    • 消抖处理主要有两种方法:软件消抖和硬件消抖。
      • 软件消抖:通过在程序中设置一定的延时,忽略短时间内的信号变化。例如,检测到按键按下后,执行一个5ms~10ms的延时程序,然后再次检测按键状态。如果按键仍保持按下状态,则确认这是一次有效的按键操作。

按键控制灯,SW1开,SW2关,案例中只在SW1添加软件消抖:

按键按下一次,灯状态改变:

状态位控制LED:

  • 在单片机编程中,LED灯通常通过单片机的I/O(输入/输出)口进行控制。
  • 单片机内部有一系列的寄存器,用于存储数据、状态和配置信息。
  • 状态位是寄存器中的一位或多位,用于表示某种状态或条件。
  • 通过编程,可以读取或修改这些状态位,并根据其值来控制LED灯的亮灭。

  • 如果key1被按下(检测到低电平),则经过50毫秒的延时去抖动后,再次检测以确保按键确实被按下。如果确实被按下,则设置ledMarkON_STATUS,表示LED应该被点亮。然后等待按键释放。
  • 如果key2被按下(检测到低电平),则经过50毫秒的延时去抖动后,再次检测以确保按键确实被按下。如果确实被按下,则设置ledMarkOFF_STATUS,表示LED应该被熄灭。然后等待按键释放。
  • 根据ledMark的值来控制LED的亮灭。

标签:控制,LED,抖动,消抖,单片机,初识,按键,STC89C52RC
From: https://blog.csdn.net/2301_76378962/article/details/139698868

相关文章

  • 基于51单片机8x8点阵设计
    基于51单片机8x8点阵设计(仿真+程序)功能介绍具体功能:1.用74HC138驱动8x8点阵;2.按键可以切换模式;3.一共4种模式,0~9数字闪出、动态爱心、坦克走动、数字依次向上平移;​演示视频:基于51单片机8x8点阵设计 添加图片注释,不超过140字(可选)程序#include<reg52.h>......
  • 【Python数据分析】Pandas_初识结构
    文章目录Pandas内置数据结构Series创建Series对象访问Series数据Series常用属性Series常用方法DataFrame创建DataFrame对象列索引操作DataFrame行索引操作DataFrame常用属性和方法汇总PanelpipinstallpandasPandas这个名字来源于面板数据(PanelData)与数据分......
  • 域渗透之初识LM&NTLM认证过程
    目录前言LMHashNTLMHashWindows本地认证LSASS进程Mimikatz抓取明文密码Windows网络认证NetNTLMNTLMv1&NTLMv2Hash传递攻击前言LANManager和NTLANManager认证是Windows系统中的一种挑战-响应身份验证机制。LM认证是早期Windows版本中使用的一种认证协议,而NTLM是LM的改......
  • 基于单片机智能停车系统的设计与实现(论文+源码)_kaic
     基于单机片智能停车系统摘要:随着私家车数量的迅速增加,大中城市的停车问题越来越严重,人们早已习惯了将问题交给手机来解决。因此,迫切需要设计一个智能停车管理系统来支持移动终端,使用户能够通过移动终端实现停车查询、预订和支付。与传统的停车管理系统相比,智能停......
  • 51单片机有开发板A和开发板B,通过串口,实现开发板A的按键,控制开发板B的LED亮灭。
    1、功能描述有开发板A和开发板B,通过串口,实现开发板A的按键,控制开发板B的LED亮灭。2、实验原理1.串口通信(UART)串口通信是一种异步通信方式,它允许单片机通过两条线(发送线TX和接收线RX)进行数据传输。在51单片机中,串口通信是通过两个主要寄存器(SCON、SMO/SM1)和中断(RI、TI)......
  • 基于51单片机的窗帘控制系统【温湿度,烟雾,红外,光照】(仿真)
    基于51单片机的窗帘控制系统【温湿度,烟雾,红外,光照】(仿真)给大家提供一些资料详细解释,有需要的自行提取,网盘地址我放在下面 链接:https://pan.baidu.com/s/1NigBeujDZTCFL0hdMiu7yg?pwd=syxp 提取码:syxp 分别利用温湿度传感器、烟雾传感器、光敏电阻、红外检测控制模块等......
  • Arduino单片机详解
    Arduino单片机详解Arduino是一款开源的电子原型平台,广泛应用于各种电子项目和物联网开发。它通过简单易用的硬件和软件,使得电子制造和编程变得更加容易。Arduino的核心是单片机(Microcontroller),它是一个集成了CPU、内存和外设的芯片。下面将详细介绍Arduino单片机的各个方面,包......
  • 初识C语言难点~~指针变量
    目录前言 一、什么是指针变量二、定义指针变量1、代码12、代码2(通过指针变量取得数据) 三、通过指针变量来交换主函数两个变量1、【正确示例】2、【错误示例】四、总结 前言大家好又见面了!!今天要说的是指针变量。 一、什么是指针变量指针变量是一种特殊的变......
  • 初识C语言~~查找票数最高候选人
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、题目描述二、解题思路三、编写代码总结前言提示:这里可以添加本文要记录的大概内容:大家好又见面喽!!今天是刷题,二话不说开干。提示:以下是本篇文章正文内容,下面案例可供参考一、题目......
  • 基于单片机的机械手臂控制系统设计
    摘要:应用单片机、Arduino及机械臂的有关知识,设计一款基于单片机的六自由度机械手臂,并详述其控制系统的软、硬件设计。该机械手臂能够模仿人的上肢完成简单的动作,因此在实验教学演示平台、生产或生活中都极具应用价值。关键词:机械手臂控制系统设计单片机Ar......