Мазмуну:

Generic Switch Hijacker: 3 кадам
Generic Switch Hijacker: 3 кадам

Video: Generic Switch Hijacker: 3 кадам

Video: Generic Switch Hijacker: 3 кадам
Video: ग्रामीण विकास|up lekhpal gramin vikash|gramin vikas for up lekhpal|gramin parivesh for up lekhpal 2024, Ноябрь
Anonim
Generic Switch Hijacker
Generic Switch Hijacker

Бул макалада физикалык өчүргүчтөрдү башкаруучу катуу абалдагы микроконтроллерди кантип куруу керектиги сүрөттөлөт. Сизде микроконтроллер программисти бар деп ойлосок (4 долларга жакын) жасоо өтө арзан. Райондун өзү анча -мынча татаалдыкка ээ.

Бул долбоор абдан жөнөкөй жана эч кандай таң калыштуу жаңы ыкмаларды камтыбайт. Бул жакшы биринчи микроконтроллер долбоору катары кызмат кылат. Жыйналыштын баштапкы коду бул макалада сизге берилет. Менде чындыгында сонун кожоюн бар. Кээде, биз бири -бирибизге практикалык тамашаларды ойногонду жакшы көрөбүз. Тилекке каршы, мен илимпозмун. Менин бул жердеги максатым - жумуш ордунда ар кандай аппараттарды кыска убакытка сырдуу түрдө иштетүү. Радиолор, ызы -чуу принтерлер, ал тургай кээ бир кадимки нерсеге катылган тажатма музыкалык туулган күн карталары. Анын үстүнө, бул проект - бул AVR менен оор жүктөрдү кантип көзөмөлдөп турганыңыздын мисалы, чыгуучу казыктар өздөрү менен күрөшө албайт. Бул көп нерселер, анткени чыгаруу пиндери сизге кичинекей чыңалууну жана өтө чектелген токту берет. Бул чынжыр кээ бир оор жүктөрдү көзөмөлдөө үчүн реле менен кеңейтилиши мүмкүн.

1 -кадам: Дизайн жана схема

Дизайн жана микросхема
Дизайн жана микросхема

Бул долбоор үчүн дээрлик бардык микроконтроллерди, 5в чыңалуу жөндөгүчүн жана NPN транзисторун колдонсоңуз болот. Мен колдондум:

1x ATtiny26L-8PU (~ 2 $) 1x TL780 5v чыңалуу жөндөгүчү (~ 0,7 $) 1х N2222 транзистору (~ 0,07 $) 1x 9v батареясы, же 12в алыстан башкаруу батареясы мейкиндикти үнөмдөө үчүн… жана албетте менин ишенимдүү STK500, азыр ZIF менен розеткалар кошулду! Негизги дизайн мындай: Микроконтроллер эки убакыт циклинен өтөт. Түзмөктү качан күйгүзүү керектигин аныктоо үчүн узун цикл жана түзмөктү качанга чейин кармоо керектигин аныктоо үчүн кыска цикл. Кыйынчылыктарды жаратуу убактысы келгенде микроконтроллер 14 -логиканы (PORTAнын эң аз бөлүгү) жөнөтөт. Бул транзисторду күйгүзөт. Эгерде сиз кыскычтарды туташтыргычка туташтырган болсоңуз, анда которгучтун каршылыгы күтүлбөгөн жерден өтө бийиктен 1 омго чейин төмөндөйт, бул көпчүлүк түзмөктөрдүн күйгүзүлүшүн эске алышы үчүн жетиштүү. Транзисторлор да диод экенин унутпаңыз, андыктан ал иштебесе … кыскычтардын полярдуулугу туура эмес болсо, аларды алмаштырыңыз! Ошондой эле, бул түзмөккө 9 вольттуу батарейка талап кылынат, айталы, 8втен ашык потенциал калууда … башкача айтканда, ал көп кубатты колдонбойт. Колдонулбаган төөнөгүчтөр көп, андыктан, албетте, аларды дагы башаламандык үчүн көбүрөөк өчүргүчтөрдү көзөмөлдөө үчүн колдонсоңуз болот, бирок бул менин максаттарым үчүн жетиштүү болчу. Кийинки кадам - бул нерсени ишке ашыруу үчүн жазган булак коду. "Күйгүзүү" жана "өчүрүү" абалынын демейки узундугу болжол менен 10 секунд жана 13 мүнөт. Бул баалуулуктарды өзгөртүү боюнча коддо комментарийлер бар. Акырында, таймерлерди өзгөртүү үчүн "nop" функциясынын кеңири колдонулушун кечирип коюңуз (ал CPU циклинде эч нерсе кылбайт). Бул саркеч, анткени сиз канча колдонгонуңузга этият болбосоңуз, rjmp функциясын бузушу мүмкүн!

2 -кадам: Булак коду

БАШТОО:

. INCLUDE "tn26def.inc"; Аныктоо файлы. Эгер көчүрмөсү керек болсо, Google үчүн. clr r30 clr r29 clr r28 clr r27 ldi r28, 0b00000000 ldi r27, 0b11111111 ldi r26, 0b00000000 clr r25 out DDRA, r27 out PORTA, r28 TIMER: inc r30 nop жок nop жок nop nop nop nop nop nop nop nop nop nop nop cpi r30, 0b11111111 breq TIMER2 rjmp TIMER TIMER2: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop inc r29 Tpi r29 tpIM T11 r3 nop жок nop nop nop nop nop nop nop nop nop nop nop nop nop inc r25 cpi r25, 0b11111111; "өчүрүү" убактысын кыскартуу үчүн бул санды төмөндөтүү FUNC rjmp TIMER FUNC: nop nop cpi r28, 0x00 breq FUNC2 dec r28 clr r30 clr r29 cl25 r25 out PORTA, r28 rjmp TIMER FUNC2: nop nop inc r28 out PORTA, r28 clr r25 clr r30 clr r29 rjmp TIMER4 TIMER4: inc r30 nop nop nop nop nop nop nop nop nop nop nop cpi r30, 0b11111111 breq TIMER5 rjmp TIMER4 TIMER5: nop nop nop nop nop inc r29 cpi r29, 0b11111 111 тайм TIMER6 rjmp TIMER4 TIMER6: inc r25 cpi r25, 0b00000011; "On" убактысын көбөйтүү үчүн бул санды көбөйтүңүз FUNC rjmp TIMER4

3 -кадам: Акыркы эскертүү

Көңүл ачыңыз, бирок транзистордун канчалык көп күчкө ээ экениңизге чектөө бар экенин унутпаңыз. Бул электр чыңалуусунун жоктугун билдирет! Транзисторду өтө эле ашыкча жүктөөдөн тышкары, бул түзмөк өзгөрмө сигналдарды жакшы башкара албайт … эгер сиз төмөндө сүрөттөлгөн өзгөртүүнү колдонбосоңуз * жана * релени кошуңуз: Эгерде кыскычтын полярдуулугу жөнүндө тынчсыздануу сизди кыжырдантат, экинчи транзисторго зым салып коюңуз. базалык табак биринчи транзистор менен бир эле булакка туташкан, бирок карама -каршы конфигурациядагы коллектор жана эмитент менен. Ошентип, кыскычтарды кантип тиркегениңизге карабастан, микроконтроллерден чыккан логика дайыма которгучту "күйгүзөт". Бул системанын агып кетүү агымы клавиатура матрицалары сыяктуу кээ бир сезимтал которуштурууларды иштетүү үчүн жетиштүү болушу мүмкүн экенин эстен чыгарбаңыз, бул тиркеме үчүн резисторду серия менен кошууңуз керек болот. Эсиңизде болсун, сиз батарейканы колдонуунун ордуна максаттуу түзмөктөн электр энергиясын ала аласыз. Акырында … Мен аппаратты байыркы бухгалтердик эсептегичтин ичине орноттум, бул басып чыгаруу функциялары бар. Кайсы IC туташтыргычтары кагаз берүүнү пайда кыларын аныктоо үчүн, клавишанын жардамы менен клавиатура матрицасын тескери иштеп чыктым жана туура казыктарды түзмөк менен туташтырдым. Андан кийин, мен басып чыгаруу функциясын өчүрүүгө мүмкүндүк берген өчүргүчтү өчүрдүм. Машина туура бурулган деп эсептейм. Бул абдан ызы-чуу болгон кагазды 10 мүнөт сайын, 10 секундада, түзмөк күйгүзүлгөндө күйгүзөт. Ошондой эле туулган күн карталарынын биринин схемасы менен жакшы иштеди. Менин жумуш ордум азыр кызыктай!

Сунушталууда: