C语言源代码分析(越易懂越好,我只是一个初学者)

C语言源代码分析(越易懂越好,我只是一个初学者),第1张

printf“”里的是原样输出的东西,但是你的y是未知的,是你程丛胡序运行到这一步才可以得到的,你没有办法写到“”里,所以你用%d代替,%d不会原样输出,它代表整数,而你的y的数值就是%d的数值,就是当printf里有%d的时候程序知道它的数值是“”,后跟的那个数,也就是这个程序里的y,比如printf(“%d%d%d”,a,b,c);第一个%d输出的是a的值,第二个%d输出的是b的值,第三个就差郑好是c的值了,如果是%c就虚铅是字符的意思,%f就是浮点型的数

H_DATA BIT P3.2 将p3.2引脚命名为H_DATA,以后用H_DATA就能代表P3.2

H_CLK BIT P3.4 同上,将P3.4命名为H_CLK

?PR?DELAY30US SEGMENT CODE 函数DELAY30US声明

PUBLIC DELAY30US

RSEG ?PR?DELAY30US

abc XDATA 0A00H

35.8US

DELAY30US:函数体

PUSH 05H 2因为函数用到R5,所以将进入函数之前的R5压入堆栈,返回前提出

MOV r5,#5025 为R5赋饥稿值

DE30S1:

DJNZ r5,DE30S1 2*14=28 对R5减一,判断不等于零跳到DE30S1等于零退出

POP 05h 2把进入函数前的R5恢复

RET函数返回

******************************************************************

?PR?DELAY10US SEGMENT CODE 声明DELAY10US函数

PUBLIC DELAY10US

RSEG ?PR?DELAY10US

16.3US

DELAY10US: DELAY10US函数体

PUSH 05H 2因为函数用到R5,所以将进入函数之前的R5压入堆栈,返回前提出

MOV r5, #20 10为R5赋值

DE10S1:

DJNZr5, DE10S1 5*2=10对R5减一,判断不等于零跳到DE10S1等于零退出

POP 05H 2把进入函数前的R5恢复

RET函数返回

?PR?CLSSIGNAL SEGMENT CODE 声明函数CLSSIGNAL

PUBLIC CLSSIGNAL

RSEG ?PR?CLSSIGNAL

CLSSIGNAL:

WHEN SYSTEM SEND INFORMATION TO PINPAD, SEND STOP BIT AT END, THEN NEXT A

SEND OPERATION. SO WAITTING STOP BIT FINISHED.

CLSL1:

PUSH05H因为函数用到R5,所以将进入函数之前的R5压入堆栈,返回烂段孝前提出

CLSL1_U:

MOV R5, #6EH对R5赋值

CLSL2: JNB H_DATA, CLSL1_U判断p3.2不为零跳转,继续赋初值

JNB H_CLK, CLSL1_U判断p3.4不为零,继续赋初值

DJNZR5, CLSL2如果两个输入都为零对r5减一,燃脊不为零跳到clsl2

POP 05H

RET

END


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

原文地址: http://outofmemory.cn/yw/12211973.html

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

发表评论

登录后才能评论

评论列表(0条)

保存