c语言时间错误的是什么意思,C语言显示系统时间

本文介绍了一个基于51单片机的简单应用案例,通过使用按键实现LED数值的增减,并实时更新显示。代码中包含了对P0口的7段数码管进行动态扫描显示的方法,以及对P3口的两个按键进行读取和响应的处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include

#include

sbit k_add = P3^1;

sbit k_sub = P3^4;

unsigned char code SEG7[] = {

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};

unsigned char DISP_BUFF[] = {

10, 10, 10, 10, 10, 10, 10, 10,

1, 3, 9, 2, 5, 8, 0, 7, 4, 6, 3, 2,

10, 10, 10, 10, 10, 10, 10, 10};

unsigned char j = 0, k = 1;

void DelayMS(unsigned int x)

{

unsigned char i;

while(x--) for(i = 200; i > 0; i--);

}

void display(unsigned char x)

{

unsigned char i, w = 128;

for(i = 0; i < 8; i++) {

P0 = SEG7[DISP_BUFF[i + k]];

P2 = w; DelayMS(1); P2 = 0;

w = _cror_(w, 1);

}

j++;

if (j > x) {

j = 0;

k++; if (k == 20) k = 0;

}

}

void main()

{

unsigned char d = 30;

while(1) {

if (!k_add) {

display(d);

if (!k_add) {

d += 2; if (d > 50) d = 50;

while (!k_add) display(d);

}

}

if (!k_sub) {

display(d);

if (!k_sub) {

d -= 2; if (d < 10) d = 10;

while (!k_sub) display(d);

}

}

display(d);

P1 = d;

}

}

取消

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值