
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
hallo what i want is a bit to difficult for me i think that i started wrong i have collected al the reports in one WORD so a maximum of 16 reports the first 3 reports are shown on the display report 1 on row 2 report 2 on row 3 report 3 on row 4 report 4 comes on row 4 by using a push button (down ) then the other reports slide a rule up etc. and back with the push button ( up ) if there are more than 3 reports then it shows an arrow down in the 4th rule of the display and when scrolled down then comes an arrow up in the 2 rule who can help me with this problem? in advance thanks. Hans '-------------------------------------------------------------------------------------------------------------------------' ' *************************************************************************************************' ' * WINDT SYSTEMS *' ' * LCD Possibilitiy Examples v1.3 For The C-Control 1 Unit M2.01 *' ' * H.J. WINDT *' ' * 2004 *' ' *************************************************************************************************' '-------------------------------------------------------------------------------------------------------------------------' 'Character generation is the possibility to design your own 8 characters.' 'Feel free to use and share this software in any way you want!' '****************************************************** IN and OUTS ******************************************************' '-----port 2 lcd connections-----' define db4 port[9] 'databus 4' define db5 port[10] 'databus 5' define db6 port[11] 'databus 6' define db7 port[12] 'databus 7' define rw port[13] '0 = write to lcd display / 1 = read from lcd display' define rs port[14] '0 = command / 1 = data' define en port[15] '1 to 0 = enable' define lcd_light_off port[16] '(off)0 = light on / (on)1 = light off' '******************************************************* VARIABLES *******************************************************' define data byte[1]'data / used for translating byte into bits and vice versa for I/O of port 2 (lcd port), -' define bit1 bit[1] '- needed because of a bug in the CC1 M2.01 system' define bit2 bit[2] define bit3 bit[3] define bit4 bit[4] define bit5 bit[5] define bit6 bit[6] define bit7 bit[7] define bit8 bit[8] '-----------------------------------------------------------------------------------------' define adr byte[2] 'address code' define cmd byte[3] 'command code' define dat byte[4] 'data code' define dat2 byte[5] define loop byte[6] '******************************************************** SET UP *********************************************************' 'gosub initialize_lcd '*************************************************************************************************************************' DEFINE UP PORT[1] DEFINE DOWN PORT[2] DEFINE I BYTE[7] DEFINE AanTal BYTE[8] DEFINE IngangTotaal WORD[5] DEFINE TEMP WORD[6] DEFINE AantalTot BYTE[13] lcd_light_off = 0 print"#ON_LCD#"; #Start IngangTotaal=31 'voor simulate aantaltot is then 5 GOSUB TelaantalTot #SetDisplay PRINT "#L101#"; 'Regel 1, POSITON 1 PRINT "Er zijn "; PRINT AantalTot; PRINT "meldingen"; Temp=InGangTotaal FOR I=1 TO 16 IF (Temp AND 1)=1 THEN GOSUB Tekst Temp=Temp SHR 1 IF Aantal>3 THEN GOSUB DownSet IF Aantal>4 THEN GOSUB UPSet NEXT 'IF DOWN=ON THEN......................... GOTO Start #Tekst Aantal=Aantal+1 IF aantal=1 THEN PRINT "#L201#"; 'Regel 2, POSITON 1 IF aantal=2 THEN PRINT "#L121#"; 'Regel 3, POSITON 1 IF Aantal=3 THEN print"#L221#"; 'Regel 4, POSITON 1 IF I=1 THEN print"Ingang 1 "; IF I=2 THEN print"Ingang 2 "; IF I=3 THEN print"Ingang 3 "; IF I=4 THEN print"Ingang 4 "; IF I=5 THEN print"Ingang 5 "; IF I=6 THEN print"Ingang 6 "; IF I=7 THEN print"Ingang 7 "; IF I=8 THEN print"Ingang 8 "; IF I=9 THEN print"Ingang 9 "; IF I=10 THEN print"Ingang 10 "; IF I=11 THEN print"Ingang 11 "; IF I=12 THEN print"Ingang 12 "; RETURN #TelAantalTot Temp=InGangTotaal FOR I=1 TO 16 IF (Temp AND 1)=1 THEN AantalTot=AantalTot+1 Temp=Temp SHR 1 NEXT RETURN #DOWNSet 'print"Generated Chara."; 'printing 4 example generated characters on the lcd' print"#L240#"; 'Regel 4, POSITON 20 put&h08 'UP' RETURN #UPSet PRINT "#L220#"; 'Regel 2, POSITON 20 put&h09 'DOWN' RETURN '*************************************************************************************************************************' #command_to_lcd gosub busy_flag_check_from_lcd deact db7:deact db6:deact db5:deact db4:rw = 0:rs = 0:en = 0 'setup for transmitting command to lcd display' data = &b00000000 or cmd shr 4:db7 = bit4:db6 = bit3:db5 = bit2:db4 = bit1:pulse en 'HIGH NIBBLE command to lcd' data = &b00000000 or (cmd - (cmd shr 4 shl 4)):db7 = bit4:db6 = bit3:db5 = bit2:db4 = bit1:pulse en 'LOW NIBBLE command to lcd' return '*************************************************************************************************************************' #data_to_DD_ram_lcd cmd = &b10000000 or adr : gosub command_to_lcd goto put_data_into_lcd #data_to_CG_ram_lcd cmd = &b01000000 or adr : gosub command_to_lcd #put_data_into_lcd gosub busy_flag_check_from_lcd deact db7:deact db6:deact db5:deact db4:rw = 0:rs = 1:en = 0 'setup for transmitting data to lcd display' data = &b00000000 or dat shr 4:db7 = bit4:db6 = bit3:db5 = bit2:db4 = bit1:pulse en 'HIGH NIBBLE data to lcd' data = &b00000000 or (dat - (dat shr 4 shl 4)):db7 = bit4:db6 = bit3:db5 = bit2:db4 = bit1:pulse en 'LOW NIBBLE data to lcd' return '*************************************************************************************************************************' #data_from_DD_ram_lcd cmd = &b10000000 or adr : gosub command_to_lcd goto get_data_from_lcd #data_from_CG_ram_lcd cmd = &b01000000 or adr : gosub command_to_lcd #get_data_from_lcd deact db7 : deact db6 : deact db5 : deact db4:rw = 1:rs =1 : en = 1 'setup for reading data' bit4 = db7:bit3 = db6:bit2 = db5:bit1 = db4:data = data shl 4 'HIGH NIBBLE data from lcd' pulse en:bit4 = db7:bit3 = db6:bit2 = db5:bit1 = db4:en = 0 'LOW NIBBLE data from lcd' dat = data command_to_lcd return '*************************************************************************************************************************' #busy_flag_check_from_lcd deact db7 : deact db6 : deact db5 : deact db4:rw = 1:rs = 0:en = 1 'setup for reading busy flag' bit4 = db7:bit3 = db6:bit2 = db5:bit1 = db4:data = data shl 4 'HIGH NIBBLE data from lcd' pulse en:bit4 = db7:bit3 = db6:bit2 = db5:bit1 = db4:en = 0 'LOW NIBBLE data from lcd' if bit8 <> 0 then goto busy_flag_check_from_lcd 'bit 8 of data is the busy flag bit / 1 = lcd is busy / 0 = lcd is ready' return '*************************************************************************************************************************' #initialize_lcd print"#ON_LCD#";:print"#INIT#";:print"#CLR#"; 'initialize lcd display' #character_build 'generates characters in lcd ram from characterbuild table / 8 characters of 5X8 pixels' for loop = 0 to 63 adr = loop 'lcd display character generation (CG) address' looktab characterbuild, loop, dat 'lcd data for character generation' gosub data_to_CG_ram_lcd 'set character generation data in CG address' next print"#OFF#"; return '*************************************************************************************************************************' ' (CG dat adr) 000/XXXXX first 3 bits are not used/ last 5 bits are for character generation ' table characterbuild &b00011111 '(0) 000/ 1 ' character build data for antenna symbol/ read from DD-ram address &h08' &b00010000 '(1) 000/ 111 ' *put&h08*' &b00010000 '(2) 000/11111' &b00010000 '(3) 000/ 1 ' &b00010000 '(4) 000/ 1 ' &b00010000 '(5) 000/ 1 ' &b00010000 '(6) 000/ 1 ' &b00011111 '(7) 000/ '-----------------------------------------' &b00011111 '(8) 000/ 1 ' character build data for heart/ read from DD-ram address &h09' &b00000000 '(9) 000/ 1 ' *put&h09*' &b00000000 '(10) 000/ 1 ' &b00000000 '(11) 000/ 1 ' &b00000000 '(12) 000/11111' &b00000000 '(13) 000/ 111 ' &b00000000 '(14) 000/ 1 ' &b00011111 '(15) 000/ '-----------------------------------------' &b00011111 '(16) 000/ ' character build data for happy/ read from DD-ram address &h0a' &b00000001 '(17) 000/ ' *put&h0a*' &b00000001 '(18) 000/ 1 1 ' &b00000001 '(19) 000/ ' &b00000001 '(20) 000/ 1 ' &b00000001 '(21) 000/1 1' &b00000001 '(22) 000/ 111 ' &b00011111 '(23) 000/ '-----------------------------------------' &b00011111 '(24) 000/11111 character build data for window/ read from DD-ram address &h0b' &b00010001 '(25) 000/1 1 1' *put&h0b*' &b00010001 '(26) 000/1 1 1' &b00010001 '(27) 000/11111' &b00010001 '(28) 000/1 1 1' &b00010001 '(29) 000/1 1 1' &b00010001 '(30) 000/11111' &b00011111 '(31) 000/11111'-----------------------------------------' &b00000000 '(32) 000/00000 empty place for character build data/ read from DD-ram address &h0c' &b00000000 '(33) 000/00000' *put&h0c*' &b00000000 '(34) 000/00000' &b00000000 '(35) 000/00000' &b00000000 '(36) 000/00000' &b00000000 '(37) 000/00000' &b00000000 '(38) 000/00000' &b00000000 '(39) 000/00000 -----------------------------------------' &b00000000 '(40) 000/00000 empty place for character build data/ read from DD-ram address &h0d' &b00000000 '(41) 000/00000' *put&h0d*' &b00000000 '(42) 000/00000' &b00000000 '(43) 000/00000' &b00000000 '(44) 000/00000' &b00000000 '(45) 000/00000' &b00000000 '(46) 000/00000' &b00000000 '(47) 000/00000 -----------------------------------------' &b00000000 '(48) 000/00000 empty place for character build data/ read from DD-ram address &h0e' &b00000000 '(49) 000/00000' *put&h0e*' &b00000000 '(50) 000/00000' &b00000000 '(51) 000/00000' &b00000000 '(52) 000/00000' &b00000000 '(53) 000/00000' &b00000000 '(54) 000/00000' &b00000000 '(55) 000/00000 -----------------------------------------' &b00000001 '(56) 000/00000 empty place for character build data/ read from DD-ram address &h0f' &b00000001 '(57) 000/00000' *put&h0f* &b00000100 '(58) 000/00000' &b00001000 '(59) 000/00000' &b00001000 '(60) 000/00000' &b00001000 '(61) 000/00000' &b00001000 '(62) 000/00000' &b00010000 '(63) 000/00000 -----------------------------------------' tabend |
| Antwort schreiben |