📄 数码管(秒表).c
字号:
/***********************************/
/* */
/*该程序实现的功能: */
/* */
/* 数码管前两位显示分钟数, */
/* 后两位显示秒数 */
/* */
/*接线方法: */
/* */
/* 将P0口接在数码管的数据端 */
/* 再将4位位选端依次接在P2.0-P2.3 */
/* */
/***********************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar ge,shi,bai,qian; //定义数码管显示的四位数
uint fen,miao; //定义要显示的变量fen,miao
uchar code number[]={0x28,0xeb,0x32,0xa2,
0xe1,0xa4,0x24,0xea, //针对我们板子的数码管0-9编码
0x20,0xa0};
uchar wei[4]={0x07,0x0b,0x0d,0x0e}; //数码管位选编码
void delay(uint m) //延时函数
{
while(m--);
}
void main()
{
uint i=0; //定义变量i供for语句使用
while(1)
{
for(i=0;i<80;i++)
{
qian=fen/10; //将fen的值分散到前两位
bai=fen%10;
shi=miao/10;
ge=miao%10; //将miao的值分散到后两位
if(qian!=0)
{
P0=number[qian]; //不为0则显示fen的十位
P2=wei[0];
delay(300);
}
P0=number[bai]; //显示fen的个位
P2=wei[1];
delay(300);
P0=number[shi]; //显示秒的十位
P2=wei[2];
delay(300);
P0=number[ge]; //显示秒的个位
P2=wei[3];
delay(300);
}
miao++; //秒值按周期增加
if(miao==60) //当增加到60,清零,同时分加1
{
miao=0;
fen++;
}
if(fen==60) //fen增加到60则清零。
{
fen=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -