我是靠谱客的博主 炙热冰棍,这篇文章主要介绍单片机(ISIS 7 Professional):简易数码管显示0~99计数代码项目,现在分享给大家,希望可以做个参考。

上一篇文章主要介绍用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;
		}
	}
}
/*仅供学习参考*/

最后

以上就是炙热冰棍最近收集整理的关于单片机(ISIS 7 Professional):简易数码管显示0~99计数代码项目的全部内容,更多相关单片机(ISIS内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部