51八只LED灯做流水灯实验
第一节:单片机在上电初始后,其各端口输出为高电平。如果我们现在想让接在P10口的LED1亮,那么我们只要把P10口的电平变为低电平就可以了。想让LED1灭,LED0亮,只需将P10升高,P11变低,LED1
就熄灭LED2随后既点亮!依始类推如下所示8只LED变会一亮一暗的做流水灯了。本实验在“SP51实验板”学习套件上的相关图纸:
P10低、P10高、P11低、P11高、P12低、P12高、P13低、P13高、P14低、P14高、P15低、P15高、P16低、P16高、P17低、P17高、返回到开始、程序结束。
我们不能说P11你变低,它就变低了。因为单片机听不懂我们的汉语的,只能接受二进制的“1、0”代码。我们又怎样来用二进制语议论使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。这里的“程序语言”目前主要有汇编和C两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。
“汉语”语言开始:P10低P10高P11低P11高
汇编语言starclrp10setbp10clrp11setbp11
f
P12低P12高P13低P13高P14低P14高P15低P15高P16低P16高P17低P17高返回到开始结束
clrp12setbp12clrp13setbp13clrp14setbp14clrp15setbp15clrp16setbp16clrp17setbp17ljmpstare
d
这里用到了四条汇编指令:clr、setb、ljmp、e
d;
clr:是将其后面指定的位清为0;setb:是将其后面指定的位置成1;ljmp:是无条件跳转指令,意思是:跳转到指定的标号处继续运行。e
d:是一条告诉编译器:程序到此结束的伪指令。伪指令只告诉编译器此程序到此有何要求或条件,它不参与和影响程序的执行。这里需要说明的是,按汇编语法要求,所编制的程序(下称源程序)之格式和书写要求必须依下列原则:1、源程序必须为纯文本格式文件,如用Wi
dows“附件”中的“记事本”编写的文本文件;2、源程序的扩展名应是ASM;3、一行只能写一条语句,以回车作为本句的结束,每一语句行长度应少于80个字符(即40个r