预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共20页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

单片机常用(chánɡyònɡ)指令一、ORG和END伪指令最常用(chánɡyònɡ)的指令,用于数据的设定和传递。注意:使用范围是,单片机内部数据存储单元。指令形式:MOV目的操作数,源操作数指令功能:将源操作数的数据存入目的操作数中,而源操作数保持不变。指令功能:#data表示(biǎoshì)8位二进制常数。指定累加器A中的数据为data。指令功能:direct表示(biǎoshì)单片机内部数据存储单元地址。将direct地址单元中的数据存入累加器A中,direct地址单元的数据保持不变。指令(zhǐlìng)功能:Rn表示工作寄存器R0-R7。将工作寄存器Rn中的数据存入累加器A中,Rn中的数据保持不变。指令功能:Ri表示工作寄存器R0-R1。通过@Ri间接操作单片机内部数据存储单元,将存储单元中的数据存入(cúnrù)累加器A中,存储单元中的数据保持不变,Ri保持不变。例如(lìrú):通过@Ri间接操作单片机内部数据存储单元,SJMPSTART;跳转至START位置END;结束MOVA,#0EH;十六进制常数中,而源操作数保持不变。;(60H)=11H,(A)=11HEND;结束指令功能(gōngnéng):Rn指工作寄存器R0-R7。ORG0000H;程序(chéngxù)开始DE2:DJNZR6,DE2;(R6)-1不为0跳转至DE2指令(zhǐlìng)练习控制程序执行的方向,使程序从一个位置转到另一个位置去执行。指令形式:SJMP指令标号指令功能(gōngnéng):指令标号用于标记指令的位置。执行本指令,程序将转到指令标号对应的位置去执行。注意:执行本指令不需要条件约束,一经执行即会发生程序转移。例如:ORG0000H;程序开始(kāishǐ)START:MOVA,#20H;(A)=20HMOVP1,#0FFH;(P1)=FFHMOVA,P1;(A)=(P1),SJMPSTART;跳转至START位置END;结束程序无限循环执行。控制程序执行(zhíxíng)的方向,使程序从一个地方转到另一个地方去执行(zhíxíng)。例如:ORG0000H;程序(chéngxù)开始MOVR2,#6STR:MOVA,#20H;(A)=20HDJNZR2,STR;(R2)-1不为0跳转至STRMOVA,#0ABH;(A)=ABHNOPEND;结束END;程序(chéngxù)结束例如(lìrú):通过@Ri间接操作单片机内部数据存储单元,通常用来实现延时功能。MOVR6,#5DH;(R6)=5DHMOVR6,#5DH;(R6)=5DHNOPEND;结束注意:使用范围是,单片机内部数据存储单元。MOV50H,40HMOVA,R6;(A)=5DH,(R6)=5DHSJMPSTART;跳转至START位置MOVR1,#2FH;(R1)=2FH例如:MOVP0,#0FFH;P0输出FFH,LED全灭;(50H)=22H,(40H)=22H五、LED发光(fāɡuānɡ)二极管闪烁编程源程序:ORG0000H;程序开始(kāishǐ)START:MOVP0,#00H;P0输出00H,LED全亮MOVP0,#0FFH;P0输出FFH,LED全灭SJMPSTART;循环END;结束源程序:ORG0000H;程序开始(kāishǐ)START:MOVP0,#00H;P0输出00H,LED全亮MOVR7,#200;(R7)=200DE1:MOVR6,#200;(R6)=200DE2:DJNZR6,DE2;(R6)=(R6)-1,(R6)≠0跳转至DE2DJNZR7,DE1;(R7)=(R7)-1,(R7)≠0跳转至DE1MOVP0,#0FFH;P0输出FFH,LED全灭MOVR7,#200;(R7)=200DE3:MOVR6,#200;(R6)=200DE4:DJNZR6,DE4;(R6)=(R6)-1,(R6)≠0跳转至DE2DJNZR7,DE3;(R7)=(R7)-1,(R7)≠0跳转至DE1SJMPSTART;循环END;结束六、按键(ànjiàn)控制LED发光二极管亮灭编程源程序:ORG0000H;程序开始START:MOVP3,#0FFH;端口输入(shūrù),先输出高电平MOVP0,P3;读取P3端口数据给P0端口SJMPSTART;循环END;结束本节总结(zǒngjié)1、通过@Ri间接地对单片机内部数据存储单元进行操作。2、SJMP和DJNZ都可以实现程序循环、转移。SJMP是无限循环DJNZ是有限循环3、程序通常是无限循环执行的。