专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

自学单片机编程之流水灯

作者:佚名   来源:本站原创   点击数:  更新时间:2014年08月18日   【字体:

 

对于编程来说,我是一个大菜鸟。也许对于会的人我的记录都是小儿科,但我是记录给自己看的,是记录自己的学习脚步的。一边学习,一边记录,一边温故而知新。 对于机器人制作我是一窍不通,它也很复杂,没个一年半载的都搞不出来,主要分为几个大块如编程、步进电机控制、电路板制作、机械制作等。现在我学习编程这 块,机械制作在平时一点一点积累,就没有总结记录什么了。程序我是在143月初接触的,之前学习的是模电的知识 , 为后面其他的知识打个基础吧!当然也可以一直学模电,不过对于我来说还是算了吧,不能说太难反正不容易,也许我对它不是太感冒!现在是针对学习,我报了机 械组,也如愿的进入了机械组。努力快点自己制作出自己的机器人!(学长的机器人就不错还获得过全国电子竞技大赛的一等奖)

流水灯 控制是初学者开始,我也不例外。流水灯控制是利用程序通过单片机芯片来控制芯片各引脚的电平,进而控制所连接外电路的电气状态,简单的可以看成是电压的升高或降低。

流水灯其实就是发光二极管  , 根据发光二极管的工作原理(正极导通,负极不导通)当电压到达一定值时二极管亮,电压不够只导通不发亮。没加入程序时,发光二极管处于导通又不发亮的状 态,让连接正极引脚的电压升高,之后二极管亮。流水灯就是八个引脚控制八个发光二极管。不同的是控制电压的高低不是直接调整电路而是用计算机语言来控制电 平从而控制电路,产生不同的效果。计算机语言经常用到01,因为计算机只识别01编程的最终语言就是01组成的。要学好二进制、十进制和十六进制之间的转化。

P0是控制8个发光二极管亮灭的I/O控制口
 

上面的P0=0x00;就是对单片机P0口的8I/O口同时进行操作,“0x”表示后面的数据是以十六进制形式表示的,十六进制的aa,转换成二进制是10101010,那么对应的发光二极管便是1,3,5,7亮,2,4,6,8灭。而P0=0x55换成二进制是010101010xaa的二进制10101010正好相反,最终实现交替闪烁。我们将0xaa转化成十进制为170,也可以直接对P0口进行 十进制的赋值,如“P0=170”,效果是一样的,简直是麻烦了很多,也不便于理解。无论是几进制的数,在单片机内部都是以二进制数形式进行保存的。

关闭窗口