picexa là gì?phần mềm lập trình pic cực kì dễ với chip PICAXE có sẵn?

picexa là gì?phần mềm lập trình pic cực kì dễ với chip PICAXE có sẵn?
Câu hỏi:
Mình có nghe giang hồ đồn về phần mềm mới ,giúp chúng ta dễ dàng lập trình cho pic cho các ứng dụng đó là phần mếm picaxe.với đkien ở chúng ta phải mua chip của nó,hình như hơi mắc thí phài.
các bác cho ý kiến.
Trả lời:
nếu bạn biết viết vài chương dùng basic thì có thể tham khảo picbasic pro dùng cho tất cả các dòng pic.
hoặc bạn có thể tham khảo swordfish, 1 loại ngôn ngữ gần giống như visual basic nhưng chỉ dùng cho pic18.

còn picaxe thì tôi không rõ.

các chương trình picbasic pro hoặc swordfish đều phải mua bản quyền và khi compile source code thì sẽ ra .hex file cho bạn có thể dùng bất cứ programmer nào cho pic.
vụ bản quyền thì bạn cũng có thể **** xài đồ chùa được.

Hỏi:
bác nói thêm về chương trình picbasic pro dc ko?
phần mềm picaxe mình thấy bất tiện là phải mua chip của nó với giá khá cao

Trả lời:
Ví dụ lập trình bằng picbasicpro đây


Code:
‘****************************************************************
‘* Name : CodeLock.bas *
‘* Author : LonelyCatSoft *
‘* Date : 30.03.2012 *
‘* Version : 1.0 *
‘* Notes : Programable Code Lock with the PIC-16F84 *
‘****************************************************************

‘Ma khoa duoc nhap tu ban phim ma tran 4×3.
‘Mat khau mac dinh la: 1234
‘De thay doi mat khau hien tai, vi du la 1961, ta an: 1234*1961#1961#

@ device xt_osc, wdt_off, pwrt_on, protect_off

‘**************************************************
RL1_ON_time con 1000 * 3 ‘sec. Relay ON time
‘**************************************************

TrisA = 0 ‘ PORTA, all outputs
PortA = 16 ‘ turn off Buzer
OPTION_REG.7 = 0 ‘ PORTB Pullups.
TrisB = 0000 ‘ PORTB.0-3 outputs, 4-7 inputs
PortB = 0

LD1 var PortA.2
RL1 var PortA.3
BUZ var portA.4
cnt var byte

key var byte
col var byte
row var byte
keycnt var byte
pwOK var bit

keybuf var byte[15]
pwbuf var byte[4]

EEPROM 0,[1,2,3,4] ‘Default password 1,2,3,4 programmed at EEprom location 0..3
Read 0, pwbuf[0] ‘Copy password from EEprom address 0..3 in to pwbuf[0..3]
Read 1, pwbuf[1]
Read 2, pwbuf[2]
Read 3, pwbuf[3]

pwOK = 0
keycnt = 0

Main:
high ld1
gosub Chk_KEYPAD
pause 1
goto Main

Chk_KEYPAD:
for row = 0 to 3
PORTB = (dcd row) ^ $f
pause 1
col = PORTB >> 4
if (col <> $f) then ‘key pressed
key = (row * 3) + (ncd (col ^ $f))
gosub Got_KEY
key = 255
endif
next
return

Beep:
low ld1
low buz
pause 40
high buz
return

Got_KEY:
gosub Beep
while (PORTB >> 4) <> $f
pause 1
wend
if key = 11 then key = 0
keybuf[keycnt] = key
gosub Chk_keycnt
return

Chk_PwOK:
PwOK = 0
if (keybuf[0] = pwbuf[0]) and (keybuf[1] = pwbuf[1]) and (keybuf[2] = pwbuf[2]) and (keybuf[3] = pwbuf[3]) then pwok = 1
return

Chk_NewPwOK:
PwOK = 0
if (keybuf[5] = keybuf[10]) and (keybuf[6] = keybuf[11]) and (keybuf[7] = keybuf[12]) and (keybuf[8] = keybuf[13]) then pwok = 1
return

Pw_Change:
pwbuf[0] = keybuf[5]
pwbuf[1] = keybuf[6]
pwbuf[2] = keybuf[7]
pwbuf[3] = keybuf[8]
Write 0, pwbuf[0] ‘Store new password to EEprom location 0..3
Write 1, pwbuf[1]
Write 2, pwbuf[2]
Write 3, pwbuf[3]
return

Chk_keycnt:
select case keycnt
case 4
gosub Chk_PwOK
if pwOK then
if keybuf[keycnt] = 12 then Access_OK
if keybuf[keycnt] <> 10 then Clr_keybuf
gosub Beep
else
goto Clr_keybuf
endif
case 9
if keybuf[keycnt] <> 12 then Clr_keybuf
gosub Beep
case 14
if keybuf[keycnt] <> 12 then Clr_keybuf
gosub Beep
gosub Chk_NewPwOK
if pwOK then
gosub Beep
gosub Pw_Change
gosub Beep
goto Clr_keybuf
else
goto Clr_keybuf
endif
case else
if keybuf[keycnt] = 12 then Clr_keybuf
end select
keycnt = keycnt + 1
return

Access_OK:
High RL1
pause RL1_ON_time
low RL1

Clr_keybuf:
for cnt = 0 to 14
keybuf[cnt] = cnt
next
keycnt = 0
goto Main

end