DEVICE=16F84A CONFIG XT_OSC,WDT_OFF,PWRTE_OFF,CP_OFF XTAL=4 SYMBOL DO=PORTA.1 SYMBOL CLK=PORTA.0 DECLARE LCD_TYPE 0 'LCD tanimlaniyor DECLARE LCD_DTPIN PORTB.4 DECLARE LCD_ENPIN PORTB.3 DECLARE LCD_RSPIN PORTB.2 DECLARE LCD_INTERFACE 4 DECLARE LCD_LINES 2 PRINT $FE , 128 DIM BILGI AS BYTE 'degiskenler atanir DIM SCAN_TEMP AS BYTE DIM ASCII_TEMP AS BYTE DIM I AS BYTE DIM INDEX AS BYTE DIM DEGISIM AS BYTE DIM CAPS AS BYTE TRISA=%11111111 'PORTA nin tamami giris yapildi TRISB=%00000000 'PORTB nin tamami cikis yapildi PORTB=0 PORTA=0 DEGISIM=0 'degiskenlere ilk degerleri atanir BILGI=0 ANA_DONGU: IF CLK=0 THEN 'Klavyeye basilinca CLK 0 degeri alir WHILE CLK=0 'bu sirada ilk clock alinir WEND WHILE CLK=1 '2. clock alinir WEND 've datamizin ilk biti BILGI.0=DO 'BILGI nin 0. bitine atanir WHILE CLK=0 WEND WHILE CLK=1 '3. clock alinir WEND ' ve BILGI.1=DO 'datamiz BILGI nin 1.bitine atanir WHILE CLK=0 ' clock alinir WEND WHILE CLK=1 '4. clock alinir WEND 'datamiz BILGI nin 2.bitine atanir BILGI.2=DO WHILE CLK=0 WEND WHILE CLK=1 '5. clock alinir WEND 'datamiz BILGI nin 3.bitine atanir BILGI.3=DO WHILE CLK=0 WEND WHILE CLK=1 '6. clock alinir WEND 'datamiz BILGI nin 4.bitine atanir BILGI.4=DO WHILE CLK=0 WEND WHILE CLK=1 '7. clock alinir WEND 'datamiz BILGI nin 5.bitine atanir BILGI.5=DO WHILE CLK=0 WEND WHILE CLK=1 '8. clock alinir WEND 'datamiz BILGI nin 6.bitine atanir BILGI.6=DO WHILE CLK=0 WEND WHILE CLK=1 '9. clock alinir WEND 'datamiz BILGI nin 7.bitine atanir BILGI.7=DO WHILE CLK=0 WEND WHILE CLK=1 '10. clock alinir WEND WHILE CLK=0 WEND WHILE CLK=1 '11. clock alinir WEND WHILE CLK=0 WEND DEGISIM=1 ENDIF IF DEGISIM=1 THEN IF BILGI=88 THEN IF CAPS=0 THEN CAPS=1 ELSE CAPS=0 ENDIF ENDIF FOR I=0 TO 47 SCAN_TEMP = LREAD SCAN_TABLE + I IF SCAN_TEMP=BILGI THEN INDEX=I ENDIF NEXT ASCII_TEMP = LREAD ASCII_TABLE + INDEX PRINT $FE , 1 : DELAYMS 30 PRINT $FE , 2 PRINT " ASCII = " , DEC ASCII_TEMP DELAYMS 50 DEGISIM=0 ENDIF GOTO ANA_DONGU SCAN_TABLE: LDATA 43 , 65 , 42 , 53 , 35 , 21 , 29 , 68 , 45 , 26 , 59 LDATA 75 , 66 , 67 , 44 , 77 , 84 , 60 , 58 , 51 , 28 , 33 LDATA 91 , 93 , 76 , 49 , 50 , 27 , 34 , 82 , 52 , 36 LDATA 14 , 22 , 30 , 38 , 37 , 46 , 54 , 61 , 62 , 70 , 69 LDATA 78 , 85 , 73 , 74 , 97 ASCII_TABLE: LDATA 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 LDATA 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 84 , 85 , 86 LDATA 87 , 88 , 89 , 90 , 199 , 206 , 214 , 222 , 220 , 208 LDATA 43 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 48 LDATA 47 , 45 , 46 , 44 , 60 END