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

单片机语言实例:2、点亮数码管的多种方法

一、共阳数码管静态显示

程序实例1:

#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义void main (void)
{P1=0xc0;   	//二进制 为 1100 0000  参考数码管排列,//可以得出0对应的段点亮,1对应的段熄灭,结果显示数字"0"   while(1){}
}

二、1个共阳数码管显示变化的数字

程序实例2:

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义// 显示数值表0-9
unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{unsigned char i;  //定义一个无符号字符型局部变量 i 取值范围 0~255while (1)         //主循环{for(i=0;i<10;i++)   //加入 for循环,表明for循环大括号中的程序循环执行10次{P1=dofly_table[i]; //循环调用表中的数值Delay(60000);      //延时,方便观看数字变化}}
}/*------------------------------------------------延时函数,含有输入参数 unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}

三、单个数码管模拟水流

程序实例3:

#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{unsigned char i;  //定义一个无符号字符型局部变量 i 取值范围 0~255while (1)         //主循环{P1=0xfe;for(i=0;i<6;i++)   //加入 for循环,表明for循环大括号中的程序循环执行6次{Delay(10000);P1<<=1;P1|=0x01;         }}
}
/*------------------------------------------------延时函数,含有输入参数 unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}

四、按键控制单个数码管显示

程序实例4:

#include<reg52.h> //包含头文件,一般情况不需要改动,
//头文件包含特殊功能寄存器的定义// 显示数值表0-9
unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{                 while (1)         //主循环{switch(P3)  //P3口作为独立按键输入端,检测端口电平并做如下判断                            {case 0xfe:	P1=table[1];	break;//0xfe = 1111 1110,case 0xfd:	P1=table[2];	break;//调用表中的第三个元素case 0xfb:	P1=table[3];	break;case 0xf7:	P1=table[4];	break;case 0xef:	P1=table[5];	break;case 0xdf:	P1=table[6];	break;case 0xbf:	P1=table[7];	break;case 0x7f:	P1=table[8];	break;default:	break;    //如果都没按下,直接跳出}}
}

五、单个数码管指示逻辑电平

程序实例5:

#include<reg52.h> //包含头文件,一般情况不需要改动,//头文件包含特殊功能寄存器的定义sbit IO_IN = P3^2;  //定义IO 信号输入端/*------------------------------------------------主函数
------------------------------------------------*/
void main (void)
{                while (1)         //主循环{if(IO_IN==1)//如果端口检测到1表示高电平P1=0x89;  //"H"elseP1=0xc7;  //"L"//否则表示低电平,这里使用 条件语句 if 。。。else 。。。 }
}

六、8位数码管显示其中之一

程序实例6:

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define	DataPort 	P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1	=	P2^2;//定义锁存使能端口 段锁存
sbit LATCH2	=	P2^3;//                 位锁存/*------------------------------------------------主函数
------------------------------------------------*/
main()
{while(1){DataPort=0xfe; //取位码 第一位数码管选通,即二进制1111 1110LATCH2=1;     //位锁存LATCH2=0;DataPort=0x4F; //取显示数据,段码 “3”共阴字符码LATCH1=1;     //段锁存LATCH1=0;}
}

七、8位数码管静态显示其中之二

程序实例7:

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort 	P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1	=	P2^2;//定义锁存使能端口 段锁存
sbit LATCH2	=	P2^3;//                 位锁存/*------------------------------------------------主函数
------------------------------------------------*/
main()
{while(1){DataPort=0x7e; //取位码 第一位数码管选通,即二进制0111 1110LATCH2=1;     //位锁存LATCH2=0;DataPort=0x4F; //取显示数据,段码 “3”共阴字符码LATCH1=1;     //段锁存LATCH1=0;}
}

八、8位数码管动态扫描显示

程序实例8:

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1	=	P2^2;//定义锁存使能端口 段锁存
sbit LATCH2	=	P2^3;//                 位锁存// 显示段码值0123456789
unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//分别对应相应的数码管点亮,即位码
unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
main()
{unsigned char i=0;while(1){DataPort = WeiMa[i]; //取位码 LATCH2 = 1;     //位锁存LATCH2 =0;DataPort = DuanMa[i]; //取显示数据,段码LATCH1 = 1;     //段锁存LATCH1 = 0;Delay(200); //扫描间隙延时,时间太长会闪烁,太短会造成重影i++;if(8 == i)    //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位i = 0;}
}
/*------------------------------------------------延时函数,含有输入参数 unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}

九、8位数码管动态扫描原理演示

程序实例9:

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1 = P2^2;//定义锁存使能端口 段锁存
sbit LATCH2 = P2^3;//                 位锁存unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值01234567
unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
main()
{unsigned char i=0;while(1){DataPort = WeiMa[i]; //取位码 LATCH2 = 1;     //位锁存LATCH2 = 0;DataPort=dofly_DuanMa[i]; //取显示数据,段码LATCH1 = 1;     //段锁存LATCH1 = 0;Delay(60000); // 扫描间隙延时,时间太长会闪烁,太短会造成重影,//这里故意延长时间,方便直观看出动态扫描原理i++;if(8 == i)    //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位i = 0;}
}
/*------------------------------------------------延时函数,含有输入参数 unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}

十、数码管显示动态数据

程序实例10:

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#define DataPort P0 //定义数据端口 程序中遇到DataPort 则用P0 替换
sbit LATCH1 = P2^2;//定义锁存使能端口 段锁存
sbit LATCH2 = P2^3;//                 位锁存unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};// 显示段码值0~F
unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码void Delay(unsigned int t); //函数声明/*------------------------------------------------主函数
------------------------------------------------*/
main()
{unsigned char i=0,num;unsigned int j;while(1){DataPort=dofly_WeiMa[i]; //取位码 LATCH2=1;     //位锁存LATCH2=0;DataPort=dofly_DuanMa[num+i]; //取显示数据,段码LATCH1=1;     //段锁存LATCH1=0;Delay(200); // 扫描间隙延时,时间太长会闪烁,太短会造成重影i++;j++;if(8==i)    //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位i=0;if(j==500)  //检测当前数值显示了一小段时间后,需要显示的数值加1,实现数据显示的变化{j=0;num++;if(num==9)num=0;}}
}
/*------------------------------------------------延时函数,含有输入参数 unsigned int t,无返回值unsigned int 是定义无符号整形变量,其值的范围是0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{while(--t);
}

相关文章:

单片机语言实例:2、点亮数码管的多种方法

一、共阳数码管静态显示 程序实例1&#xff1a; #include<reg52.h> //包含头文件&#xff0c;一般情况不需要改动&#xff0c; //头文件包含特殊功能寄存器的定义void main (void) {P10xc0; //二进制 为 1100 0000 参考数码管排列&#xff0c;//可以得出0对应的段点…...

C#学习 - 初识类与名称空间

类&#xff08;class&#xff09;& 名称空间&#xff08;namespace&#xff09; 类是最基础的 C# 类型&#xff0c;是一个数据结构&#xff0c;是构成程序的主体 名称空间以树型结构组织类 using System; //前面的using就是引用名称空间 //相当于C语言的 #include <..…...

Python爬取电影信息:Ajax介绍、爬取案例实战 + MongoDB存储

Ajax介绍 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种用于在Web应用程序中实现异步通信的技术。它允许在不刷新整个网页的情况下&#xff0c;通过在后台与服务器进行数据交换&#xff0c;实时更新网页的一部分。Ajax的主要特点包括&#xff1a; 异步通…...

JavaScript的面向对象

一、认识对象 1.概述 对象&#xff08;object&#xff09;是 JavaScript 语言的核心概念&#xff0c;也是最重要的数据类型。 什么是对象&#xff1f;简单说&#xff0c;对象就是一组“键值对”&#xff08;key-value&#xff09;的集合&#xff0c;是一种无序的复合数据集合…...

MybatisPlus 核心功能 条件构造器 自定义SQL Service接口 静态工具

MybatisPlus 快速入门 常见注解 配置_软工菜鸡的博客-CSDN博客 2.核心功能 刚才的案例中都是以id为条件的简单CRUD&#xff0c;一些复杂条件的SQL语句就要用到一些更高级的功能了。 2.1.条件构造器 除了新增以外&#xff0c;修改、删除、查询的SQL语句都需要指定where条件。因此…...

TSN时间敏感网络

目录 时间敏感网络介绍 子协议介绍 时间同步 IEEE802.1AS 调度和流量整形 IEEE802.1Q IEEE802.1Qbv IEEE802.1cr IEEE802.1Qbu IEEE802.1Qch IEEE802.1Qav IEEE802.1Qcc 纠错机制与安全 IEEE802.1Qci IEEE802.1CB IEEE802.1Qca 参考 时间敏感网络介绍 TSN(Tim…...

【2023年数学建模国赛】C题解题思路

第一问 要求分析分析蔬菜各品类及单品销售量的分布规律及相互关系。该问题可以拆分成三个角度进行剖析。 1&#xff09;各种类蔬菜的销售量分布、蔬菜种类与销售量之间的关系&#xff1b;2&#xff09;各种类蔬菜的销售量的月份分布、各种类蔬菜销售量与月份之间的相关关系&a…...

5分钟 将“.py”文件转为“.pyd”文件

代码&#xff1a; from distutils.core import setup from distutils.extension import Extension from Cython.Build import cythonize import osfile_list os.listdir("./") extensions [] for file in file_list:if file.endswith(".py") and file !…...

python 入门到精通(一)

文章目录 1.使用pycharm进行第一个程序的编写2.python基础语法篇2.1 常用的值类型2.2 注释2.3 变量2.4 数据类型2.5 数据类型转换2.6 什么是标识符2.7 运算符2.8 字符串扩展2.8.1 字符串拼接2.8.2 字符串格式化2.8.3 格式化的精度控制2.8.4 字符串格式化 - 快速写法2.8.5 字符串…...

AJAX (Asynchronous JavaScript And XML)异步的JavaScript 和 XML

1、概念 Asynchronous JavaScript And XML 异步的JavaScript 和 XML异步和同步&#xff1a;客户端和服务器端相互通信的基础上 同步&#xff1a;客户端必须等待服务端的响应。在等待的期间客户端不能做其他操作。异步&#xff1a;客户端不需要等待服务器端的响应。在服务器…...

华为云云耀云服务器L实例评测|安装Java8环境 配置环境变量 spring项目部署 【!】存在问题未解决

目录 引出安装JDK8环境查看是否有默认jar上传Linux版本的jar包解压压缩包配置环境变量 上传jar包以及运行问题上传Jar包运行控制台开放端口访问失败—见问题记录关闭Jar的方式1.进程kill -92.ctrl c退出 问题记录&#xff1a;【!】未解决各种方式查看端口情况联系工程师最后排查…...

安卓多渠道打包(五)360加固walle多渠道打包

背景&#xff1a; 1、360加固宝&#xff0c;签名收費了&#xff0c;脚本上传加固也针对特定帐号才可实现。 内容 本文将会分享安卓项目中&#xff0c;使用360加固&#xff0c;再用walle签名&#xff0c;产出多渠道加固包的全流程。 环境 win10 jdk11 as2022 gradle7.5 最…...

Jmeter 实现 mqtt 协议压力测试

1. 下载jmeter&#xff0c;解压 https://jmeter.apache.org/download_jmeter.cgi 以 5.4.3 为例&#xff0c;下载地址&#xff1a; https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip linux下解压&#xff1a; unzip apache-jmeter-5.4.3.zip 2. 下载m…...

蓝桥杯官网练习题(凑算式)

类似填空题&#xff1a; ①算式900&#xff1a; https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501https://blog.csdn.net/s44Sc21/article/details/132746513?spm1001.2014.3001.5501 ②九宫幻方③七星填数④幻方填空&#xff1a;https:/…...

机器学习实战-系列教程5:手撕线性回归4之非线性回归(项目实战、原理解读、源码解读)

&#x1f308;&#x1f308;&#x1f308;机器学习 实战系列 总目录 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 手撕线性回归1之线性回归类的实现 手撕线性回归2之单特征线性回归 手撕线性回归3之多特征线性回归 手撕线性回归4之非线性回归 1…...

【C语言基础】那些你可能不知道的C语言“潜规则”

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

android framework之Applicataion启动流程分析(三)

现在再回顾一下Application的启动流程&#xff0c;总的来说&#xff0c;虽然进程的发起是由ATMS服务发起的&#xff0c;但是进程的启动还是由AMS负责&#xff0c;所以需要调用AMS的startProcess()接口完成进程启动流程&#xff0c;AMS要处理的事情很多&#xff0c;它将事务交给…...

使用Scrapy框架集成Selenium实现高效爬虫

引言&#xff1a; 在网络爬虫的开发中&#xff0c;有时候我们需要处理一些JavaScript动态生成的内容或进行一些复杂的操作&#xff0c;这时候传统的基于请求和响应的爬虫框架就显得力不从心了。为了解决这个问题&#xff0c;我们可以使用Scrapy框架集成Selenium来实现高效的爬…...

Maven 和 Gradle 官方文档及相关资料的网址集合

文章目录 官方MavenGradle 笔者MavenGradle 官方 Maven Maven 仓库依赖包官方查询通道&#xff1a;https://mvnrepository.com/ Maven 插件官方文档&#xff1a;https://maven.apache.org/plugins/ 安卓依赖包官方查询通道*&#xff1a;https://maven.google.com/web/ Gra…...

docker概念、安装与卸载

第一章 docker概念 Docker 是一个开源的应用容器引擎。 Docker 诞生于2013年初&#xff0c;基于 Go 语言实现&#xff0c;dotCloud 公司出品&#xff0c;后改名为 Docker Inc。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发…...

FireRedASR-AED-L生产环境实践:医院门诊录音→结构化病历初稿生成

FireRedASR-AED-L生产环境实践&#xff1a;医院门诊录音→结构化病历初稿生成 1. 引言&#xff1a;从录音到病历的自动化挑战 想象一下这个场景&#xff1a;一位医生结束了一天的门诊&#xff0c;面对几十段与患者的对话录音&#xff0c;需要手动整理成规范的电子病历。这个过…...

Linux磁盘空间被‘幽灵文件‘占满?手把手教你用lsof+truncate彻底清理(附排查流程图)

Linux磁盘空间被幽灵文件占满&#xff1f;手把手教你排查与清理 你是否遇到过这样的场景&#xff1a;服务器磁盘明明显示已满&#xff0c;但用du命令统计却只占用了很小一部分空间&#xff1f;这种"空间消失"现象通常是由于文件被删除但仍在被进程占用导致的。本文将…...

Unity游戏开发中的抽象类与虚方法:如何优雅地管理游戏状态?

Unity游戏开发中的抽象类与虚方法&#xff1a;如何优雅地管理游戏状态&#xff1f; 在Unity游戏开发中&#xff0c;状态管理是构建复杂游戏逻辑的核心挑战之一。想象一下&#xff0c;当玩家从主菜单切换到战斗场景&#xff0c;再进入暂停界面时&#xff0c;游戏需要精确控制每个…...

Phi-3-Mini-128K入门必看:streaming=True对长文本生成体验的提升

Phi-3-Mini-128K入门必看&#xff1a;streamingTrue对长文本生成体验的提升 1. 工具概览 Phi-3-Mini-128K是基于微软Phi-3-mini-128k-instruct模型开发的轻量化对话工具&#xff0c;专为本地部署和高效推理优化。这个工具严格遵循官方推荐规范&#xff0c;通过多项技术创新解…...

Vue项目实战:Element-UI树形下拉选择器封装全流程(附完整代码)

Vue项目实战&#xff1a;Element-UI树形下拉选择器深度封装指南 在复杂表单场景中&#xff0c;树形下拉选择器是平衡空间利用率和操作效率的经典解决方案。不同于常规平铺式选择器&#xff0c;它通过层级结构组织海量选项&#xff0c;特别适合部门选择、分类导航等具有父子关系…...

小白也能玩转大模型!Qwen2.5-7B-Instruct一键Docker部署实战

小白也能玩转大模型&#xff01;Qwen2.5-7B-Instruct一键Docker部署实战 1. 前言&#xff1a;为什么选择Qwen2.5-7B-Instruct 大语言模型正在改变我们与技术交互的方式&#xff0c;而阿里通义千问的Qwen2.5系列无疑是当前最值得关注的模型之一。作为1.5B/3B轻量版的进阶旗舰款…...

AIGlasses_for_navigation开源可部署指南:自主定制YOLO分割模型全流程

AIGlasses_for_navigation开源可部署指南&#xff1a;自主定制YOLO分割模型全流程 1. 项目介绍与核心价值 AIGlasses_for_navigation是一个基于YOLO分割模型的智能视觉系统&#xff0c;专门为辅助导航场景设计。这个开源项目最初是为AI智能眼镜导航系统开发的核心组件&#x…...

Phi-3-vision-128k-instruct效果展示:表格截图→结构化数据提取→趋势分析文字生成

Phi-3-vision-128k-instruct效果展示&#xff1a;表格截图→结构化数据提取→趋势分析文字生成 1. 模型简介 Phi-3-Vision-128K-Instruct是当前最先进的轻量级开放多模态模型&#xff0c;属于Phi-3模型家族。这个模型特别擅长处理图文对话任务&#xff0c;支持长达128K的上下…...

突破NCM格式限制:NCMconverter全方位技术指南

突破NCM格式限制&#xff1a;NCMconverter全方位技术指南 【免费下载链接】NCMconverter NCMconverter将ncm文件转换为mp3或者flac文件 项目地址: https://gitcode.com/gh_mirrors/nc/NCMconverter 一、告别格式枷锁&#xff1a;数字音乐的自由困境 在流媒体音乐普及的…...

Z-Image-Turbo_Sugar脸部Lora进阶:利用卷积神经网络优化Lora特征融合效果

Z-Image-Turbo_Sugar脸部Lora进阶&#xff1a;利用卷积神经网络优化Lora特征融合效果 最近在玩Z-Image-Turbo_Sugar这个脸部Lora的朋友&#xff0c;可能都遇到过类似的情况&#xff1a;生成的人像乍一看挺不错&#xff0c;五官精致&#xff0c;但仔细端详&#xff0c;总觉得皮…...