求改成汇编语言 真的不会 非专业学生

2019-07-15 12:18发布

/*  名称:定时器控制数码管动态显示说明:8 个数码管上分两组动态显示年月日与时分秒,本例的位显示延时用定时器实现。*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//段码,最后一位是“-”的段码uchar  codeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};//待显示的数据:09-12-25 23-59-58(分两组显示)uchar code Table_of_Digits[][8]={{0,9,10,1,2,10,2,5},{2,3,10,5,9,10,5,8}};uchar i,j=0;uint t=0;//主程序void main(){P3=0x80; //位码初值TMOD=0x00; //计数器 T0 方式 0TH0=(8192-4000)/32;  //4ms 定时TL0=(8192-4000)%32;IE=0x82;TR0=1; //启动 T0while(1);}//T0 中断函数控制数码管刷新显示void DSY_Show() interrupt 1{TH0=(8192-4000)/32;  //恢复初值TL0=(8192-4000)%32;P0=0xff; //输出位码和段码P0=DSY_CODE[Table_of_Digits[j]];P3=_crol_(P3,1); j=(j+1)%8;  //数组第 i 行的下一字节索引if(++t!=350) return; //保持刷新一段时间t=0;i=(i+1)%2; //数组行 i=0 时显示年月日,i=1 时显示时分秒}
图片2.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。