c语言数码管0xc0,各位大神,如何用C语言实现在数码管上实现1234同时亮

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*将移位寄存器内的数据锁存到输出寄存器并显示                                              */

/*                                                                                                             */

/********************************************************/

void OUT_595(void)

{

RCK_595=0;

_nop_();

_nop_();

RCK_595=1;                        //上升沿将数据送到输出锁存器

_nop_();

_nop_();

_nop_();

RCK_595=0;

}

/********************************************************

*

*   主程序

*

*********************************************************/

main()

{

SCLK_595=0;

RCK_595=1;

while(1)

{

uchar i;

LED1=0;

LED2=0;

LED3=0;

LED4=0;

for (i=0; i<16; i++)

{

temp=DAT[i];          //取显示数据

WR_595();

OUT_595();

delay(200);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较复杂的问题,需要详细的解释和代码实现。以下是实现0到999s的倒计时的C语言代码: ```c #include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar code table[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x00}; void delay(uint z) // 延时函数 { uint x, y; for(x = z; x > 0; x--) for(y = 110; y > 0; y--); } void main() { uchar cnt = 0, sec = 0, min = 0, hour = 0; while(1) { P0 = 0xff; // 关闭数码管 P2 = 0x01; // 选择第1位数码管 P0 = table[sec % 10]; // 显示秒个位 delay(5); P0 = 0xff; // 关闭数码管 P2 = 0x02; // 选择第2位数码管 P0 = table[sec / 10]; // 显示秒十位 delay(5); P0 = 0xff; // 关闭数码管 P2 = 0x04; // 选择第3位数码管 P0 = table[min % 10]; // 显示分个位 delay(5); P0 = 0xff; // 关闭数码管 P2 = 0x08; // 选择第4位数码管 P0 = table[min / 10]; // 显示分十位 delay(5); P0 = 0xff; // 关闭数码管 P2 = 0x10; // 选择第5位数码管 P0 = table[hour % 10]; // 显示小时个位 delay(5); P0 = 0xff; // 关闭数码管 P2 = 0x20; // 选择第6位数码管 P0 = table[hour / 10]; // 显示小时十位 delay(5); cnt++; if(cnt == 20) // 每计数到20,表示过了1秒 { cnt = 0; sec--; if(sec == -1) // 如果秒数小于0,则表示1分钟已过 { sec = 59; min--; if(min == -1) // 如果分钟数小于0,则表示1小时已过 { min = 59; hour--; if(hour == -1) // 如果小时数小于0,则表示计时结束 break; } } } } } ``` 以上代码通过循环控制和延时函数来实现倒计时功能,并且使用了数组来存储数码管显示的数字。在主函数,我们定义了计时器的小时、分钟和秒数,并通过循环控制和延时函数实现了倒计时的功能。同时,我们在循环不断更新数码管显示的数字,以便实时显示倒计时的剩余时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值