上拉/拉下来的微控制器

U

umery2k75

Guest
我犯了一个输入和B0(销)基于PIC,其中只要我按下按钮的LED会发光
, 而我删除按钮将停止glowing.I我的手指选择R0(针)的简单程序输出。

代码:

#包括“16f877a.h”

#使用延迟(时钟= 20000000)

#保险丝NODEBUG无效的main()



set_tris_b(0x00);

而(真)



如果(输入(PIN_A0))

output_high(PIN_B0);

其他的

output_low(PIN_B0);))
 
这是不是拉的
, 或拉起伏的问题,而是-当你发现-缺乏的串联电阻与LED。不要紧
, 如果能或不能提供这样一个电流的大小。您应该始终把像500-1000与二极管系列欧姆一些阻力,因为-没有串联电阻会消耗大大超过了加州大学可以提供-这些端口的电压源,而不是电流源,因此
, 如果你知道一些模拟电子理论,你知道768,16,当连接的LED,这是在短路的理论,在实践中非常小的阻力,在电压源的电流将上升到无穷大(理论上),或直至设备将鱼苗(实际上)

您执行的测试只显示该领导blikns打火机在没有串联电阻(直接路径风险投资-按钮-发光-接地),比10,000(虚拟通道连接-万-发光-接地,按钮是绝对没用)。

你应该计算阻力假设发光二极管是一种短,所以你需要限制电流及房屋局局长等5全虚拟通道连接- 15mA的。例如- 5V的让-研发= 5/0.01 = 500ohm。阻力越小,越轻LED会闪烁,但会有更高的集成电路电流源,所以你不能把任何东西768,16比R小二U /最大电流= 5/0.025 = 200ohm。

在按键部分是正确的-你不需要有任何改变。和上拉/下拉决定是不是最重要的部分-你可以代码软件
, 它将承认高活动状态,活动状态或低-只要否定的部分
, 里面是'如果'同一个感叹号'条款!'。

BTW,你这样的代码编写会及时与你无处加州。我指的是功能(输入,输出,set_tris) -你应该(在您的教育的开始)尝试使用明确的寄存器- TRISB = 0x00,如果(门&0x01)后== 1,等等。这就是我的意见。使用这些功能
, 你不知道他们做什么,或者它们是如何做有一天让你的时候,当您将无法进行编程的东西只是因为它是有没有现成的职能。

高频及冰川

0x41 0x56 0x45!

 

Welcome to EDABoard.com

Sponsor

Back
Top