交通灯keil程序加2位数码管_在一个交通灯控制程序中,怎么添加个30秒的数码管显示程序。...

这是一个交通灯控制程序,使用keil进行开发,现需在60秒循环中添加30秒倒计时的数码管显示功能。代码已给出,包括延时函数、数码管显示函数、定时中断服务函数和主函数,实现了数码管对剩余30秒的实时显示。
摘要由CSDN通过智能技术生成

voidmain(void){while(1){sbitSNleft=0;sbitSNmiddle=1;sbitSNright=0;sbitEWleft=0;sbitEWmiddle=0;sbitEWright=0;sbitSNpeople=1;sbitEWpeople=0;Delay(60);sbitSNleft=1;sbitSNmid...

void main( void )

{ while( 1 )

{ sbit SNleft=0; sbit SNmiddle=1; sbit SNright =0; sbit EWleft =0; sbit EWmiddle =0;

sbit EWright =0; sbit SNpeople =1; sbit EWpeople =0;Delay( 60 );

sbit SNleft=1; sbit SNmiddle=0; sbit SNright =1; sbit EWleft =1; sbit EWmiddle =0;

sbit EWright =0; sbit SNpeople =1; sbit EWpeople =0;Delay( 60 );

sbit SNleft=0; sbit SNmiddle=0; sbit SNright =0; sbit EWleft =0; sbit EWmiddle =1;

sbit EWright =0; sbit SNpeople =0; sbit EWpeople =1;Delay( 60 );

sbit SNleft=0; sbit SNmiddle=0; sbit SNright =1; sbit EWleft =1; sbit EWmiddle =0;

sbit EWright =1; sbit SNpeople =0; sbit EWpeople =0;Delay( 60 ); }}

上面的就是交通灯的控制程序,在60秒的延时中,添加30秒的数码管显示程序,不知道怎么加进去。 #52 麻烦懂的帮看看 谢谢叻`

#include

code unsigned char table[10] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsigned char num[2]; //存放时间的每一位值

unsigned char count=30;

sbit s1 = P1^2; sbit s0 = P1^0;

void delay_ms(unsigned char k) /* 延迟函数 */

{ while(k>0)

{

unsigned int i;

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

k--;

}

}

void display(void) /*显示时间函数 */

{

P1|=0x0f;

P0=0xff;

s0=0;

P0=table[num[0]];

delay_ms(1);

P1|=0x0f;

P0=0xff;

s1=0;

P0=table[num[1]];

delay_ms(1);

}

void timer()interrupt 1 /* 硬件定时 */

{

static unsigned char c=0;

if (c<100)

{

c++;

}

else

{

c=0;

count--;

if(count==0)

{

count=30;

}

}

TH0=(65536-10000)/256;

TL0=(65536-10000)%256;

}

void time_work() /* 计算时间 */

{

num[1] = count /10;

num[0] = count%10;

}

void main() /* 主函数 */

{

TMOD=0x01; //开中断

TH0=(65536-10000)/256;//初始化

TL0=(65536-10000)%256;

EA=1;

ET0=1;

TR0=1;

while(1)

{

time_work();//计算时间

display(); //显示当前时间

}

}

这个是30秒的数码管倒计时显示

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值