完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
点亮一个LED灯
1.一个51开发板 2.安装Keil软件 LED 贴片发光二极管正向导通电压通常是在 1.8V 到 2.2V 之间,工作电流一般在 1mA~20mA 之间 原理图 在电路设计时发光二极管自身压降大概为 2V,当接入的 VCC 电压是 5V,则R43承受的电压就是3V,同时电流范围在1mA~20mA 之间,由欧姆定律我们可以求出: U=3V, I=1mA, R=3KΩ; I=20mA,R=150Ω。所以R34的取值范围在150~3k之间。阻值大小的变化,可以直接控制整条通路的电流的变化,因此这个电阻我们通常称之为“限流电阻”。 LED的亮灭:电源从正极到负极有电压差,且电路是导通的,所以会有电流通过,LED小灯发光。所以我们通过让 P0.0 这个引脚输出一个高电平或一个低电平来控制小灯的亮灭。 当P0.0 这个引脚输出一个高电平(5V),这个时候,VCC的 电压和右侧的 P0.0 的电压是一致的,没有电压差,没有电压差也就不会产生电流,没有电流 LED 小灯处于熄灭状态; 当单片机输出一个低电平(0V),这时候产生了电压差,有电流通过,LED小灯发光。 接下来我们就用编程来实现控制小灯的亮和灭。 程序 1.特殊语句(51单片机独有的编程语句) sfr P0 = 0x80; 即定义一个单片机特殊功能寄存器 #keli软件已经预先写好只要文件开头添加一行#include《reg52.h》即可 ***it LED = P0^0; 即对SFR里边的 8 个开关中的其中一个进行定义。 经过定义后 LED就等于P0.0 2.源代码 #include 《reg52.h》 //包含特殊功能寄存器定义的头文件 ***it LED = P0^0; //位地址声明 void main() //本程序没有返回值,用 void 表示 { LED = 0; while(1); //执行程序一次,后停留下来等待 } 如果设计电路板的电路图和原理图一样的话,可以成功点亮小灯。但在我们的开发板上还有一个总开关, P0.0 是1个LED的开关,而我们现在的程序并没有打开这个总开关。 #include 《reg52.h》 ***it LED = P0^0; ***it ADDR0 = P1^0; ***it ADDR1 = P1^1; ***it ADDR2 = P1^2; ***it ADDR3 = P1^3; ***it ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); } 3.接下来进行程序的编译编译好后我们再将程序下载至我们的开发板上。 |
|
|
|
只有小组成员才能发言,加入小组>>
2513 浏览 0 评论
1083浏览 2评论
700浏览 1评论
452浏览 0评论
193浏览 0评论
329浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 05:58 , Processed in 1.313243 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号