disp() , 通常是做为显示用的函式, 用来输出(呈现)一个结果或是输出过程的一段程序码.
在C语言中, 函式用来包装一小段程序, 借由包装, 将程序结构化, 利于重复叫用及理解.
单片机中, 通常使用disp()输出一个结果到显示屏或是数码管. 也有可能是 显示过程的控制程序, 例如多位数码管的扫描式显示之控制过程.
❷ 单片机编程中for( ;t;t--)是什么意思
for 为循环控制语句
格式为 for (表达式1;表达式2;表达式3)
{ 语句 }
一般的是 for (t=100;t>0;t--)//循环一小段时间。或是t=100,t>0,循环执行100次,当t=0时,退出该循环。
❸ 51单片机编程题,要求每条语句写出注释。求解答。
单片机P2口分别接8个发光二极管的阴极,阳极已经接+5V电源,试编写8灯闪烁的程序(闪烁时间间隔500ms)。
程序如下
#include <reg51.h>
//延时10ms子程序
void Delay10ms(unsigned int c)
{
unsigned char a, b;
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}
void main()
{
while(1)
{
P2=0x00;//P2口8个灯全亮
Delay10ms(50);//延时500ms
P2=0xff;//P2口8个灯全灭
Delay10ms(50);//延时500ms
}
}
仿真图
❹ XRL单片机汇编语句啥意思
为解决某些特定的问题代码中必须嵌入汇编语言以代替C语言完成的单片机的编程,汇编语言对于程序调试是不可或缺的。它包括:算术操作类指令,布尔变量操作类指令,逻辑操作数指令,控制转移类指令。
逻辑异或指令,即相对应的二进制位不同该位异或后的结果是1,相同则为0。
XRL A,#data;累加器A中的容容和立即数执行逻辑异或操作。结果存放在累加器A中,如A中的内容为10010101B,data为10110110B,则运算的结果为00100011。
(4)单片机编程语句释义扩展阅读:
对于程序调试汇编语言更是不可或缺。
直接使用汇编指令编写单片机程序,对硬件的控制更加直接,可以直接操作物理地址,寄存器,端口等;其它更高级的语言(如:C语言)对硬件的控制是依赖于类库来实现的。并且,对于一些对程序大小和运行速度有非常严苛要求的项目而言,都必须使用汇编指令。
C语言只是为了方便编写,与机器打交道的其实都是2进制得代码,汇编语言就是这些代码好记忆的名称和规则,只是比C语言难理解些。
❺ 请问单片机c语言编程里的nop()含义是什么
1、c语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。
2、例如用6mhz的晶振,则如下for循环大约延时1秒。
int
i;
for(i=0;
i<6000000;
i++)
_nop_();
//
延时一个指令周期,相当于执行一条无意义的语言
❻ 帮忙解释一下单片机编程中的 每一个指令的意思和控制过程、急用、谢谢
mov tmod, #61h;将61h这个数赋给tmod寄存器,具体什么模式你把它拆成16进制数对着寄存器看吧,好吧,刚帮你查了下,是:仅由TR0,TR1置位分别启动定时器T0、T1,T0为计数功能,T1为定时功能。T1是自动重装8位计数器,T0是16位计数器。
mov dptr, #15536 ;令dptr(记得是数据指针)的值为15536
mov tl0,dpl ;让dptr的低8位的值给定时器t0的低8位
mov th0, dph ;把dptr的高8位的值给定时器t0的高8位
mov tl1, #236 ;让t1的值为236
setb tr0;开启t0
setb tr1;开启t1
loop: jnb tf0,$; 表示测试tf0的值,如果不为1(为0)则程序继续执行本条指令($表示当前位置),如果为1则顺序执行下一条指令。 这里就是说当定时器T0溢出时进入下面的指令
clr tf0 ;清零tf0并进入下面的程序
mov dptr, #15536 ;与上面的意思一样
mov tl0, dpl
mov th0, dph
clr p3.5 ;使3.5口为0
setb p3.5 ;使3.5口为1
jnb tf1 ,loop ;还是检测,这次检测tf1位的值,如果不为1则继续本指令
clr tf1;令tf1为0,即低电平
大概就记得这些了 给你个参考吧
❼ 单片机程序语句解释:下面每条语句是什么意思啊,大概说说让我可以理解这段程序。
已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFH。下述程序执行后:
POP DPH ;DPH出栈,SP=SP-1
POP DPL ;DPL出栈,SP=SP-1
MOV DPTR,#4000H ;(DPTR)= 4000H
RL A ;(A)循环左移1位,(A)= 04H
MOV B,A ;(B)= 04H
MOVC A,@A+DPTR ;(A)= @04H+4000H=30H
PUSH Acc ;A入栈,SP=SP+1
MOV A,B ;(A)= 04H
INC A ;(A)= 05H
MOVC A,@A+DPTR ;(A)= @04H+4000H=50H
PUSH Acc ;A入栈,SP=SP+1
RET ;主程序返回
ORG 4000H ;定义地址开始处
DB 10H,80H,30H,50H,30H,50H;定义6字节数据
请问:A=( 50H ),SP=( 52H ),(51H)=( 30H ),(52H)=( 50H ),PC=(5030H )。