Перейти к содержанию

Evgeniy

Урок 8_1 добавляем кнопки

Рекомендуемые сообщения

Так как у pic16f84 недостаточно выводов, меняем его на pic16f628A, переводим его на работу от внутреннего генератора.

8.JPG

 

Код:

 

@ device pic16f628a, cpd_off, protect_off, mclr_off, pwrt_on, wdt_off, INTRC_OSC_NOCLKOUT
'*******************************************************************************
trisA = %11110000
trisB = %00000000
'*******************************************************************************
LED var portB
ind1 var portA.0
ind2 var portA.1
ind3 var portA.2
ind4 var portA.3
Plus var portA.7 'Кнопка +
Minus var portA.6 'Кнопка -
Res var portA.5 'Кнопка сброса
Temp var word
i var byte
n var byte
buf1 var byte
buf2 var byte
buf3 var byte
'*******************************************************************************
clear
led = 0
ind1 = 1
ind2 = 1
ind3 = 1
ind4 = 1
temp = 100
'*******************************************************************************


'*******************************************************************************
main:
button plus, 0,255,255,buf1,1,TPlus
button minus,0,255,255,buf2,1,TMinus
button res, 0,255,255,buf3,1,TReset
gosub display
goto main
'*******************************************************************************


'*******************************************************************************
TPlus:
temp = temp + 1
if temp > 9999 then temp = 0
goto main
'*******************************************************************************


'*******************************************************************************
TMinus:
temp = temp - 1
if temp > 10000 then temp = 9999
goto main
'*******************************************************************************


'*******************************************************************************
TReset:
temp = 0
goto main
'*******************************************************************************


'******************************* Индикация *************************************
Display:
for i = 0 to 3
n = temp dig i
ind1 = 1
ind2 = 1
ind3 = 1
ind4 = 1
Lookup n,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],led
if i = 0 then
ind1 = 1
ind2 = 1
ind3 = 1
ind4 = 0
endif
if i = 1 then
ind1 = 1
ind2 = 1
ind3 = 0
ind4 = 1
endif
if i = 2 then
ind1 = 1
ind2 = 0
ind3 = 1
ind4 = 1
endif
if i = 3 then
ind1 = 0
ind2 = 1
ind3 = 1
ind4 = 1
endif
pauseus 500
next i
return
'*******************************************************************************

 

8_1.rar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
 

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти



×
  • Создать...