📄 term.asm
字号:
movlw 0x0F
andwf TRISB,W
movwf TRISB ; Set Port for output
BCF STATUS, RP0 ; Select Register page 0
bsf PORTA, E ; Clock the initalize command to LCD module
bcf PORTA, E
call Delay4100 ; Delay for at least 4.1ms before continuing
bsf PORTA, E ; Clock the initalize command to LCD module
bcf PORTA, E
call Delay100 ; delay for at least 100usec before continuing
bsf PORTA, E ; Clock the initalize command to LCD module
bcf PORTA, E
call Wait_Busy ; From here on, the Busy Bit will be valid.
call Delay15000
movlw 0x0f
andwf PORTB,F ; Clear the upper nibble
movlw 0x020 ; Command for 4-bit interface high nibble
; lower 4 bits are don't care at this point)
iorwf PORTB,F ; Send data to LCD
bsf PORTA, E ; Clock the initalize command to LCD module
bcf PORTA, E
movlw FUNCTION_SET
call Send_Cmd
movlw DISP_OFF
call Send_Cmd
movlw DISP_ON
call Send_Cmd
movlw ENTRY_INC
call Send_Cmd
return
;--------------------------------------------------------------------------------------------
; Delays
delay_loop:
nop
decfsz r1,f
goto delay_loop
decfsz r2,f
goto delay_loop
decfsz r3,f
goto delay_loop
decfsz r4,f
goto delay_loop
return
Delay100: ; delay 100us
movlw d'22'
movwf r1
movlw 1
movwf r2
movlw 1
movwf r3
movlw 1
movwf r4
goto delay_loop
Delay4100: ; delay 4.1ms
movlw d'252'
movwf r1
movlw 4
movwf r2
movlw 1
movwf r3
movlw 1
movwf r4
goto delay_loop
Delay15000: ; delay 15ms
movlw d'156'
movwf r1
movlw 15
movwf r2
movlw 1
movwf r3
movlw 1
movwf r4
goto delay_loop
Delay500ms
movlw d'255'
movwf r1
movlw d'217'
movwf r2
movlw 1
movwf r3
movlw 1
movwf r4
goto delay_loop
DelayT: ; delay for thermistor
movlw 1
movwf r2
movlw 1
movwf r3
movlw 1
movwf r4
goto delay_loop
DelayTInit: ; Initial delay for thermistor
movlw d'90'
movwf r1
movlw 2
movwf r2
movlw 1
movwf r3
movlw 1
movwf r4
goto delay_loop
;--------------------------------------------------------------------------------------------
; Check if W=0xFF. If so, W gets decremented to 0xFE
CheckFF:
movwf Char
incfsz Char,f
return
retlw 0xFE
;--------------------------------------------------------------------------------------------
; This function displays variable Value in raw binary format, eg 10010010
DispBin:
movlw 0x08
movwf Licznik
goon:
rlf Value,f
btfsc STATUS,C
movlw '1'
btfss STATUS,C
movlw '0'
call Send_Char
decfsz Licznik,f
goto goon
return
;--------------------------------------------------------------------------------------------
; These are the digits to be displayed given a temperature. Format is:
; ----------------------------------------------------------------------
; bit # | 7 | 6 | 5 4 | 3 2 1 0 |
; ----------------------------------------------------------------------
;description | sign | fract |tens (0,1,2,3)| ones (0,1,2,3,4,5,6,7,8,9) |
; ----------------------------------------------------------------------
;
; Warning: W cannot equal FF. If so, the program will loop infinitly
org 0x0300
GetTemp:
addwf PCL, f
; return number real temp displayed temp
;-------------------------------------------------------------------------------------------
retlw 0x79 ;0 39.750000 39.5
retlw 0x39 ;1 39.125000 39
retlw 0x78 ;2 38.500000 38.5
retlw 0x38 ;3 37.875000 38
retlw 0x37 ;4 37.250000 37
retlw 0x76 ;5 36.625000 36.5
retlw 0x36 ;6 36.000000 36
retlw 0x75 ;7 35.375000 35.5
retlw 0x74 ;8 34.750000 34.5
retlw 0x34 ;9 34.125000 34
retlw 0x73 ;10 33.500000 33.5
retlw 0x33 ;11 33.000000 33
retlw 0x72 ;12 32.500000 32.5
retlw 0x32 ;13 32.000000 32
retlw 0x71 ;14 31.500000 31.5
retlw 0x31 ;15 31.000000 31
retlw 0x70 ;16 30.500000 30.5
retlw 0x30 ;17 30.000000 30
retlw 0x69 ;18 29.500000 29.5
retlw 0x29 ;19 29.000000 29
retlw 0x68 ;20 28.500000 28.5
retlw 0x28 ;21 27.975000 28
retlw 0x67 ;22 27.450000 27.5
retlw 0x27 ;23 26.925000 27
retlw 0x66 ;24 26.400000 26.5
retlw 0x26 ;25 25.875000 26
retlw 0x65 ;26 25.350000 25.5
retlw 0x25 ;27 24.825000 25
retlw 0x64 ;28 24.300000 24.5
retlw 0x24 ;29 23.775000 24
retlw 0x23 ;30 23.250000 23
retlw 0x23 ;31 22.825000 23
retlw 0x62 ;32 22.400000 22.5
retlw 0x22 ;33 21.975000 22
retlw 0x61 ;34 21.550000 21.5
retlw 0x21 ;35 21.125000 21
retlw 0x60 ;36 20.700000 20.5
retlw 0x60 ;37 20.275000 20.5
retlw 0x20 ;38 19.850000 20
retlw 0x59 ;39 19.425000 19.5
retlw 0x19 ;40 19.000000 19
retlw 0x58 ;41 18.625000 18.5
retlw 0x18 ;42 18.250000 18
retlw 0x18 ;43 17.875000 18
retlw 0x57 ;44 17.500000 17.5
retlw 0x17 ;45 17.125000 17
retlw 0x56 ;46 16.750000 16.5
retlw 0x56 ;47 16.375000 16.5
retlw 0x16 ;48 16.000000 16
retlw 0x55 ;49 15.625000 15.5
retlw 0x15 ;50 15.250000 15
retlw 0x15 ;51 14.925000 15
retlw 0x54 ;52 14.600000 14.5
retlw 0x54 ;53 14.275000 14.5
retlw 0x14 ;54 13.950000 14
retlw 0x53 ;55 13.625000 13.5
retlw 0x53 ;56 13.300000 13.5
retlw 0x13 ;57 12.975000 13
retlw 0x52 ;58 12.650000 12.5
retlw 0x52 ;59 12.325000 12.5
retlw 0x12 ;60 12.000000 12
retlw 0x51 ;61 11.650000 11.5
retlw 0x51 ;62 11.300000 11.5
retlw 0x11 ;63 10.950000 11
retlw 0x50 ;64 10.600000 10.5
retlw 0x50 ;65 10.250000 10.5
retlw 0x10 ;66 9.900000 10
retlw 0x49 ;67 9.550000 09.5
retlw 0x9 ;68 9.200000 09
retlw 0x9 ;69 8.850000 09
retlw 0x48 ;70 8.500000 08.5
retlw 0x8 ;71 8.200000 08
retlw 0x8 ;72 7.900000 08
retlw 0x47 ;73 7.600000 07.5
retlw 0x47 ;74 7.300000 07.5
retlw 0x7 ;75 7.000000 07
retlw 0x46 ;76 6.700000 06.5
retlw 0x46 ;77 6.400000 06.5
retlw 0x6 ;78 6.100000 06
retlw 0x6 ;79 5.800000 06
retlw 0x45 ;80 5.500000 05.5
retlw 0x5 ;81 5.225000 05
retlw 0x5 ;82 4.950000 05
retlw 0x44 ;83 4.675000 04.5
retlw 0x44 ;84 4.400000 04.5
retlw 0x4 ;85 4.125000 04
retlw 0x4 ;86 3.850000 04
retlw 0x43 ;87 3.575000 03.5
retlw 0x43 ;88 3.300000 03.5
retlw 0x3 ;89 3.025000 03
retlw 0x42 ;90 2.750000 02.5
retlw 0x42 ;91 2.475000 02.5
retlw 0x2 ;92 2.200000 02
retlw 0x2 ;93 1.925000 02
retlw 0x41 ;94 1.650000 01.5
retlw 0x41 ;95 1.375000 01.5
retlw 0x1 ;96 1.100000 01
retlw 0x1 ;97 0.825000 01
retlw 0x40 ;98 0.550000 00.5
retlw 0x40 ;99 0.275000 00.5
retlw 0x0 ;100 0.000000 00
retlw 0x80 ;101 -0.200000 -00
retlw 0xc0 ;102 -0.400000 -00.5
retlw 0xc0 ;103 -0.600000 -00.5
retlw 0x81 ;104 -0.800000 -01
retlw 0x81 ;105 -1.000000 -01
retlw 0x81 ;106 -1.200000 -01
retlw 0xc1 ;107 -1.400000 -01.5
retlw 0xc1 ;108 -1.600000 -01.5
retlw 0x82 ;109 -1.800000 -02
retlw 0x82 ;110 -2.000000 -02
retlw 0x82 ;111 -2.200000 -02
retlw 0xc2 ;112 -2.400000 -02.5
retlw 0xc2 ;113 -2.600000 -02.5
retlw 0x83 ;114 -2.800000 -03
retlw 0x83 ;115 -3.000000 -03
retlw 0x83 ;116 -3.200000 -03
retlw 0xc3 ;117 -3.400000 -03.5
retlw 0xc3 ;118 -3.600000 -03.5
retlw 0x84 ;119 -3.800000 -04
retlw 0x84 ;120 -4.000000 -04
retlw 0x84 ;121 -4.200000 -04
retlw 0xc4 ;122 -4.400000 -04.5
retlw 0xc4 ;123 -4.600000 -04.5
retlw 0x85 ;124 -4.800000 -05
retlw 0x85 ;125 -5.000000 -05
retlw 0x85 ;126 -5.200000 -05
retlw 0xc5 ;127 -5.400000 -05.5
retlw 0xc5 ;128 -5.600000 -05.5
retlw 0x86 ;129 -5.800000 -06
retlw 0x86 ;130 -6.000000 -06
retlw 0x86 ;131 -6.200000 -06
retlw 0xc6 ;132 -6.400000 -06.5
retlw 0xc6 ;133 -6.600000 -06.5
retlw 0x87 ;134 -6.800000 -07
retlw 0x87 ;135 -7.000000 -07
retlw 0x87 ;136 -7.200000 -07
retlw 0xc7 ;137 -7.400000 -07.5
retlw 0xc7 ;138 -7.600000 -07.5
retlw 0x88 ;139 -7.800000 -08
retlw 0x88 ;140 -8.000000 -08
retlw 0x88 ;141 -8.150000 -08
retlw 0xc8 ;142 -8.300000 -08.5
retlw 0xc8 ;143 -8.450000 -08.5
retlw 0xc8 ;144 -8.600000 -08.5
retlw 0xc8 ;145 -8.750000 -08.5
retlw 0x89 ;146 -8.900000 -09
retlw 0x89 ;147 -9.050000 -09
retlw 0x89 ;148 -9.200000 -09
retlw 0xc9 ;149 -9.350000 -09.5
retlw 0xc9 ;150 -9.500000 -09.5
retlw 0xc9 ;151 -9.675000 -09.5
retlw 0x90 ;152 -9.850000 -10
retlw 0x90 ;153 -10.025000 -10
retlw 0x90 ;154 -10.200000 -10
retlw 0xd0 ;155 -10.375000 -10.5
retlw 0xd0 ;156 -10.550000 -10.5
retlw 0xd0 ;157 -10.725000 -10.5
retlw 0x91 ;158 -10.900000 -11
retlw 0x91 ;159 -11.075000 -11
retlw 0x91 ;160 -11.250000 -11
retlw 0xd1 ;161 -11.425000 -11.5
retlw 0xd1 ;162 -11.600000 -11.5
retlw 0x92 ;163 -11.775000 -12
retlw 0x92 ;164 -11.950000 -12
retlw 0x92 ;165 -12.125000 -12
retlw 0xd2 ;166 -12.300000 -12.5
retlw 0xd2 ;167 -12.475000 -12.5
retlw 0xd2 ;168 -12.650000 -12.5
retlw 0x93 ;169 -12.825000 -13
retlw 0x93 ;170 -13.000000 -13
retlw 0x93 ;171 -13.150000 -13
retlw 0xd3 ;172 -13.300000 -13.5
retlw 0xd3 ;173 -13.450000 -13.5
retlw 0xd3 ;174 -13.600000 -13.5
retlw 0xd3 ;175 -13.750000 -13.5
retlw 0x94 ;176 -13.900000 -14
retlw 0x94 ;177 -14.050000 -14
retlw 0x94 ;178 -14.200000 -14
retlw 0xd4 ;179 -14.350000 -14.5
retlw 0xd4 ;180 -14.500000 -14.5
retlw 0xd4 ;181 -14.650000 -14.5
retlw 0x95 ;182 -14.800000 -15
retlw 0x95 ;183 -14.950000 -15
retlw 0x95 ;184 -15.100000 -15
retlw 0x95 ;185 -15.250000 -15
retlw 0xd5 ;186 -15.400000 -15.5
retlw 0xd5 ;187 -15.550000 -15.5
retlw 0xd5 ;188 -15.700000 -15.5
retlw 0x96 ;189 -15.850000 -16
retlw 0x96 ;190 -16.000000 -16
retlw 0x96 ;191 -16.125000 -16
retlw 0x96 ;192 -16.250000 -16
retlw 0xd6 ;193 -16.375000 -16.5
retlw 0xd6 ;194 -16.500000 -16.5
retlw 0xd6 ;195 -16.625000 -16.5
retlw 0xd6 ;196 -16.750000 -16.5
retlw 0x97 ;197 -16.875000 -17
retlw 0x97 ;198 -17.000000 -17
retlw 0x97 ;199 -17.125000 -17
retlw 0x97 ;200 -17.250000 -17
retlw 0xd7 ;201 -17.375000 -17.5
retlw 0xd7 ;202 -17.500000 -17.5
retlw 0xd7 ;203 -17.625000 -17.5
retlw 0xd7 ;204 -17.750000 -17.5
retlw 0x98 ;205 -17.875000 -18
retlw 0x98 ;206 -18.000000 -18
retlw 0x98 ;207 -18.125000 -18
retlw 0x98 ;208 -18.250000 -18
retlw 0xd8 ;209 -18.375000 -18.5
retlw 0xd8 ;210 -18.500000 -18.5
retlw 0xd8 ;211 -18.650000 -18.5
retlw 0x99 ;212 -18.800000 -19
retlw 0x99 ;213 -18.950000 -19
retlw 0x99 ;214 -19.100000 -19
retlw 0x99 ;215 -19.250000 -19
retlw 0xd9 ;216 -19.400000 -19.5
retlw 0xd9 ;217 -19.550000 -19.5
retlw 0xd9 ;218 -19.700000 -19.5
retlw 0xa0 ;219 -19.850000 -20
retlw 0xa0 ;220 -20.000000 -20
retlw 0xa0 ;221 -20.125000 -20
retlw 0xa0 ;222 -20.250000 -20
retlw 0xe0 ;223 -20.375000 -20.5
retlw 0xe0 ;224 -20.500000 -20.5
retlw 0xe0 ;225 -20.625000 -20.5
retlw 0xe0 ;226 -20.750000 -20.5
retlw 0xa1 ;227 -20.875000 -21
retlw 0xa1 ;228 -21.000000 -21
retlw 0xa1 ;229 -21.125000 -21
retlw 0xa1 ;230 -21.250000 -21
retlw 0xe1 ;231 -21.350000 -21.5
retlw 0xe1 ;232 -21.450000 -21.5
retlw 0xe1 ;233 -21.550000 -21.5
retlw 0xe1 ;234 -21.650000 -21.5
retlw 0xe1 ;235 -21.750000 -21.5
retlw 0xa2 ;236 -21.850000 -22
retlw 0xa2 ;237 -21.950000 -22
retlw 0xa2 ;238 -22.050000 -22
retlw 0xa2 ;239 -22.150000 -22
retlw 0xa2 ;240 -22.250000 -22
retlw 0xe2 ;241 -22.350000 -22.5
retlw 0xe2 ;242 -22.450000 -22.5
retlw 0xe2 ;243 -22.550000 -22.5
retlw 0xe2 ;244 -22.650000 -22.5
retlw 0xe2 ;245 -22.750000 -22.5
retlw 0xa3 ;246 -22.850000 -23
retlw 0xa3 ;247 -22.950000 -23
retlw 0xa3 ;248 -23.050000 -23
retlw 0xa3 ;249 -23.150000 -23
retlw 0xa3 ;250 -23.250000 -23
retlw 0xe3 ;251 -23.325000 -23.5
retlw 0xe3 ;252 -23.400000 -23.5
retlw 0xe3 ;253 -23.475000 -23.5
retlw 0xe3 ;254 -23.550000 -23.5
end
; This is the end. Finally...
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -