两位计数器显示
- 设计思路
电路设计
- 使用AT89C51单片机,外部引出两个管脚P3^3和P3^4当作按钮分别作为start和stop,对计时状态进行控制,由于是两位计数器,引出两个管脚P3^0和P3^1作为两个数码管的片选信号,工作时快速交替利用人眼视觉暂留效应实现不间断显示。
- 显示屏选用共阳极7段两位数码管7seg-mpx2-ca-blue,将其A至G引脚接至单片机AT89C51单片机的P2组引脚,工作时单片机向显示屏发出数据,进行计数值的显示。
代码设计
- 根据共阳极数码管特性,提前在函数内部定义一个arr[10]数组,以16进制形式包含了0-9数值的数据,使用时直接调用数组中的一个就可以。
- 定义了一个时间延时函数delay(int d),用于作为计数器两位数值高位和低位的交替时间。
- 利用整型变量i从0-99自增作为时间,将i/10就可以得到高位的值,i%10就得到低位的值,从而完成计数。
- 原理图
- 测试过程及结果说明
-
1.在keil端进行代码编写,将实验代码进行编译,结果正确无任何错误。
-
2.打开Proteus软件,绘制原理图,放置元件,双击AT89C51单片机芯片,将keil端编译之后生成的HEX文件加载到芯片内。
-
启动仿真
按下第一个按钮,即P3^3对应的start按钮,电路开始计数,显示屏开始显示数字并自增,如下图
-
然后按下第二个按钮,即P3^4对应的stop按钮,电路暂停计数,显示屏数字保持不变,如下图
-
最后按下第一个按钮start,电路从0开始计数
-
#include
sbit S1 = P3^0; // Select line 1 for Display 1
sbit S2 = P3^1; // Select Line 2 for Display 2
sbit START = P3^3; //START
sbit STOP = P3^4; //STOP
void delay(int d)
{
int i,j;
for(i=0;i
for(j=0;j
}
void main()
{
//DP
int arr[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x90}; // ******Your codes is required here!!!
int i,on,off;
static int num1,num2,temp1,temp2;
while(1){服务器托管网
if ((START==0)&&(STOP==1))
{
on = 1;
off = 0;
}
else
{
on = 0;
off = 1;
}
while(on && !off)
{
for(i=0;i
{
num1 = i/10; //First Digit Separated
temp1 = num1;
S1 = 1; //Select Line 1
S2 = 0;
P2 = arr[num1]; //Display 1 will indicate number
delay(45);
num2 = 服务器托管网i%10; //Second Digit Separated
// *****Your codes is required here!!!
temp2 = num2;
S1 = 0;
S2 = 1;
P2 = arr[num2];
delay(45);
if(STOP==0)
{
off = 1;
on = 0;
break;
}
}
while(off && !on)
{
S1=1;
S2=0;
P2 = arr[temp1];
delay(10);
S1=0;
S2=1;
P2 = arr[temp2];
delay(30);
if (START==0)
{
off = 0;
on = 1;
break;
}
}
}
}
}
#include sbit S1 = P3^0; // Select line 1 for Display 1 sbit S2 = P3^1; // Select Line 2 for Display 2 sbit START = P3^3; //START sbit STOP = P3^4; //STOP void delay(int d) { int i,j; for(i=0;i
可私信获取项目文件
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: Excelize 开源基础发布 2.8.1 版本,2024 年首个更新
Excelize 是 Go 语言编写的用于操作电子表格办公文档的开源基础库,基于 ISO/IEC 29500、ECMA-376 国际标准。可以使用它来读取、写入由 Microsoft Excel、WPS、Apache OpenOffice、LibreOffic…