@ device PIC16F876,HS_OSC,WDT_OFF,PWRT_ON DEFINE HSER_RCSTA 90h DEFINE HSER_TXSTA 24h DEFINE HSER_SPBRG 12 CLEAR PORTC=%10100000 TRISC=%10100000 TRISA = %00000000 PORTA = %00000000 OPTION_REG=%00000000 RX var byte MENU: HSEROUT [13,"CHOOSE MODE:", 10, 13] HSEROUT [#1, ") ", "OPEN", 10, 13] HSEROUT [#2, ") ", "AUTO", 10, 13] HSEROUT [#3, ") ", "EXIT", 10, 13] HSEROUT [#4, ") ", "OFF", 10, 13] Receive: HSERIN 500,Receive,[RX] ' Принять выбранный пункт меню RX = RX - $30 ' Преобразовать код ASCII в десятичное число IF RX > 4 THEN error ' Проверить, допустимо ли такое число BRANCH RX, [zero, one, two, three, four] ' Переадресовать программу в соответствии с выбранным пунктом меню Error: HSEROUT[13,"ERROR", 10, 13, "TRY AGAIN", 10, 13] GOTO MENU Zero: HSEROUT[13,"ERROR", 10, 13, "TRY AGAIN", 10, 13] GOTO MENU One: HSEROUT [13,"OPEN MODE ON", 10, 13] PORTA.0=1 GOTO MENU Two: HSEROUT [13,"AUTO MODE ON", 10, 13] PORTA.0=0 PORTA.1=1 GOTO MENU Three: HSEROUT [13,"EXIT MODE ON", 10, 13] PORTA.0=0 PORTA.1=0 PORTA.2=1 GOTO MENU Four: HSEROUT [13,"OFF MODE ON", 10, 13] PORTA.0=0 PORTA.1=0 PORTA.2=0 PORTA.3=1 GOTO MENU GOTO MENU