📄 ldd.c
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P0^2;
void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255
void display();
void keyboard(); // 显示子程序
uchar code dis_code[10]={0x60,0xfc,0x52,0x58,0xcc,0x49,0x41,0x7c,0x40,0x48};
uchar data dis_0;
uchar data dis_1;
uchar data dis_2;
uchar data dis_3;
uint data count; // 计数器
void main()
{
count = 0; // 计数器清零
P3 = 0x00; // 关所有数码管
while(1)
{
if(K1==0)
{
delay_ms(5);
if(K1==0)
count++;
while(!K1) ;
delay_ms(5);
while(!K1) ;
}
display();
}
}
void display()
{
uchar data i = 10; // 用于延长每个数(两位)的显示时间
dis_3 = count/1000; //显示千分位
dis_2 = count/100%10; //显示百分位
dis_1 = count/10%10;
dis_0 = count%10;
while(i--)
{
P3 = 0xef;
P2 = dis_code[dis_0];
delay_ms(5); // 取个位的段码
P3 = 0xff; // 开个位显示(P2.7口控制个位数码管)
P2=0xff;
// 延时1ms使两位数码管动态显示时能看清
P3 = 0xdf;
P2 = dis_code[dis_1];
delay_ms(5); // 取十位的段码
P3 = 0xff; // 开十位显示(P2.6口控制十位数码管)
P2=0xff; // 延时1ms作用同上
// 开十位显示(P2.6口控制十位数码管)
P3 = 0xbf;
P2 = dis_code[dis_2];
delay_ms(5);
P3 = 0xff;
P2=0xff; // 延时1ms作用同上
P3 = 0x7f;
P2 = dis_code[dis_3];
delay_ms(5);
P3 = 0xff;
P2=0xff;
}
}
void delay_ms(uchar ms) // 延时毫秒@12M,ms最大值255
{
uchar i;
while(ms--)
for(i = 0; i < 124; i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -