找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1774|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机教程--点亮启航之灯

[复制链接]
跳转到指定楼层
楼主
ID:115111 发表于 2016-4-28 04:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
还记得我们曾经焊过的那块51学习板吗?还记得我们当时试验成功后的兴奋与欢喜吗?没错,这块这块板子的硬件连接部分已经完成了,但是要想实现我们想要的功能,还要我们自己编程以实现目的!
今天,小编给大家带来的是一个最基础的教程——  任意点亮实验板上的led。这个东西虽然看似简单,但只要你足够有创意,比如你把他们当作成许多演员,而你就是导演,通过不同时间控制不同的led亮灭,还是可以实现比较炫的效果。比如基础一点的有流水灯,闪烁灯等,如果你有兴趣还可以自己焊一块板子,设计更多的led并摆个造型,比如像这种


                        
进入正题,首先来简单的介绍下什么是单片机以及我们所焊接的板子上单片机的型号。 单片机是一种可通过编程来控制的微处理器,它需要靠外围的器件的协调来发挥其自身的强大功能,所以说我们要想驾驭好它,还要懂得一些外围器件的使用方法及电路的设计。本次教程所用到的外围器比较简单,就是一排灯泡,相信大家应该都玩过,只要正负级接对,加上合适的电压就可以发光了。我们手上的板子所采用的是单片机型号是89C52,属于51系列,可通过我们熟悉的c语言来编程。下面附上它的引脚电路图
                        
可以看到它一共有40个引脚,其中有P0口,P1口,P2口,P3口,每个P口对应有8个I/O口,列如P1.0~P1.7。还有第40脚和20脚分别为正负极,他引脚暂不做介绍。下面附此实验板和led的连接图。
                        
        不难看出8颗led所连接的是单片机的P1口的8个I/O口,由于是led的正极始终连接着正极,而负极接的是单片机的I/O 口,因此我们只需要让I/O输出低电平即可点亮对应的led(ps:由于单片机上电后默认输出高电平,所以led在单片机未配置输出低电平时是灭的),其实单片机说白了就是控制哪些引脚的电平什么时候输出高,什么时候输出低,由这些高低电平的变化来控制外围电路。
         明白了这些以后,我想大家对于控制led的原理来说应该不是什么难事,剩下的就是学会一些’’语法’’,比如  sbit led1=P1^0;(写的时候注意大小写及相关表示符号)意思是将单片机P1口的最低位定义为led1。若要控制P1口的某一位,必定要声明这一位,否则单片机不知道我们要操作的对象是什么。声明了以后,就直接可以通过控制led1来对P1^0操作,比如led1=0;就是让P1^0输出低电平(ps:等于0就是低电平,等于1就是高电平)。当然你还可以直接对P1口的8个I/O口同时操作,此时就不用位声明了,比如P1=0xfe;其中0x 表示后面的数据是以16进制形式表示的,fe转换为2进制就是1111 1110,即也是相当于给P1^0口配置低电平。
          下面我们来尝试点亮右边第一颗led,这也可以说是实验当中最简单的程序了。直接上图


                        或者这么写


                        
效果都是一样的。
烧入程序后效果图(keil具体使用方法和烧入过程请自行百度或参考上一次的教程)
                        
    下面我们利用延时来实现一个闪烁灯的效果。首先来简单介绍一下延时函数,谓延时函数,就是利用单片机执行语句所需要耗费时一现象来实现的。
  例如

                                                
void delay(int x)
{
         inti,j;
         for(i=x;i>0;i--)
         for(j=110;j>0;j--);
}
根据实验,当x=1000时,大概会延时1s。
我这次写的是单数灯与奇数灯以大约一秒为间隔交替闪烁。
(把程序放在while死循环中是为了让它一直闪下去,否则只会执行一次,也就是闪一次)
效果图

                                            


                        
至此,闪烁灯就完成了。
流水灯的道理也是一样的,依次让led亮过去,记得每一个动作后加入延时。
有兴趣的可以多写写其他变换方式。

到这里,这个教程就差不多结束了,希望能对初学者和爱好者有帮助.

若本文有任何问题和错误请大家批评指正,信工科技部将每期给您带来更多精彩内容,敬请关注!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表