上一篇文章主要介绍用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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复