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

51单片机——数码管

文章目录

    • 1.数码管显示6个9
      • 1.1效果图截屏
    • 1.2代码
    • 2.数码管显示2个7(头尾)
      • 2.1效果图截屏
      • 2.2代码
    • 3.数码管轮播显示6位
      • 3.1效果图截屏
      • 3.2代码
    • 4.数码管轮播显示2位
      • 4.1效果图截屏
      • 4.2代码
    • 5.第一个显示0,第二个显示数字1…
      • 5.1效果图
      • 5.2代码实现

1.数码管显示6个9

1.1效果图截屏

1.2代码

#include<reg52.h>sbit dula=P3^4;sbit wela=P1^6;voidmain(){wela=1;P0=0xC0;wela=0;dula=1;P0=0x6F;dula=0;while(1);}

2.数码管显示2个7(头尾)

2.1效果图截屏

2.2代码

#include<reg52.h>sbit dula=P3^4;sbit wela=P1^6;voidmain(){wela=1;P0=0xDE;wela=0;dula=1;P0=0x07;dula=0;while(1);}

3.数码管轮播显示6位

3.1效果图截屏

3.2代码

#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbit dula=P3^4;sbit wela=P1^6;uchar code seg_code[]={0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};voiddelay(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}voidmain(){uchar digit;while(1){wela=1;P0=0xc0;wela=0;for(digit=0;digit<10;digit++){dula=1;P0=seg_code[digit];dula=0;delay(500);}}}

4.数码管轮播显示2位

4.1效果图截屏

4.2代码

#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbit dula=P3^4;sbit wela=P1^6;uchar code seg_code[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;}voiddelay(uint ms){uint i,j;for(i=ms;i>0;i--)for(j=110;j>0;j--);}voidmain(){uchar digit;while(1){wela=1;P0=0xF3;wela=0;for(digit=0;digit<10;digit++){dula=1;P0=seg_code[digit];dula=0;delay(500);}}}

5.第一个显示0,第二个显示数字1…

5.1效果图

5.2代码实现

#include<reg52.h>// 头文件 ```c#defineucharunsignedchar#defineuintunsignedint// 定义锁存器控制引脚sbit dula=P3^4;// 段选锁存器U2sbit wela=P1^6;// 位选锁存器U3// 数码管的段码表(定义0-9的段码)uchar code TableDula[]={0x3F,// 00x06,// 10x5B,// 20x4F,// 30x66,// 40x6D,// 50x7D,// 60x07,// 70x7F,// 80x6F// 9};// 数码管显示位码,对应第1到第6个数码管(需要将2进制转换成16进制)uchar code TableWela[]={// 补充代码0xFE,// 1111 1110 -> 第1位(P0.0 置低,其它为高)=> 选中第1位数码管0xFD,// 1111 1101 -> 第2位(P0.1 置低)=> 选中第2位数码管0xFB,// 1111 1011 -> 第3位(P0.2 置低)=> 选中第3位数码管0xF7,// 1111 0111 -> 第4位(P0.3 置低)=> 选中第4位数码管0xEF,// 1110 1111 -> 第5位(P0.4 置低)=> 选中第5位数码管0xDF// 1101 1111 -> 第6位(P0.5 置低)=> 选中第6位数码管};// 延时函数voiddelay(uchar x){uchar j;while(x--){for(j=0;j<125;j++);}}// 主函数voidmain(){uchar i;while(1){for(i=0;i<6;i++){P0=0x00;// 清空之前的输出dula=0;wela=0;P0=TableWela[i];// 先送位码,依次选中1-6位数码管wela=1;// 锁存位码wela=0;P0=TableDula[i+1];// 再送段码,第1个数码管显示0,第2个数码管显示1...dula=1;// 锁存段码dula=0;delay(2);// 保持一段时间}}}
http://www.jsqmd.com/news/612214/

相关文章:

  • PyAutoCAD:5个步骤让你的AutoCAD工作流实现Python自动化终极指南
  • 专业推荐:杉德斯玛特卡回收平台及闲置处理技巧 - 团团收购物卡回收
  • Cesium开发必看:如何正确使用Ion密钥访问3D地理空间数据
  • Adobe-GenP 3.0技术揭秘:如何实现Adobe Creative Cloud全系列通用补丁
  • 告别‘专用模型’:用CMX框架统一搞定RGB与深度、热成像、偏振、事件、LiDAR的语义分割
  • PyTorch 2.8镜像开箱评测:预装环境助力人工智能项目快速启动
  • 圣女司幼幽-造相Z-Turbo复古未来主义风格作品专题展示
  • RAG高并发检索延迟优化实战,高效进阶学习
  • 永磁同步模型电流预测控制+滑模控制! 滑膜控制器采用新型趋近律与扰动观测器结合,提高系统鲁棒性...
  • FireRed-OCR Studio效果展示:OCR结果Diff比对功能演示(版本迭代)
  • 美股 API 实战:搞定历史数据缺失问题
  • 深入浅出:图解5G NR中UCI复用与资源抢占的那些事儿
  • Pixel Epic · Wisdom Terminal JDK配置与多版本管理最佳实践
  • 别再用免费推客系统,坑多还不安全
  • 科研党福音:小绿鲸AI文献阅读器3.0版本实测,翻译+笔记+管理一站式搞定
  • SecGPT-14B模型微调:提升OpenClaw在特定安全场景的准确率
  • 用FPGA实现一个带左转的交通灯控制器(Verilog代码+DE10-Lite实测)
  • 在VMware虚拟机里用CentOS 7.5手把手搭建OpenVPN 2.4.12服务器(附完整证书生成与防火墙配置)
  • 如何在Krita中一键完成AI智能选区:3种高效图像分割技巧
  • 2253基于51单片机的七模式洗衣机控制系统设计
  • 如何提升城通网盘下载效率?4个关键步骤解决直连链接获取难题
  • 3分钟解锁Switch潜能:TegraRcmGUI图形化破解工具完全指南
  • 英语情态动词知识总结
  • 仅限首批200名AI基础设施工程师:Cuvil 2024Q3内部编译诊断工具集(含AST可视化插件与算子融合热力图)
  • 3个步骤开启AI翻唱创作:AICoverGen零基础入门指南
  • 从抓包到洞察:Wireshark实战解析HTTP协议核心交互
  • CH-95S吸钯树脂——硝酸提钯的技术解析
  • 实战指南:3步突破原神帧率限制,让你的硬件性能完全释放
  • 2026年4月防爆露点仪厂家推荐:电容式、激光法技术哪家强? - 品牌推荐大师
  • SGLang-v0.5.6效果展示:看它如何简化复杂LLM程序,提升开发效率