потягніть вгору / вниз Видвіньте для мікроконтролерів

U

umery2k75

Guest
Я зробив невелику програму по ПОС, в якому до тих пір, як я Натискаю кнопку індикатор буде світитися, як і я усуну свій палець з кнопки було б зупинити glowing.I вибирати R0 (PIN) для введення та B0 (PIN) для виробництва.

Код:

# Включити <16f877a.h>

# Використовувати затримку (години = 20000000)

# Запобіжники NODEBUGнедійсним Main ()

(

set_tris_b (0x00);

в той час як (так)

(

якщо (введення (PIN_A0))

output_high (PIN_B0);

ще

output_low (PIN_B0);))
 
що це не проблема виривати або тягти падінь, але - як ви помітили, - відсутність ряду опір зі світлодіодним.це не питання, якщо він може або не може постачання такої кількості струму.Ви завжди повинні покласти певний опір 500-1000 Ом, як у серії з диодом, так - без опору серії буде умов багато більше, ніж може постачати UC - порти є джерелами напруги,
а не джерел струму, так що якщо ви знаєте аналогова електроніка деякі теорії, shoud ви знаєте, що при підключенні світлодіод, який являє собою коротке замикання в теорії, дуже невелика опір на практиці, щоб напруга джерела нинішньої збільшиться до нескінченності (в теорії), або до тих пір, поки пристрій буде смажити (на практиці)

тест ви виконуються тільки показує, що призвело blikns НЕ світлішає, коли ряди опору (прямий шлях VC - кнопки - світлодіод - GND)
у порівнянні з 10K (VCC - 10K - LED - GND, кнопки абсолютно марний).

Вам слід розраховувати, виходячи з того, що опір індикатор являє собою короткий,
тому вам необхідно обмежити ток-н, як 5-15mA на повну VCC.Наприклад - 5V дає - R = 5/0.01 = 500ohm.Чим менше опір,
ніж легше навів буде блимати, але там буде більше нинішньої раковина з СК, так що ви не shoud покласти щось менше, ніж R = U / Imax = 5/0.025 = 200ohm.

кнопки частини правильно - вам не потрібно змінювати що-небудь там.і pullup / спадному рішення не є найбільш важливою частиною - ви можете коду програмного забезпечення так, що вона буде вищою, ніж визнати, активний стан, або низькою, як активний стан - просто заперечувати, що частина знаходиться всередині 'Якщо положення з знаком оклику' ! '.

BTW такий код, як ти написав буде вам нікуди з UC.Я маю на увазі функції (введення, висновок, set_tris) - ви повинні (за станом на початок вашого навчання) намагаються використовувати прямо регістри - TRISB = 0x00, якщо (PORTA
І 0x01) == 1 і т.д..це моя думка.за допомогою таких функцій, які ви не знаєте, що вони роблять, і як вони зробили коли-небудь вам в момент, коли ви будете не в програмі-то тільки тому, що Є немає готових функцій для нього.

І GL HF

0x41 0x56 0x45!!

 

Welcome to EDABoard.com

Sponsor

Back
Top