Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Exercícios 2021-10-20 - Comunicacao Serial/Comunicação Serial RS-232.pdf Centro Universitário Católico Salesiano Auxilium Araçatuba / SP CURSO TERMO TURMA PERIODO DISCIPLINA ENGENHARIAS - - - DIVERSAS PROFESSOR(A) Assunto DATA AMADEU ZANON NETO RS-232 - SERIAL ABR/2019 Profº Amadeu Zanon Neto - Página 1 de 2 RS-232 – Protocolo eletrônico de comunicação de dados Serial. Muito utilizada para comunicação entre dispositivos digitais o protocolo eletrônico RS232 (Recommended Standard 232) para transmissão de pouco volume de dados é uma das mais antigas e utilizadas até hoje, a sua primeira aplicação foi em 1962 nas máquinas eletromecânicas de escrever. Ela também é conhecida como comunicação serial. Em 1969 foi efetuada uma revisão deste protocolo conhecida como revisão C. Em 1986 foi feita a revisão D pela EIA (Eletronic Industries Alliancy) para aplicação em sistemas de informática. E a versão atual foi determinada em 1997 pela TIA (Telecommunications Industry Association) sendo chamada TIA-232F, aplicada aos modems (moduladores e demoduladores) para transmissão via linha discada nos primórdios da Internet, também aplicada aos microcontroladores e sistemas embarcados. Este protocolo faz com que a informação seja transmitida bit a bit, iniciando-se com um bit start (bit de partida) e aí de forma assíncrona o padrão de tempo determina a transmissão e recepção dos oito bits necessários para compor um byte (mínimo necessário para se obter um caractere). A velocidade de transmissão é medida em forma de frequência em unidade de bits por segundo ou bps, e os dispositivos envolvidos nesta comunicação devem estar configurados com a mesma velocidade, a lista a seguir mostra os valores padrão: • 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600 e 115200 bits por segundo. Lembrando sempre que quanto maior a velocidade, mais energia é consumida e os meios físicos de transmissão devem estar em boas condições para tal. Esta transmissão é feita através de dois fios, além do aterramento mútuo dos dois elementos envolvidos, onde a saída TX (transmissão de dados) de um, deve estar conectada com a entrada RX (recepção de dados) do outro e de forma inversa para que haja comunicação bidirecional. Em diversos microcontroladores, a porta de comunicação serial é tratada com UART (Universal Asynchronous Receiver/Transmitter) ou seja, Receptor/Transmissor Universal Assíncrono, versão geral para os protocolos EIA, RS-232, RS-422, e RS-485, permitindo a sua customização para diversas aplicações. Centro Universitário Católico Salesiano Auxilium Araçatuba / SP CURSO TERMO TURMA PERIODO DISCIPLINA ENGENHARIAS - - - DIVERSAS PROFESSOR(A) Assunto DATA AMADEU ZANON NETO RS-232 - SERIAL ABR/2019 Profº Amadeu Zanon Neto - Página 2 de 2 ASCII – Protocolo lógico de comunicação de dados. Como a comunicação serial é feita de forma eletrônica digital utilizando um sistema binário de informações bit a bit, estes bits são reunidos em conjunto de oito unidades de 0 e 1 formando um byte, foi necessário a criação de um protocolo de identificação e padronização de dados, para que os computadores pudessem interpretá-los de forma útil. Em meados dos anos 1960, as grandes empresas produtoras de computadores começaram a distribuí-los de forma comercial. Nesta época os computadores de fabricantes diferentes não podiam compartilhar seus dados nem os arquivos, pois cada um utilizava um padrão de reconhecimento de letras, números e códigos de controle de forma diferente. Sendo assim, os órgãos regulamentadores dos Estados Unidos reuniram os fabricantes e criaram um sistema de reconhecimento dos dados padronizado, esta padronização é conhecida como ASCII (American Standard Code for Interchange Information), ou código americano padrão para intercâmbio de informações. A tabela é composta por 128 códigos padronizados que devem ser utilizados por todos os fabricantes de dispositivos digitais que necessitem comunicação entre eles. Os primeiros 32 códigos desta tabela que se inicia em 0 e vai até 31, são utilizados como códigos de controle, por exemplo, a tecla <ENTER> é representada pelo código 13 e não são imprimíveis. Os códigos de 32 a 126 representam os caracteres imprimíveis, além de números, sinais e as letras do alfabeto maiúsculas e minúsculas, por exemplo, a letra A maiúscula possui o código 65. O código 127 foi utilizado para a tecla DELETE. A partir do código 128 até o código 255 ficam reservados para os caracteres específicos de cada idioma e alguns caracteres gráficos básicos. Referência Bibliográfica Almeida, Rodrigo Maximiano A. & Moraes, Carlos Henrique V. & Seraphim, Thatyana F. Piola. Programação de Sistemas Embarcados, Desenvolvendo software para microcontroladores em linguagem C (2016). 1ª Ed. 467p. Rio de Janeiro – RJ – Brasil: Elsevier Editora Ltda. RS232 Communication – The Basics, disponível em: http://extremeelectronics.co.in/avr-tutorials/rs232-communication-the- basics/ . Acesso em 10 Abr. 2019. http://extremeelectronics.co.in/avr-tutorials/rs232-communication-the-basics/ http://extremeelectronics.co.in/avr-tutorials/rs232-communication-the-basics/ Exercícios 2021-10-20 - Comunicacao Serial/Last Loaded Placa Serial.DBK Exercícios 2021-10-20 - Comunicacao Serial/Placa Serial.DSN Exercícios 2021-10-20 - Comunicacao Serial/Placa Serial.PWI Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.asm ; Assembly code generated by mikroVirtualMachine - V. 5.0.0.3 ; Date/Time: 20/10/2020 23:00:54 ; Info: http://www.mikroe.com ; ADDRESS OPCODE ASM ; ---------------------------------------------- $0000 $2804 GOTO _main $026F $ _usart_write: ;USART_b75.ppas,40 :: ;USART_b75.ppas,42 :: $026F $ USART_b75_L_14: $026F $1303 BCF STATUS, RP1 $0270 $1683 BSF STATUS, RP0 $0271 $0818 MOVF TXSTA, 0 $0272 $00F1 MOVWF STACK_1 $0273 $3000 MOVLW 0 $0274 $18F1 BTFSC STACK_1, 1 $0275 $3001 MOVLW 1 $0276 $00F1 MOVWF STACK_1 $0277 $0871 MOVF STACK_1, 0 $0278 $3A00 XORLW 0 $0279 $1D03 BTFSS STATUS, Z $027A $2A7D GOTO USART_b75_L_15 ;USART_b75.ppas,43 :: $027B $0000 NOP $027C $2A6F GOTO USART_b75_L_14 $027D $ USART_b75_L_15: ;USART_b75.ppas,44 :: $027D $1283 BCF STATUS, RP0 $027E $0836 MOVF FARG_USART_Write, 0 $027F $0099 MOVWF TXREG $0280 $ USART_b75_L_12: ;USART_b75.ppas,45 :: $0280 $0008 RETURN $0281 $ _usart_data_ready: ;USART_b75.ppas,48 :: ;USART_b75.ppas,50 :: $0281 $1303 BCF STATUS, RP1 $0282 $1283 BCF STATUS, RP0 $0283 $080C MOVF PIR1, 0 $0284 $00F1 MOVWF STACK_1 $0285 $3000 MOVLW 0 $0286 $1AF1 BTFSC STACK_1, 5 $0287 $3001 MOVLW 1 $0288 $00F1 MOVWF STACK_1 $0289 $0871 MOVF STACK_1, 0 $028A $00B2 MOVWF _usart_data_ready_local_result $028B $ USART_b75_L_18: ;USART_b75.ppas,51 :: $028B $0832 MOVF _usart_data_ready_local_result, 0 $028C $00F0 MOVWF STACK_0 $028D $0008 RETURN $025C $ _usart_read: ;USART_b75.ppas,54 :: ;USART_b75.ppas,55 :: $025C $1303 BCF STATUS, RP1 $025D $1283 BCF STATUS, RP0 $025E $081A MOVF RCREG, 0 $025F $00B2 MOVWF _usart_read_local_result ;USART_b75.ppas,61 :: $0260 $0818 MOVF RCSTA, 0 $0261 $00F1 MOVWF STACK_1 $0262 $3000 MOVLW 0 $0263 $18F1 BTFSC STACK_1, 1 $0264 $3001 MOVLW 1 $0265 $00F1 MOVWF STACK_1 $0266 $0871 MOVF STACK_1, 0 $0267 $3A01 XORLW 1 $0268 $1D03 BTFSS STATUS, Z $0269 $2A6C GOTO USART_b75_L_21 $026A $ USART_b75_L_20: ;USART_b75.ppas,63 :: $026A $1218 BCF RCSTA, 4 $026B $ USART_b75_L_24: ;USART_b75.ppas,64 :: $026B $ USART_b75_L_25: $026B $1618 BSF RCSTA, 4 $026C $ USART_b75_L_26: ;USART_b75.ppas,65 :: $026C $ USART_b75_L_21: $026C $ USART_b75_L_22: $026C $ USART_b75_L_19: ;USART_b75.ppas,66 :: $026C $0832 MOVF _usart_read_local_result, 0 $026D $00F0 MOVWF STACK_0 $026E $0008 RETURN $0231 $ _usart_write_text: ;USART_b75.ppas,121 :: ;USART_b75.ppas,122 :: $0231 $1303 BCF STATUS, RP1 $0232 $1283 BCF STATUS, RP0 $0233 $01B3 CLRF _usart_write_text_local_i, 1 ;USART_b75.ppas,123 :: $0234 $0832 MOVF FARG_Usart_Write_Text, 0 $0235 $0084 MOVWF FSR $0236 $0800 MOVF INDF, 0 $0237 $00B4 MOVWF _usart_write_text_local_data ;USART_b75.ppas,124 :: $0238 $ USART_b75_L_47: $0238 $0834 MOVF _usart_write_text_local_data, 0 $0239 $3A00 XORLW 0 $023A $1903 BTFSC STATUS, Z $023B $2A46 GOTO USART_b75_L_48 ;USART_b75.ppas,126 :: $023C $0834 MOVF _usart_write_text_local_data, 0 $023D $00B6 MOVWF FARG_USART_Write $023E $226F CALL _usart_write ;USART_b75.ppas,127 :: $023F $0AB3 INCF _usart_write_text_local_i, 1 ;USART_b75.ppas,128 :: $0240 $0833 MOVF _usart_write_text_local_i, 0 $0241 $0732 ADDWF FARG_Usart_Write_Text, 0 $0242 $0084 MOVWF FSR $0243 $0800 MOVF INDF, 0 $0244 $00B4 MOVWF _usart_write_text_local_data ;USART_b75.ppas,129 :: $0245 $2A38 GOTO USART_b75_L_47 $0246 $ USART_b75_L_48: $0246 $ USART_b75_L_45: ;USART_b75.ppas,130 :: $0246 $0008 RETURN $0247 $ _usart_init: ;USART_b75.ppas,22 :: ;USART_b75.ppas,24 :: $0247 $ USART_b75_L_1: $0247 $1303 BCF STATUS, RP1 $0248 $1683 BSF STATUS, RP0 $0249 $1698 BSF TXSTA, 5 $024A $ USART_b75_L_2: ;USART_b75.ppas,25 :: $024A $3090 MOVLW 144 $024B $1283 BCF STATUS, RP0 $024C $0098 MOVWF RCSTA ;USART_b75.ppas,31 :: $024D $ USART_b75_L_3: $024D $1683 BSF STATUS, RP0 $024E $1686 BSF TRISB, 5 $024F $ USART_b75_L_4: ;USART_b75.ppas,32 :: $024F $ USART_b75_L_5: $024F $1786 BSF TRISB, 7 $0250 $ USART_b75_L_6: ;USART_b75.ppas,35 :: $0250 $ USART_b75_L_8: $0250 $1283 BCF STATUS, RP0 $0251 $080C MOVF PIR1, 0 $0252 $00F1 MOVWF STACK_1 $0253 $3000 MOVLW 0 $0254 $1AF1 BTFSC STACK_1, 5 $0255 $3001 MOVLW 1 $0256 $00F1 MOVWF STACK_1 $0257 $0871 MOVF STACK_1, 0 $0258 $3A01 XORLW 1 $0259 $1903 BTFSC STATUS, Z $025A $2A50 GOTO USART_b75_L_8 ;USART_b75.ppas,36 :: $025B $ USART_b75_L_9: $025B $ USART_b75_L_0: ;USART_b75.ppas,37 :: $025B $0008 RETURN $0004 $ _main: ;SERIAL.pbas,4 :: main: $0004 $ _main_main: ;SERIAL.pbas,5 :: TRISA=%11111111 $0004 $30FF MOVLW 255 $0005 $1303 BCF STATUS, RP1 $0006 $1683 BSF STATUS, RP0 $0007 $0085 MOVWF TRISA ;SERIAL.pbas,6 :: TRISB=%01111111 $0008 $307F MOVLW 127 $0009 $0086 MOVWF TRISB ;SERIAL.pbas,7 :: TRISC=%00000000 $000A $0187 CLRF TRISC, 1 ;SERIAL.pbas,8 :: INTCON=%00000000 $000B $018B CLRF INTCON, 1 ;SERIAL.pbas,9 :: ANSEL=%00000000 $000C $1703 BSF STATUS, RP1 $000D $1283 BCF STATUS, RP0 $000E $019E CLRF ANSEL, 1 ;SERIAL.pbas,10 :: ANSELH=%00000000 $000F $019F CLRF ANSELH, 1 ;SERIAL.pbas,12 :: PORTC=0 $0010 $1303 BCF STATUS, RP1 $0011 $0187 CLRF PORTC, 1 ;SERIAL.pbas,14 :: Usart_Init(9600) $0012 $3019 MOVLW 25 $0013 $1683 BSF STATUS, RP0 $0014 $0099 MOVWF SPBRG $0015 $1518 BSF TXSTA, BRGH $0016 $2247 CALL _usart_init ;SERIAL.pbas,16 :: executa: $0017 $ _main_executa: ;SERIAL.pbas,17 :: if Usart_Data_Ready() > 0 then $0017 $2281 CALL _usart_data_ready $0018 $0870 MOVF STACK_0, 0 $0019 $3C00 SUBLW 0 $001A $1803 BTFSC STATUS, C $001B $2A2F GOTO SERIAL_L_2 $001C $ SERIAL_L_1: ;SERIAL.pbas,18 :: recebe=Usart_Read() $001C $225C CALL _usart_read $001D $0870 MOVF STACK_0, 0 $001E $00A0 MOVWF _recebe ;SERIAL.pbas,19 :: if recebe=65 then PORTC.0 = 1 end if $001F $0870 MOVF STACK_0, 0 $0020 $3A41 XORLW 65 $0021 $1D03 BTFSS STATUS, Z $0022 $2824 GOTO SERIAL_L_5 $0023 $ SERIAL_L_4: $0023 $ SERIAL_L_7: $0023 $1407 BSF PORTC, 0 $0024 $ SERIAL_L_8: $0024 $ SERIAL_L_5: $0024 $ SERIAL_L_6: ;SERIAL.pbas,20 :: if recebe=97 then PORTC.0 = 0 end if $0024 $0820 MOVF _recebe, 0 $0025 $3A61 XORLW 97 $0026 $1D03 BTFSS STATUS, Z $0027 $2829 GOTO SERIAL_L_10 $0028 $ SERIAL_L_9: $0028 $1007 BCF PORTC, 0 $0029 $ SERIAL_L_13: $0029 $ SERIAL_L_10: $0029 $ SERIAL_L_11: ;SERIAL.pbas,21 :: if recebe=66 then PORTC.1 = 1 end if $0029 $0820 MOVF _recebe, 0 $002A $3A42 XORLW 66 $002B $1D03 BTFSS STATUS, Z $002C $282E GOTO SERIAL_L_15 $002D $ SERIAL_L_14: $002D $ SERIAL_L_17: $002D $1487 BSF PORTC, 1 $002E $ SERIAL_L_18: $002E $ SERIAL_L_15: $002E $ SERIAL_L_16: ;SERIAL.pbas,22 :: if recebe=98 then PORTC.1 = 0 end if $002E $0820 MOVF _recebe, 0 $002F $3A62 XORLW 98 $0030 $1D03 BTFSS STATUS, Z $0031 $2833 GOTO SERIAL_L_20 $0032 $ SERIAL_L_19: $0032 $1087 BCF PORTC, 1 $0033 $ SERIAL_L_23: $0033 $ SERIAL_L_20: $0033 $ SERIAL_L_21: ;SERIAL.pbas,23 :: if recebe=67 then PORTC.2 = 1 end if $0033 $0820 MOVF _recebe, 0 $0034 $3A43 XORLW 67 $0035 $1D03 BTFSS STATUS, Z $0036 $2838 GOTO SERIAL_L_25 $0037 $ SERIAL_L_24: $0037 $ SERIAL_L_27: $0037 $1507 BSF PORTC, 2 $0038 $ SERIAL_L_28: $0038 $ SERIAL_L_25: $0038 $ SERIAL_L_26: ;SERIAL.pbas,24 :: if recebe=99 then PORTC.2 = 0 end if $0038 $0820 MOVF _recebe, 0 $0039 $3A63 XORLW 99 $003A $1D03 BTFSS STATUS, Z $003B $283D GOTO SERIAL_L_30 $003C $ SERIAL_L_29: $003C $1107 BCF PORTC, 2 $003D $ SERIAL_L_33: $003D $ SERIAL_L_30: $003D $ SERIAL_L_31: ;SERIAL.pbas,25 :: if recebe=68 then PORTC.3 = 1 end if $003D $0820 MOVF _recebe, 0 $003E $3A44 XORLW 68 $003F $1D03 BTFSS STATUS, Z $0040 $2842 GOTO SERIAL_L_35 $0041 $ SERIAL_L_34: $0041 $ SERIAL_L_37: $0041 $1587 BSF PORTC, 3 $0042 $ SERIAL_L_38: $0042 $ SERIAL_L_35: $0042 $ SERIAL_L_36: ;SERIAL.pbas,26 :: if recebe=100 then PORTC.3 = 0 end if $0042 $0820 MOVF _recebe, 0 $0043 $3A64 XORLW 100 $0044 $1D03 BTFSS STATUS, Z $0045 $2847 GOTO SERIAL_L_40 $0046 $ SERIAL_L_39: $0046 $1187 BCF PORTC, 3 $0047 $ SERIAL_L_43: $0047 $ SERIAL_L_40: $0047 $ SERIAL_L_41: ;SERIAL.pbas,27 :: if recebe=69 then PORTC.4 = 1 end if $0047 $0820 MOVF _recebe, 0 $0048 $3A45 XORLW 69 $0049 $1D03 BTFSS STATUS, Z $004A $284C GOTO SERIAL_L_45 $004B $ SERIAL_L_44: $004B $ SERIAL_L_47: $004B $1607 BSF PORTC, 4 $004C $ SERIAL_L_48: $004C $ SERIAL_L_45: $004C $ SERIAL_L_46: ;SERIAL.pbas,28 :: if recebe=101 then PORTC.4 = 0 end if $004C $0820 MOVF _recebe, 0 $004D $3A65 XORLW 101 $004E $1D03 BTFSS STATUS, Z $004F $2851 GOTO SERIAL_L_50 $0050 $ SERIAL_L_49: $0050 $1207 BCF PORTC, 4 $0051 $ SERIAL_L_53: $0051 $ SERIAL_L_50: $0051 $ SERIAL_L_51: ;SERIAL.pbas,29 :: if recebe=70 then PORTC.5 = 1 end if $0051 $0820 MOVF _recebe, 0 $0052 $3A46 XORLW 70 $0053 $1D03 BTFSS STATUS, Z $0054 $2856 GOTO SERIAL_L_55 $0055 $ SERIAL_L_54: $0055 $ SERIAL_L_57: $0055 $1687 BSF PORTC, 5 $0056 $ SERIAL_L_58: $0056 $ SERIAL_L_55: $0056 $ SERIAL_L_56: ;SERIAL.pbas,30 :: if recebe=102 then PORTC.5 = 0 end if $0056 $0820 MOVF _recebe, 0 $0057 $3A66 XORLW 102 $0058 $1D03 BTFSS STATUS, Z $0059 $285B GOTO SERIAL_L_60 $005A $ SERIAL_L_59: $005A $1287 BCF PORTC, 5 $005B $ SERIAL_L_63: $005B $ SERIAL_L_60: $005B $ SERIAL_L_61: ;SERIAL.pbas,31 :: if recebe=71 then PORTC.6 = 1 end if $005B $0820 MOVF _recebe, 0 $005C $3A47 XORLW 71 $005D $1D03 BTFSS STATUS, Z $005E $2860 GOTO SERIAL_L_65 $005F $ SERIAL_L_64: $005F $ SERIAL_L_67: $005F $1707 BSF PORTC, 6 $0060 $ SERIAL_L_68: $0060 $ SERIAL_L_65: $0060 $ SERIAL_L_66: ;SERIAL.pbas,32 :: if recebe=103 then PORTC.6 = 0 end if $0060 $0820 MOVF _recebe, 0 $0061 $3A67 XORLW 103 $0062 $1D03 BTFSS STATUS, Z $0063 $2865 GOTO SERIAL_L_70 $0064 $ SERIAL_L_69: $0064 $1307 BCF PORTC, 6 $0065 $ SERIAL_L_73: $0065 $ SERIAL_L_70: $0065 $ SERIAL_L_71: ;SERIAL.pbas,33 :: if recebe=72 then PORTC.7 = 1 end if $0065 $0820 MOVF _recebe, 0 $0066 $3A48 XORLW 72 $0067 $1D03 BTFSS STATUS, Z $0068 $286A GOTO SERIAL_L_75 $0069 $ SERIAL_L_74: $0069 $ SERIAL_L_77: $0069 $1787 BSF PORTC, 7 $006A $ SERIAL_L_78: $006A $ SERIAL_L_75: $006A $ SERIAL_L_76: ;SERIAL.pbas,34 :: if recebe=104 then PORTC.7 = 0 end if $006A $0820 MOVF _recebe, 0 $006B $3A68 XORLW 104 $006C $1D03 BTFSS STATUS, Z $006D $286F GOTO SERIAL_L_80 $006E $ SERIAL_L_79: $006E $1387 BCF PORTC, 7 $006F $ SERIAL_L_83: $006F $ SERIAL_L_80: $006F $ SERIAL_L_81: ;SERIAL.pbas,36 :: if recebe=84 then PORTC=255 end if $006F $0820 MOVF _recebe, 0 $0070 $3A54 XORLW 84 $0071 $1D03 BTFSS STATUS, Z $0072 $2875 GOTO SERIAL_L_85 $0073 $ SERIAL_L_84: $0073 $30FF MOVLW 255 $0074 $0087 MOVWF PORTC $0075 $ SERIAL_L_85: $0075 $ SERIAL_L_86: ;SERIAL.pbas,37 :: if recebe=48 then PORTC=0 end if $0075 $0820 MOVF _recebe, 0 $0076 $3A30 XORLW 48 $0077 $1D03 BTFSS STATUS, Z $0078 $287A GOTO SERIAL_L_88 $0079 $ SERIAL_L_87: $0079 $0187 CLRF PORTC, 1 $007A $ SERIAL_L_88: $007A $ SERIAL_L_89: ;SERIAL.pbas,39 :: if recebe=82 then $007A $0820 MOVF _recebe, 0 $007B $3A52 XORLW 82 $007C $1D03 BTFSS STATUS, Z $007D $2A2E GOTO SERIAL_L_91 $007E $ SERIAL_L_90: ;SERIAL.pbas,40 :: Usart_Write(13) $007E $300D MOVLW 13 $007F $00B6 MOVWF FARG_USART_Write $0080 $226F CALL _usart_write ;SERIAL.pbas,41 :: Usart_Write_Text("----------------") Usart_Write(13) $0081 $302D MOVLW 45 $0082 $00A1 MOVWF ?main_Local_Text+0 $0083 $302D MOVLW 45 $0084 $00A2 MOVWF ?main_Local_Text+1 $0085 $302D MOVLW 45 $0086 $00A3 MOVWF ?main_Local_Text+2 $0087 $302D MOVLW 45 $0088 $00A4 MOVWF ?main_Local_Text+3 $0089 $302D MOVLW 45 $008A $00A5 MOVWF ?main_Local_Text+4 $008B $302D MOVLW 45 $008C $00A6 MOVWF ?main_Local_Text+5 $008D $302D MOVLW 45 $008E $00A7 MOVWF ?main_Local_Text+6 $008F $302D MOVLW 45 $0090 $00A8 MOVWF ?main_Local_Text+7 $0091 $302D MOVLW 45 $0092 $00A9 MOVWF ?main_Local_Text+8 $0093 $302D MOVLW 45 $0094 $00AA MOVWF ?main_Local_Text+9 $0095 $302D MOVLW 45 $0096 $00AB MOVWF ?main_Local_Text+10 $0097 $302D MOVLW 45 $0098 $00AC MOVWF ?main_Local_Text+11 $0099 $302D MOVLW 45 $009A $00AD MOVWF ?main_Local_Text+12 $009B $302D MOVLW 45 $009C $00AE MOVWF ?main_Local_Text+13 $009D $302D MOVLW 45 $009E $00AF MOVWF ?main_Local_Text+14 $009F $302D MOVLW 45 $00A0 $00B0 MOVWF ?main_Local_Text+15 $00A1 $01B1 CLRF ?main_Local_Text+16 $00A2 $3021 MOVLW ?main_Local_Text $00A3 $00B2 MOVWF FARG_Usart_Write_Text $00A4 $2231 CALL _usart_write_text $00A5 $300D MOVLW 13 $00A6 $00B6 MOVWF FARG_USART_Write $00A7 $226F CALL _usart_write ;SERIAL.pbas,42 :: Usart_Write_Text("RC0: ") $00A8 $3052 MOVLW 82 $00A9 $00A1 MOVWF ?main_Local_Text+0 $00AA $3043 MOVLW 67 $00AB $00A2 MOVWF ?main_Local_Text+1 $00AC $3030 MOVLW 48 $00AD $00A3 MOVWF ?main_Local_Text+2 $00AE $303A MOVLW 58 $00AF $00A4 MOVWF ?main_Local_Text+3 $00B0 $3020 MOVLW 32 $00B1 $00A5 MOVWF ?main_Local_Text+4 $00B2 $01A6 CLRF ?main_Local_Text+5 $00B3 $3021 MOVLW ?main_Local_Text $00B4 $00B2 MOVWF FARG_Usart_Write_Text $00B5 $2231 CALL _usart_write_text ;SERIAL.pbas,43 :: if PORTC.0=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $00B6 $3001 MOVLW 1 $00B7 $0507 ANDWF PORTC, 0 $00B8 $00F1 MOVWF STACK_1 $00B9 $0871 MOVF STACK_1, 0 $00BA $3A01 XORLW 1 $00BB $1D03 BTFSS STATUS, Z $00BC $28C6 GOTO SERIAL_L_94 $00BD $ SERIAL_L_93: $00BD $304F MOVLW 79 $00BE $00A1 MOVWF ?main_Local_Text+0 $00BF $304E MOVLW 78 $00C0 $00A2 MOVWF ?main_Local_Text+1 $00C1 $01A3 CLRF ?main_Local_Text+2 $00C2 $3021 MOVLW ?main_Local_Text $00C3 $00B2 MOVWF FARG_Usart_Write_Text $00C4 $2231 CALL _usart_write_text $00C5 $28D0 GOTO SERIAL_L_95 $00C6 $ SERIAL_L_94: $00C6 $304F MOVLW 79 $00C7 $00A1 MOVWF ?main_Local_Text+0 $00C8 $3046 MOVLW 70 $00C9 $00A2 MOVWF ?main_Local_Text+1 $00CA $3046 MOVLW 70 $00CB $00A3 MOVWF ?main_Local_Text+2 $00CC $01A4 CLRF ?main_Local_Text+3 $00CD $3021 MOVLW ?main_Local_Text $00CE $00B2 MOVWF FARG_Usart_Write_Text $00CF $2231 CALL _usart_write_text $00D0 $ SERIAL_L_95: $00D0 $300D MOVLW 13 $00D1 $00B6 MOVWF FARG_USART_Write $00D2 $226F CALL _usart_write ;SERIAL.pbas,44 :: Usart_Write_Text("RC1: ") $00D3 $3052 MOVLW 82 $00D4 $00A1 MOVWF ?main_Local_Text+0 $00D5 $3043 MOVLW 67 $00D6 $00A2 MOVWF ?main_Local_Text+1 $00D7 $3031 MOVLW 49 $00D8 $00A3 MOVWF ?main_Local_Text+2 $00D9 $303A MOVLW 58 $00DA $00A4 MOVWF ?main_Local_Text+3 $00DB $3020 MOVLW 32 $00DC $00A5 MOVWF ?main_Local_Text+4 $00DD $01A6 CLRF ?main_Local_Text+5 $00DE $3021 MOVLW ?main_Local_Text $00DF $00B2 MOVWF FARG_Usart_Write_Text $00E0 $2231 CALL _usart_write_text ;SERIAL.pbas,45 :: if PORTC.1=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $00E1 $3000 MOVLW 0 $00E2 $1887 BTFSC PORTC, 1 $00E3 $3001 MOVLW 1 $00E4 $00F1 MOVWF STACK_1 $00E5 $0871 MOVF STACK_1, 0 $00E6 $3A01 XORLW 1 $00E7 $1D03 BTFSS STATUS, Z $00E8 $28F2 GOTO SERIAL_L_97 $00E9 $ SERIAL_L_96: $00E9 $304F MOVLW 79 $00EA $00A1 MOVWF ?main_Local_Text+0 $00EB $304E MOVLW 78 $00EC $00A2 MOVWF ?main_Local_Text+1 $00ED $01A3 CLRF ?main_Local_Text+2 $00EE $3021 MOVLW ?main_Local_Text $00EF $00B2 MOVWF FARG_Usart_Write_Text $00F0 $2231 CALL _usart_write_text $00F1 $28FC GOTO SERIAL_L_98 $00F2 $ SERIAL_L_97: $00F2 $304F MOVLW 79 $00F3 $00A1 MOVWF ?main_Local_Text+0 $00F4 $3046 MOVLW 70 $00F5 $00A2 MOVWF ?main_Local_Text+1 $00F6 $3046 MOVLW 70 $00F7 $00A3 MOVWF ?main_Local_Text+2 $00F8 $01A4 CLRF ?main_Local_Text+3 $00F9 $3021 MOVLW ?main_Local_Text $00FA $00B2 MOVWF FARG_Usart_Write_Text $00FB $2231 CALL _usart_write_text $00FC $ SERIAL_L_98: $00FC $300D MOVLW 13 $00FD $00B6 MOVWF FARG_USART_Write $00FE $226F CALL _usart_write ;SERIAL.pbas,46 :: Usart_Write_Text("RC2: ") $00FF $3052 MOVLW 82 $0100 $00A1 MOVWF ?main_Local_Text+0 $0101 $3043 MOVLW 67 $0102 $00A2 MOVWF ?main_Local_Text+1 $0103 $3032 MOVLW 50 $0104 $00A3 MOVWF ?main_Local_Text+2 $0105 $303A MOVLW 58 $0106 $00A4 MOVWF ?main_Local_Text+3 $0107 $3020 MOVLW 32 $0108 $00A5 MOVWF ?main_Local_Text+4 $0109 $01A6 CLRF ?main_Local_Text+5 $010A $3021 MOVLW ?main_Local_Text $010B $00B2 MOVWF FARG_Usart_Write_Text $010C $2231 CALL _usart_write_text ;SERIAL.pbas,47 :: if PORTC.2=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $010D $3000 MOVLW 0 $010E $1907 BTFSC PORTC, 2 $010F $3001 MOVLW 1 $0110 $00F1 MOVWF STACK_1 $0111 $0871 MOVF STACK_1, 0 $0112 $3A01 XORLW 1 $0113 $1D03 BTFSS STATUS, Z $0114 $291E GOTO SERIAL_L_100 $0115 $ SERIAL_L_99: $0115 $304F MOVLW 79 $0116 $00A1 MOVWF ?main_Local_Text+0 $0117 $304E MOVLW 78 $0118 $00A2 MOVWF ?main_Local_Text+1 $0119 $01A3 CLRF ?main_Local_Text+2 $011A $3021 MOVLW ?main_Local_Text $011B $00B2 MOVWF FARG_Usart_Write_Text $011C $2231 CALL _usart_write_text $011D $2928 GOTO SERIAL_L_101 $011E $ SERIAL_L_100: $011E $304F MOVLW 79 $011F $00A1 MOVWF ?main_Local_Text+0 $0120 $3046 MOVLW 70 $0121 $00A2 MOVWF ?main_Local_Text+1 $0122 $3046 MOVLW 70 $0123 $00A3 MOVWF ?main_Local_Text+2 $0124 $01A4 CLRF ?main_Local_Text+3 $0125 $3021 MOVLW ?main_Local_Text $0126 $00B2 MOVWF FARG_Usart_Write_Text $0127 $2231 CALL _usart_write_text $0128 $ SERIAL_L_101: $0128 $300D MOVLW 13 $0129 $00B6 MOVWF FARG_USART_Write $012A $226F CALL _usart_write ;SERIAL.pbas,48 :: Usart_Write_Text("RC3: ") $012B $3052 MOVLW 82 $012C $00A1 MOVWF ?main_Local_Text+0 $012D $3043 MOVLW 67 $012E $00A2 MOVWF ?main_Local_Text+1 $012F $3033 MOVLW 51 $0130 $00A3 MOVWF ?main_Local_Text+2 $0131 $303A MOVLW 58 $0132 $00A4 MOVWF ?main_Local_Text+3 $0133 $3020 MOVLW 32 $0134 $00A5 MOVWF ?main_Local_Text+4 $0135 $01A6 CLRF ?main_Local_Text+5 $0136 $3021 MOVLW ?main_Local_Text $0137 $00B2 MOVWF FARG_Usart_Write_Text $0138 $2231 CALL _usart_write_text ;SERIAL.pbas,49 :: if PORTC.3=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $0139 $3000 MOVLW 0 $013A $1987 BTFSC PORTC, 3 $013B $3001 MOVLW 1 $013C $00F1 MOVWF STACK_1 $013D $0871 MOVF STACK_1, 0 $013E $3A01 XORLW 1 $013F $1D03 BTFSS STATUS, Z $0140 $294A GOTO SERIAL_L_103 $0141 $ SERIAL_L_102: $0141 $304F MOVLW 79 $0142 $00A1 MOVWF ?main_Local_Text+0 $0143 $304E MOVLW 78 $0144 $00A2 MOVWF ?main_Local_Text+1 $0145 $01A3 CLRF ?main_Local_Text+2 $0146 $3021 MOVLW ?main_Local_Text $0147 $00B2 MOVWF FARG_Usart_Write_Text $0148 $2231 CALL _usart_write_text $0149 $2954 GOTO SERIAL_L_104 $014A $ SERIAL_L_103: $014A $304F MOVLW 79 $014B $00A1 MOVWF ?main_Local_Text+0 $014C $3046 MOVLW 70 $014D $00A2 MOVWF ?main_Local_Text+1 $014E $3046 MOVLW 70 $014F $00A3 MOVWF ?main_Local_Text+2 $0150 $01A4 CLRF ?main_Local_Text+3 $0151 $3021 MOVLW ?main_Local_Text $0152 $00B2 MOVWF FARG_Usart_Write_Text $0153 $2231 CALL _usart_write_text $0154 $ SERIAL_L_104: $0154 $300D MOVLW 13 $0155 $00B6 MOVWF FARG_USART_Write $0156 $226F CALL _usart_write ;SERIAL.pbas,50 :: Usart_Write_Text("RC4: ") $0157 $3052 MOVLW 82 $0158 $00A1 MOVWF ?main_Local_Text+0 $0159 $3043 MOVLW 67 $015A $00A2 MOVWF ?main_Local_Text+1 $015B $3034 MOVLW 52 $015C $00A3 MOVWF ?main_Local_Text+2 $015D $303A MOVLW 58 $015E $00A4 MOVWF ?main_Local_Text+3 $015F $3020 MOVLW 32 $0160 $00A5 MOVWF ?main_Local_Text+4 $0161 $01A6 CLRF ?main_Local_Text+5 $0162 $3021 MOVLW ?main_Local_Text $0163 $00B2 MOVWF FARG_Usart_Write_Text $0164 $2231 CALL _usart_write_text ;SERIAL.pbas,51 :: if PORTC.4=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $0165 $3000 MOVLW 0 $0166 $1A07 BTFSC PORTC, 4 $0167 $3001 MOVLW 1 $0168 $00F1 MOVWF STACK_1 $0169 $0871 MOVF STACK_1, 0 $016A $3A01 XORLW 1 $016B $1D03 BTFSS STATUS, Z $016C $2976 GOTO SERIAL_L_106 $016D $ SERIAL_L_105: $016D $304F MOVLW 79 $016E $00A1 MOVWF ?main_Local_Text+0 $016F $304E MOVLW 78 $0170 $00A2 MOVWF ?main_Local_Text+1 $0171 $01A3 CLRF ?main_Local_Text+2 $0172 $3021 MOVLW ?main_Local_Text $0173 $00B2 MOVWF FARG_Usart_Write_Text $0174 $2231 CALL _usart_write_text $0175 $2980 GOTO SERIAL_L_107 $0176 $ SERIAL_L_106: $0176 $304F MOVLW 79 $0177 $00A1 MOVWF ?main_Local_Text+0 $0178 $3046 MOVLW 70 $0179 $00A2 MOVWF ?main_Local_Text+1 $017A $3046 MOVLW 70 $017B $00A3 MOVWF ?main_Local_Text+2 $017C $01A4 CLRF ?main_Local_Text+3 $017D $3021 MOVLW ?main_Local_Text $017E $00B2 MOVWF FARG_Usart_Write_Text $017F $2231 CALL _usart_write_text $0180 $ SERIAL_L_107: $0180 $300D MOVLW 13 $0181 $00B6 MOVWF FARG_USART_Write $0182 $226F CALL _usart_write ;SERIAL.pbas,52 :: Usart_Write_Text("RC5: ") $0183 $3052 MOVLW 82 $0184 $00A1 MOVWF ?main_Local_Text+0 $0185 $3043 MOVLW 67 $0186 $00A2 MOVWF ?main_Local_Text+1 $0187 $3035 MOVLW 53 $0188 $00A3 MOVWF ?main_Local_Text+2 $0189 $303A MOVLW 58 $018A $00A4 MOVWF ?main_Local_Text+3 $018B $3020 MOVLW 32 $018C $00A5 MOVWF ?main_Local_Text+4 $018D $01A6 CLRF ?main_Local_Text+5 $018E $3021 MOVLW ?main_Local_Text $018F $00B2 MOVWF FARG_Usart_Write_Text $0190 $2231 CALL _usart_write_text ;SERIAL.pbas,53 :: if PORTC.5=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $0191 $3000 MOVLW 0 $0192 $1A87 BTFSC PORTC, 5 $0193 $3001 MOVLW 1 $0194 $00F1 MOVWF STACK_1 $0195 $0871 MOVF STACK_1, 0 $0196 $3A01 XORLW 1 $0197 $1D03 BTFSS STATUS, Z $0198 $29A2 GOTO SERIAL_L_109 $0199 $ SERIAL_L_108: $0199 $304F MOVLW 79 $019A $00A1 MOVWF ?main_Local_Text+0 $019B $304E MOVLW 78 $019C $00A2 MOVWF ?main_Local_Text+1 $019D $01A3 CLRF ?main_Local_Text+2 $019E $3021 MOVLW ?main_Local_Text $019F $00B2 MOVWF FARG_Usart_Write_Text $01A0 $2231 CALL _usart_write_text $01A1 $29AC GOTO SERIAL_L_110 $01A2 $ SERIAL_L_109: $01A2 $304F MOVLW 79 $01A3 $00A1 MOVWF ?main_Local_Text+0 $01A4 $3046 MOVLW 70 $01A5 $00A2 MOVWF ?main_Local_Text+1 $01A6 $3046 MOVLW 70 $01A7 $00A3 MOVWF ?main_Local_Text+2 $01A8 $01A4 CLRF ?main_Local_Text+3 $01A9 $3021 MOVLW ?main_Local_Text $01AA $00B2 MOVWF FARG_Usart_Write_Text $01AB $2231 CALL _usart_write_text $01AC $ SERIAL_L_110: $01AC $300D MOVLW 13 $01AD $00B6 MOVWF FARG_USART_Write $01AE $226F CALL _usart_write ;SERIAL.pbas,54 :: Usart_Write_Text("RC6: ") $01AF $3052 MOVLW 82 $01B0 $00A1 MOVWF ?main_Local_Text+0 $01B1 $3043 MOVLW 67 $01B2 $00A2 MOVWF ?main_Local_Text+1 $01B3 $3036 MOVLW 54 $01B4 $00A3 MOVWF ?main_Local_Text+2 $01B5 $303A MOVLW 58 $01B6 $00A4 MOVWF ?main_Local_Text+3 $01B7 $3020 MOVLW 32 $01B8 $00A5 MOVWF ?main_Local_Text+4 $01B9 $01A6 CLRF ?main_Local_Text+5 $01BA $3021 MOVLW ?main_Local_Text $01BB $00B2 MOVWF FARG_Usart_Write_Text $01BC $2231 CALL _usart_write_text ;SERIAL.pbas,55 :: if PORTC.6=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $01BD $3000 MOVLW 0 $01BE $1B07 BTFSC PORTC, 6 $01BF $3001 MOVLW 1 $01C0 $00F1 MOVWF STACK_1 $01C1 $0871 MOVF STACK_1, 0 $01C2 $3A01 XORLW 1 $01C3 $1D03 BTFSS STATUS, Z $01C4 $29CE GOTO SERIAL_L_112 $01C5 $ SERIAL_L_111: $01C5 $304F MOVLW 79 $01C6 $00A1 MOVWF ?main_Local_Text+0 $01C7 $304E MOVLW 78 $01C8 $00A2 MOVWF ?main_Local_Text+1 $01C9 $01A3 CLRF ?main_Local_Text+2 $01CA $3021 MOVLW ?main_Local_Text $01CB $00B2 MOVWF FARG_Usart_Write_Text $01CC $2231 CALL _usart_write_text $01CD $29D8 GOTO SERIAL_L_113 $01CE $ SERIAL_L_112: $01CE $304F MOVLW 79 $01CF $00A1 MOVWF ?main_Local_Text+0 $01D0 $3046 MOVLW 70 $01D1 $00A2 MOVWF ?main_Local_Text+1 $01D2 $3046 MOVLW 70 $01D3 $00A3 MOVWF ?main_Local_Text+2 $01D4 $01A4 CLRF ?main_Local_Text+3 $01D5 $3021 MOVLW ?main_Local_Text $01D6 $00B2 MOVWF FARG_Usart_Write_Text $01D7 $2231 CALL _usart_write_text $01D8 $ SERIAL_L_113: $01D8 $300D MOVLW 13 $01D9 $00B6 MOVWF FARG_USART_Write $01DA $226F CALL _usart_write ;SERIAL.pbas,56 :: Usart_Write_Text("RC7: ") $01DB $3052 MOVLW 82 $01DC $00A1 MOVWF ?main_Local_Text+0 $01DD $3043 MOVLW 67 $01DE $00A2 MOVWF ?main_Local_Text+1 $01DF $3037 MOVLW 55 $01E0 $00A3 MOVWF ?main_Local_Text+2 $01E1 $303A MOVLW 58 $01E2 $00A4 MOVWF ?main_Local_Text+3 $01E3 $3020 MOVLW 32 $01E4 $00A5 MOVWF ?main_Local_Text+4 $01E5 $01A6 CLRF ?main_Local_Text+5 $01E6 $3021 MOVLW ?main_Local_Text $01E7 $00B2 MOVWF FARG_Usart_Write_Text $01E8 $2231 CALL _usart_write_text ;SERIAL.pbas,57 :: if PORTC.7=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if $01E9 $3000 MOVLW 0 $01EA $1B87 BTFSC PORTC, 7 $01EB $3001 MOVLW 1 $01EC $00F1 MOVWF STACK_1 $01ED $0871 MOVF STACK_1, 0 $01EE $3A01 XORLW 1 $01EF $1D03 BTFSS STATUS, Z $01F0 $29FA GOTO SERIAL_L_115 $01F1 $ SERIAL_L_114: $01F1 $304F MOVLW 79 $01F2 $00A1 MOVWF ?main_Local_Text+0 $01F3 $304E MOVLW 78 $01F4 $00A2 MOVWF ?main_Local_Text+1 $01F5 $01A3 CLRF ?main_Local_Text+2 $01F6 $3021 MOVLW ?main_Local_Text $01F7 $00B2 MOVWF FARG_Usart_Write_Text $01F8 $2231 CALL _usart_write_text $01F9 $2A04 GOTO SERIAL_L_116 $01FA $ SERIAL_L_115: $01FA $304F MOVLW 79 $01FB $00A1 MOVWF ?main_Local_Text+0 $01FC $3046 MOVLW 70 $01FD $00A2 MOVWF ?main_Local_Text+1 $01FE $3046 MOVLW 70 $01FF $00A3 MOVWF ?main_Local_Text+2 $0200 $01A4 CLRF ?main_Local_Text+3 $0201 $3021 MOVLW ?main_Local_Text $0202 $00B2 MOVWF FARG_Usart_Write_Text $0203 $2231 CALL _usart_write_text $0204 $ SERIAL_L_116: ;SERIAL.pbas,58 :: Usart_Write(13) $0204 $300D MOVLW 13 $0205 $00B6 MOVWF FARG_USART_Write $0206 $226F CALL _usart_write ;SERIAL.pbas,59 :: Usart_Write_Text("----------------") Usart_Write(13) $0207 $302D MOVLW 45 $0208 $00A1 MOVWF ?main_Local_Text+0 $0209 $302D MOVLW 45 $020A $00A2 MOVWF ?main_Local_Text+1 $020B $302D MOVLW 45 $020C $00A3 MOVWF ?main_Local_Text+2 $020D $302D MOVLW 45 $020E $00A4 MOVWF ?main_Local_Text+3 $020F $302D MOVLW 45 $0210 $00A5 MOVWF ?main_Local_Text+4 $0211 $302D MOVLW 45 $0212 $00A6 MOVWF ?main_Local_Text+5 $0213 $302D MOVLW 45 $0214 $00A7 MOVWF ?main_Local_Text+6 $0215 $302D MOVLW 45 $0216 $00A8 MOVWF ?main_Local_Text+7 $0217 $302D MOVLW 45 $0218 $00A9 MOVWF ?main_Local_Text+8 $0219 $302D MOVLW 45 $021A $00AA MOVWF ?main_Local_Text+9 $021B $302D MOVLW 45 $021C $00AB MOVWF ?main_Local_Text+10 $021D $302D MOVLW 45 $021E $00AC MOVWF ?main_Local_Text+11 $021F $302D MOVLW 45 $0220 $00AD MOVWF ?main_Local_Text+12 $0221 $302D MOVLW 45 $0222 $00AE MOVWF ?main_Local_Text+13 $0223 $302D MOVLW 45 $0224 $00AF MOVWF ?main_Local_Text+14 $0225 $302D MOVLW 45 $0226 $00B0 MOVWF ?main_Local_Text+15 $0227 $01B1 CLRF ?main_Local_Text+16 $0228 $3021 MOVLW ?main_Local_Text $0229 $00B2 MOVWF FARG_Usart_Write_Text $022A $2231 CALL _usart_write_text $022B $300D MOVLW 13 $022C $00B6 MOVWF FARG_USART_Write $022D $226F CALL _usart_write $022E $ SERIAL_L_91: ;SERIAL.pbas,60 :: end if $022E $ SERIAL_L_92: ;SERIAL.pbas,61 :: recebe=0 $022E $01A0 CLRF _recebe, 1 $022F $ SERIAL_L_2: ;SERIAL.pbas,62 :: end if $022F $ SERIAL_L_3: ;SERIAL.pbas,64 :: goto executa $022F $2817 GOTO _main_executa $0230 $2A30 GOTO $ Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.dbg Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.dlt Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.hex :100000000428FF3FFF3FFF3FFF30031383168500A7 :100010007F30860087018B01031783129E019F01A9 :10002000031387011930831699001815472281227E :100030007008003C03182F2A5C227008A00070088A :10004000413A031D242807142008613A031D29287A :1000500007102008423A031D2E2887142008623A10 :10006000031D332887102008433A031D382807153D :100070002008633A031D3D2807112008443A031D58 :10008000422887152008643A031D47288711200855 :10009000453A031D4C2807162008653A031D5128D0 :1000A00007122008463A031D562887162008663A8C :1000B000031D5B2887122008473A031D6028071795 :1000C0002008673A031D652807132008483A031DD6 :1000D0006A2887172008683A031D6F2887132008AD :1000E000543A031D7528FF3087002008303A031D5D :1000F0007A2887012008523A031D2E2A0D30B600B7 :100100006F222D30A1002D30A2002D30A3002D3004 :10011000A4002D30A5002D30A6002D30A7002D30D5 :10012000A8002D30A9002D30AA002D30AB002D30B5 :10013000AC002D30AD002D30AE002D30AF002D3095 :10014000B000B1012130B20031220D30B6006F2273 :100150005230A1004330A2003030A3003A30A40056 :100160002030A500A6012130B20031220130070560 :10017000F1007108013A031DC6284F30A1004E302E :10018000A200A3012130B2003122D0284F30A100BB :100190004630A2004630A300A4012130B200312233 :1001A0000D30B6006F225230A1004330A200313032 :1001B000A3003A30A4002030A500A6012130B200EF :1001C0003122003087180130F1007108013A031D17 :1001D000F2284F30A1004E30A200A3012130B2001E :1001E0003122FC284F30A1004630A2004630A30047 :1001F000A4012130B20031220D30B6006F225230FE :10020000A1004330A2003230A3003A30A4002030D5 :10021000A500A6012130B2003122003007190130BB :10022000F1007108013A031D1E294F30A1004E3024 :10023000A200A3012130B200312228294F30A100B1 :100240004630A2004630A300A4012130B200312282 :100250000D30B6006F225230A1004330A20033307F :10026000A3003A30A4002030A500A6012130B2003E :100270003122003087190130F1007108013A031D65 :100280004A294F30A1004E30A200A3012130B20014 :10029000312254294F30A1004630A2004630A3003D :1002A000A4012130B20031220D30B6006F2252304D :1002B000A1004330A2003430A3003A30A400203023 :1002C000A500A6012130B20031220030071A01300A :1002D000F1007108013A031D76294F30A1004E301C :1002E000A200A3012130B200312280294F30A100A9 :1002F0004630A2004630A300A4012130B2003122D2 :100300000D30B6006F225230A1004330A2003530CC :10031000A3003A30A4002030A500A6012130B2008D :1003200031220030871A0130F1007108013A031DB3 :10033000A2294F30A1004E30A200A3012130B2000B :100340003122AC294F30A1004630A2004630A30034 :10035000A4012130B20031220D30B6006F2252309C :10036000A1004330A2003630A3003A30A400203070 :10037000A500A6012130B20031220030071B013058 :10038000F1007108013A031DCE294F30A1004E3013 :10039000A200A3012130B2003122D8294F30A100A0 :1003A0004630A2004630A300A4012130B200312221 :1003B0000D30B6006F225230A1004330A20037301A :1003C000A3003A30A4002030A500A6012130B200DD :1003D00031220030871B0130F1007108013A031D02 :1003E000FA294F30A1004E30A200A3012130B20003 :1003F0003122042A4F30A1004630A2004630A3002B :10040000A4012130B20031220D30B6006F222D3010 :10041000A1002D30A2002D30A3002D30A4002D30DE :10042000A5002D30A6002D30A7002D30A8002D30BE :10043000A9002D30AA002D30AB002D30AC002D309E :10044000AD002D30AE002D30AF002D30B000B10129 :100450002130B20031220D30B6006F22A0011728E2 :10046000302A03138312B301320884000008B40059 :100470003408003A0319462A3408B6006F22B30A3A :100480003308320784000008B400382A0800031338 :100490008316981690308312980083168616861756 :1004A00083120C08F1000030F11A0130F1007108DC :1004B000013A0319502A0800031383121A08B200E4 :1004C0001808F1000030F1180130F1007108013A0C :1004D000031D6C2A181218163208F00008000313C6 :1004E00083161808F1000030F1180130F10071088E :1004F000003A031D7D2A00006F2A831236089900F6 :100500000800031383120C08F1000030F11A0130C7 :10051000F1007108B2003208F0000800FF3FFF3F11 :02400E00C430BC :00000001FF Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.lst ; Assembly code generated by mikroVirtualMachine - V. 5.0.0.3 ; Date/Time: 20/10/2020 23:00:54 ; Info: http://www.mikroe.com ; ADDRESS OPCODE ASM ; ---------------------------------------------- $0000 $2804 GOTO _main $026F $ _usart_write: ;USART_b75.ppas,40 :: ;USART_b75.ppas,42 :: $026F $ USART_b75_L_14: $026F $1303 BCF STATUS, RP1 $0270 $1683 BSF STATUS, RP0 $0271 $0818 MOVF TXSTA, 0 $0272 $00F1 MOVWF STACK_1 $0273 $3000 MOVLW 0 $0274 $18F1 BTFSC STACK_1, 1 $0275 $3001 MOVLW 1 $0276 $00F1 MOVWF STACK_1 $0277 $0871 MOVF STACK_1, 0 $0278 $3A00 XORLW 0 $0279 $1D03 BTFSS STATUS, Z $027A $2A7D GOTO USART_b75_L_15 ;USART_b75.ppas,43 :: $027B $0000 NOP $027C $2A6F GOTO USART_b75_L_14 $027D $ USART_b75_L_15: ;USART_b75.ppas,44 :: $027D $1283 BCF STATUS, RP0 $027E $0836 MOVF FARG_USART_Write, 0 $027F $0099 MOVWF TXREG $0280 $ USART_b75_L_12: ;USART_b75.ppas,45 :: $0280 $0008 RETURN $0281 $ _usart_data_ready: ;USART_b75.ppas,48 :: ;USART_b75.ppas,50 :: $0281 $1303 BCF STATUS, RP1 $0282 $1283 BCF STATUS, RP0 $0283 $080C MOVF PIR1, 0 $0284 $00F1 MOVWF STACK_1 $0285 $3000 MOVLW 0 $0286 $1AF1 BTFSC STACK_1, 5 $0287 $3001 MOVLW 1 $0288 $00F1 MOVWF STACK_1 $0289 $0871 MOVF STACK_1, 0 $028A $00B2 MOVWF _usart_data_ready_local_result $028B $ USART_b75_L_18: ;USART_b75.ppas,51 :: $028B $0832 MOVF _usart_data_ready_local_result, 0 $028C $00F0 MOVWF STACK_0 $028D $0008 RETURN $025C $ _usart_read: ;USART_b75.ppas,54 :: ;USART_b75.ppas,55 :: $025C $1303 BCF STATUS, RP1 $025D $1283 BCF STATUS, RP0 $025E $081A MOVF RCREG, 0 $025F $00B2 MOVWF _usart_read_local_result ;USART_b75.ppas,61 :: $0260 $0818 MOVF RCSTA, 0 $0261 $00F1 MOVWF STACK_1 $0262 $3000 MOVLW 0 $0263 $18F1 BTFSC STACK_1, 1 $0264 $3001 MOVLW 1 $0265 $00F1 MOVWF STACK_1 $0266 $0871 MOVF STACK_1, 0 $0267 $3A01 XORLW 1 $0268 $1D03 BTFSS STATUS, Z $0269 $2A6C GOTO USART_b75_L_21 $026A $ USART_b75_L_20: ;USART_b75.ppas,63 :: $026A $1218 BCF RCSTA, 4 $026B $ USART_b75_L_24: ;USART_b75.ppas,64 :: $026B $ USART_b75_L_25: $026B $1618 BSF RCSTA, 4 $026C $ USART_b75_L_26: ;USART_b75.ppas,65 :: $026C $ USART_b75_L_21: $026C $ USART_b75_L_22: $026C $ USART_b75_L_19: ;USART_b75.ppas,66 :: $026C $0832 MOVF _usart_read_local_result, 0 $026D $00F0 MOVWF STACK_0 $026E $0008 RETURN $0231 $ _usart_write_text: ;USART_b75.ppas,121 :: ;USART_b75.ppas,122 :: $0231 $1303 BCF STATUS, RP1 $0232 $1283 BCF STATUS, RP0 $0233 $01B3 CLRF _usart_write_text_local_i, 1 ;USART_b75.ppas,123 :: $0234 $0832 MOVF FARG_Usart_Write_Text, 0 $0235 $0084 MOVWF FSR $0236 $0800 MOVF INDF, 0 $0237 $00B4 MOVWF _usart_write_text_local_data ;USART_b75.ppas,124 :: $0238 $ USART_b75_L_47: $0238 $0834 MOVF _usart_write_text_local_data, 0 $0239 $3A00 XORLW 0 $023A $1903 BTFSC STATUS, Z $023B $2A46 GOTO USART_b75_L_48 ;USART_b75.ppas,126 :: $023C $0834 MOVF _usart_write_text_local_data, 0 $023D $00B6 MOVWF FARG_USART_Write $023E $226F CALL _usart_write ;USART_b75.ppas,127 :: $023F $0AB3 INCF _usart_write_text_local_i, 1 ;USART_b75.ppas,128 :: $0240 $0833 MOVF _usart_write_text_local_i, 0 $0241 $0732 ADDWF FARG_Usart_Write_Text, 0 $0242 $0084 MOVWF FSR $0243 $0800 MOVF INDF, 0 $0244 $00B4 MOVWF _usart_write_text_local_data ;USART_b75.ppas,129 :: $0245 $2A38 GOTO USART_b75_L_47 $0246 $ USART_b75_L_48: $0246 $ USART_b75_L_45: ;USART_b75.ppas,130 :: $0246 $0008 RETURN $0247 $ _usart_init: ;USART_b75.ppas,22 :: ;USART_b75.ppas,24 :: $0247 $ USART_b75_L_1: $0247 $1303 BCF STATUS, RP1 $0248 $1683 BSF STATUS, RP0 $0249 $1698 BSF TXSTA, 5 $024A $ USART_b75_L_2: ;USART_b75.ppas,25 :: $024A $3090 MOVLW 144 $024B $1283 BCF STATUS, RP0 $024C $0098 MOVWF RCSTA ;USART_b75.ppas,31 :: $024D $ USART_b75_L_3: $024D $1683 BSF STATUS, RP0 $024E $1686 BSF TRISB, 5 $024F $ USART_b75_L_4: ;USART_b75.ppas,32 :: $024F $ USART_b75_L_5: $024F $1786 BSF TRISB, 7 $0250 $ USART_b75_L_6: ;USART_b75.ppas,35 :: $0250 $ USART_b75_L_8: $0250 $1283 BCF STATUS, RP0 $0251 $080C MOVF PIR1, 0 $0252 $00F1 MOVWF STACK_1 $0253 $3000 MOVLW 0 $0254 $1AF1 BTFSC STACK_1, 5 $0255 $3001 MOVLW 1 $0256 $00F1 MOVWF STACK_1 $0257 $0871 MOVF STACK_1, 0 $0258 $3A01 XORLW 1 $0259 $1903 BTFSC STATUS, Z $025A $2A50 GOTO USART_b75_L_8 ;USART_b75.ppas,36 :: $025B $ USART_b75_L_9: $025B $ USART_b75_L_0: ;USART_b75.ppas,37 :: $025B $0008 RETURN $0004 $ _main: ;SERIAL.pbas,4 :: main: $0004 $ _main_main: ;SERIAL.pbas,5 :: TRISA=%11111111 $0004 $30FF MOVLW 255 $0005 $1303 BCF STATUS, RP1 $0006 $1683 BSF STATUS, RP0 $0007 $0085 MOVWF TRISA ;SERIAL.pbas,6 :: TRISB=%01111111 $0008 $307F MOVLW 127 $0009 $0086 MOVWF TRISB ;SERIAL.pbas,7 :: TRISC=%00000000 $000A $0187 CLRF TRISC, 1 ;SERIAL.pbas,8 :: INTCON=%00000000 $000B $018B CLRF INTCON, 1 ;SERIAL.pbas,9 :: ANSEL=%00000000 $000C $1703 BSF STATUS, RP1 $000D $1283 BCF STATUS, RP0 $000E $019E CLRF ANSEL, 1 ;SERIAL.pbas,10 :: ANSELH=%00000000 $000F $019F CLRF ANSELH, 1 ;SERIAL.pbas,12 :: PORTC=0 $0010 $1303 BCF STATUS, RP1 $0011 $0187 CLRF PORTC, 1 ;SERIAL.pbas,14 :: Usart_Init(9600) $0012 $3019 MOVLW 25 $0013 $1683 BSF STATUS, RP0 $0014 $0099 MOVWF SPBRG $0015 $1518 BSF TXSTA, BRGH $0016 $2247 CALL _usart_init ;SERIAL.pbas,16 :: executa: $0017 $ _main_executa: ;SERIAL.pbas,17 :: if Usart_Data_Ready() > 0 then $0017 $2281 CALL _usart_data_ready $0018 $0870 MOVF STACK_0, 0 $0019 $3C00 SUBLW 0 $001A $1803 BTFSC STATUS, C $001B $2A2F GOTO SERIAL_L_2 $001C $ SERIAL_L_1: ;SERIAL.pbas,18 :: recebe=Usart_Read() $001C $225C CALL _usart_read $001D $0870 MOVF STACK_0, 0 $001E $00A0 MOVWF _recebe ;SERIAL.pbas,19 :: if recebe=65 then PORTC.0 = 1 end if $001F $0870 MOVF STACK_0, 0 $0020 $3A41 XORLW 65 $0021 $1D03 BTFSS STATUS, Z $0022 $2824 GOTO SERIAL_L_5 $0023 $ SERIAL_L_4: $0023 $ SERIAL_L_7: $0023 $1407 BSF PORTC, 0 $0024 $ SERIAL_L_8: $0024 $ SERIAL_L_5: $0024 $ SERIAL_L_6: ;SERIAL.pbas,20 :: if recebe=97 then PORTC.0 = 0 end if $0024 $0820 MOVF _recebe, 0 $0025 $3A61 XORLW 97 $0026 $1D03 BTFSS STATUS, Z $0027 $2829 GOTO SERIAL_L_10 $0028 $ SERIAL_L_9: $0028 $1007 BCF PORTC, 0 $0029 $ SERIAL_L_13: $0029 $ SERIAL_L_10: $0029 $ SERIAL_L_11: ;SERIAL.pbas,21 :: if recebe=66 then PORTC.1 = 1 end if $0029 $0820 MOVF _recebe, 0 $002A $3A42 XORLW 66 $002B $1D03 BTFSS STATUS, Z $002C $282E GOTO SERIAL_L_15 $002D $ SERIAL_L_14: $002D $ SERIAL_L_17: $002D $1487 BSF PORTC, 1 $002E $ SERIAL_L_18: $002E $ SERIAL_L_15: $002E $ SERIAL_L_16: ;SERIAL.pbas,22 :: if recebe=98 then PORTC.1 = 0 end if $002E $0820 MOVF _recebe, 0 $002F $3A62 XORLW 98 $0030 $1D03 BTFSS STATUS, Z $0031 $2833 GOTO SERIAL_L_20 $0032 $ SERIAL_L_19: $0032 $1087 BCF PORTC, 1 $0033 $ SERIAL_L_23: $0033 $ SERIAL_L_20: $0033 $ SERIAL_L_21: ;SERIAL.pbas,23 :: if recebe=67 then PORTC.2 = 1 end if $0033 $0820 MOVF _recebe, 0 $0034 $3A43 XORLW 67 $0035 $1D03 BTFSS STATUS, Z $0036 $2838 GOTO SERIAL_L_25 $0037 $ SERIAL_L_24: $0037 $ SERIAL_L_27: $0037 $1507 BSF PORTC, 2 $0038 $ SERIAL_L_28: $0038 $ SERIAL_L_25: $0038 $ SERIAL_L_26: ;SERIAL.pbas,24 :: if recebe=99 then PORTC.2 = 0 end if $0038 $0820 MOVF _recebe, 0 $0039 $3A63 XORLW 99 $003A $1D03 BTFSS STATUS, Z $003B $283D GOTO SERIAL_L_30 $003C $ SERIAL_L_29: $003C $1107 BCF PORTC, 2 $003D $ SERIAL_L_33: $003D $ SERIAL_L_30: $003D $ SERIAL_L_31: ;SERIAL.pbas,25 :: if recebe=68 then PORTC.3 = 1 end if $003D $0820 MOVF _recebe, 0 $003E $3A44 XORLW 68 $003F $1D03 BTFSS STATUS, Z $0040 $2842 GOTO SERIAL_L_35 $0041 $ SERIAL_L_34: $0041 $ SERIAL_L_37: $0041 $1587 BSF PORTC, 3 $0042 $ SERIAL_L_38: $0042 $ SERIAL_L_35: $0042 $ SERIAL_L_36: ;SERIAL.pbas,26 :: if recebe=100 then PORTC.3 = 0 end if $0042 $0820 MOVF _recebe, 0 $0043 $3A64 XORLW 100 $0044 $1D03 BTFSS STATUS, Z $0045 $2847 GOTO SERIAL_L_40 $0046 $ SERIAL_L_39: $0046 $1187 BCF PORTC, 3 $0047 $ SERIAL_L_43: $0047 $ SERIAL_L_40: $0047 $ SERIAL_L_41: ;SERIAL.pbas,27 :: if recebe=69 then PORTC.4 = 1 end if $0047 $0820 MOVF _recebe, 0 $0048 $3A45 XORLW 69 $0049 $1D03 BTFSS STATUS, Z $004A $284C GOTO SERIAL_L_45 $004B $ SERIAL_L_44: $004B $ SERIAL_L_47: $004B $1607 BSF PORTC, 4 $004C $ SERIAL_L_48: $004C $ SERIAL_L_45: $004C $ SERIAL_L_46: ;SERIAL.pbas,28 :: if recebe=101 then PORTC.4 = 0 end if $004C $0820 MOVF _recebe, 0 $004D $3A65 XORLW 101 $004E $1D03 BTFSS STATUS, Z $004F $2851 GOTO SERIAL_L_50 $0050 $ SERIAL_L_49: $0050 $1207 BCF PORTC, 4 $0051 $ SERIAL_L_53: $0051 $ SERIAL_L_50: $0051 $ SERIAL_L_51: ;SERIAL.pbas,29 :: if recebe=70 then PORTC.5 = 1 end if $0051 $0820 MOVF _recebe, 0 $0052 $3A46 XORLW 70 $0053 $1D03 BTFSS STATUS, Z $0054 $2856 GOTO SERIAL_L_55 $0055 $ SERIAL_L_54: $0055 $ SERIAL_L_57: $0055 $1687 BSF PORTC, 5 $0056 $ SERIAL_L_58: $0056 $ SERIAL_L_55: $0056 $ SERIAL_L_56: ;SERIAL.pbas,30 :: if recebe=102 then PORTC.5 = 0 end if $0056 $0820 MOVF _recebe, 0 $0057 $3A66 XORLW 102 $0058 $1D03 BTFSS STATUS, Z $0059 $285B GOTO SERIAL_L_60 $005A $ SERIAL_L_59: $005A $1287 BCF PORTC, 5 $005B $ SERIAL_L_63: $005B $ SERIAL_L_60: $005B $ SERIAL_L_61: ;SERIAL.pbas,31 :: if recebe=71 then PORTC.6 = 1 end if $005B $0820 MOVF _recebe, 0 $005C $3A47 XORLW 71 $005D $1D03 BTFSS STATUS, Z $005E $2860 GOTO SERIAL_L_65 $005F $ SERIAL_L_64: $005F $ SERIAL_L_67: $005F $1707 BSF PORTC, 6 $0060 $ SERIAL_L_68: $0060 $ SERIAL_L_65: $0060 $ SERIAL_L_66: ;SERIAL.pbas,32 :: if recebe=103 then PORTC.6 = 0 end if $0060 $0820 MOVF _recebe, 0 $0061 $3A67 XORLW 103 $0062 $1D03 BTFSS STATUS, Z $0063 $2865 GOTO SERIAL_L_70 $0064 $ SERIAL_L_69: $0064 $1307 BCF PORTC, 6 $0065 $ SERIAL_L_73: $0065 $ SERIAL_L_70: $0065 $ SERIAL_L_71: ;SERIAL.pbas,33 :: if recebe=72 then PORTC.7 = 1 end if $0065 $0820 MOVF _recebe, 0 $0066 $3A48 XORLW 72 $0067 $1D03 BTFSS STATUS, Z $0068 $286A GOTO SERIAL_L_75 $0069 $ SERIAL_L_74: $0069 $ SERIAL_L_77: $0069 $1787 BSF PORTC, 7 $006A $ SERIAL_L_78: $006A $ SERIAL_L_75: $006A $ SERIAL_L_76: ;SERIAL.pbas,34 :: if recebe=104 then PORTC.7 = 0 end if $006A $0820 MOVF _recebe, 0 $006B $3A68 XORLW 104 $006C $1D03 BTFSS STATUS, Z $006D $286F GOTO SERIAL_L_80 $006E $ SERIAL_L_79: $006E $1387 BCF PORTC, 7 $006F $ SERIAL_L_83: $006F $ SERIAL_L_80: $006F $ SERIAL_L_81: ;SERIAL.pbas,36 :: if recebe=84 then PORTC=255 end if $006F $0820 MOVF _recebe, 0 $0070 $3A54 XORLW 84 $0071 $1D03 BTFSS STATUS, Z $0072 $2875 GOTO SERIAL_L_85 $0073 $ SERIAL_L_84: $0073 $30FF MOVLW 255 $0074 $0087 MOVWF PORTC $0075 $ SERIAL_L_85: $0075 $ SERIAL_L_86: ;SERIAL.pbas,37 :: if recebe=48 then PORTC=0 end if $0075 $0820 MOVF _recebe, 0 $0076 $3A30 XORLW 48 $0077 $1D03 BTFSS STATUS, Z $0078 $287A GOTO SERIAL_L_88 $0079 $ SERIAL_L_87: $0079 $0187 CLRF PORTC, 1 $007A $ SERIAL_L_88: $007A $ SERIAL_L_89: ;SERIAL.pbas,39 :: if recebe=82 then $007A $0820 MOVF _recebe, 0 $007B $3A52 XORLW 82 $007C $1D03 BTFSS STATUS, Z $007D $2A2E GOTO SERIAL_L_91 $007E $ SERIAL_L_90: ;SERIAL.pbas,40 :: Usart_Write(13) $007E $300D MOVLW 13 $007F $00B6 MOVWF FARG_USART_Write $0080 $226F CALL _usart_write ;SERIAL.pbas,41 :: Usart_Write_Text("----------------") Usart_Write(13) $0081 $302D MOVLW 45 $0082 $00A1 MOVWF ?main_Local_Text+0 $0083 $302D MOVLW 45 $0084 $00A2 MOVWF ?main_Local_Text+1 $0085 $302D MOVLW 45 $0086 $00A3 MOVWF ?main_Local_Text+2 $0087 $302D MOVLW 45 $0088 $00A4 MOVWF ?main_Local_Text+3 $0089 $302D MOVLW 45 $008A $00A5 MOVWF ?main_Local_Text+4 $008B $302D MOVLW 45 $008C $00A6 MOVWF ?main_Local_Text+5 $008D $302D MOVLW 45 $008E $00A7 MOVWF ?main_Local_Text+6 $008F $302D MOVLW 45 $0090 $00A8 MOVWF ?main_Local_Text+7 $0091 $302D MOVLW 45 $0092 $00A9 MOVWF ?main_Local_Text+8 $0093 $302D MOVLW 45 $0094 $00AA MOVWF ?main_Local_Text+9 $0095 $302D MOVLW 45 $0096 $00AB MOVWF ?main_Local_Text+10 $0097 $302D MOVLW 45 $0098 $00AC MOVWF ?main_Local_Text+11 $0099 $302D MOVLW 45 $009A $00AD MOVWF ?main_Local_Text+12 $009B $302D MOVLW 45 $009C $00AE MOVWF ?main_Local_Text+13 $009D $302D MOVLW 45 $009E $00AF MOVWF ?main_Local_Text+14 $009F $302D MOVLW 45 $00A0 $00B0 MOVWF ?main_Local_Text+15 $00A1 $01B1 CLRF ?main_Local_Text+16 $00A2 $3021 MOVLW ?main_Local_Text $00A3 $00B2 MOVWF FARG_Usart_Write_Text $00A4 $2231 CALL _usart_write_text $00A5 $300D MOVLW 13 $00A6 $00B6 MOVWF FARG_USART_Write $00A7 $226F CALL _usart_write ;SERIAL.pbas,42 :: Usart_Write_Text("RC0: ") $00A8 $3052 MOVLW 82 $00A9 $00A1 MOVWF ?main_Local_Text+0 $00AA $3043 MOVLW 67 $00AB $00A2 MOVWF ?main_Local_Text+1 $00AC $3030 MOVLW 48 $00AD $00A3 MOVWF ?main_Local_Text+2 $00AE $303A MOVLW 58 $00AF $00A4 MOVWF ?main_Local_Text+3 $00B0 $3020 MOVLW 32 $00B1 $00A5 MOVWF ?main_Local_Text+4 $00B2 $01A6 CLRF ?main_Local_Text+5 $00B3 $3021 MOVLW ?main_Local_Text $00B4 $00B2 MOVWF FARG_Usart_Write_Text $00B5 $2231 CALL _usart_write_text ;SERIAL.pbas,43 :: if PORTC.0=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $00B6 $3001 MOVLW 1 $00B7 $0507 ANDWF PORTC, 0 $00B8 $00F1 MOVWF STACK_1 $00B9 $0871 MOVF STACK_1, 0 $00BA $3A01 XORLW 1 $00BB $1D03 BTFSS STATUS, Z $00BC $28C6 GOTO SERIAL_L_94 $00BD $ SERIAL_L_93: $00BD $304F MOVLW 79 $00BE $00A1 MOVWF ?main_Local_Text+0 $00BF $304E MOVLW 78 $00C0 $00A2 MOVWF ?main_Local_Text+1 $00C1 $01A3 CLRF ?main_Local_Text+2 $00C2 $3021 MOVLW ?main_Local_Text $00C3 $00B2 MOVWF FARG_Usart_Write_Text $00C4 $2231 CALL _usart_write_text $00C5 $28D0 GOTO SERIAL_L_95 $00C6 $ SERIAL_L_94: $00C6 $304F MOVLW 79 $00C7 $00A1 MOVWF ?main_Local_Text+0 $00C8 $3046 MOVLW 70 $00C9 $00A2 MOVWF ?main_Local_Text+1 $00CA $3046 MOVLW 70 $00CB $00A3 MOVWF ?main_Local_Text+2 $00CC $01A4 CLRF ?main_Local_Text+3 $00CD $3021 MOVLW ?main_Local_Text $00CE $00B2 MOVWF FARG_Usart_Write_Text $00CF $2231 CALL _usart_write_text $00D0 $ SERIAL_L_95: $00D0 $300D MOVLW 13 $00D1 $00B6 MOVWF FARG_USART_Write $00D2 $226F CALL _usart_write ;SERIAL.pbas,44 :: Usart_Write_Text("RC1: ") $00D3 $3052 MOVLW 82 $00D4 $00A1 MOVWF ?main_Local_Text+0 $00D5 $3043 MOVLW 67 $00D6 $00A2 MOVWF ?main_Local_Text+1 $00D7 $3031 MOVLW 49 $00D8 $00A3 MOVWF ?main_Local_Text+2 $00D9 $303A MOVLW 58 $00DA $00A4 MOVWF ?main_Local_Text+3 $00DB $3020 MOVLW 32 $00DC $00A5 MOVWF ?main_Local_Text+4 $00DD $01A6 CLRF ?main_Local_Text+5 $00DE $3021 MOVLW ?main_Local_Text $00DF $00B2 MOVWF FARG_Usart_Write_Text $00E0 $2231 CALL _usart_write_text ;SERIAL.pbas,45 :: if PORTC.1=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $00E1 $3000 MOVLW 0 $00E2 $1887 BTFSC PORTC, 1 $00E3 $3001 MOVLW 1 $00E4 $00F1 MOVWF STACK_1 $00E5 $0871 MOVF STACK_1, 0 $00E6 $3A01 XORLW 1 $00E7 $1D03 BTFSS STATUS, Z $00E8 $28F2 GOTO SERIAL_L_97 $00E9 $ SERIAL_L_96: $00E9 $304F MOVLW 79 $00EA $00A1 MOVWF ?main_Local_Text+0 $00EB $304E MOVLW 78 $00EC $00A2 MOVWF ?main_Local_Text+1 $00ED $01A3 CLRF ?main_Local_Text+2 $00EE $3021 MOVLW ?main_Local_Text $00EF $00B2 MOVWF FARG_Usart_Write_Text $00F0 $2231 CALL _usart_write_text $00F1 $28FC GOTO SERIAL_L_98 $00F2 $ SERIAL_L_97: $00F2 $304F MOVLW 79 $00F3 $00A1 MOVWF ?main_Local_Text+0 $00F4 $3046 MOVLW 70 $00F5 $00A2 MOVWF ?main_Local_Text+1 $00F6 $3046 MOVLW 70 $00F7 $00A3 MOVWF ?main_Local_Text+2 $00F8 $01A4 CLRF ?main_Local_Text+3 $00F9 $3021 MOVLW ?main_Local_Text $00FA $00B2 MOVWF FARG_Usart_Write_Text $00FB $2231 CALL _usart_write_text $00FC $ SERIAL_L_98: $00FC $300D MOVLW 13 $00FD $00B6 MOVWF FARG_USART_Write $00FE $226F CALL _usart_write ;SERIAL.pbas,46 :: Usart_Write_Text("RC2: ") $00FF $3052 MOVLW 82 $0100 $00A1 MOVWF ?main_Local_Text+0 $0101 $3043 MOVLW 67 $0102 $00A2 MOVWF ?main_Local_Text+1 $0103 $3032 MOVLW 50 $0104 $00A3 MOVWF ?main_Local_Text+2 $0105 $303A MOVLW 58 $0106 $00A4 MOVWF ?main_Local_Text+3 $0107 $3020 MOVLW 32 $0108 $00A5 MOVWF ?main_Local_Text+4 $0109 $01A6 CLRF ?main_Local_Text+5 $010A $3021 MOVLW ?main_Local_Text $010B $00B2 MOVWF FARG_Usart_Write_Text $010C $2231 CALL _usart_write_text ;SERIAL.pbas,47 :: if PORTC.2=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $010D $3000 MOVLW 0 $010E $1907 BTFSC PORTC, 2 $010F $3001 MOVLW 1 $0110 $00F1 MOVWF STACK_1 $0111 $0871 MOVF STACK_1, 0 $0112 $3A01 XORLW 1 $0113 $1D03 BTFSS STATUS, Z $0114 $291E GOTO SERIAL_L_100 $0115 $ SERIAL_L_99: $0115 $304F MOVLW 79 $0116 $00A1 MOVWF ?main_Local_Text+0 $0117 $304E MOVLW 78 $0118 $00A2 MOVWF ?main_Local_Text+1 $0119 $01A3 CLRF ?main_Local_Text+2 $011A $3021 MOVLW ?main_Local_Text $011B $00B2 MOVWF FARG_Usart_Write_Text $011C $2231 CALL _usart_write_text $011D $2928 GOTO SERIAL_L_101 $011E $ SERIAL_L_100: $011E $304F MOVLW 79 $011F $00A1 MOVWF ?main_Local_Text+0 $0120 $3046 MOVLW 70 $0121 $00A2 MOVWF ?main_Local_Text+1 $0122 $3046 MOVLW 70 $0123 $00A3 MOVWF ?main_Local_Text+2 $0124 $01A4 CLRF ?main_Local_Text+3 $0125 $3021 MOVLW ?main_Local_Text $0126 $00B2 MOVWF FARG_Usart_Write_Text $0127 $2231 CALL _usart_write_text $0128 $ SERIAL_L_101: $0128 $300D MOVLW 13 $0129 $00B6 MOVWF FARG_USART_Write $012A $226F CALL _usart_write ;SERIAL.pbas,48 :: Usart_Write_Text("RC3: ") $012B $3052 MOVLW 82 $012C $00A1 MOVWF ?main_Local_Text+0 $012D $3043 MOVLW 67 $012E $00A2 MOVWF ?main_Local_Text+1 $012F $3033 MOVLW 51 $0130 $00A3 MOVWF ?main_Local_Text+2 $0131 $303A MOVLW 58 $0132 $00A4 MOVWF ?main_Local_Text+3 $0133 $3020 MOVLW 32 $0134 $00A5 MOVWF ?main_Local_Text+4 $0135 $01A6 CLRF ?main_Local_Text+5 $0136 $3021 MOVLW ?main_Local_Text $0137 $00B2 MOVWF FARG_Usart_Write_Text $0138 $2231 CALL _usart_write_text ;SERIAL.pbas,49 :: if PORTC.3=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $0139 $3000 MOVLW 0 $013A $1987 BTFSC PORTC, 3 $013B $3001 MOVLW 1 $013C $00F1 MOVWF STACK_1 $013D $0871 MOVF STACK_1, 0 $013E $3A01 XORLW 1 $013F $1D03 BTFSS STATUS, Z $0140 $294A GOTO SERIAL_L_103 $0141 $ SERIAL_L_102: $0141 $304F MOVLW 79 $0142 $00A1 MOVWF ?main_Local_Text+0 $0143 $304E MOVLW 78 $0144 $00A2 MOVWF ?main_Local_Text+1 $0145 $01A3 CLRF ?main_Local_Text+2 $0146 $3021 MOVLW ?main_Local_Text $0147 $00B2 MOVWF FARG_Usart_Write_Text $0148 $2231 CALL _usart_write_text $0149 $2954 GOTO SERIAL_L_104 $014A $ SERIAL_L_103: $014A $304F MOVLW 79 $014B $00A1 MOVWF ?main_Local_Text+0 $014C $3046 MOVLW 70 $014D $00A2 MOVWF ?main_Local_Text+1 $014E $3046 MOVLW 70 $014F $00A3 MOVWF ?main_Local_Text+2 $0150 $01A4 CLRF ?main_Local_Text+3 $0151 $3021 MOVLW ?main_Local_Text $0152 $00B2 MOVWF FARG_Usart_Write_Text $0153 $2231 CALL _usart_write_text $0154 $ SERIAL_L_104: $0154 $300D MOVLW 13 $0155 $00B6 MOVWF FARG_USART_Write $0156 $226F CALL _usart_write ;SERIAL.pbas,50 :: Usart_Write_Text("RC4: ") $0157 $3052 MOVLW 82 $0158 $00A1 MOVWF ?main_Local_Text+0 $0159 $3043 MOVLW 67 $015A $00A2 MOVWF ?main_Local_Text+1 $015B $3034 MOVLW 52 $015C $00A3 MOVWF ?main_Local_Text+2 $015D $303A MOVLW 58 $015E $00A4 MOVWF ?main_Local_Text+3 $015F $3020 MOVLW 32 $0160 $00A5 MOVWF ?main_Local_Text+4 $0161 $01A6 CLRF ?main_Local_Text+5 $0162 $3021 MOVLW ?main_Local_Text $0163 $00B2 MOVWF FARG_Usart_Write_Text $0164 $2231 CALL _usart_write_text ;SERIAL.pbas,51 :: if PORTC.4=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $0165 $3000 MOVLW 0 $0166 $1A07 BTFSC PORTC, 4 $0167 $3001 MOVLW 1 $0168 $00F1 MOVWF STACK_1 $0169 $0871 MOVF STACK_1, 0 $016A $3A01 XORLW 1 $016B $1D03 BTFSS STATUS, Z $016C $2976 GOTO SERIAL_L_106 $016D $ SERIAL_L_105: $016D $304F MOVLW 79 $016E $00A1 MOVWF ?main_Local_Text+0 $016F $304E MOVLW 78 $0170 $00A2 MOVWF ?main_Local_Text+1 $0171 $01A3 CLRF ?main_Local_Text+2 $0172 $3021 MOVLW ?main_Local_Text $0173 $00B2 MOVWF FARG_Usart_Write_Text $0174 $2231 CALL _usart_write_text $0175 $2980 GOTO SERIAL_L_107 $0176 $ SERIAL_L_106: $0176 $304F MOVLW 79 $0177 $00A1 MOVWF ?main_Local_Text+0 $0178 $3046 MOVLW 70 $0179 $00A2 MOVWF ?main_Local_Text+1 $017A $3046 MOVLW 70 $017B $00A3 MOVWF ?main_Local_Text+2 $017C $01A4 CLRF ?main_Local_Text+3 $017D $3021 MOVLW ?main_Local_Text $017E $00B2 MOVWF FARG_Usart_Write_Text $017F $2231 CALL _usart_write_text $0180 $ SERIAL_L_107: $0180 $300D MOVLW 13 $0181 $00B6 MOVWF FARG_USART_Write $0182 $226F CALL _usart_write ;SERIAL.pbas,52 :: Usart_Write_Text("RC5: ") $0183 $3052 MOVLW 82 $0184 $00A1 MOVWF ?main_Local_Text+0 $0185 $3043 MOVLW 67 $0186 $00A2 MOVWF ?main_Local_Text+1 $0187 $3035 MOVLW 53 $0188 $00A3 MOVWF ?main_Local_Text+2 $0189 $303A MOVLW 58 $018A $00A4 MOVWF ?main_Local_Text+3 $018B $3020 MOVLW 32 $018C $00A5 MOVWF ?main_Local_Text+4 $018D $01A6 CLRF ?main_Local_Text+5 $018E $3021 MOVLW ?main_Local_Text $018F $00B2 MOVWF FARG_Usart_Write_Text $0190 $2231 CALL _usart_write_text ;SERIAL.pbas,53 :: if PORTC.5=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $0191 $3000 MOVLW 0 $0192 $1A87 BTFSC PORTC, 5 $0193 $3001 MOVLW 1 $0194 $00F1 MOVWF STACK_1 $0195 $0871 MOVF STACK_1, 0 $0196 $3A01 XORLW 1 $0197 $1D03 BTFSS STATUS, Z $0198 $29A2 GOTO SERIAL_L_109 $0199 $ SERIAL_L_108: $0199 $304F MOVLW 79 $019A $00A1 MOVWF ?main_Local_Text+0 $019B $304E MOVLW 78 $019C $00A2 MOVWF ?main_Local_Text+1 $019D $01A3 CLRF ?main_Local_Text+2 $019E $3021 MOVLW ?main_Local_Text $019F $00B2 MOVWF FARG_Usart_Write_Text $01A0 $2231 CALL _usart_write_text $01A1 $29AC GOTO SERIAL_L_110 $01A2 $ SERIAL_L_109: $01A2 $304F MOVLW 79 $01A3 $00A1 MOVWF ?main_Local_Text+0 $01A4 $3046 MOVLW 70 $01A5 $00A2 MOVWF ?main_Local_Text+1 $01A6 $3046 MOVLW 70 $01A7 $00A3 MOVWF ?main_Local_Text+2 $01A8 $01A4 CLRF ?main_Local_Text+3 $01A9 $3021 MOVLW ?main_Local_Text $01AA $00B2 MOVWF FARG_Usart_Write_Text $01AB $2231 CALL _usart_write_text $01AC $ SERIAL_L_110: $01AC $300D MOVLW 13 $01AD $00B6 MOVWF FARG_USART_Write $01AE $226F CALL _usart_write ;SERIAL.pbas,54 :: Usart_Write_Text("RC6: ") $01AF $3052 MOVLW 82 $01B0 $00A1 MOVWF ?main_Local_Text+0 $01B1 $3043 MOVLW 67 $01B2 $00A2 MOVWF ?main_Local_Text+1 $01B3 $3036 MOVLW 54 $01B4 $00A3 MOVWF ?main_Local_Text+2 $01B5 $303A MOVLW 58 $01B6 $00A4 MOVWF ?main_Local_Text+3 $01B7 $3020 MOVLW 32 $01B8 $00A5 MOVWF ?main_Local_Text+4 $01B9 $01A6 CLRF ?main_Local_Text+5 $01BA $3021 MOVLW ?main_Local_Text $01BB $00B2 MOVWF FARG_Usart_Write_Text $01BC $2231 CALL _usart_write_text ;SERIAL.pbas,55 :: if PORTC.6=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) $01BD $3000 MOVLW 0 $01BE $1B07 BTFSC PORTC, 6 $01BF $3001 MOVLW 1 $01C0 $00F1 MOVWF STACK_1 $01C1 $0871 MOVF STACK_1, 0 $01C2 $3A01 XORLW 1 $01C3 $1D03 BTFSS STATUS, Z $01C4 $29CE GOTO SERIAL_L_112 $01C5 $ SERIAL_L_111: $01C5 $304F MOVLW 79 $01C6 $00A1 MOVWF ?main_Local_Text+0 $01C7 $304E MOVLW 78 $01C8 $00A2 MOVWF ?main_Local_Text+1 $01C9 $01A3 CLRF ?main_Local_Text+2 $01CA $3021 MOVLW ?main_Local_Text $01CB $00B2 MOVWF FARG_Usart_Write_Text $01CC $2231 CALL _usart_write_text $01CD $29D8 GOTO SERIAL_L_113 $01CE $ SERIAL_L_112: $01CE $304F MOVLW 79 $01CF $00A1 MOVWF ?main_Local_Text+0 $01D0 $3046 MOVLW 70 $01D1 $00A2 MOVWF ?main_Local_Text+1 $01D2 $3046 MOVLW 70 $01D3 $00A3 MOVWF ?main_Local_Text+2 $01D4 $01A4 CLRF ?main_Local_Text+3 $01D5 $3021 MOVLW ?main_Local_Text $01D6 $00B2 MOVWF FARG_Usart_Write_Text $01D7 $2231 CALL _usart_write_text $01D8 $ SERIAL_L_113: $01D8 $300D MOVLW 13 $01D9 $00B6 MOVWF FARG_USART_Write $01DA $226F CALL _usart_write ;SERIAL.pbas,56 :: Usart_Write_Text("RC7: ") $01DB $3052 MOVLW 82 $01DC $00A1 MOVWF ?main_Local_Text+0 $01DD $3043 MOVLW 67 $01DE $00A2 MOVWF ?main_Local_Text+1 $01DF $3037 MOVLW 55 $01E0 $00A3 MOVWF ?main_Local_Text+2 $01E1 $303A MOVLW 58 $01E2 $00A4 MOVWF ?main_Local_Text+3 $01E3 $3020 MOVLW 32 $01E4 $00A5 MOVWF ?main_Local_Text+4 $01E5 $01A6 CLRF ?main_Local_Text+5 $01E6 $3021 MOVLW ?main_Local_Text $01E7 $00B2 MOVWF FARG_Usart_Write_Text $01E8 $2231 CALL _usart_write_text ;SERIAL.pbas,57 :: if PORTC.7=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if $01E9 $3000 MOVLW 0 $01EA $1B87 BTFSC PORTC, 7 $01EB $3001 MOVLW 1 $01EC $00F1 MOVWF STACK_1 $01ED $0871 MOVF STACK_1, 0 $01EE $3A01 XORLW 1 $01EF $1D03 BTFSS STATUS, Z $01F0 $29FA GOTO SERIAL_L_115 $01F1 $ SERIAL_L_114: $01F1 $304F MOVLW 79 $01F2 $00A1 MOVWF ?main_Local_Text+0 $01F3 $304E MOVLW 78 $01F4 $00A2 MOVWF ?main_Local_Text+1 $01F5 $01A3 CLRF ?main_Local_Text+2 $01F6 $3021 MOVLW ?main_Local_Text $01F7 $00B2 MOVWF FARG_Usart_Write_Text $01F8 $2231 CALL _usart_write_text $01F9 $2A04 GOTO SERIAL_L_116 $01FA $ SERIAL_L_115: $01FA $304F MOVLW 79 $01FB $00A1 MOVWF ?main_Local_Text+0 $01FC $3046 MOVLW 70 $01FD $00A2 MOVWF ?main_Local_Text+1 $01FE $3046 MOVLW 70 $01FF $00A3 MOVWF ?main_Local_Text+2 $0200 $01A4 CLRF ?main_Local_Text+3 $0201 $3021 MOVLW ?main_Local_Text $0202 $00B2 MOVWF FARG_Usart_Write_Text $0203 $2231 CALL _usart_write_text $0204 $ SERIAL_L_116: ;SERIAL.pbas,58 :: Usart_Write(13) $0204 $300D MOVLW 13 $0205 $00B6 MOVWF FARG_USART_Write $0206 $226F CALL _usart_write ;SERIAL.pbas,59 :: Usart_Write_Text("----------------") Usart_Write(13) $0207 $302D MOVLW 45 $0208 $00A1 MOVWF ?main_Local_Text+0 $0209 $302D MOVLW 45 $020A $00A2 MOVWF ?main_Local_Text+1 $020B $302D MOVLW 45 $020C $00A3 MOVWF ?main_Local_Text+2 $020D $302D MOVLW 45 $020E $00A4 MOVWF ?main_Local_Text+3 $020F $302D MOVLW 45 $0210 $00A5 MOVWF ?main_Local_Text+4 $0211 $302D MOVLW 45 $0212 $00A6 MOVWF ?main_Local_Text+5 $0213 $302D MOVLW 45 $0214 $00A7 MOVWF ?main_Local_Text+6 $0215 $302D MOVLW 45 $0216 $00A8 MOVWF ?main_Local_Text+7 $0217 $302D MOVLW 45 $0218 $00A9 MOVWF ?main_Local_Text+8 $0219 $302D MOVLW 45 $021A $00AA MOVWF ?main_Local_Text+9 $021B $302D MOVLW 45 $021C $00AB MOVWF ?main_Local_Text+10 $021D $302D MOVLW 45 $021E $00AC MOVWF ?main_Local_Text+11 $021F $302D MOVLW 45 $0220 $00AD MOVWF ?main_Local_Text+12 $0221 $302D MOVLW 45 $0222 $00AE MOVWF ?main_Local_Text+13 $0223 $302D MOVLW 45 $0224 $00AF MOVWF ?main_Local_Text+14 $0225 $302D MOVLW 45 $0226 $00B0 MOVWF ?main_Local_Text+15 $0227 $01B1 CLRF ?main_Local_Text+16 $0228 $3021 MOVLW ?main_Local_Text $0229 $00B2 MOVWF FARG_Usart_Write_Text $022A $2231 CALL _usart_write_text $022B $300D MOVLW 13 $022C $00B6 MOVWF FARG_USART_Write $022D $226F CALL _usart_write $022E $ SERIAL_L_91: ;SERIAL.pbas,60 :: end if $022E $ SERIAL_L_92: ;SERIAL.pbas,61 :: recebe=0 $022E $01A0 CLRF _recebe, 1 $022F $ SERIAL_L_2: ;SERIAL.pbas,62 :: end if $022F $ SERIAL_L_3: ;SERIAL.pbas,64 :: goto executa $022F $2817 GOTO _main_executa $0230 $2A30 GOTO $ //** Procedures locations ** //ADDRESS PROCEDURE //---------------------------------------------- $0004 main $0231 Usart_Write_Text $0247 USART_Init $025C USART_Read $026F USART_Write $0281 USART_Data_Ready //** Labels locations ** //ADDRESS LABEL //---------------------------------------------- $0004 _main: $0004 _main_main: $0017 _main_executa: $001C SERIAL_L_1: $0023 SERIAL_L_4: $0023 SERIAL_L_7: $0024 SERIAL_L_5: $0024 SERIAL_L_6: $0024 SERIAL_L_8: $0028 SERIAL_L_9: $0029 SERIAL_L_10: $0029 SERIAL_L_11: $0029 SERIAL_L_13: $002D SERIAL_L_14: $002D SERIAL_L_17: $002E SERIAL_L_15: $002E SERIAL_L_16: $002E SERIAL_L_18: $0032 SERIAL_L_19: $0033 SERIAL_L_20: $0033 SERIAL_L_21: $0033 SERIAL_L_23: $0037 SERIAL_L_24: $0037 SERIAL_L_27: $0038 SERIAL_L_25: $0038 SERIAL_L_26: $0038 SERIAL_L_28: $003C SERIAL_L_29: $003D SERIAL_L_30: $003D SERIAL_L_31: $003D SERIAL_L_33: $0041 SERIAL_L_34: $0041 SERIAL_L_37: $0042 SERIAL_L_35: $0042 SERIAL_L_36: $0042 SERIAL_L_38: $0046 SERIAL_L_39: $0047 SERIAL_L_40: $0047 SERIAL_L_41: $0047 SERIAL_L_43: $004B SERIAL_L_44: $004B SERIAL_L_47: $004C SERIAL_L_45: $004C SERIAL_L_46: $004C SERIAL_L_48: $0050 SERIAL_L_49: $0051 SERIAL_L_50: $0051 SERIAL_L_51: $0051 SERIAL_L_53: $0055 SERIAL_L_54: $0055 SERIAL_L_57: $0056 SERIAL_L_55: $0056 SERIAL_L_56: $0056 SERIAL_L_58: $005A SERIAL_L_59: $005B SERIAL_L_60: $005B SERIAL_L_61: $005B SERIAL_L_63: $005F SERIAL_L_64: $005F SERIAL_L_67: $0060 SERIAL_L_65: $0060 SERIAL_L_66: $0060 SERIAL_L_68: $0064 SERIAL_L_69: $0065 SERIAL_L_70: $0065 SERIAL_L_71: $0065 SERIAL_L_73: $0069 SERIAL_L_74: $0069 SERIAL_L_77: $006A SERIAL_L_75: $006A SERIAL_L_76: $006A SERIAL_L_78: $006E SERIAL_L_79: $006F SERIAL_L_80: $006F SERIAL_L_81: $006F SERIAL_L_83: $0073 SERIAL_L_84: $0075 SERIAL_L_85: $0075 SERIAL_L_86: $0079 SERIAL_L_87: $007A SERIAL_L_88: $007A SERIAL_L_89: $007E SERIAL_L_90: $00BD SERIAL_L_93: $00C6 SERIAL_L_94: $00D0 SERIAL_L_95: $00E9 SERIAL_L_96: $00F2 SERIAL_L_97: $00FC SERIAL_L_98: $0115 SERIAL_L_99: $011E SERIAL_L_100: $0128 SERIAL_L_101: $0141 SERIAL_L_102: $014A SERIAL_L_103: $0154 SERIAL_L_104: $016D SERIAL_L_105: $0176 SERIAL_L_106: $0180 SERIAL_L_107: $0199 SERIAL_L_108: $01A2 SERIAL_L_109: $01AC SERIAL_L_110: $01C5 SERIAL_L_111: $01CE SERIAL_L_112: $01D8 SERIAL_L_113: $01F1 SERIAL_L_114: $01FA SERIAL_L_115: $0204 SERIAL_L_116: $022E SERIAL_L_91: $022E SERIAL_L_92: $022F SERIAL_L_2: $022F SERIAL_L_3: $0231 _usart_write_text: $0238 USART_b75_L_47: $0246 USART_b75_L_45: $0246 USART_b75_L_48: $0247 _usart_init: $0247 USART_b75_L_1: $024A USART_b75_L_2: $024D USART_b75_L_3: $024F USART_b75_L_4: $024F USART_b75_L_5: $0250 USART_b75_L_6: $0250 USART_b75_L_8: $025B USART_b75_L_0: $025B USART_b75_L_9: $025C _usart_read: $026A USART_b75_L_20: $026B USART_b75_L_24: $026B USART_b75_L_25: $026C USART_b75_L_19: $026C USART_b75_L_21: $026C USART_b75_L_22: $026C USART_b75_L_26: $026F _usart_write: $026F USART_b75_L_14: $027D USART_b75_L_15: $0280 USART_b75_L_12: $0281 _usart_data_ready: $028B USART_b75_L_18: //** Variables locations ** //ADDRESS VARIABLE //---------------------------------------------- $0000 INDF $0002 PCL $0003 STATUS $0004 FSR $0007 PORTC $000A PCLATH $000B INTCON $000C PIR1 $0018 RCSTA $0019 TXREG $001A RCREG $0020 _recebe $0021 ?main_Local_Text $0032 _usart_data_ready_local_result $0032 _usart_read_local_result $0032 FARG_USART_Init $0032 FARG_Usart_Write_Text $0033 _usart_write_text_local_i $0034 _usart_write_text_local_data $0036 FARG_USART_Write $0070 STACK_0 $0071 STACK_1 $0072 STACK_2 $0073 STACK_3 $0074 STACK_4 $0075 STACK_5 $0076 STACK_6 $0077 STACK_7 $0078 STACK_8 $0079 STACK_9 $007A STACK_10 $007B STACK_11 $007C STACK_12 $007D STACK_13 $007E STACK_14 $007F STACK_15 $0085 TRISA $0086 TRISB $0087 TRISC $0098 TXSTA $0099 SPBRG $011E ANSEL $011F ANSELH Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.mcl Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.pbas program SERIAL dim recebe as byte main: TRISA=%11111111 TRISB=%01111111 TRISC=%00000000 INTCON=%00000000 ANSEL=%00000000 ANSELH=%00000000 PORTC=0 Usart_Init(9600) executa: if Usart_Data_Ready() > 0 then recebe=Usart_Read() if recebe=65 then PORTC.0 = 1 end if if recebe=97 then PORTC.0 = 0 end if if recebe=66 then PORTC.1 = 1 end if if recebe=98 then PORTC.1 = 0 end if if recebe=67 then PORTC.2 = 1 end if if recebe=99 then PORTC.2 = 0 end if if recebe=68 then PORTC.3 = 1 end if if recebe=100 then PORTC.3 = 0 end if if recebe=69 then PORTC.4 = 1 end if if recebe=101 then PORTC.4 = 0 end if if recebe=70 then PORTC.5 = 1 end if if recebe=102 then PORTC.5 = 0 end if if recebe=71 then PORTC.6 = 1 end if if recebe=103 then PORTC.6 = 0 end if if recebe=72 then PORTC.7 = 1 end if if recebe=104 then PORTC.7 = 0 end if if recebe=84 then PORTC=255 end if if recebe=48 then PORTC=0 end if if recebe=82 then Usart_Write(13) Usart_Write_Text("----------------") Usart_Write(13) Usart_Write_Text("RC0: ") if PORTC.0=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("RC1: ") if PORTC.1=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("RC2: ") if PORTC.2=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("RC3: ") if PORTC.3=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("RC4: ") if PORTC.4=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("RC5: ") if PORTC.5=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("RC6: ") if PORTC.6=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("RC7: ") if PORTC.7=1 then Usart_Write_Text("ON") Else Usart_Write_Text("OFF") end if Usart_Write(13) Usart_Write_Text("----------------") Usart_Write(13) end if recebe=0 end if goto executa end. Exercícios 2021-10-20 - Comunicacao Serial/SERIAL.pbp [DeviceName] Value=P16F690 [DeviceClock] Value=4 [MainUnit] Value=SERIAL.pbas [DeviceFlags] Count=10 Value0=_FCMEN_OFF = $37FF Value1=_IESO_OFF = $3BFF Value2=_BOR_OFF = $3CFF Value3=_CPD_OFF = $3FFF Value4=_CP_OFF = $3FFF Value5=_MCLRE_OFF = $3FDF Value6=_PWRTE_ON = $3FEF Value7=_WDT_OFF = $3FF7 Value8=_INTRC_OSC_NOCLKOUT = $3FFC Value9=_EXTRC_OSC_NOCLKOUT = $3FFE [BuildSimDebug] Build=0 SimDebug=0 [ProjectFiles] Count=0 [OtherFiles] Count=0 [TabIndex] Value=0 [SearchPath] Count=4 Value0=C:\Program Files (x86)\Mikroelektronika\mikroBasic\Defs\ Value1=C:\Program Files (x86)\Mikroelektronika\mikroBasic\Uses\p16\ Value2=D:\Salesiano 2020\UniSalesiano\Semestre 2\SAD - Eng Meca 8T - Sistemas de Aquisicao de Dados\Exercícios 2020-10-20 - Comunicacao Serial\ Value3=D:\Salesiano 2020\UniSalesiano\Semestre 2\SAD - Eng Meca 8T - Sistemas de Aquisicao de Dados\Aula 2020-10-20 - Comunicacao Serial\ [EEPROMinfo] isused=0 Exercícios 2021-10-20 - Comunicacao Serial/SERIAL_callertable.txt main USART_Init Usart_Write_Text USART_Write USART_Write USART_Read USART_Data_Ready Exercícios 2021-10-20 - Comunicacao Serial/Tabela ASCII com códigos de controle e teclado.pdf Exercícios 2021-10-20 - Comunicacao Serial/Tabela ASCII.pdf Tabela ASCII – Completa Fonte: http://www.spectrum.eti.br/news/tabela_ascii_completa A Tabela ASCII (American Standard Code for Information Interchange) não é nenhuma novidade para quem já trabalha com informática, principalmente com desenvolvimento de software. A minha intenção em publicar esta tabela é adicionar várias informações em uma única tabela, já que a maioria disponível na internet apresenta poucos dados. Esta tabela é a junção da tabela ASCII Normal (32 a 127), tabela dos Caracteres de Controle (0 a 31) e a tabela ASCII Estendida (128 a 255). Decimal Binário Hex Referência 0 00000000 00 Null - NUL 1 00000001 01 Start of Heading - SOH 2 00000010 02 Start of Text - STX 3 00000011 03 End of Text - ETX 4 00000100 04 End of Transmission - EOT 5 00000101 05 Enquiry - ENQ 6 00000110 06 Acknowledge - ACK 7 00000111 07 Bell, rings terminal bell - BEL 8 00001000 08 BackSpace - BS 9 00001001 09 Horizontal Tab - HT 10 00001010 0A Line Feed - LF 11 00001011 0B Vertical Tab - VT 12 00001100 0C Form Feed - FF 13 00001101 0D Enter - CR 14 00001110 0E Shift-Out - SO 15 00001111 0F Shift-In - SI 16 00010000 10 Data Link Escape - DLE 17 00010001 11 Device Control 1 - D1 18 00010010 12 Device Control 2 - D2 19 00010011 13 Device Control 3 - D3 20 00010100 14 Device Control 4 - D4 21 00010101 15 Negative Acknowledge - NAK 22 00010110 16 Synchronous idle - SYN 23 00010111 17 End Transmission Block - ETB 24 00011000 18 Cancel line - CAN 25 00011001 19 End of Medium - EM 26 00011010 1A Substitute - SUB 27 00011011 1B Escape - ESC 28 00011100 1C File Separator - FS 29 00011101 1D Group Separator - GS 30 00011110 1E Record Separator - RS 31 00011111 1F Unit Separator - US 32 00100000 20 Space - SPC 33 00100001 21 ! 34 00100010 22 " 35 00100011 23 # 36 00100100 24 $ 37 00100101 25 % 38 00100110 26 & 39 00100111 27 ' 40 00101000 28 ( 41 00101001 29 ) 42 00101010 2A * 43 00101011 2B + 44 00101100 2C , 45 00101101 2D - 46 00101110 2E . 47 00101111 2F / 48 00110000 30 0 49 00110001 31 1 50 00110010 32 2 51 00110011 33 3 52 00110100 34 4 53 00110101 35 5 54 00110110 36 6 55 00110111 37 7 56 00111000 38 8 57 00111001 39 9 58 00111010 3A : 59 00111011 3B ; 60 00111100 3C < 61 00111101 3D = 62 00111110 3E > 63 00111111 3F ? 64 01000000 40 @ 65 01000001 41 A 66 01000010 42 B 67 01000011 43 C 68 01000100 44 D 69 01000101 45 E 70 01000110 46 F 71 01000111 47 G 72 01001000 48 H 73 01001001 49 I 74 01001010 4A J 75 01001011 4B K 76 01001100 4C L 77 01001101 4D M 78 01001110 4E N 79 01001111 4F O 80 01010000 50 P 81 01010001 51 Q 82 01010010 52 R 83 01010011 53 S 84 01010100 54 T 85 01010101 55 U 86 01010110 56 V 87 01010111 57 W 88 01011000 58 X 89 01011001 59 Y 90 01011010 5A Z 91 01011011 5B [ 92 01011100 5C \ 93 01011101 5D ] 94 01011110 5E ^ 95 01011111 5F _ 96 01100000 60 ` 97 01100001 61 a 98 01100010 62 b 99 01100011 63 c 100 01100100 64 d 101 01100101 65 e 102 01100110 66 f 103 01100111 67 g 104 01101000 68 h 105 01101001 69 i 106 01101010 6A j 107 01101011 6B k 108 01101100 6C l 109 01101101 6D m 110 01101110 6E n 111 01101111 6F o 112 01110000 70 p 113 01110001 71 q 114 01110010 72 r 115 01110011 73 s 116 01110100 74 t 117 01110101 75 u 118 01110110 76 v 119 01110111 77 w 120 01111000 78 x 121 01111001 79 y 122 01111010 7A z 123 01111011 7B { 124 01111100 7C | 125 01111101 7D } 126 01111110 7E ~ 127 01111111 7F Delete 128 10000000 80 Ç 129 10000001 81 ü 130 10000010 82 é 131 10000011 83 â 132 10000100 84 ä 133 10000101 85 à 134 10000110 86 å 135 10000111 87 ç 136 10001000 88 ê 137 10001001 89 ë 138 10001010 8A è 139 10001011 8B ï 140 10001100 8C î 141 10001101 8D ì 142 10001110 8E Ä 143 10001111 8F Å 144 10010000 90 É 145 10010001 91 æ 146 10010010 92 Æ 147 10010011 93 ô 148 10010100 94 ö 149 10010101 95 ò 150 10010110 96 û 151 10010111 97 ù 152 10011000 98 ÿ 153 10011001 99 Ö 154 10011010 9A Ü 155 10011011 9B ø 156 10011100 9C £ 157 10011101 9D Ø 158 10011110 9E × 159 10011111 9F ƒ 160 10100000 A0 á 161 10100001 A1 ù 162 10100010 A2 ó 163 10100011 A3 ú 164 10100100 A4 ñ 165 10100101 A5 Ñ 166 10100110 A6 ª 167 10100111 A7 º 168 10101000 A8 ¿ 169 10101001 A9 ® 170 10101010 AA ¬ 171 10101011 AB ½ 172 10101100 AC ¼ 173 10101101 AD ¡ 174 10101110 AE « 175 10101111 AF » 176 10110000 B0 ░ 177 10110001 B1 ▒ 178 10110010 B2 ▓ 179 10110011 B3 │ 180 10110100 B4 ┤ 181 10110101 B5 Á 182 10110110 B6 Â 183 10110111 B7 À 184 10111000 B8 © 185 10111001 B9 ╣ 186 10111010 BA ║ 187 10111011 BB ╗ 188 10111100 BC ╝ 189 10111101 BD ¢ 190 10111110 BE ¥ 191 10111111 BF ┐ 192 11000000 C0 └ 193 11000001 C1 ┴ 194 11000010 C2 ┬ 195 11000011 C3 ├ 196 11000100 C4 ─ 197 11000101 C5 ┼ 198 11000110 C6 ã 199 11000111 C7 Ã 200 11001000 C8 ╚ 201 11001001 C9 ╔ 202 11001010 CA ╩ 203 11001011 CB ╦ 204 11001100 CC ╠ 205 11001101 CD ═ 206 11001110 CE ╬ 207 11001111 CF ¤ 208 11010000 D0 ð 209 11010001 D1 Ð 210 11010010 D2 Ê 211 11010011 D3 Ë 212 11010100 D4 È 213 11010101 D5 ı 214 11010110 D6 Í 215 11010111 D7 Î 216 11011000 D8 Ï 217 11011001 D9 ┘ 218 11011010 DA ┌ 219 11011011 DB █ 220 11011100 DC ▄ 221 11011101 DD ¦ 222 11011110 DE Ì 223 11011111 DF ▀ 224 11100000 E0 Ó 225 11100001 E1 ß 226 11100010 E2 Ô 227 11100011 E3 Ò 228 11100100 E4 õ 229 11100101 E5 Õ 230 11100110 E6 µ 231 11100111 E7 þ 232 11101000 E8 Þ 233 11101001 E9 Ú 234 11101010 EA Û 235 11101011 EB Ù 236 11101100 EC ý 237 11101101 ED Ý 238 11101110 EE ¯ 239 11101111 EF ´ 240 11110000 F0 241 11110001 F1 ± 242 11110010 F2 ‗ 243 11110011 F3 ¾ 244 11110100 F4 ¶ 245 11110101 F5 § 246 11110110 F6 ÷ 247 11110111 F7 ¸ 248 11111000 F8 ° 249 11111001 F9 ¨ 250 11111010 FA · 251 11111011 FB ¹ 252 11111100 FC ³ 253 11111101 FD ² 254 11111110 FE ■ 255 11111111 FF Tabela ASCII – Completa
Compartilhar