Program írás help
HI!
LCD programozásban kérném a segítségeteket, ötleteket. Adott 1 JM162b modul és 1 Atm16-os. Az lcd teljesen meg van zavarodva (sok krix, krax, neha semmmi, de van amikor kóser). A következő jelenségekre figyeltem fel: Ha a tápfeszt ráadom az AT-ra és az LCD-re akkor a fentiek a jelenségek, de ha utána egy párszor pillanatra megszakítom, majd ujra tápolom akkor meg magához tér
BEKÖTÉS:
Pin NO. Symbol Function Remark >ATm16 x láb.
1 GND 0V > test.
2 Vdd +5V > L7805 + 2x100nf.
3 V5 Power supply For LCD Variable > 10kO poti +,- között.
4 RS Register Select(H=Data,L=Instruction) > portd 0.
5 R/W Read/Write L=MPU to LCM,H=LCM to MPU > portd 1.
6 E Enable > portd 2.
7 DB0 Data bus bit 0
8 DB1 Data bus bit 1
9 DB2 Data bus bit 2
10 DB3 Data bus bit 3
11 DB4 Data bus bit 4 > portd 4.
12 DB5 Data bus bit 5 > portd 5.
13 DB6 Data bus bit 6 > portd 6.
14 DB7 Data bus bit 7 > portd 7.
15 A Anode of LED Unit > mint az LCD 3. láb.
16 K Cathode of LED Unit > Dióda közbeiktatásával test.
PROGI:
$regfile = "m16def.dat"
$crystal = 16000000
Config Kbd = Pinb 'b-porton a mátrix bill.
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.0
Ddrd.1 = 1 'R/W
Portd.1 = 0
Dim K As String * 2
Dim Bk As Byte
Cursor Off
Display On
Waitms 100
Do 'lekérdezés és átkódolás
Cls
Bk = Getkbd()
K = Str(bk)
Lcd K
Waitms 100
Loop
End 'end program
LCD programozásban kérném a segítségeteket, ötleteket. Adott 1 JM162b modul és 1 Atm16-os. Az lcd teljesen meg van zavarodva (sok krix, krax, neha semmmi, de van amikor kóser). A következő jelenségekre figyeltem fel: Ha a tápfeszt ráadom az AT-ra és az LCD-re akkor a fentiek a jelenségek, de ha utána egy párszor pillanatra megszakítom, majd ujra tápolom akkor meg magához tér
BEKÖTÉS:
Pin NO. Symbol Function Remark >ATm16 x láb.
1 GND 0V > test.
2 Vdd +5V > L7805 + 2x100nf.
3 V5 Power supply For LCD Variable > 10kO poti +,- között.
4 RS Register Select(H=Data,L=Instruction) > portd 0.
5 R/W Read/Write L=MPU to LCM,H=LCM to MPU > portd 1.
6 E Enable > portd 2.
7 DB0 Data bus bit 0
8 DB1 Data bus bit 1
9 DB2 Data bus bit 2
10 DB3 Data bus bit 3
11 DB4 Data bus bit 4 > portd 4.
12 DB5 Data bus bit 5 > portd 5.
13 DB6 Data bus bit 6 > portd 6.
14 DB7 Data bus bit 7 > portd 7.
15 A Anode of LED Unit > mint az LCD 3. láb.
16 K Cathode of LED Unit > Dióda közbeiktatásával test.
PROGI:
$regfile = "m16def.dat"
$crystal = 16000000
Config Kbd = Pinb 'b-porton a mátrix bill.
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.0
Ddrd.1 = 1 'R/W
Portd.1 = 0
Dim K As String * 2
Dim Bk As Byte
Cursor Off
Display On
Waitms 100
Do 'lekérdezés és átkódolás
Cls
Bk = Getkbd()
K = Str(bk)
Lcd K
Waitms 100
Loop
End 'end program
Bascom samples alatt a getkbd.bas .
Kód: Egész kijelölése
'--- Alapadatok ---
$crystal = 14745600 'Sebesseg
$regfile = "M16def.dat" 'Chip
$baud = 9600
Config Keyboard = Pina.4 , Data = Pina.5 , Keydata = Keydata
'Dim some used variables
Dim S As String * 12
Dim B As Byte
'$serialinput = Kbdinput
Print "hello"
Do
B = Getatkbd()
Loop Until B <> 0
Print B
Loop
End
'Since we do a redirection we call the routine from the redirection routine
Keydata:
'normal keys lower case
Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
'shifted keys UPPER case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Bascom példa alapján az enyém is hasonló, de a fenti változat is dettó ugyan azt produkálja
Kezdek a hardverre gyanakodni, mert ha a config keyboard be van töltve az ATm16-ba akkor az lcd kijelzés is megszűnik pusztán a test érintésére!?
A billentyűzet csatlakoztatásra szintén nem jelez semmit, de lehúzva ismét kiírja a 0 kódot.
Kezdek a hardverre gyanakodni, mert ha a config keyboard be van töltve az ATm16-ba akkor az lcd kijelzés is megszűnik pusztán a test érintésére!?
A billentyűzet csatlakoztatásra szintén nem jelez semmit, de lehúzva ismét kiírja a 0 kódot.
Hi!
Ismét nekilendültem. Ki hagytam a gyanusítottak közül az LCD rutint és le is kötöttem a modult. Kijelzésnek visszakerültek a jó öreg 7szegmensesek Az ATkbd kezelő rutin megmaradt. A végeredmény sajna ugyanaz a mimóza efekt mint korábban Kizárásos alapon így szerintem az AT-s bilentyűkezelő a záptojás
Progi:
$regfile = "m16def.dat"
$crystal = 16000000
Config Keyboard = Pinb.7 , Data = Pinb.6 , Keydata = Keydata
Ddrc = 255 'c és d-portokon a 7-7szegmens
Ddrd = 255 'a Minta1 és Minta16 a hexa kijelzés
'én 2 közös anódos kijelző, így a szegmens kódok: 255 - a portok,
' ha katódosak akkor símán szegmens kód = portokkal
Dim Bk As Byte
Dim Es As Byte
Dim Ts As Byte
Dim Te As Byte
Dim E As Byte
Dim T As Byte
Do 'lekérdezés és átkódolás
Bk = Getatkbd()
For Ts = 0 To 240 Step 16
For Es = 0 To 15
Te = Ts + Es
If Bk = Te Then
Goto Kiiro
Else
End If
Next Es
Next Ts
Kiiro:
E = Lookup(es , Minta1) 'megjelenítés
Portc = E
Ts = Ts / 16
T = Lookup(ts , Minta16)
Portd = T
Wait 1
Portc = 255
Portd = 255
Loop
End
Keydata:
'normal keys lower case
Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
'shifted keys UPPER case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Minta16:
Data 33 , 189 , 19 , 25 , 205 , 73 , 65 , 61 , 1 , 9 , 5 , 193 , 99 , 145 , 67 , 71 '0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F
Minta1:
Data 132 , 215 , 76 , 69 , 55 , 37 , 36 , 199 , 4 , 5 , 6 , 52 , 172 , 84 , 44 , 46 '0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F
Ismét nekilendültem. Ki hagytam a gyanusítottak közül az LCD rutint és le is kötöttem a modult. Kijelzésnek visszakerültek a jó öreg 7szegmensesek Az ATkbd kezelő rutin megmaradt. A végeredmény sajna ugyanaz a mimóza efekt mint korábban Kizárásos alapon így szerintem az AT-s bilentyűkezelő a záptojás
Progi:
$regfile = "m16def.dat"
$crystal = 16000000
Config Keyboard = Pinb.7 , Data = Pinb.6 , Keydata = Keydata
Ddrc = 255 'c és d-portokon a 7-7szegmens
Ddrd = 255 'a Minta1 és Minta16 a hexa kijelzés
'én 2 közös anódos kijelző, így a szegmens kódok: 255 - a portok,
' ha katódosak akkor símán szegmens kód = portokkal
Dim Bk As Byte
Dim Es As Byte
Dim Ts As Byte
Dim Te As Byte
Dim E As Byte
Dim T As Byte
Do 'lekérdezés és átkódolás
Bk = Getatkbd()
For Ts = 0 To 240 Step 16
For Es = 0 To 15
Te = Ts + Es
If Bk = Te Then
Goto Kiiro
Else
End If
Next Es
Next Ts
Kiiro:
E = Lookup(es , Minta1) 'megjelenítés
Portc = E
Ts = Ts / 16
T = Lookup(ts , Minta16)
Portd = T
Wait 1
Portc = 255
Portd = 255
Loop
End
Keydata:
'normal keys lower case
Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
'shifted keys UPPER case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Minta16:
Data 33 , 189 , 19 , 25 , 205 , 73 , 65 , 61 , 1 , 9 , 5 , 193 , 99 , 145 , 67 , 71 '0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F
Minta1:
Data 132 , 215 , 76 , 69 , 55 , 37 , 36 , 199 , 4 , 5 , 6 , 52 , 172 , 84 , 44 , 46 '0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F