Реклама:

Разумеется, именно в программе для микроконтроллера PIC16C8/i сокрыто большинство "маленьких секретов" вышеописанной схемы.

Исходный текст программы (файл C0UP84. ASK) не слишком объемен и совершенно не похож на исходные тексты для "профессиональных" устройств чтения-записи.

---------colipw.ash--------

Чтение-запись чип-карт на микроконтроллере PIC16C84

copyright (с}1997 Patrick GUEULLE

Биты конфигурации ■ Ose XT, WDT ОН

org 0

     
 

goto тії

 

org 4

     

init

bsf

3,5

I Выбор стр. 1

 

ITOVlW

b"10000'

, ЙА4 - вход.

 

irovwf

' .^фигурирование порта А

 

movlw

b110011000-

 
 

movwf

Конф-тур/ропание перта В.

 

")VlW

b"11111000"

 
 

")VWf

Конфигурирование МОТ.

 

bef

3.5

Возврат на стр. 0

 

movlw

b* 11111000

Инициализация порта В.

 

ITDV'Wf

 
 

mc lw

b'11010

Инициализация порта А

     

de ja

btfss

6,3

Ждать удаления карты

 

goto

err

Снять питание со вставленной карты

wait

clrwdt

   
 

btfsc

6,3

. Ждать вставки карты

goto

wait

 

btfsc

6,4

Если последовательный порт неактивен.

goto

err

снять питание с карты

call

tempo

 

bcf

5,3

Подать на карту Усе.

call

tempo

 

bsf

6.2

Подать нг карту Урр.

call

tempo

 

bsf

5,0

Подать на карту тактовые импульсы.

bcf

5,1

Погасить СИД.

bsf

5.2

Сбросить карту в 1

loop btfss

5,3

Если карта вставлена,

clrwdt

 

обнулить Ш

btfsc

6.4

Если последовательный порт неактивен.

goto

err

снять питание с карты.

bsf

3.5

Выбрать стр. 1.

movlw

b'10000

ПА4 - вход, 1/0 карты в 1 {пуста}.

movwf

Конфигурирование порта А.

bcf

3,5

Возврат на стр. 0.

testio btfsc

5.4

, Если 1/0 карты в 1.

goto

testrs

, читать НБ232.

bcf

6,6

Если 1/0 карты в 0,

goto

testio

послать 0 в ЯБ2Э2.

zeroca bsf

3,5

; Если 1/0 карты в 1

ir.ovlw

b'00000

. ПА4 - выход.

movwf

. Конфигурирование порта А

bcf

3.5

, Возврат на стр. 0.

bcf

5.4

, Послать 0 в карту.

btfsc

6.7

. Если ($232 в 1,

goto

lDDp

, освободить 1/0 карты-

goto

zeroca

. Продолжить запись 0 в карту

test rs bsf

6.6

. Держать НБ232 в 1.

btfss

6.3

. Если карта вставлена,

clrwdt

 

, сбросить ИОТ.

btfss

6,7

, Если НБ232 в 0

goto

zeroca

; записать 0 в карту.

goto

loop

| Если НБ232 в 1, освободить 1/0 карты

goto

loop

 

tempo movlw

.200

, Задержка на 200 ЭТЕ (ЕТи>

movwf

 

loopa call

bit

 

btfss

6.3

. Если карта вставлена,

clrwdt

 

, сбросить Ш\

decfsz

10.1

 

goto

loopa

 

return

   

bit

movlw 28

. ЭТЕ (£Ти> длительностью 101 мке

time movwf

OF

 

redo decfsz OF. 1 goto redo return

err goto err ; Снять питание с карты по переполнении WOT. end

Результат ассемблирования с помощью средств из набора PIC-START 16В компании Microchip - файл C0UP84.0BJ, который может непосредственно служить для программирования микроконтрол лера при условии, что биты режимов тактового генератора (режим XT) и аварийного таймера (WDT ON) будут программироваться вручную.

Файл C0UP84.08J: :020000000428D2

:10000800B316103085009B30B600F83081008312FE : 10001800F8308E001А308500861D472B6400B61916 :1000280012280БШ7283А2085113А2006153А2040 :1О00380005148510051586Ю640006 Ш7288316С1 :10004800103085008312051А332В06132728831603 :100058000030850083120512861B1F282B280dT7DF :1OO068O0861D64O0861F2B2B1F2B1F28C83O9O0073 :1O0078004220861D6400900B3C2808O01C30BF002D 080088008F0B44280E0D472BF3 :00000001FF

Более содержательный файл C0UP84.HEX позволяет "прошить PIC16C84 с помощью программатора, описанного в книге автора "Composants électroniques programmables sur PC". В таком случае биты режимов автоматически обрабатываются специальной программой, которая представлена на дискете, прилагаемой к названной книге. Файл C0UP84.HEX:

:100000000428FF3FFF3FFF3F8316103085009830E4 :100010008600F83081008312FB30B6001A3085009F :10002000B6TD"7286400B619122B061M7283A2098 :10003C0085113A2006153A20051485100515861DFO ■.100D40006400061A4728831610308500B312051AAB :100050003328D6132728B3160030860083120512E3 :10006000861B1F282B280617861D6400861F2B2839 :100070001F281F28C83090004220B61D6400900B66 :100080003C2B08001C30BF008FOB442B080D472BAC :1O0O9O000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7 :1O0OAO0DFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6O :1000BDOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F50 :1O00C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F40 :1O0ODO0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3O

1O0OE000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F20 1OOOFO00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F10 10010000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF 10011000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEF 10012000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDF 1O013O00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCF 10014000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBF :1OO15O0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAF :10016O00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9F :1O0170O0FF3FFF3FFF3FFF3FPF3FFF3FFF3FFF3F8F :1O018O00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7F : 100190MFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6F :1OO1A0O0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5F :1001BOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4F :1OO1C000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3F :1O0lD0O0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2F :1001E000FF3FFF3FFP3FFF3FFF3FFF3FFF3FFF3F1F .1O01FO0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FOF .1O020OOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFE :10021O00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEE :10022000PF3PFF3FFF3FFF3FFF3FFF3FFP3FFF3FDE :10023000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCE .10O240O0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBE :10025000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAE ■.100Z60WIFF3FFF3FFF3FFF3FFF3FFT3FFF3FFF3F9E :1O02/O0OFF3FFF3FFF3FFF3FPF3FFF3FFF3FFF3F8E .1O028OOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7E .10029000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6E ■1OO2AO0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5E :1O02BO0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4E :1OO2C0O0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3E 10020000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2E :1O02E0OOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1E :1002F000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F0E :10030000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFD :1O0310O0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FED :10032000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDD :10033000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCD :10034000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBD :1OO35OOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FA0 :1OO36O0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9D :1OO37OO0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F8D :10O3BO00FF3FFF3FFF3FFF3FFF3FFF3FFF3FPF3F7D :10039000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F60 :1003AOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5D :1O03BOO0FF3FFF3PFF3FFF3FFF3FFF3FFF3FFF3F4D :1003C0OOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3D :1OO3DO0OPF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2D

:1CO3EO0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1D :1003FOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FOD :10D40000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFC :10041000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEC :10042000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDC .1 1 FF3FFF3 Fp F3FFF3FFF3FFP3FF F3FFF3FCC .10044000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBC :10045000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAC :1OO46O0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9C :10D47000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F8C :10D48000FF3FFF3FPF3FFF3FFF3FFF3FFF3FFF3F7C :10D49000FF3FFF3FPF3FFF3FFF3FFF3FFF3FFF3F6C :1O04AO00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5C :1O04BO00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4C :1OO4COO0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3C :1O04D0O0FF3FFF3FFF3FFF3FFF3FFF3FFF3PFF3F2C :1004EOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1C :1O04FOO0FF3FFF3FFF3FFF3FFF3FFF3FFF3FPF3FDC .10050000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFB :10051000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEB :1O0520O0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FDB :10053000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FC8 :10054000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBB :10055000FF3FPF3FFF3FFF3FFF3FFF3FFF3FFF3FAB :10056000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9B :10057000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F8B :10058000FF3FFF3FFF3FFF3FFF3FFF3FFF3PFF3F7B ■10059000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6E 1005AOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5B 1005BOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4B :1OO5CO0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3B :1005D000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F2B 1005E000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1B 1005F000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F0B 10O6CO0CFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFA 10061000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FEA .10062000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FOA :10063000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FCA .10064000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FBA :10065000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FAA :10066000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F9A :10067CO0FF3FFF3FFF3FFF3FFF3FPF3FFF3FFF3F6A :10068000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F7A :10069000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F6A :1006AOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F5A :1006B000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F4A

.1006COOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F3A

:1006DOOOFF3FFF3FPF3FFF3FFF3FFF3FFF3FFF3F2A

:1006EOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F1A

:1006FOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FOA

:1O07O00OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FFS

:1O071O0OFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FE9

:10072000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F09

:10073000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FC9

:10074000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FB9

:10075000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3FA9

:10076OO0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F99

:10077000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F89

:10078000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F79

■10079000FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F69

:1OO7A0O0FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F59

.1OO7BOO0FF3FFF3PFF3FFF3FFF3FFF3FFF3FFF3F49

:1OO7C0O0FF3FPF3FFF3FFF3FFF3FFF3FFF3FFF3F39

11007DOOOFF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F29

■.1007EO00FF3FFF3FFF3FFF3FFF3FFF3FFF3FFF3F19

:1OO7FOO0FF3FFF3FFF3FFF'FFF3FFF3FFF2FFF3FO9

:O84000O0FF3FFF3FFF3FFF3FC0

:02400EOOED3F84

:10420O00FF00FFOOFF00FFO0FFO0FF00FF00FFO0B6 :10421000FF00FFO0FF00FF00FFO0FF00FF00FFO0A6 :1O4220O0FFOOFFOOFFO0FFO0FF00FFOOFFOOFFOO96 :10423O00FF00FFO0FF00FFOOFF00FF00FF00FFO086 : 104240WFTOOFFOOFF№OOFFOOFFOOFFOOFF№ :1W250O0FFOOFFO0FF0OFFOOFFOOFFOOFFO0FFOO6E :10428000FFOOFFOOFFOOFFCOFFOOFFOOFFOOFF0056 :10427000FFOOFFOOFFOOFFCCFFOOFFOOFFOOFF0046 : 00000001FF

Упрощенное устройство чтения-записи || Оглавление || Чтение ответа на сброс