第七篇:点亮一个LED

 

点亮一个LED灯实验是比较简单的一个实验,为什么这么说呢?点亮一个LED只需要在某个固定的引脚输出一个高电平或者低电平即可完成设计。没有多大挑战性,今天我就从几个方面简单的叙述一下是怎么实现的。

首先,还得上电路,这次是我自己画的,并没有使用AD软件,主要是打开太慢了。

电路分析:

图中可以看到LED1两端分别接的GND和PA1,LED2两端分别接的PA2和VCC,那么怎么点亮这两个LED呢?首先要了解二极管的工作原理。对于LED1,若要LED1导通,需要PA1施加一个高电压。即PA1端口置1,。同理,若要LED2导通,PA2需要置低,即PA2端口置0.

程序设计:

       对于C51来说,点亮这一个LED有两种操作方法,首先介绍一下第一种:

第一种方法就是进行位定义,然后进行位操作,不可否认,这个方法还是比较实用的,省略了许多繁琐的计算步骤。简单解释一下这个程序,sbit LED1=PA^1,意思是下面对LED1的操作都是对PA1的操作,同理sbit LED2=PA^2意思是意思是下面对LED2的操作都是对PA2的操作。main函数里LED1=1,LED2=0,即是将PA1端口置高,将PA2端口置低。从而使LED灯正常发光。或许有疑问了,为什么要进行位定义,直接对端口操作不行吗?如果我记得不错的话是不可以直接对单个端口进行操作的,不过可以对整组端口进行操作,也就是接下来的第二种方法:

看着程序很简单吧,掉了一个分号,不好意思,main函数里的语句后面需要加一个分号。还有一个错误,刚才打的时候没注意,PA=0x01;我看着这个程序也很简单,可是,这个程序是什么意思呢?首先了解一下这是对整组端口进行操作的,0x01是16进制,转换为二进制是00000001,这八个数字分别代表着PA8 PA7 ……PA1,也就是将PA2置低,PA1置高,和方法一差不多,两个方法都可以,仅供参考,明天设计流水灯,敬请期待!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值