news 2026/4/16 4:29:56

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
作业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); } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 5:20:47

PII与LLM隐私保护实战指南胺

简介 AI Agent 不仅仅是一个能聊天的机器人&#xff08;如普通的 ChatGPT&#xff09;&#xff0c;而是一个能够感知环境、进行推理、自主决策并调用工具来完成特定任务的智能系统&#xff0c;更够完成更为复杂的AI场景需求。 AI Agent 功能 根据查阅的资料&#xff0c;agent的…

作者头像 李华
网站建设 2026/4/15 4:26:34

Rust的零大小类型ZST与幽灵数据PhantomData在类型系统中的作用

Rust语言以其独特的所有权系统和类型安全著称&#xff0c;而零大小类型&#xff08;ZST&#xff09;与幽灵数据&#xff08;PhantomData&#xff09;则是其类型系统中两个精妙的设计。它们看似无形&#xff0c;却在编译期静态检查、内存优化和泛型约束中扮演着关键角色。本文将…

作者头像 李华
网站建设 2026/4/15 3:18:03

AI服务延迟飙升900ms?深度解析Trace上下文跨模型传递失效、异步任务丢失、RAG流水线断链三大顽疾,附Grafana+OpenTelemetry+Jaeger黄金配置模板

第一章&#xff1a;AI原生软件研发链路追踪系统搭建 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发过程高度依赖模型训练、提示工程、推理服务与反馈闭环的协同演进&#xff0c;传统APM工具难以捕获Prompt调用链、LLM Token级耗时、RAG检索上下文传播路径等关…

作者头像 李华
网站建设 2026/4/11 23:28:51

AI圈爆火的 “龙虾”,到底是解放你还是消耗你?

最近AI圈的风向&#xff0c;完全被一只龙虾带走了。你想想&#xff0c;有个帮你干活&#xff0c;查文档、调工具、改bug的AI员工&#xff0c;这不就是你梦寐以求吗&#xff1f;号称“啥也不用做”&#xff0c;结果“除了正事啥都做了”这几天一打开朋友圈&#xff0c;全是“我装…

作者头像 李华
网站建设 2026/4/13 2:15:19

数据预处理方法

数据预处理是数据分析与挖掘的关键环节&#xff0c;其质量直接影响模型的准确性和可靠性。在现实场景中&#xff0c;原始数据往往存在噪声、缺失或格式不一致等问题&#xff0c;若不加以处理&#xff0c;可能导致分析结果偏差甚至失效。掌握高效的数据预处理方法成为数据科学家…

作者头像 李华
网站建设 2026/4/11 23:26:32

【赵渝强老师】Docker容器的跨节点通信

在同一台宿主机上&#xff0c;不同的Docker容器可以借助docker0的网桥直接进行通信。而在实际的项目中&#xff0c;一个复杂的系统往往需要部署多个组件。为了提高组件的运行的效率往往这些组件需要部署到不同的主机上。那么在Docker中如何实现容器的跨主机通信呢&#xff1f;目…

作者头像 李华