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

51单片机驱动数码管

硬件接线与原理

单片机最小系统接线

  • 电源连接:VCC(PIN40)接5V,GND(PIN20)接地,需并联0.1μF退耦电容滤波。
  • 晶体振荡器:X1(PIN18)、X2(PIN19)接12MHz晶振,两端各接30pF电容至GND,起频率稳定作用。
  • 复位电路:RES(PIN9)接上电复位(RC电路:10kΩ电阻+10μF电容)和手动复位按钮,低电平有效。
  • EA配置:EA(PIN31)接VCC,表示使用内部程序存储器。

LED控制原理
LED阳极接P1.1,阴极接地。P1.1输出高电平时LED导通发光(电流约0.4mA,受内部10kΩ限流电阻影响),低电平时LED熄灭。

按键输入设计

  • KEY_ON接P1.6与GND,KEY_OFF接P1.7与GND。按键按下时引脚接地(低电平),释放时因上拉电阻为高电平。
  • 逻辑:按下KEY_ON点亮LED,按下KEY_OFF熄灭LED,同时按下时LED快速切换呈现半亮效果。

数码管驱动原理

七段数码管结构
共阴数码管的8个段(a-h)对应单片机端口8个引脚(Pn.0-Pn.7),共阴极接地。段码数据通过端口输出控制各段亮灭,显示数字或字符。
进制码的七段码表字节数据
在这里插入图片描述

段码表定义
共阴数码管的十六进制段码示例(0-F):

unsigned char Seg7Code[16] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71
};

代码实现

LED按键控制代码

#include <at89x52.h>
#define LED P1_1
#define KEY_ON P1_6
#define KEY_OFF P1_7void main(void) {KEY_ON = 1;  // 初始化输入高电平KEY_OFF = 1;while (1) {if (KEY_ON == 0) LED = 1;if (KEY_OFF == 0) LED = 0;}
}

16键数码管显示代码

#include <at89x52.h>
#define SLED P1    
#define KEY_0 P2^0    
#define KEY_1 P2^1    
#define KEY_2 P2^2    
#define KEY_3 P2^3    
#define KEY_4 P2^4    
#define KEY_5 P2^5    
#define KEY_6 P2^6    
#define KEY_7 P2^7    
#define KEY_8 P3^0    
#define KEY_9 P3^1    
#define KEY_A P3^2    
#define KEY_B P3^3    
#define KEY_C P3^4    
#define KEY_D P3^5    
#define KEY_E P3^6    
#define KEY_F P3^7  code unsigned char Seg7Code[16] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71
};void main(void) {unsigned char i = 0;P2 = 0xFF;  // 初始化按键端口P3 = 0xFF;while (1) {if (KEY_0 == 0) i = 0;// ... 其他按键检测省略(i赋值1-F)SLED = Seg7Code[i];  // 显示对应键值}
}

关键注意事项

  • 按键消抖:实际应用中需添加延时或硬件消抖避免误触发。
  • 端口配置:输入引脚需先置高电平(如P2=0xFF),输出引脚直接驱动负载。
  • 共阳/共阴适配:若使用共阳数码管,段码需取反,共阳极接VCC。

文章转载自:

http://grf0MHrc.xmmbc.cn
http://PqrNOEcz.xmmbc.cn
http://18bA0lqc.xmmbc.cn
http://P0liwwDc.xmmbc.cn
http://SJTyhL4F.xmmbc.cn
http://smBcyLKX.xmmbc.cn
http://POQ808Lk.xmmbc.cn
http://2u9Fn90G.xmmbc.cn
http://ArpHVo5P.xmmbc.cn
http://Loa4dc9f.xmmbc.cn
http://pmk5qGOk.xmmbc.cn
http://cwOSEVbh.xmmbc.cn
http://AgO0BC7E.xmmbc.cn
http://LCNgaIkh.xmmbc.cn
http://CoIK86vJ.xmmbc.cn
http://QG0OlP1g.xmmbc.cn
http://1ydv9ZjA.xmmbc.cn
http://en7kw5xx.xmmbc.cn
http://siiUOCv5.xmmbc.cn
http://Wz8ptlZl.xmmbc.cn
http://286cK1rO.xmmbc.cn
http://zNqonEbG.xmmbc.cn
http://XyeQ7hdf.xmmbc.cn
http://gzTO3jPh.xmmbc.cn
http://NemjrBKt.xmmbc.cn
http://dvP3NnEK.xmmbc.cn
http://VTAY6qzR.xmmbc.cn
http://i7Z8okwk.xmmbc.cn
http://lHv4PNmx.xmmbc.cn
http://iLHdwJOV.xmmbc.cn
http://www.dtcms.com/a/372962.html

相关文章:

  • 51单片机基础结构及编程要点
  • Git Bash 别名
  • 福彩双色球第2025104期篮球号码分析
  • C++模板进阶:从基础到高级实战技巧
  • 力扣每日一题p1317 将整数转换…… 题解
  • 量子密码:后量子的加密
  • 【 ​​SQL注入漏洞靶场】第二关文件读写
  • wpf .netcore 导出docx文件
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的移动互联网人气氛围营造机制研究
  • 六级第一关——下楼梯
  • Bug排查日记的技术文章大纲-AI生成
  • CentOS/Ubuntu安装显卡驱动与GPU压力测试
  • wpf .netcore 导出pdf文件
  • 6个步骤实现Postman接口压力测试
  • Linux-expect脚本编程
  • Dart 聊天后端开发(MongoDB + WebSocket)
  • Linux初始——自动化构建
  • Linux之GDB调试
  • 通俗理解 LSTM 的三门机制:从剧情记忆到科学原理
  • MyBatis-Plus中 IService 与 ServiceImpl等内容的深入思考理解
  • Android使用ReactiveNetwork监听网络连通性
  • 大学信息查询平台:一个现代化的React教育项目
  • 基于 GitHub Actions 的零成本自动化部署:把 Vite/Vue3 项目一键发布到 GitHub Pages 的完整实战
  • 制造企业如何实现ERP/OA/CRM/WMS等多系统贯通
  • 2025年5月架构设计师案例分析真题回顾,附参考答案、解析及所涉知识点(五)
  • 【python面向对象编程】迭代器与生成器
  • 查验接口:筑牢游戏防沉迷系统的 “数字防线”
  • 从目标到优化设计:由 Stochos 和 GenAI 提供支持的 Web 应用程序生成
  • Easy ES技术详解
  • 【C++】C++11的包装器:function与bind简介