请高手帮我解读一下单片机程序段(1),搞了一天没搞明白,急!

请高手帮我解读一下单片机程序段(1),搞了一天没搞明白,急!,第1张

flag 是一个结构体,它的每一个变量只占用1个位,这样可以节省空间,尤其是在嵌入式开发中。这种优化是很有必要的。

struct flag

{

unsigned time_1s:1;

unsigned key_scan:1;

unsigned task_time:1;

unsigned task_en:1;

unsigned run_flag:1;

}

flag1; //定义了一个结构体变量flag1。

void out_time(void)

{

if(flag1time_1s==1)//如果结构体变量的成员变量time_1s为1则执行

{

flag1time_1s=0; //就是清除一个标志

if(flag1run_flag==1) //后面的都是变量标志的处理。

{

if(step_cont>=8)

{

step_cont=0;

}

if(step_cont==0)

{

run_cont[0]=0;

run_cont[1]++;

dsp_buf[4]=LED_TAP[step_cont];

dsp_buf[5]=LED_TAP2[step_cont];

dsp_buf[0]=(run_step_time[step_cont]-cont)/10;

dsp_buf[1]=(run_step_time[step_cont]-cont)%10; //这些 *** 作是分离一个整数的个位和十位

dsp_buf[9]=(run_step_time[step_cont]-cont)/10; //具体要看其他程序

dsp_buf[8]=(run_step_time[step_cont]-cont)%10;

dsp_buf[2]=((set_cont-cont_set_b)-run_cont[1])/10;

dsp_buf[3]=((set_cont-cont_set_b)-run_cont[1])%10;

dsp_buf[6]=((set_cont-cont_set_b)-run_cont[1])/10;

dsp_buf[7]=((set_cont-cont_set_b)-run_cont[1])%10;

}

}

if(cont==run_step_time[step_cont])

{

step_cont++;

cont=0;;

}

cont++;

}

XOR AX,AX ;清空AX

MOV CX,0AH ;将A赋给CX

JCXZ NEXT ;cx为零时跳到next

AGAIN: ADD AX,CX ;CX+Ax-》AX

LOOP AGAIN ;跳回again

NEXT: …

因为cx永远不为零,看起来是个死循环。。

建议用结构体链表,不过全局变量也行,反正不大,没记忆功能无所谓

(1)必须要有 年份变量、月份变量、日期变量、星期变量、闰年标识

(2)必须要有 年份、月份、闰年标志以及日期临时变量、星期临时变量

(1)判断年份输入是否正确y>0&&y<=2011?对的继续,错的重输

(2)判断月份输入是否正确m>0&&m<13?对的继续,空的直接转到输出一年日历,错的重输

(3)判断日起输入是否正确d>0&&d<32?错的重输,对的继续判断

if(m!=2){

if((m==4||m==6||m==9||m==11))&&d>30)printf(错误重输)

}

else{

if(y不是闰年&&d>28) printf(错误重输)

else i=1;//这个i应该是闰年标志flag把

}

(4)计算星期几

(5)循环输出

while(需要输出整年日历&&没有输出完毕){

输出当月日历;

月份++;

最后一天是30?31?28?29?确定;

第一天是星期几确定(以及前面空几格);

(1)年月日判断

(2)星期判断

(3)日历循环输出

分开来是因为这样干净看得清楚,全放在一块儿,到时候有很多重复的程序段,调试起来你会崩溃的……

注意:

(1)注意题目要求,输入年份就要输出一年份的日历,就是说你在判断月份的时候是不是还要加个空条件判断?用int 的话最好先全初始化为0,不然不好判断。

(2)后边那个while(1);一点用都没有,这程序是你写的还是程序改错题要你改的?

以上就是关于请高手帮我解读一下单片机程序段(1),搞了一天没搞明白,急!全部的内容,包括:请高手帮我解读一下单片机程序段(1),搞了一天没搞明白,急!、解读下列程序段实现的整体功能:XOR AX,AX MOV CX,0AH JCXZ NEXT AGAIN: ADD AX,CX LOOP AGAIN NEXT: …、求解读并修改程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9865714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存