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

硬件驱动——51单片机:寄存器、LED、动态数码管

目录

一、51单片机

1.寄存器 

二、LED点灯

1.原理

2.封装函数

3.顺序点灯 

4.特定位点灯

三、动态数码管

1.原理

2.封装函数 

3.0~9跳变

4.顺序移位0~9跳变


一、51单片机


1.寄存器 

        51单片机共40个引脚,其中P0,P1,P2,P3是四个有8引脚的寄存器,寄存器可视为全局变量,寄存器在keil中以特殊宏的形式储存,例如:

        用C语言规范写法,需将寄存器地址的值强转为指针,然后访问修改指针所指向内容,因此上图中的寄存器代码等价于:

二、LED点灯


1.原理

        单片机通电后,51单片机的40个引脚均为高电平(即值均为1),其中引脚21~28为寄存器P2的八个引脚P20~P27,负责控制LED模块的8个发光二极管

         若将P20置为低电平(即值改为0),则发光二极管D1两端产生电势差,从而产生电流,二极管导通发光。方法为用位运算的方式将寄存器P2的值由1111 1111改为1111 1110,例:

    P2 &= ~(1 << 0);
    // (1 << 0)即二进制数  0000 0001
    //~(1 << 0)按位取反后为1111 1110
    //&=即与等于,执行置0操作

 2.封装函数

        封装一个延时函数

        封装一系列LED相关函数

3.顺序点灯 

        让灯顺序点亮 ,再循环亮回来

4.特定位点灯

        令能被2整除的位数上的灯亮,再让能被3整除的灯亮,交替闪烁

三、动态数码管


1.原理

        单片机通电后,51单片机的40个引脚均为高电平(即值均为1),其中引脚39~32为寄存器P0的八个引脚P00~P07,负责控制数码管a,b,c,d,e,f,g,dp的亮灭。

        另外引脚1~4为寄存器P1前四个引脚P10~P13,负责控制4位数码管模块的亮灭。

2.封装函数 

        封装一系列数码管相关函数

3.0~9跳变

        从指定数码管由0~9进行跳变 

4.顺序移位0~9跳变

        先第0位数码管从0跳变到9,再第1位数码管从0跳变到9,直到第3位数码管跳变完再循环至第0位数管

相关文章:

  • Google Cloud Run 如何实现无服务器(Serverless)部署?
  • 受控组件非受控组件
  • 论文阅读:Deep Hybrid Camera Deblurring for Smartphone Cameras
  • 【工作记录】pytest使用总结
  • 深度学习中的并行策略:数据并行、流水并行与张量并行
  • DR-CAN 卡尔曼滤波笔记
  • Python库安装报错解决思路以及机器学习环境配置详细方案
  • 机器学习中说的正向传递和反向传递是什么意思
  • NFS网络文件共享服务
  • mysql-8.0.40-1.el7.x86_64.rpm Linux MySQL 保姆级详细安装教程(2025版)
  • 【技术报告】谷歌开源多模态大模型 Gemma-3
  • 《灵珠觉醒:从零到算法金仙的C++修炼》卷三·天劫试炼(59)定风珠稳调度 - 任务调度器(贪心桶思想)
  • 鸿蒙开发:自定义一个搜索模版
  • lspci命令
  • ctfshow-web-351-360-ssrf-wp
  • PyTorch使用-张量的创建
  • K8s集群的环境部署
  • ⭐算法OJ⭐两数之和【哈希表】(C++ 实现)Two Sum
  • 三. Zabbix安装
  • ​详细介绍 SetWindowPos() 函数
  • 上海合作组织减贫和可持续发展论坛开幕,沈跃跃宣读习近平主席贺信
  • 海南医科大披露校内竞聘上岗结果:32名干部离开领导岗位,8人系落选
  • 人民日报:不能层层加码,要层层负责
  • 国家统计局:4月社会消费品零售总额同比增长5.1%
  • 1块钱解锁2万部微短剧还能日更,侵权盗版难题怎么破?
  • 大风+暴雨,中央气象台双预警齐发