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

server/2025/3/17 18:27:47/

目录

一、单片机>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位数管


http://www.ppmy.cn/server/175756.html

相关文章

如何在androidstudio开发环境中查看sqlite数据库(按新版本Android Studio Giraffe提供详细步骤和操作说明,附截图,代码)

如何在androidstudio开发环境中查看sqlite数据库&#xff08;按新版本Android Studio Giraffe提供详细步骤和操作说明&#xff0c;附截图&#xff0c;代码&#xff09;鹿溪IT工作室提供_android studio查看数据库-CSDN博客

黑马node.js教程(nodejs教程)——AJAX-Day01-04.案例_地区查询——查询某个省某个城市所有地区(代码示例)

文章目录 代码示例效果 代码示例 axiosTest.html <!DOCTYPE html> <!-- 文档类型声明&#xff0c;告诉浏览器这是一个HTML5文档 --> <html lang"en"> <!-- HTML根元素&#xff0c;设置文档语言为英语 --><head> <!-- 头部区域&am…

【ESP32】ESP-IDF开发 | 经典蓝牙开发 | 蓝牙串口协议(SPP) + 客户端和服务端例程

1. 简介 相信我们最早接触蓝牙&#xff0c;就是在某宝上买一个小巧的蓝牙模块&#xff0c;接到单片机上&#xff0c;通过AT指令进行简单配置&#xff0c;就可以用手机连接该模块&#xff0c;然后远程发送信息给单片机。这里面用到的就是SPP协议&#xff08;Serial Port Protoco…

【JVM】GC 常见问题

GC 常见问题 哪些情况新生代会进入老年代 新生代 GC 后幸存区&#xff08;survivor&#xff09;不够存放存活下来的对象&#xff0c;会通过内存担保机制晋升到老年代。大对象直接进入老年代&#xff0c;因为大对象再新生代之间来会复制会影响 GC 性能。由 -XX:PretenureSizeT…

分享一个sql统计的客户需求

分享个最近的一个需求 领导想要知道各个时间段&#xff0c;各个科室&#xff0c;哪些是预出院的患者&#xff0c;哪些是临时出院的患者&#xff0c;在我看来对于系统来说好像没有什么好的界定方式&#xff0c;我就细问下应该如何界定&#xff08;防止查错背锅&#xff09; 在我…

SpringBoot 集成logback日志链路追踪

项目场景 有时候一个业务调用链场景&#xff0c;很长&#xff0c;调了各种各样的方法&#xff0c;看日志的时候&#xff0c;各个接口的日志穿插&#xff0c;确实让人头大。 为了解决这个痛点&#xff0c;就使用了 TraceId&#xff0c;根据 TraceId 关键字进入服务器查询日志中…

【sql靶场】第15、16关-post提交盲注保姆级教程

目录 【sql靶场】第15、16关-post提交盲注保姆级教程 1.知识回顾 ‌GET请求‌ ‌POST请求‌ or与and 2.第十五关 1.布尔盲注的手动注入 1.判断 2.数据库名长度 3.数据库名字符 4.表名数 5.表名长度 6.表名符 7.字段数 8.字段长度 9.字段符 2.布尔盲注的脚本注入…

ROS实践(五)机器人自动导航(robot_navigation)

目录 一、知识点 1. 定位 2. 路径规划 (1)全局路径规划 (2)局部路径规划 3. 避障 二、常用工具和传感器 三、相关功能包 1. move_base(决策规划) 2. amcl(定位) 3. costmap_2d(代价地图) 4. global_planner(全局规划器) 5. local_planner(局部规划器…