'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2016 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 11.05.2016 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** CLK VAR PORTB.3 DTA VAR PORTB.2 DC VAR PORTB.1 RST VAR PORTB.0 Chr VAR Byte PosX VAR Byte PosY VAR Byte LcdData VAR Byte PAUSE 10 GOSUB LCD_INIT PAUSE 10 GOSUB LCD_Clear buf1 VAR Byte ' Переменная для 1 кнопки buf2 VAR Byte ' Переменная для 2 кнопки buf3 VAR Byte ' Переменная для 3 кнопки buf4 VAR Byte ' Переменная для 4 кнопки buf5 VAR Byte ' Переменная для 5 кнопки buf6 VAR Byte ' Переменная для 6 кнопки buf7 VAR Byte ' Переменная для 7 кнопки buf8 VAR Byte ' Переменная для 8 кнопки buf var byte V1 var word V2 var word V3 var word number var byte[5] num2 var byte[5] num3 var byte[5] Symbol sw1 = PORTD.0 Symbol sw2 = PORTD.1 Symbol sw3 = PORTD.2 Symbol sw4 = PORTD.3 Symbol sw5 = PORTD.4 Symbol sw6 = PORTD.5 Symbol sw7 = PORTD.6 Symbol sw8 = PORTD.7 Symbol led1 = PORTC.7 Symbol led2 = PORTC.6 Symbol led3 = PORTC.5 Symbol led4 = PORTC.4 Symbol led5 = PORTC.3 Symbol led6 = PORTC.2 Symbol led7 = PORTC.1 Symbol led8 = PORTC.0 PORTC =0 PAUSE 50 ' Ждем стабилизации PIC-контроллера Clear ' Очищаем буферы MAIN: '=============================================================================== PosX = 10 PosY = 2 gosub LCD_GotoXY high DC 'вывод заставки "десят:" shiftout DTA,CLK,1,[$7F,$41,$41,$41,$3E,$00, $38,$54,$54,$54,$18,$00,_ $38,$44,$44,$44,$28,$00, $00,$44,$7D,$40,$00,$00,_ $7C,$04,$78,$04,$78,$00, $00,$00,$14,$00,$00] '=============================================================================== buf = PORTC select case buf case is =0 arraywrite number,[$3E,$51,$49,$45,$3E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =1 arraywrite number,[$00,$42,$7F,$40,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =2 arraywrite number,[$72,$49,$49,$49,$46,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =3 arraywrite number,[$21,$41,$49,$4D,$33,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =4 arraywrite number,[$18,$14,$12,$7F,$10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =5 arraywrite number,[$27,$45,$45,$45,$39,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =6 arraywrite number,[$3C,$4A,$49,$49,$31,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =7 arraywrite number,[$41,$21,$11,$09,$07,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =8 arraywrite number,[$36,$49,$49,$49,$36,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] case is =9 arraywrite number,[$46,$49,$49,$29,$1E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00] '-------------------------------------------------------------------------------------- case is =10 arraywrite number,[$00,$42,$7F,$40,$00,$00,$3E,$51,$49,$45,$3E,$00,$00,$00,$00,$00,$00] case is =11 arraywrite number,[$00,$42,$7F,$40,$00,$00,$00,$42,$7F,$40,$00,$00,$00,$00,$00,$00,$00] case is =12 arraywrite number,[$00,$42,$7F,$40,$00,$00,$72,$49,$49,$49,$46,$00,$00,$00,$00,$00,$00] case is =13 arraywrite number,[$00,$42,$7F,$40,$00,$00,$21,$41,$49,$4D,$33,$00,$00,$00,$00,$00,$00] case is =14 arraywrite number,[$00,$42,$7F,$40,$00,$00,$18,$14,$12,$7F,$10,$00,$00,$00,$00,$00,$00] case is =15 arraywrite number,[$00,$42,$7F,$40,$00,$00,$27,$45,$45,$45,$39,$00,$00,$00,$00,$00,$00] case is =16 arraywrite number,[$00,$42,$7F,$40,$00,$00,$3C,$4A,$49,$49,$31, 00,$00,$00,$00,$00,$00] case is =17 arraywrite number,[$00,$42,$7F,$40,$00,$00,$00,$41,$21,$11,$09,$07,$00,$00,$00,$00,$00] case is =18 arraywrite number,[$00,$42,$7F,$40,$00,$00,$36,$49,$49,$49,$36,$00,$00,$00,$00,$00,$00] case is =19 arraywrite number,[$00,$42,$7F,$40,$00,$00,$46,$49,$49,$29,$1E,$00,$00,$00,$00,$00,$00] case is =20 arraywrite number,[$72,$49,$49,$49,$46,$00,$3E,$51,$49,$45,$3E,$00,$00,$00,$00,$00,$00] '-------------------------------------------------------------------------------------- case is =21 arraywrite number,[$72,$49,$49,$49,$46,$00,$00,$42,$7F,$40,$00,$00,$00,$00,$00,$00,$00] case is =22 arraywrite number,[$72,$49,$49,$49,$46,$00,$72,$49,$49,$49,$46,$00,$00,$00,$00,$00,$00] case is =23 arraywrite number,[$72,$49,$49,$49,$46,$00,$21,$41,$49,$4D,$33,$00,$00,$00,$00,$00,$00] case is =24 arraywrite number,[$72,$49,$49,$49,$46,$00,$18,$14,$12,$7F,$10,$00,$00,$00,$00,$00,$00] case is =25 arraywrite number,[$72,$49,$49,$49,$46,$00,$27,$45,$45,$45,$39,$00,$00,$00,$00,$00,$00] case is =26 arraywrite number,[$72,$49,$49,$49,$46,$00,$3C,$4A,$49,$49,$31,$00,$00,$00,$00,$00,$00] case is =27 arraywrite number,[$72,$49,$49,$49,$46,$00,$41,$21,$11,$09,$07, 00,$00,$00,$00,$00,$00] case is =28 arraywrite number,[$72,$49,$49,$49,$46,$00,$36,$49,$49,$49,$36,$00,$00,$00,$00,$00,$00] case is =29 arraywrite number,[$72,$49,$49,$49,$46,$00,$46,$49,$49,$29,$1E,$00,$00,$00,$00,$00,$00] case is =30 arraywrite number,[$21,$41,$49,$4D,$33,$00,$3E,$51,$49,$45,$3E,$00,$00,$00,$00,$00,$00] '-------------------------------------------------------------------------------------- case is =115 arraywrite number,[$00,$42,$7F,$40,$00,$00,$00,$42,$7F,$40,$00,$00,$27,$45,$45,$45,$39] end select PosX = 60 PosY = 2 gosub LCD_GotoXY high DC shiftout DTA,CLK,1,[number(0),number(1),number(2),number(3),number(4),_ number(5),number(6),number(7),number(8),number(9),number(10),_ number(11),number(12),number(13),number(14),number(15),number(16)] '========================подпрограмма, обслуживающая кнопки========================= Button sw1,0,255,5,buf1,0,SVET1 ' Проверяем кнопку 1 (Переходим на 2 если не нажато) Toggle led1 ' Переключаем 1 светодиод SVET1: Button sw2,0,255,5,buf2,0,SVET2 ' Проверяем кнопку 2 (переходим на 3 если на нажата) Toggle led2 ' Переключаем 2 светодиод SVET2: Button sw3,0,255,5,buf3,0,SVET3 ' Проверяем кнопку 3 (переходим на 1 если не нажата) Toggle led3 ' Переключаем 3 светодиод SVET3: Button sw4,0,255,5,buf4,0,SVET4 ' Проверяем кнопку 1 (Переходим на 2 если не нажато) Toggle led4 ' Переключаем 4 светодиод SVET4: Button sw5,0,255,5,buf5,0,SVET5 ' Проверяем кнопку 2 (переходим на 3 если на нажата) Toggle led5 ' Переключаем 5 светодиод SVET5: Button sw6,0,255,5,buf6,0,SVET6 ' Проверяем кнопку 3 (переходим на 1 если не нажата) Toggle led6 ' Переключаем 6 светодиод SVET6: Button sw7,0,255,5,buf7,0,SVET7 ' Проверяем кнопку 2 (переходим на 3 если на нажата) Toggle led7 ' Переключаем 7 светодиод SVET7: Button sw8,0,255,5,buf8,0,main ' Проверяем кнопку 3 (переходим на 1 если не нажата) Toggle led8 ' Переключаем 8 светодиод '---------------------------------------------------------------------------------- GOTO MAIN end '================================================================================= 'инициализация дисплея LCD_Init: LOW RST :pause 100 : HIGH RST : LOW DC ' RESET LCD LcdData= $21: GOSUB LCD_ByteOut ' LCD EXTENDED COMMANDS LcdData= $c8: GOSUB LCD_ByteOut ' SET LCD Vop (CONTRAST) LcdData= $06: GOSUB LCD_ByteOut ' SET TEMP COEFFICENT LcdData= $13: GOSUB LCD_ByteOut ' LCD BIAS MODE LcdData= $20: GOSUB LCD_ByteOut ' LCD STANDARD COMMANDS LcdData= $0c: GOSUB LCD_ByteOut ' LCD IN NORMAL MODE RETURN LCD_ByteOut: SHIFTOUT DTA,CLK,1,[LcdData] RETURN LCD_Clear: PosX=0:PosY=0:GOSUB LCD_GotoXY HIGH DC FOR Chr=1 TO 252 LcdData=0:GOSUB LCD_ByteOut LcdData=0:GOSUB LCD_ByteOut NEXT Chr RETURN LCD_GotoXY: LOW DC LcdData=%01000000 | PosY :GOSUB LCD_ByteOut LcdData=%10000000 | PosX :GOSUB LCD_ByteOut RETURN