硬件驱动——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,例:

cs 复制代码
    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位数管

相关推荐
清风6666663 小时前
基于单片机与DAC0832的双路波形信号发生系统设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
azwsm4 小时前
电路元器件和GPIO控制器
单片机·嵌入式硬件
kebidaixu8 小时前
FreeRTOS 移植到 STM32F407VETX 记录(一)
stm32·单片机·嵌入式硬件
CSDN官方博客8 小时前
「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令
嵌入式硬件·物联网·embedding
点灯小铭9 小时前
基于单片机的数码管定时插座设计与定时开关功能实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
云栖梦泽9 小时前
玩转RK3506SDK
linux·嵌入式硬件
数智工坊11 小时前
机器人四大主控板系统分层选型指南:树莓派、ESP32、STM32与Arduino的能力边界与实战定位
stm32·嵌入式硬件·机器人
进击的小头11 小时前
第8篇:IGBT 从零到精通:核心原理、关键参数、选型指南与工业级应用要点
经验分享·嵌入式硬件·学习
点灯小铭11 小时前
基于单片机的多模式智能洗衣机设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
项目題供诗11 小时前
STM32-AD单通道&AD多通道(十九)
stm32·单片机·嵌入式硬件