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

作业2:6位数码管相关练习

目录

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、6位数码管依次显示1-6

5.1效果图截屏

5.2代码

6、使数码管显示“13.14.15”

6.1效果图截屏

6.2代码


1、六位数码管显示6个9

1.1效果图截屏

1.2代码

#include<reg52.h> // 头文件 // 定义锁存器控制引脚 sbit dula=P3^4; // 锁存器U2(段选) sbit wela=P1^6; // 锁存器U2(位选) // 主函数 void main() { // 1.位选控制 wela=1; // 打开位选 P0=0xC0; // 位选3个数码管 1111 1000 wela=0; // 关闭位选 // 2.段选控制 dula=1; // 打开段选 P0=0x6F; // 数码管显示“0” 0011 1111 dula=0; // 关闭段选 // 3.保持 while(1); }

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

2.1效果图截屏

2.2代码

#include<reg52.h> // 头文件 // 定义锁存器控制引脚 sbit dula=P3^4; // 锁存器U2(段选) sbit wela=P1^6; // 锁存器U2(位选) // 主函数 void main() { // 1.位选控制 wela=1; // 打开位选 P0=0xDE; // 位选3个数码管 1111 1000 wela=0; // 关闭位选 // 2.段选控制 dula=1; // 打开段选 P0=0x07; // 数码管显示“0” 0011 1111 dula=0; // 关闭段选 // 3.保持 while(1); }

3、数码管轮播显示6位

3.1效果图截屏

3.2代码

#include<reg52.h> // 头文件 #define uchar unsigned char #define uint unsigned int // 定义锁存器控制引脚 sbit dula=P3^4; // 锁存器U2(段选) sbit wela=P1^6; // 锁存器U3(位选) // 共阴极数码管段码表 uchar code seg_code[] = { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F // 9 }; // 延时函数 void delay(uint ms) { uint i, j; for(i = ms; i > 0; i--) for(j = 110; j > 0; j--); } // 数码管展示函数 void display_digit(uchar digit) { P0 = seg_code[digit]; // 发送数字对应的段码 dula=1; // 打开段选 delay(5); // 稳定信号 dula=0; // 关闭段选 } // 主函数 void main() { uchar digit; while(1) { // 1.位选控制 wela=1; // 打开位选 P0=0xc0; // 位选6个数码管 1100 0000 wela=0; // 关闭位选 // 2.段选控制 for(digit = 0; digit < 10; digit++) // 轮流显示0到9 { // 补充代码 if(digit != 0) { // 跳过0,只显示1~9 display_digit(digit); // 显示当前数字 delay(500); // 延时500ms,保证可见 } } } }

4、数码管轮播显示2位

4.1效果图截屏

4.2代码

#include<reg52.h> // 头文件 #define uchar unsigned char #define uint unsigned int // 定义锁存器控制引脚 sbit dula=P3^4; // 锁存器U2(段选) sbit wela=P1^6; // 锁存器U3(位选) // 共阴极数码管段码表 uchar code seg_code[] = { 0x3F, // 0 0x06, // 1 0x5B, // 2 0x4F, // 3 0x66, // 4 0x6D, // 5 0x7D, // 6 0x07, // 7 0x7F, // 8 0x6F // 9 }; // 延时函数 void delay(uint ms) { uint i, j; for(i = ms; i > 0; i--) for(j = 110; j > 0; j--); } // 数码管展示函数 void display_digit(uchar digit) { P0 = seg_code[digit]; // 发送数字对应的段码 dula=1; // 打开段选 delay(5); // 稳定信号 dula=0; // 关闭段选 } // 主函数 void main() { uchar digit; while(1) { // 1.位选控制 wela=1; // 打开位选 P0=0xF3; // 位选6个数码管 1100 0000 wela=0; // 关闭位选 // 2.段选控制 for(digit = 0; digit < 10; digit++) // 轮流显示0到9 { // 补充代码 display_digit(digit); // 显示当前数字 delay(500); // 延时500ms,保证可见 } } }

5、6位数码管依次显示1-6

5.1效果图截屏

5.2代码

#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit dula = P3^4; sbit wela = P1^6; uchar code TableDula[] = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F }; uchar code TableWela[] = { 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF }; void delay(uchar x) { uchar j; while(x--) { for(j = 0; j < 125; j++); } } void main() { uchar i; while(1) { for(i = 0; i < 6; i++) { P0 = 0x00; dula = 0; wela = 0; P0 = TableWela[i]; wela = 1; wela = 0; P0 = TableDula[i+1]; // 显示 1~6 dula = 1; dula = 0; delay(2); } } }

6、使数码管显示“13.14.15”

6.1效果图截屏

6.2代码

#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit dula = P3^4; sbit wela = P1^6; uchar code TableDula[] = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F }; uchar code TableDulaPoint[] = { 0xBF, 0x86, 0xDB, 0xCF, 0xE6, 0xED, 0xFD, 0x87, 0xFF, 0xEF }; uchar code TableWela[] = { 0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf }; void delay(uchar x) { uchar j; while(x--) { for(j = 0; j < 125; j++); } } void main() { uchar i; uchar displayData[6] = {1, 3, 1, 4, 1, 5}; // 显示 13.14.15 uchar pointFlag[6] = {0, 1, 0, 1, 0, 0}; // 第2位和第4位带小数点 while(1) { for(i = 0; i < 6; i++) { P0 = 0x00; dula = 0; wela = 0; P0 = TableWela[i]; wela = 1; wela = 0; if(pointFlag[i] == 1) P0 = TableDulaPoint[displayData[i]]; else P0 = TableDula[displayData[i]]; dula = 1; dula = 0; delay(2); } } }
http://www.jsqmd.com/news/625931/

相关文章:

  • 从Flannel迁移到Calico:Kubernetes网络插件实战切换指南
  • 双唾液酸神经节苷脂GD3
  • 强化学习部署相关概念区分: parameters.pkl、Checkpoint 与 TorchScript
  • Lychee多模态重排序模型效果展示:T→T纯文本检索中长尾query高分匹配案例
  • PlugY颠覆式体验完全指南:暗黑破坏神2单机限制的终极解决方案
  • 用R包sommer做基因组选择:从单性状到多性状GBLUP,一份给育种新手的保姆级代码指南
  • 别再为加工发愁!手把手教你将HFSS的3D模型变成Altium可用的PCB封装(以定向耦合器为例)
  • **发散创新:基于Rust的内存安全加固技术实战与深度剖析**在现代软件开发中,**内存
  • ESP32-S3玩转RGB屏幕:解决画面漂移的5个实战技巧(附配置代码)
  • 学Simulink——基于Simulink的重复控制抑制周期性负载转矩扰动
  • 2024年企业服务器CPU怎么选?从Intel至强Silver 4410Y到Gold 6248R的实战性能分析与避坑指南
  • 【实战指南】利用再生龙(Clonezilla)实现Linux服务器整盘灾备
  • 在飞腾D2000的麒麟V10上离线装Docker,我踩过的坑和填坑方法都在这了
  • eDNA原始数据分析 各文件含义
  • HarmonyOS6 ArkTS Tabs自定义页签切换联动
  • 从频谱分析到PCB布线:开关电源EMI优化的5个关键步骤(附实测数据)
  • 告别零样本提示:为什么在复杂业务里,Text2SQL微调才是王道?以DB-GPT-Hub为例
  • GitHub中文化插件实战指南:开发版与稳定版选型深度解析
  • 电商客服+导购智能体的设计与开发颇
  • AI未来3-5年十大核心方向
  • 基于Simulink的李雅普诺夫稳定性保障的非线性控制
  • 从81.7万细胞中解码“语法”:人类发育多组学图谱首次揭示调控序列的硬规则与软约束
  • 告别接线烦恼!用JDY-23蓝牙模块DIY一个手机遥控的智能小夜灯(附Arduino代码)
  • 把轮询时代收起来,ABAP Daemon 才是事件驱动应用的长驻底座
  • 告别手动复制:用Apifox Helper插件+访问令牌,实现IDEA与API文档的自动同步
  • 从AAAI2025看技术风向:Gaussian Splatting、Mamba、MoE这些词为啥这么火?
  • 让微信网页版重新可用:wechat-need-web浏览器插件完全攻略
  • 使用Microsoft Agent Framework构建C# AI代理雍
  • 学Simulink——基于Simulink的重复控制抑制周期性负载转矩扰动​
  • Verdi Transaction Debug避坑指南:从环境变量配置到FSDB文件生成,解决monitor采集不到Transaction的常见问题