Jump to content
PLC Forum


Sign in to follow this  
Mtt0836

Timer Pic Con 2X16 Lcd E 4X4 Keypad

Recommended Posts

Mtt0836

Salve a tutti,

io gioco a Soft-air tutte le domeniche, visto che a turno dobbiamo inventarci delle giocate sto provando a preparare un mil-sim(simulazione) di un'attacco terroristico con una FINTA bomba, la quale deve essere accesa e programmato il codice dalla prima squadra e successivamente trovata e disattivata tramite codice o scollegare la batteria dalla seconda squadra.

io ho studiato elettronica a scuola e ci hanno insegnato molto leggermente la programmazione dei pic.

Passo al dunque, vi chiedo se potete aiutarmi per cortesia a realizzare questo progetto, io ho a disposizione questi strumenti:

Schede con pic

http://www.futurlec....Technical.shtml

oppure

http://www.futurlec....ontroller.shtml

entrambe le schede hanno quarzi da 10MHz

Pic:

18f2550

16f84A

12f683

lcd 2x 16:

http://www.futurasho...YBW&nVt=&d=8,70

4x4 keypad

il resto ho già in casa resistenze condensatori transistor etcc..

per ora tramite mikrobasic ho scritto il seguente codice:


program keypad_e_lcd

dim kp, cnt, oldstate as byte

	txt as char[7]

' Keypad module connections

dim keypadPort as byte at PORTC

' End Keypad module connections

' Lcd module connections

dim LCD_RS as sbit  at RB4_bit

	LCD_EN as sbit  at RB5_bit

	LCD_D4 as sbit  at RB0_bit

	LCD_D5 as sbit  at RB1_bit

	LCD_D6 as sbit  at RB2_bit

	LCD_D7 as sbit  at RB3_bit

	LCD_RS_Direction as sbit at TRISB4_bit

	LCD_EN_Direction as sbit at TRISB5_bit

	LCD_D4_Direction as sbit at TRISB0_bit

	LCD_D5_Direction as sbit at TRISB1_bit

	LCD_D6_Direction as sbit at TRISB2_bit

	LCD_D7_Direction as sbit at TRISB3_bit

' End Lcd module connections

main:

  oldstate = 0

  cnt = 0							 ' Reset counter

  Keypad_Init()					   ' Initialize Keypad

  Lcd_Init()						  ' Initialize LCD

  Lcd_Cmd(_LCD_CLEAR)				 ' Clear display

  Lcd_Cmd(_LCD_CURSOR_OFF)			' Cursor off

  Lcd_Out(1,1, "Padovankorps")

  Lcd_Out(2,1, "Soft-Air Team")

  delay_ms (1500)

  Lcd_Out(1,1, "Simbomb V2")

  Lcd_Out(2,1, "Made by Stord")

  delay_ms (1500)

  Lcd_Out(1, 1, "Key  :")			 ' Write message text on LCD

  Lcd_Out(2, 1, "Times:")

  while TRUE

	kp = 0							' Reset key code variable

	' Wait for key to be pressed and released

	while ( kp = 0 )

	  kp = Keypad_Key_Click()		 ' Store key code in kp variable

	wend

	' Prepare value for output, transform key to it"s ASCII value

	select case kp

	  'case 10: kp = 42   ' "*"	   ' Uncomment this block for keypad4x3

	  'case 11: kp = 48   ' "0"

	  'case 12: kp = 35   ' "#"

	  'default: kp += 48

	case 1

	  kp = 49  ' 1					' Uncomment this block for keypad4x4

	case 2

	  kp = 50  ' 2

	case 3

	  kp = 51  ' 3

	case 4

	  kp = 65  ' A

	case 5

	  kp = 52  ' 4

	case 6

	  kp = 53  ' 5

	case 7

	  kp = 54  ' 6

	case 8

	  kp = 66  ' B

	case 9

	  kp = 55  ' 7

	case 10

	  kp = 56  ' 8

	case 11

	  kp = 57  ' 9

	case 12

	  kp = 67  ' C

	case 13

	  kp = 42  ' *

	case 14

	  kp = 48  ' 0

	case 15

	  kp = 35  ' #

	case 16

	  kp = 68  ' D

	end select

	if (kp <> oldstate) then		' Pressed key differs from previous

	  cnt = 1

	  oldstate = kp

	else							' Pressed key is same as previous

	  Inc(cnt)

	end if

	Lcd_Chr(1, 10, kp)			  ' Print key ASCII value on LCD


	if (cnt = 255) then			 ' If counter varialble overflow

	  cnt = 0

	  Lcd_Out(2, 10, "	 ")

	end if

	WordToStr(cnt, txt)			 ' Transform counter value to string

	Lcd_Out(2, 10, txt)			 ' Display counter value on LCD

  wend

end.

Il tutto usando le librerie e logica... quello che ora mi manca è settare il registro e il prescaler e creare il countdown e il controllo della chiave...

Vi ringrazio per qualsiasi consiglio/critica/aiuto che mi potete dare...

Edited by Mtt0836

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...