Prévia do material em texto
<p>Sistemas Microprocessados</p><p>869 ; TC72_LSB = TC72 LSB Temperature</p><p>870 ; TC72_CTRL = TC72 Control Register</p><p>871 ;</p><p>872 ; Initialization:</p><p>873 ; None</p><p>874 ;</p><p>875 ; Output:</p><p>876 ; TC72_MSB and TC72_LSB contain the 10-bit Temperature value</p><p>877 ;</p><p>878 ;----------------------------------------------------------------------</p><p>879</p><p>880 READ_TC72_TEMP</p><p>881</p><p>882 movlw D’8’ ; set bit counter to 8</p><p>883 movwf BIT_CNTR</p><p>884</p><p>885 bcf SCK ; set SCK low</p><p>886 bsf TC72_CE ; enable TC72 --> chip select high</p><p>887</p><p>888 ; send address byte 0x02 to TC72 (MSB Temp)</p><p>889</p><p>890 movlw 0x02 ; address byte 0x02 (MSB Temperature)</p><p>891 movwf TC72_ADX</p><p>892</p><p>893 READ_TC72_TEMP_LOOP_1</p><p>894</p><p>895 rlf TC72_ADX, F ; rotate left into Carry bit</p><p>896</p><p>897 btfsc STATUS, C ; if Carry bit is set</p><p>898 bsf SDO ; SDO --> high</p><p>899 btfss STATUS, C ; if Carry bit is clear</p><p>900 bcf SDO ; SDO --> low</p><p>901</p><p>902 bsf SCK ; SCK rising edge (shift edge)</p><p>903 bcf SCK ; SCK falling edge (clock edge)</p><p>904</p><p>905 decfsz BIT_CNTR, F ; all 8 bits sent?</p><p>906 goto READ_TC72_TEMP_LOOP_1</p><p>907</p><p>908 ; read 24 bits from TC72 (MSB Temperature, LSB Temperature, Control Register)</p><p>909</p><p>910 movlw D’24’ ; set bit counter to 24</p><p>911 movwf BIT_CNTR</p><p>912</p><p>913 READ_TC72_TEMP_LOOP</p><p>914</p><p>915 bsf SCK ; SCK rising edge</p><p>916</p><p>917 btfsc SDI ; read bit, if bit is set</p><p>918 bsf STATUS, C ; set carry bit</p><p>919 btfss SDI ; if bit is clear</p><p>920 bcf STATUS, C ; clear carry bit</p><p>921</p><p>922 bcf SCK ; set SCK low</p><p>923</p><p>924 rlf TC72_CTRL, F ; rotate carry bit left</p><p>925 rlf TC72_LSB, F</p><p>926 rlf TC72_MSB, F</p><p>927</p><p>928 decfsz BIT_CNTR, F ; is reading the Temperature Register complete?</p><p>929 goto READ_TC72_TEMP_LOOP</p><p>930</p><p>931 bcf TC72_CE ; disable TC77 --> chip select low</p><p>932</p><p>933 return</p><p>934</p><p>935</p><p>Julho de 2022 19</p>