单片机(ISIS 7 Professional):简易数码管显示0~99计数代码项目

2023-11-02

上一篇文章主要介绍用C语言制作一个按钮的简易0~9控制计数器,单片机(ISIS 7 Professional):简易数码管显示0~9计数代码项目https://blog.csdn.net/MOKI36_/article/details/122810882?spm=1001.2014.3001.5501

 

这一篇文章主要介绍用C语言制作一个按钮控制的简易0~99可加减计数器。

设计思路:开关控制是否为加法or减法,按钮B1实现计数,按钮B2实现清零。这版使用了两个数码管显示器,与0~9的计数器不同,这里赋予了右数码管为个位数,左数码管为十位数,当个位数数码管显示为9且要+1时,十位数数码管+1而个位数数码管回0.

基本电路图如下:

 使用的代码如下:

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int

uchar code count[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x00,0x90};//数码管段码表   

sbit swt=P3^0;
sbit key1=P3^2;
sbit key2=P3^3;//定义按键端口  

void DelayMS(uint x){//延时 
	uchar t;
	while(x--){		
		for(t=0;t<120;t++);
	}
}

void main(){
	uchar i=0,j=0;
	P0=0x00;
	P2=0x00;
	while(1){
		P0=count[i];
		P2=count[j];
		if(swt==1){	
			if(key1==0){
				DelayMS(50);
				while(!key1);	//按键松手检测,!key1为非零时为真    
				j++;	//加法  
			}if(j==10){
				j=0;
				DelayMS(50);
				while(!key1);
				i++;
			}
		}
		else{
			if(key1==0){
				DelayMS(50);
				while(!key1);	//按键松手检测,!key1为非零时为真    
				j--;	//减法  
			}if(j==-1){
				j=9;
				DelayMS(50);
				while(!key1);
				i--;
			}
		}
		//99时再加变为00,00再减为99.   
		if(i==10){
			i=0,j=0;
		}else if(i==-1){
			i=9,j=9;
		}
		//直接设置数码管显示的数值,这里用于归零       
		if(key2==0){
			DelayMS(50);
			i=0,j=0;
		}
	}
}
/*仅供学习参考*/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单片机(ISIS 7 Professional):简易数码管显示0~99计数代码项目 的相关文章

  • 多线程常见面试题

    常见的锁策略 这里讨论的锁策略 不仅仅局限于 Java 乐观锁 vs 悲观锁 锁冲突 两个线程尝试获取一把锁 一个线程能获取成功 另一个线程阻塞等待 乐观锁 预该场景中 不太会出现锁冲突的情况 后续做的工作会更少 悲观锁 预测该场景 非常容
  • 优雅的代码命名规范,代码如诗

    优雅的代码命名规范 管理类命名 传播类命名 回调类命名 监控类命名 内存管理类命名 过滤检测类命名 结构类命名 常见设计模式命名 解析类命名 网络类命名 CRUD命名 其他 END 日常编码中 代码的命名是个大的学问 能快速的看懂开源软件的
  • canvas详解05-变形

    几何变换 canvas现在被大量地运用于游戏等动画领域 最主要的归功于它提供的一系列几何变换方法 使得动画更加地容易 所以其几何变换是非常重要的一节 在本教程前面的部分中 我们已经了解了 Canvas 网格和坐标空间 到目前为止 我们只是根
  • 解决:The Apache Tomcat Native library which allows optimal performance in production environments was

    在启动Tomcat 6 0时发现第一条信息便是 The Apache Tomcat Native library which allows optimal performance in production environments was

随机推荐

  • 用C++编写一个猜数字游戏

    系统随机生成一个1到100之间的数字 玩家进行猜测 如果猜错 提示玩家数字过大或过小 如果猜对恭喜玩家胜利 并且推出游戏 include
  • RocketMQ rocketmq_client.log日志文件配置

    1 默认路径 项目添加RocketMQ以后启动项目时会在user home下创建一个rocketmq client log日志文件 文件全路径是 user home logs rocketmqlogs rocketmq client log
  • 日语动词变形(概念明确篇)

    首先 日语中的动词我们可以这样看 这是几种不同的分法 相互之间没有关联 A 一段动词 五段动词 変动词 変动词 B 自动词 他动词 按照属性来区分 C 意志动词 非意志动词 只包含部分日语动词 在动词变形上 我们只涉及第一种分法 其他两种这
  • UE4 开房 多人在线动作游戏------学习笔记

    先创建好UI界面 这个UI是用来创建房间 查找房间 进入房间和退出的 这个UI是用来显示搜索出来的房间 然后点击进入房间的 用了监听 别人才能搜索到服务器 点击开始搜索 显示搜索图标 开始对查找Listen的关卡 查找成功生成ServerB
  • 本地笔记软件_笔记软件obsidian重大更新

    obsidian是一个笔记软件 之前写了篇obsidian的介绍 https zhuanlan zhihu com p 212204160 zhuanlan zhihu com 这次obsidian发布了0 91版本 真正变得实用了 首先说
  • springmvc

    1 SpringMVC简介 1 1 什么是MVC MVC是一种软件架构的思想 将软件按照模型 视图 控制器来划分 M Model 模型层 指工程中的JavaBean 作用是处理数据 JavaBean分为两类 一类称为实体类Bean 专门存储
  • Camunda流程引擎笔记(四):Send Task,Receive Task

    流程引擎中 Send Task和 Service Task拥有相同的行为 都是通过回调Java代码完成相应逻辑 通常 Send Task和 Receive Task配合使用 一 Send Task 绘制一个Send Task流程 配置过程和
  • 网页服务器请求响应,网页的请求响应,你们所看到的网页跳转长这样子

    Servlet的认识在上一篇文章有介绍过 如有不同看法或者其他理解的话可以下方留言给我 我肯定虚心学习 说一说Servlet 网友说 有点料 我们生活在这一个互联网时代 每天都点击数据 交互数据 响应数据和请求数据 以上几个技术点 你能想到
  • nodejs使用websocket

    一 websocket简介 首先要知道什么是几个常用的互联网传输协议 http https tcp udp 1 http 超文本传输协议 HyperText Transfer Protocol 是一种无状态协议 就是说客户端发送一次请求 服
  • linux centos7配置网卡信息

    1 配置网卡 查看网卡信息 ifconfig 这里看到的网卡名是 ens33 ip 名称是 172 16 28 31 准备改成 172 16 28 226 2 进入 配置文件目录 cd etc sysconfig network scrip
  • CISP 相关知识点梳理

    第一章 1 1 信息安全保障基础 v信息安全视角 了解国家视角对信息安全关注点 网络战 关键基础设施保护 法律建设与标准化 相关概念 了解企业视角对信息安全关注点 业务连续性管理 资产保护 合规性 相关概念 了解个人视角对信息安全关注点 隐
  • 心音信号特征提取Matlab系统

    心音信号特征提取Matlab系统 心脏疾病是一种常见的疾病 如果能够通过自己开发的程序来对心音信号进行分析 检测就更加方便快捷了 本文章将介绍如何使用 Matlab 提取心音信号的频域特征值 包括频谱 能量谱 功率谱和倒频谱等 同时 将通过
  • 10个免费的web压力测试工具

    转自 http apps hi baidu com share detail 53794908 当一套程序写完或者一台服务器配置完成后 相必很多朋友会像我一样 非常想知道它到底能够承受多大的负载压力 那在本文中 就给大家介绍十个免费的可以用
  • Ubuntu安装*.deb程序,用gdebi

    Ubuntu 安装 deb程序的时候 用安装源 gdebi 命令 sudo gdebi deb 如果 Ubuntu 没有安装gdebi的 shell term 运行命令 sudo apt get install gdebi
  • PHP代码审计12—反序列化漏洞

    文章目录 一 PHP反序列化漏洞基础 1 序列化与反序列化 2 反序列化漏洞类型 3 常见的一些魔法函数 4 漏洞利用与防御 二 MRCTF2020 Ezpop 分析与利用 三 Phar反序列化例题分析 四 PHPmyadmin 2 x 反
  • 软件测试面试必问的几个问题,拿好标准答案,有备无患~

    在今年这个特殊的情况下 竞争压力增大 各大企业对于求职者的要求也随之增高 很多小伙伴都面临着这样的情况 千辛万苦拿到了面试机会 却因种种原因翻车 在面试的时候不能将自己的真实实力表现出来 在回答面试官问题时 抓不到重点 紧张 说话结巴 不知
  • leetcode312 戳气球

    题目 https leetcode cn com problems burst balloons 思路 动态规划 状态 dp i j 表示戳破 i j 范围内这些气球所能获得的最大数量的硬币 转移方程 dp i j max dp i j d
  • 给自己的软件添加数字签名&数字签名格式转换

    工具链接 解压密码为 解压密码 ziyuanxiaozhan outlook com 废话不说 先上图 添加数字签名前 添加正规数字签名后 数字签名相关文件的后缀 pfx一定包含或可以转换为所有文件 pem可以包含或可以转换为所有文件但不一
  • orcad caputre里面Off-Page connect和port的区别

    1 下图即为orcad caputre里面Off Page connect和port的符号 1 在同一张page里面想要实现信号的连接可以之间将两个端口连接起来 如下图 也可以将两个端口的网络符号改为一致 软件也认为是连在一起的 2 在不同
  • 单片机(ISIS 7 Professional):简易数码管显示0~99计数代码项目

    上一篇文章主要介绍用C语言制作一个按钮的简易0 9控制计数器 单片机 ISIS 7 Professional 简易数码管显示0 9计数代码项目https blog csdn net MOKI36 article details 122810