c语言程序转换为汇编语言,求大神c语言程序转换成汇编语言程序。

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

#include //我们对51单片机编程,要引用头函数

sbit led_A=P0^0; //数码管位

sbit led_B=P0^1; //数码管位

//***************led指示灯引脚定义*****************//

sbit dx_R=P0^2;

sbit dx_Y=P0^3;

sbit dx_G=P0^4;

sbit nb_R=P0^7;

sbit nb_Y=P0^6;

sbit nb_G=P0^5;

bit flag=0;

sbit key_stop=P3^3;

char N=25; //初始时间是25

char tab_disp[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//共阳极码表

/*延时子函数*/

void delay(int t ){while(t--);}

/*显示子函数*/

void display(char dat)

{

led_A=led_B=0; //先位灭显

P2=0XFF; //再段灭显

P2=tab_disp[dat/10]; //赋显示的数

if(dat/10)led_A=1;

delay(1000);//延时

P2=0XFF;led_A=led_B=0; //段灭显位灭显

P2=tab_disp[dat%10]; //赋显示的数

led_B=1;

delay(1000); //延时

}

//这个是循环显示60遍显示的函数

void deal(char m)

{

int t=60;

while(t--)display(m); //循环显示60遍显示的函数

}

void KEY() //按键函数

{

unsigned char save; //定义保存灯状态的变量

if(key_stop==0) //按键是否按下

{

delay(20); //延时去抖

if(key_stop==0) //再次判断按键是否按下

{

flag=1; //紧急状态标志位置1,进入紧急通行状态

save=P0; //保存灯的状态

P0=0x84; //全部亮红灯

while(key_stop==0); //按键释放,当按键一直按下的时候,程序就会一直执行这里,直到按键按下

while(flag==1) //如果是紧急状态就一直执行下面的程序

{

if(key_stop==0) //在紧急状态时判断按键是否按下

{

delay(50); //延时去抖

if(key_stop==0) //再次判断按键是否按下

{

flag=0; //紧急状态标志位清零,退出紧急状态

P0=save; //LED灯恢复到之前状态

while(key_stop==0); //按键释放

}

}

}

}

}

}

/*主函数*/

void main(void)

{

char i;

EA=1; //全局中断开关

IT1=1; //外部中断下降沿有效

EX1=1;

while(1)

{

N=25; //初始时间是25

dx_R=1;dx_Y=0;dx_G=0;//指示灯0是亮,1是灭

nb_R=0;nb_Y=0;nb_G=1;//指示灯0是亮,1是灭

for(i=N;i>0;i--) //一秒一秒的减

{

deal(i);

KEY();

}

dx_R=1;dx_Y=0;dx_G=0;//指示灯0是亮,1是灭

nb_R=0;nb_Y=1;nb_G=0;//指示灯0是亮,1是灭

N=5; //时间变成5

for(i=N;i>0;i--) //一秒一秒的减

{

deal(i);

KEY();

}

dx_R=0;dx_Y=0;dx_G=1;//指示灯0是亮,1是灭

nb_R=1;nb_Y=0;nb_G=0;//指示灯0是亮,1是灭

N=25;//时间变成25

for(i=N;i>0;i--) //一秒一秒的减

{

deal(i);

KEY();

}

dx_R=0;dx_Y=1;dx_G=0;//指示灯0是亮,1是灭

nb_R=1;nb_Y=0;nb_G=0; //指示灯0是亮,1是灭

N=5; //时间变成5

for(i=N;i>0;i--) //一秒一秒的减

{

deal(i);

KEY();

}

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值