① 求51单片机汇编语言取随机数子程序
其实不必要写成子程序,看你需要多少位的随机数,要是8位的,就在主循环程序中放一条
INC NUMBER 指令,NUMBER是定义的某个内部RAM单元,如:NUMBER EQU 30H,需要随机数时,从NUMBER中读取就行了,随机读取的,这个数也是随机的了。要是需要16位的,就用两个内部RAM单元来随机计数,一个做低8位,一个做8位就行了。在主循环程序中放如下指令:
MOV A , NUMBERL
INC A
MOV NUBBERL, A ;保存低8位
JNZ TONEXT
INC NUMBERH ;高8位加1
TONEXT: 其它指令
同样,用随机数时就从这两个单元中读取就行了。
② 单片机控制红黄绿灯汇编程序
在单片机控制红黄绿灯的汇编程序中,首先定义了三个LED灯的控制位,分别为红灯(RED)、黄灯(YEL)、绿灯(GRE),它们分别对应P1.4、P1.5、P3.6端口。程序从地址0000H开始执行。
程序开始时,首先将RED灯置为低电平,使得红灯亮起。接着,将绿灯(GRE)置为高电平,红灯熄灭,绿灯亮起。程序调用了DL1S子程序四次,该子程序的具体功能未详述,但可能用于延时控制。之后,将RED灯置为高电平,使绿灯熄灭,红灯亮起。
接着,程序将YEL灯置为低电平,使黄灯亮起,同时保持RED灯为高电平,绿灯为低电平。程序再次调用DL1S子程序四次。随后,将YEL灯置为高电平,使黄灯熄灭。接着将GRE灯置为高电平,黄灯熄灭,绿灯亮起。
最后,程序再次调用DL1S子程序四次,然后跳转回地址0000H,形成循环。DL1S子程序的具体功能未详述,但可能用于延时控制。
总结而言,该汇编程序通过控制单片机的端口,实现了红黄绿灯的循环显示,确保交通信号的正常运行。该程序利用了单片机的定时功能,通过调用DL1S子程序实现了对红黄绿灯不同阶段的控制。
③ 单片机汇编指令 ACALL 怎么用
格式:ACALL add11 功能:绝对调用子程序
说明:
addr11:11 位目标地址,在下条指令的2K 范围内转移或调用