PIC16F628 и 4х разрядный семисегментный индикатор с динамической индикацией на примере спидометра для тренажера

Крушневич С.П..

ВВЕДЕНИЕ.

Штатный спидометр тренажера показывал количество шагов, сожженных калорий, шагов в минуту, продолжительность бега. Но мне было бы более интересно узнать какое расстояние я прошагал в метрах и скорость также в метрах в секунду. Когда в штатном контроллере сели батарейки я решил сделать свой контроллер. После недолгих раздумий я выбрал популярный и не дорогой микроконтроллер PIC16F628 с 4х разрядным семисегментным индикатором. В связи с тем, что к МК больше не предполагалось подключать внешнюю периферию я решил сэкономить на деталях и подключить светодиодный индикатор напрямую к ножкам МК (максимальный ток ножки в 25 мА позволяет легко это сделать).

Схемотехника

Много рассказывать здесь нечего, со схемы электрической принципиальной электронного спидометра для тренажера и так все ясно:

Спидометр для тренажера. Динамическая индикация. PIC16F628A. Светодиодный 4х разрядны 7ми сегментный индикатор

Уточню только некоторые моменты. Кнопки опрашиваются синхронно со сменой цифр динамической индикации. Для снижения потребляемого тока был выбран светодиодный семисегментный индикатор красного цвета с повышенной яркостью. Это позволило включить резисторы на 1 кОм в цепи сегментов и получить приемлемую яркость в комнатных условиях, при питании от 3 АА батареек (4,5 В).

Во время простоя микроконтроллер гасит индикатор, настраивает ножку RB1 на срабатывание прерывания от изменения уровня и переходит в спящий режим. Из спящего режима микроконтроллер выходит по прерыванию (изменению логического уровня) на ножке RB1.

Конструкция спидометра

Видеодемонстрация:

Исходники спидометра на МК PIC16F628A

//исходный код пока не доступен
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection

Прошивка

;Прошивка для PIC16F628A.
:1000000000308A00FF290000FF00030E8301A500D5
:100010007F08A4000A08AC008A01A40E0408A60008
:100020007708A7007808A8007908A9007A08AA002C
:100030007B08AB00831383120B1E20288B18C62865
:100040008B1E24280B193728260884002708F70060
:100050002808F8002908F9002A08FA002B08FB00F4
:100060002C088A00250E8300FF0E7F0E09008501F3
:10007000831686010130831286000230F700F70BE9
:100080003F282630831686004528013083128600DB
:100090000000861E4E280130B8004F28B801861C8B
:1000A00054280130B7005528B70101308316860067
:1000B00083128517AD08031D66282008860081304D
:1000C000850020080139013C031985132D0B712887
:1000D000210886008230850021080139013C03197E
:1000E00085132D08023C031D7E28220886008430DB
:1000F000850022080139013C031985132D08033CB2
:10010000031D8B28230886008830850023080139C9
:10011000013C03198513AD0A2D08033C031CAD01F6
:10012000B20A3208F43C03189828B201B00AB30AA4
:100130003008093C03189E28B001B10A3108053C7B
:100140000318A428B101AE0A2E08093C0318AA28F6
:10015000AE01AF0A2F08093C0318AF28AF01380BD6
:10016000BA28B908031DBA28B50A0319B60A01301E
:10017000B900B301B8080319B9013308143C0318D6
:10018000C3280130B4000B118A112428B3013308AD
:10019000B4008B108A112428F230C6004508013AB9
:1001A00003190329033A03190629013A03190929F6
:1001B000073A03190C29013A03190F29033A0319C5
:1001C0001229013A031915290F3A03191829013A7E
:1001D00003191A29093A03191D29533A0319202929
:1001E000163A03192329373A03192629353A0319F0
:1001F0002929173A03192C29703A03192F290D3A86
:10020000031932293529D630C60036294830C600B0
:1002100036295030C60036299230C6003629303093
:10022000C6003629A030C60036295630C600362909
:10023000C60136291230C60036290430C6003629D8
:100240003030C60036292830C6003629EA30C600CC
:1002500036292430C60036290A30C6003629FE3039
:10026000C6003629FA30C6003629C6014608F8000D
:100270000034453084008313000803194D290130F0
:10028000F800F701F70B4229F80B41294A30F70033
:10029000F70B48294B29800B3F2900348E30F7009B
:1002A0004608F8004508F900FA01F808031D62291C
:1002B0007908F800F9010830F702F808031D6229EF
:1002C000F7016A290310F81B6929F90DF80DF703E6
:1002D0006229F8136A2A49080319DB29D1004D085D
:1002E0000319DB29D10703187C297F30D102031CB5
:1002F000DB290319DB2980298130D1070318DB2989
:100300005108F700F801F901FA014A08D500D5179C
:100310004B08D4004C08D3001830D100D201531C34
:10032000A9295008FA07031C9B29F90A031D9B29D8
:10033000F80A0319D2174F08F907031CA229F80A73
:100340000319D2174E08CB00CB174B08F807031838
:10035000D217D20DF80CF90CFA0CD50CD40CD30C26
:100360000310D10B8E290130F7070318DB29F81B86
:10037000C029D50DFA0DF90DF80DF7030319DB2986
:10038000D51FD129FA0A031DD129F90A031DD12944
:10039000F80A031DD129F80CF90CFA0CF70A031915
:1003A000DB294A08D2004E08D206D21FD929F817F5
:1003B000DF29F813DF29F701F801F901FA01822A90
:1003C0008E30F7004508F7024608F9004708F800A4
:1003D000F917F7080319F7290310F908031DF32982
:1003E000F8080319F729F90CF80CF70BEC29C61FCC
:1003F000FE29F809F909F80A0319F90A932A840170
:1004000083131F30830583168E15073083129F00D8
:10041000B90183160108C0390338810083129001A5
:100420000030F800920000308316920007308312EB
:100430009F00831605080330F700F70B1D2A83126F
:100440001F080C1383169F0183128B16C0308B0478
:10045000831681171030650000306600FF3083126C
:1004600085008601B601B501B3013308B4005330ED
:10047000C500CC207808A0004530C500CC20780805
:10048000A1007230C500CC207808A2004730C5001A
:10049000CC207808A3002314FF30C5003921FF3099
:1004A000C5003921FF30C5003921FF30C500392191
:1004B000370B5E2A0A30C5003921582AB708031DB8
:1004C0001F2BB408031D1F2BC4013608C6003508B6
:1004D000C5004E297708C5007808C6007908C7000E
:1004E0007A08C800CC007908CB007808CA007708E1
:1004F000C9001430D000AE30CF004730CE007D3080
:10050000CD006B297A08C0007908BF007808BE00CA
:100510007708BD004008C8003F08C7003E08C60075
:100520003D08C500E0297908BC007808BB003C08FC
:10053000263C0318A42AFF3A031DA22A3B080F3CBD
:100540000318A42AB601B501C4014408C300C200BF
:10055000C1003C08023C0318BC2AFF3A031DB42A20
:100560003B08E73C0318BC2AC40AE830BB0203304E
:10057000031C0430BC02A92ABC08031DC32A3B0883
:10058000633C0318CB2AC30A6430BB020030031C4F
:100590000130BC02BC2ABC08031DD22A3B08093C1E
:1005A0000318DA2AC20A0A30BB020030031C0130E9
:1005B000BC02CB2ABB08031DE02ABC080319E62AAB
:1005C000C10A3B080319BC03BB03DA2AC408031D94
:1005D000EF2A2030C500CC207808A000F42A440877
:1005E000C500CC207808A000C308031D002BC40858
:1005F000031D002B2030C500CC207808A100052B5E
:100600004308C500CC207808A100C208031D142BA4
:10061000C308031D142BC408031D142B2030C50070
:10062000CC207808A200192B4208C500CC207808FD
:10063000A2004108C500CC207808A3005E2A340B34
:10064000222B872B3830C500CC207808A0005030F2
:10065000C500CC207808A1004530C500CC20780822
:10066000A2002030C500CC207808A300FF30C500D0
:100670003921FF30C5003921FF30C5003921FF3055
:10068000C5003921370B482B6430C5003921422B76
:10069000B708031D872BB408031D872BAF08031D64
:1006A000572B2030C500CC207808A0005C2B2F08E9
:1006B000C500CC207808A000AE08031D682BAF0849
:1006C000031D682B2030C500CC207808A1006D2BBD
:1006D0002E08C500CC207808A1003108C500CC2028
:1006E0007808A2003008C500CC207808A3003A089A
:1006F000BA0A3F3C031C7E2B21147F2B21103A08A1
:10070000803C031CBA010430C5003921482B340B4E
:10071000412C2D30C500CC207808A000FF30C5004A
:100720003921FF30C50039212030C500CC207808A0
:10073000A0002D30C500CC207808A100FF30C500F6
:100740003921FF30C50039212030C500CC20780880
:10075000A1002D30C500CC207808A200FF30C500D4
:100760003921FF30C50039212030C500CC20780860
:10077000A2002D30C500CC207808A300FF30C500B2
:100780003921FF30C50039212030C500CC20780840
:10079000A300FF30C5003921FF30C50039218B127D
:1007A000831686018312850120308600FF30C50044
:1007B0003921013083168600203083128600FF30F5
:1007C000C5003921861AE82B83160117EA2B8312FC
:1007D0008316011383120B16630000000000FF3024
:1007E000C50039216300000000000B128B16013098
:1007F000831686002D308312C500CC207808A00017
:10080000FF30C5003921FF30C50039212030C50037
:10081000CC207808A0002D30C500CC207808A1009D
:10082000FF30C5003921FF30C50039212030C50017
:10083000CC207808A1002D30C500CC207808A2007B
:10084000FF30C5003921FF30C50039212030C500F7
:10085000CC207808A2002D30C500CC207808A30059
:10086000FF30C5003921FF30C50039212030C500D7
:10087000CC207808A300FF30C5003921FF30C50027
:060880003921372A630054
:02400E00103F61
:00000001FF
;PIC16F628A

08.06.2009