Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Работа с ключами Ds1990!


Работа с ключами Ds1990!

Сообщений 1 страница 5 из 5

1

Добрый день всем форумчанам! Не так давно задумался самостоятельно(ну почти) собрать копировальщик ключей в среде баском, нашёл тему - тык .На базе этой статьи сварганил сначала на меге 8 + oled ssd1306 128x32 вот такой код -

Код:
$regfile = "m328pdef.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
'======================================

Declare Sub Keyread()
'==============================
dim a as byte
Dim Bth1 As String * 16
Dim Bth2 As String * 16
Dim Bth As String * 16
Dim storog as word
dim flmenu as byte
Dim Inden As Bit
Dim I As byte
dim W as byte
'===============================
Config Pind.2 = Input
Config Pind.3 = Input
Config Pind.4 = Input

Config 1wire = Portd.5
'------конфиг таймера сторожа------
Config Timer0 = Timer , Prescale = 1024
On Timer0 doggy:
Enable Timer0
Start Timer0
Enable Interrupts
'
'------конфиг шины i2c-------
Config Scl = Portc.5                                        ' used i2c pins
Config Sda = Portc.4
Config Twi = 400000                                         ' i2c speed
I2cinit : Waitms 5

$lib "i2c_twi.lbx"
$lib "glcdSSD1306-I2C.lib"                                  ' override the default lib with this special one

#if _build < 20784
Dim ___lcdrow As Byte , ___lcdcol As Byte                   ' dim these for older compiler versions
#endif

Config Graphlcd = Custom , Cols = 128 , Rows = 32 , Lcdname = "SSD1306"

'-------------------------------- Program --------------------------------------
I2cstart
I2cwbyte &H78
I2cwbyte &H00
I2cwbyte &HDA                                               'Enable COM Left/Right remap
I2cwbyte &H22
I2cstop

flmenu = 0
w=0
do
if flmenu<> 0 then
cls
gosub menu
 else
Setfont Font8x8
cls
Lcdat 1 , 10 , "Key info"
Lcdat 2,10,"wait reading..."
gosub checkbth
i=Hexval(bth)
if i <>0 then
gosub checkbth

lcdat 2,10 , Bth

wait 3
endif
endif
loop

'================================================================================

Sub Keyread()
Do
If Inden = 0 Then 1wreset
Loop Until Err <> 1

1wreset
1wwrite &H33
Waitus 20
Bth = Hex(1wread())
Waitus 20
Bth = Bth + Hex(1wread())
Waitus 20
Bth = Bth + Hex(1wread())
Waitus 20
Bth = Bth + Hex(1wread())
Waitus 20
Bth = Bth + Hex(1wread())
Waitus 20
Bth = Bth + Hex(1wread())
Waitus 20
Bth = Bth + Hex(1wread())
Waitus 20
Bth = Bth + Hex(1wread())
Waitus 20
End Sub

checkbth:
Call Keyread()
bth1=bth
waitms 200
Call Keyread()
bth2=bth
if bth1<> bth2 then
bth= "fail reading..."
endif
return
'===============================================================================

menu:

setfont Font 8x8
do
wait 1

Lcdat 1,1,w
Lcdat 2,2,"Eeproom"
wait 2

loop until w = 0


в этой версии работает только автоматическое считывание,пока криво написанное, но всё же.А теперь ближе к телу - Ссылка. Собственно там в первом сообщении есть архив со всем необходимым, исходник, схема, описание. Но так как я решил делать на оледе да и хочу сделать с нуля, возникла проблема с записью кода в ключ, если хотите я могу полностью выложить из того архива исходник.Может всётаки кто нибудь тут уже додумался это сделать сам и может поделиться наработками??

Отредактировано shim (2018-10-13 11:47:31)

0

2

В железе:

shim написал(а):

сварганил сначала на меге 8

В программе:

shim написал(а):

$regfile = "m328pdef.dat"

Где неправда ? ;)

0

3

Начинал я на восьмой, но потом плавно перешел на 328.

0

4

Разобрался, тему можно закрывать!

0

5

shim написал(а):

Разобрался, тему можно закрывать!

Вот лично мне приятно, что вопрос разрешился положительно, честное слово... ;)

А поделиться решением можно ?
Я не настаиваю, конечно... ;)

0

Похожие темы


Вы здесь » Программирование ATMEL в BASCOM. » Исходники » Работа с ключами Ds1990!