LED驱动原理与实验
|
单片机初学者要更容易理解和掌握一些常用指令,就要多做实验,编一些小程序在实验板上看效果,而流水灯是最方便看见效果的,学编程一般是先多看别人的程序从中学习一些编程的技巧和方法。是从模仿开始的,但要领会后变为己用才行,希望初学者能从下面程序中学到有用的东东。 ![]() 看上面原理图是由八只LED发光管,接在89C51的P1口上,从原理图可知只有P1口为低电平(接地)时,发光管才会亮。所以只要循环控制P1口的各个引脚的电平高低变化就可使LED 循环点亮。 网友只要把下面的源程序编译后烧如提供的实验板即可看见效果。
ORG 0000H LJMP START ORG 0030H START: MOV SP,#6FH;养成习惯将堆栈先保护起来 MOV A,#80H;转换为二进制为10000000 LOOP: MOV P1,A ;将A中的值送入P1口 RR A;右移 LCALL DELAY;凋延时程序 LJMP LOOP ;返回继续循环 delay: ;延时程序,改变R7的初值看效果如何?? mov r7,#255 d1: mov r6,#255 d2: nop nop nop nop djnz r6,d2 djnz r7,d1 ret END 上面的程序如您不好理解可以看下面的: ORG 0000H ;延时子程序,12M晶振延时约250毫秒 END 以上两种的亮暗不同的,前种是暗流动,下面的是亮流动;您可以烧写到实验板看效果。。。。。。
|