前面那我们学会了点亮一个led灯下面我们学习如何编写流水灯程序
工具/原料
proteus7.keil3
STC89C51数据手册
网盘地址:http://pan.baidu.com/s/1sj0WUyp
方法/步骤
1、首先是创建工程,前面也说过这里就不重复讲了。
2、然后我们编写代码,尽量自己敲一遍。不要以为复制黏贴一遍就完了,这样你对代码毫无剩路怪绦感觉。输入代码:#include<reg52.h>#include<intrins.h> 砖镑苣逢//循环左移函数的头文件voiddelayms(unsignedintk);//函数声明voidmain(){ P1=0xfe; while(1)//无限循环 { delayms(500);//延时500毫秒 P1=_crol_(P1,1);//循环左移一位 } }voiddelayms(unsignedintk)//延时函数,{ unsignedinti,j; for(i=0;i<k;i++) for(j=0;j<125;j++);}
3、编译生成hex文件,记得设置生成hex文件
4、启动proteus,双击芯片加载hex文件,启动仿真。可以观察到现象,流水灯。实验完成,后面简单间接一下原理。
5、首先看一下原理兔脒巛钒图,左边的最小系统我们就不说了,右边的8个led灯接在P1,是共正极的,所以只要管脚输出低电平相应的灯就会亮,根据上一节课我们学习的只要向相应的寄存器写‘0’就可以亮灯。要实禊耗髻编现流水灯只要按一定的顺序和频率点亮l灯就行了。
6、我们抵足谛垴分析一下代码:首先是添加头文件,这个不解释,要用就添加。然后是延时函数的声明,函数需要先声明再调用,具体愿意不说。主函数main()里面先橇秆苡螳想P1写入0xfe,D1灯亮。后面是无限循环函数,函数体内容,先调用延时函数输入500,延时500毫秒,然后循环左移一位,不停循环,就这样。最后面是定义延时函数,延时函数就是“拖延时间的函数”,让cpu做没用的加法操作来拖延时间。
7、end,谢谢大家。