'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [set under view...options] * '* Notice : Copyright (c) 2009 [set under view...options] * '* : All Rights Reserved * '* Date : 20.06.2009 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** 'принемающий МК define osc 4 DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 0 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 1 DEFINE LCD_BITS 4 DEFINE LCD_LINES 4 DEFINE LCD_COMMANDUS 2000 DEFINE LCD_DATAUS 50 '***************************************************************** ADCON1=7 TRISA=%11111111 TRISC=%11111111 TRISD=%00000000 KEYPAD VAR PORTA STRELKA VAR BYTE STRELFOR VAR BYTE STROKA VAR BYTE[36] Q1 VAR BYTE Q2 VAR BYTE Q3 VAR BYTE Q4 VAR BYTE Q5 VAR BYTE Q6 VAR BYTE Q7 VAR BYTE Q8 VAR BYTE Q9 VAR BYTE Q10 VAR BYTE Q11 VAR BYTE Q12 VAR BYTE Q13 VAR BYTE Q14 VAR BYTE Q15 VAR BYTE Q16 VAR BYTE Q17 VAR BYTE Q18 VAR BYTE Q19 VAR BYTE specPER VAR BYTE R VAR BYTE CLEAR STROKA[1]=161:STROKA[2]=162:STROKA[3]=163: STROKA[4]=164:STROKA[5]=165:STROKA[6]=166:STROKA[7]=167:STROKA[8]=168:STROKA[9]=169:STROKA[10]=170:STROKA[11]=171:STROKA[12]=172: STROKA[13]=173:STROKA[14]=174:STROKA[15]=175:STROKA[16]=176:STROKA[17]=177:STROKA[18]=178:STROKA[19]=179:STROKA[20]=180:STROKA[21]=181: STROKA[22]=182:STROKA[23]=183:STROKA[24]=184:STROKA[25]=185:STROKA[26]=186:STROKA[27]=187:STROKA[28]=188:STROKA[29]=189:STROKA[30]=190:STROKA[31]=191:STROKA[32]=192: STRELKA=1 STRELFOR=4 PORTD=0 LCDOUT " ",175,179,171,177,189,179,187,"?" LOOP1:IF KEYPAD=2 THEN PAUSE 200 GOTO LOOP2 ENDIF GOTO LOOP1 LOOP2: LCDOUT $FE,1 LCDOUT $FE,2," ",165,175,173 LCDOUT $FE,$C0," ",165,161,184,161 LCDOUT $FE,$90," ",164,161,177,161,167 LCDOUT $FE,$D0," ",177,161,162,175,179,161 LOOP3: IF STRELKA=1 THEN LCDOUT $FE,2,193,$FE,$C0," ",$FE,$90," ",$FE,$D0," " IF STRELKA=2 THEN LCDOUT $FE,2," ",$FE,$C0,193,$FE,$90," ",$FE,$D0," " IF STRELKA=3 THEN LCDOUT $FE,2," ",$FE,$C0," ",$FE,$90,193,$FE,$D0," " IF STRELKA=4 THEN LCDOUT $FE,2," ",$FE,$C0," ",$FE,$90," ",$FE,$D0,193 IF KEYPAD=8 THEN STRELKA=STRELKA+1 PAUSE 200 ENDIF IF KEYPAD=1 THEN STRELKA=STRELKA-1 PAUSE 200 ENDIF IF STRELKA>STRELFOR THEN STRELKA=1 IF STRELKA<1 THEN STRELKA=STRELFOR IF KEYPAD=2 THEN PAUSE 200 portd=7 LCDOUT $FE,1 LCDOUT $FE,2,167,165,169,179,166,46,46,46 R=0 specPER =0 PAUSE 200 GOTO start ENDIF PORTD=STRELKA GOTO LOOP3 start: TRISC= %11111111 if portc = %00001111 then start2 goto START start2: specPER = specPER + 1 if specPER = 1 then startCH1 if specPER = 2 then startCH2 if specPER = 3 then startCH3 if specPER = 4 then startCH4 if specPER = 5 then startCH5 if specPER = 6 then startCH6 if specPER = 7 then startCH7 if specPER = 8 then startCH8 if specPER = 9 then startCH9 if specPER = 10 then startCH10 if specPER = 11 then startCH11 if specPER = 12 then startCH12 if specPER = 13 then startCH13 if specPER = 14 then startCH14 if specPER = 15 then startCH15 if specPER = 16 then startCH16 if specPER = 17 then startCH17 if specPER = 18 then startCH18 if specPER = 19 then startCH19 R=R+1 IF (Q19=1)AND(R=1) THEN LCDOUT $FE,1 goto startERR startCH1: if portc = %00001111 then startCH1 pauseus 10 Q1=portc goto start startCH2: if portc = %00001111 then startCH2 pauseus 10 Q2=portc goto start startCH3: if portc = %00001111 then startCH3 pauseus 10 Q3=portc goto start startCH4: if portc = %00001111 then startCH4 pauseus 10 Q4=portc goto start startCH5: if portc = %00001111 then startCH5 pauseus 10 Q5=portc goto start startCH6: if portc = %00001111 then startCH6 pauseus 10 Q6=portc goto start startCH7: if portc = %00001111 then startCH7 pauseus 10 Q7=portc goto start startCH8: if portc = %00001111 then startCH8 pauseus 10 Q8=portc goto start startCH9: if portc = %00001111 then startCH9 pauseus 10 Q9=portc goto start startCH10: if portc = %00001111 then startCH10 pauseus 10 Q10=portc goto start startCH11: if portc = %00001111 then startCH11 pauseus 10 Q11=portc goto start startCH12: if portc = %00001111 then startCH12 pauseus 10 Q12=portc goto start startCH13: if portc = %00001111 then startCH13 pauseus 10 Q13=portc goto start startCH14: if portc = %00001111 then startCH14 pauseus 10 Q14=portc goto start startCH15: if portc = %00001111 then startCH15 pauseus 10 Q15=portc goto start startCH16: if portc = %00001111 then startCH16 pauseus 10 Q16=portc goto start startCH17: if portc = %00001111 then startCH17 pauseus 10 Q17=portc goto start startCH18: if portc = %00001111 then startCH18 pauseus 10 Q18=portc goto start startCH19: if portc = %00001111 then startCH19 pauseus 10 Q19=portc goto start startERR: PAUSE 1 IF Q19=1 THEN lcdout $FE,2," ", STROKA[Q1+Q2],STROKA[Q3+Q4],STROKA[Q5+Q6],STROKA[Q7+Q8],STROKA[Q9+Q10] IF Q19=2 THEN lcdout $FE,$C0," ", STROKA[Q1+Q2],STROKA[Q3+Q4],STROKA[Q5+Q6],STROKA[Q7+Q8],STROKA[Q9+Q10],STROKA[Q11+Q12],STROKA[Q13+Q14],STROKA[Q15+Q16],STROKA[Q17+Q18] IF Q19=3 THEN LCDOUT $FE,$90," ",STROKA[Q1+Q2],STROKA[Q3+Q4],STROKA[Q5+Q6],STROKA[Q7+Q8],STROKA[Q9+Q10],STROKA[Q11+Q12],STROKA[Q13+Q14],STROKA[Q15+Q16],STROKA[Q17+Q18] IF Q19=4 THEN LCDOUT $FE,$D0," ",STROKA[Q1+Q2],STROKA[Q3+Q4],STROKA[Q5+Q6],STROKA[Q7+Q8],STROKA[Q9+Q10],STROKA[Q11+Q12],STROKA[Q13+Q14],STROKA[Q15+Q16],STROKA[Q17+Q18] GOTO LOOP3 ENDIF GOTO START