информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыВсе любят медSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Notepad++ полгода раздавал зараженные... 
 Китайский прорыв из ESXi 
 С наступающим 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / gadgets
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Прога для эмулятора 23.11.01 22:25  
Автор: I Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Написал прогу для эмуля таксофонной карты, да не работает у меня по непонятным причинам, но в MPLAB'e все ОК. Приверьте, знающие люди, плиз. Чип - PIC16F84A 4 мегагерца, схема понятна из самой проги:

list p=16f84a
#include p16f84a.inc

PIN_CLK equ 0
PIN_RES equ 1
PIN_IO equ 2
W_CMD equ 0xC
CNT equ 0xD
TMP equ 0xE
BYTEF equ 0xF

#define BANK0 bcf STATUS,RP0
#define BANK1 bsf STATUS,RP0
#define IO_1 bsf PORTB,PIN_IO
#define IO_0 bcf PORTB,PIN_IO
#define GIEON bsf INTCON,GIE

org 0
goto Init

org 4
btfsc PORTB,PIN_RES
movlw 2
addwf PCL,1
goto Read
goto WWC
goto Reset
WWC:
btfss W_CMD,0
goto Write
goto WriteC

Init:
movlw 8
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movf EEDATA,1
btfss STATUS,Z
goto Init2
movlw 9
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movf EEDATA,1
btfss STATUS,Z
goto Init2
movlw 0xA
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movf EEDATA,1
btfss STATUS,Z
goto Init2
movlw 0xB
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movf EEDATA,1
btfss STATUS,Z
goto Init2
movlw 0xC
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movf EEDATA,1
btfss STATUS,Z
goto Init2
movlw 0xF
movwf EEDATA
movlw 0xA
movwf EEADR
BANK1
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bcf EECON1,WREN
BANK0
movlw 0x1F
movwf EEDATA
movlw 0xB
movwf EEADR
BANK1
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bcf EECON1,WREN
BANK0
movlw 0xF
movwf EEDATA
movlw 0xC
movwf EEADR
BANK1
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bcf EECON1,WREN
BANK0
Init2:
movlw b'00001111'
movwf BYTEF
clrw
BANK1
bcf TRISB,PIN_IO
BANK0
bsf INTCON,INTE
bsf INTCON,GIE

Monitor:
GIEON
btfss PORTB,PIN_RES
goto $-1
movlw 1
goto $

Reset:
movf CNT,W
andlw b'11111000'
btfsc STATUS,Z
goto Monitor
clrf CNT
IO_1
bcf W_CMD,0
clrw
goto Monitor

Read:
incf CNT,1
rlf CNT,W
movwf TMP
swapf TMP,W
andwf BYTEF,W
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movlw b'00000111'
andwf CNT,W
call Filter
andwf EEDATA,1
btfss STATUS,Z
IO_1
btfsc STATUS,Z
IO_0
bcf W_CMD,0
clrw
goto Monitor

Write:
movf CNT,W
andlw b'11000000'
btfsc STATUS,Z
goto Monitor
rlf CNT,W
movwf TMP
swapf TMP,W
andwf BYTEF,W
movwf TMP
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movlw b'00000111'
andwf CNT,W
call FilterW
andwf EEDATA,1
movf TMP,W
movwf EEADR
BANK1
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bcf EECON1,WREN
BANK0
bsf W_CMD,0
clrw
goto Monitor

WriteC:
movf CNT,W
andlw b'11000000'
btfsc STATUS,Z
goto Monitor
rlf CNT,W
movwf TMP
swapf TMP,W
andwf BYTEF,W
movwf TMP
movwf EEADR
BANK1
bsf EECON1,RD
BANK0
movlw b'00000111'
andwf CNT,W
call Filter
iorwf EEDATA,1
movf TMP,W
movwf EEADR
BANK1
bsf EECON1,WREN
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf EECON1,WR
btfsc EECON1,WR
goto $-1
bcf EECON1,WREN
BANK0
bcf W_CMD,0
clrw
goto Monitor

Filter:
addwf PCL,1
retlw b'10000000'
retlw b'01000000'
retlw b'00100000'
retlw b'00010000'
retlw b'00001000'
retlw b'00000100'
retlw b'00000010'
retlw b'00000001'

FilterW:
addwf PCL,1
retlw b'01111111'
retlw b'10111111'
retlw b'11011111'
retlw b'11101111'
retlw b'11110111'
retlw b'11111011'
retlw b'11111101'
retlw b'11111110'

org 0x2100
data 0xE9
data 0x22
data 0xEE
data 0x22
data 0x74
data 0x38
data 0xAD
data 0x2C
data 0x00
data 0x00
data 0x0F
data 0x1F
data 0x0F

END
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach