⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1820.s

📁 基于ATMEGA16的温度传感器原代码
💻 S
📖 第 1 页 / 共 3 页
字号:
	.dbline 175
; }
	sbi 0x1b,4
	.dbline 176
; }
	cbi 0x1b,4
	.dbline -2
L47:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Clear_SMG _Clear_SMG fV
	.even
_Clear_SMG::
	.dbline -1
	.dbline 185
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 186
; }
	ldi R24,255
	out 0x17,R24
	.dbline 187
; }
	clr R2
	out 0x18,R2
	.dbline 188
; }
	sbi 0x1b,3
	.dbline 189
; }
	cbi 0x1b,3
	.dbline 190
; }
	sbi 0x1b,2
	.dbline 191
; }
	cbi 0x1b,2
	.dbline -2
L48:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Spi_Init _Spi_Init fV
;              i -> R16
	.even
_Spi_Init::
	.dbline -1
	.dbline 200
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 202
; }
; }
	in R24,0x17
	ori R24,176
	out 0x17,R24
	.dbline 203
; }
	cbi 0x17,6
	.dbline 204
; }
	sbi 0x18,6
	.dbline 205
; }
	ldi R24,1
	out 0xe,R24
	.dbline 206
; }
	ldi R24,80
	out 0xd,R24
	.dbline 207
; }
	in R16,0xe
	.dbline 208
; }
	in R16,0xf
	.dbline -2
L49:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend
	.dbfunc e PutSPIchar _PutSPIchar fV
;           data -> R16
	.even
_PutSPIchar::
	.dbline -1
	.dbline 217
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 218
; }
	out 0xf,R16
L51:
	.dbline 219
L52:
	.dbline 219
; }
	sbis 0xe,7
	rjmp L51
	.dbline -2
L50:
	.dbline 0 ; func end
	ret
	.dbsym r data 16 c
	.dbend
	.dbfunc e CPU_Init _CPU_Init fV
	.even
_CPU_Init::
	.dbline -1
	.dbline 228
; }
; }
; }
; }
; }
; }
; }
; }
; }
	.dbline 229
; }
	ldi R24,255
	out 0x18,R24
	.dbline 230
; }
	out 0x17,R24
	.dbline 231
; }
	ldi R24,128
	out 0x1b,R24
	.dbline 232
; }
	ldi R24,220
	out 0x1a,R24
	.dbline 233
; }
	clr R2
	out 0x17,R2
	.dbline 234
; }
	ldi R24,255
	out 0x15,R24
	.dbline 235
; }
	out 0x14,R2
	.dbline 236
; }
	out 0x12,R24
	.dbline 237
; }
	out 0x11,R2
	.dbline 238
; }
	xcall _Un_Led
	.dbline 239
; }
	xcall _Clear_SMG
	.dbline -2
L54:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfile H:\bbi项目源程序\18b20温度传感器\LCD显示18B20/lcd.h
	.dbfunc e LCD_send_data _LCD_send_data fV
;              i -> R20
;           data -> R16
	.even
_LCD_send_data::
	xcall push_gset1
	.dbline -1
	.dbline 11
	.dbline 13
	clr R20
	xjmp L59
L56:
	.dbline 14
	.dbline 15
	cbi 0x1b,3
	.dbline 16
	sbrs R16,7
	rjmp L60
	.dbline 17
	sbi 0x1b,2
	xjmp L61
L60:
	.dbline 19
	cbi 0x1b,2
L61:
	.dbline 20
	lsl R16
	.dbline 21
	sbi 0x1b,3
	.dbline 24
L57:
	.dbline 13
	inc R20
L59:
	.dbline 13
	cpi R20,8
	brlo L56
	.dbline -2
L55:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r data 16 c
	.dbend
	.area data(ram, con, rel)
	.dbfile H:\bbi项目源程序\18b20温度传感器\LCD显示18B20/lcd.h
_ADbz::
	.blkb 1
	.area idata
	.byte 0
	.area data(ram, con, rel)
	.dbfile H:\bbi项目源程序\18b20温度传感器\LCD显示18B20/lcd.h
	.dbsym e ADbz _ADbz c
	.area text(rom, con, rel)
	.dbfile H:\bbi项目源程序\18b20温度传感器\LCD显示18B20/lcd.h
	.dbfunc e delay _delay fV
;              i -> R20
;              n -> R16
	.even
_delay::
	xcall push_gset1
	.dbline -1
	.dbline 39
	.dbline 41
	clr R20
	xjmp L66
L63:
	.dbline 42
	.dbline 42
	nop
	.dbline 42
L64:
	.dbline 41
	inc R20
L66:
	.dbline 41
	cp R20,R16
	brlo L63
	.dbline -2
L62:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r n 16 c
	.dbend
	.dbfunc e lcd_out _lcd_out fV
;              s -> <dead>
;              i -> R20
;      send_byte -> R22
	.even
_lcd_out::
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 48
	.dbline 50
	clr R20
	xjmp L71
L68:
	.dbline 51
	.dbline 52
	sbrc R22,7
	rjmp L72
	.dbline 53
	.dbline 54
	cbi 0x1b,2
	.dbline 55
	xjmp L73
L72:
	.dbline 57
	.dbline 58
	sbi 0x1b,2
	.dbline 59
L73:
	.dbline 60
	cbi 0x1b,3
	.dbline 61
	sbi 0x1b,3
	.dbline 62
	lsl R22
	.dbline 63
L69:
	.dbline 50
	inc R20
L71:
	.dbline 50
	cpi R20,8
	brlo L68
	.dbline 64
	ldi R16,0
	xcall _delay
	.dbline -2
L67:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l s 1 c
	.dbsym r i 20 c
	.dbsym r send_byte 22 c
	.dbend
	.dbfunc e WR_dat _WR_dat fV
;              s -> R20
;            dat -> R22
	.even
_WR_dat::
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 69
	.dbline 71
	mov R20,R22
	andi R20,240
	.dbline 72
	ldi R16,250
	xcall _lcd_out
	.dbline 73
	mov R16,R20
	xcall _lcd_out
	.dbline 74
	mov R20,R22
	andi R20,15
	.dbline 75
	mov R24,R20
	andi R24,#0x0F
	swap R24
	mov R20,R24
	.dbline 76
	mov R16,R24
	xcall _lcd_out
	.dbline -2
L74:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r s 20 c
	.dbsym r dat 22 c
	.dbend
	.dbfunc e WR_control _WR_control fV
;              s -> R20
;            dat -> R22
	.even
_WR_control::
	xcall push_gset2
	mov R22,R16
	.dbline -1
	.dbline 80
	.dbline 82
	mov R20,R22
	andi R20,240
	.dbline 83
	ldi R16,248
	xcall _lcd_out
	.dbline 84
	mov R16,R20
	xcall _lcd_out
	.dbline 85
	mov R20,R22
	andi R20,15
	.dbline 86
	mov R24,R20
	andi R24,#0x0F
	swap R24
	mov R20,R24
	.dbline 87
	mov R16,R24
	xcall _lcd_out
	.dbline -2
L75:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r s 20 c
	.dbsym r dat 22 c
	.dbend
	.dbfunc e lcd_control _lcd_control fV
	.even
_lcd_control::
	.dbline -1
	.dbline 91
	.dbline 92
	ldi R16,48
	xcall _WR_control
	.dbline 93
	ldi R16,12
	xcall _WR_control
	.dbline -2
L76:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e lcd_clear _lcd_clear fV
;              i -> R20,R21
	.even
_lcd_clear::
	xcall push_gset1
	.dbline -1
	.dbline 97
	.dbline 99
	ldi R16,1
	xcall _WR_control
	.dbline 100
	clr R20
	clr R21
L78:
	.dbline 101
	.dbline 102
	nop
	.dbline 103
	nop
	.dbline 104
L79:
	.dbline 100
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 100
	cpi R20,136
	ldi R30,19
	cpc R21,R30
	brlt L78
	.dbline -2
L77:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 I
	.dbend
	.dbfunc e LCD_address _LCD_address fV
;        address -> R20
;              y -> R22
;              x -> R20
	.even
_LCD_address::
	xcall push_gset2
	mov R22,R18
	mov R20,R16
	.dbline -1
	.dbline 113
	.dbline 115
	clr R21
	cpi R20,0
	cpc R20,R21
	breq L86
X13:
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	breq L87
	cpi R20,2
	ldi R30,0
	cpc R21,R30
	breq L88
	cpi R20,3
	ldi R30,0
	cpc R21,R30
	breq L89
	xjmp L83
X14:
	.dbline 116
L86:
	.dbline 118
	mov R20,R22
	subi R20,128    ; addi 128
	.dbline 119
	xjmp L84
L87:
	.dbline 121
	mov R20,R22
	subi R20,112    ; addi 144
	.dbline 122
	xjmp L84
L88:
	.dbline 124
	mov R20,R22
	subi R20,120    ; addi 136
	.dbline 125
	xjmp L84
L89:
	.dbline 127
	mov R20,R22
	subi R20,104    ; addi 152
	.dbline 128
	xjmp L84
L83:
	.dbline 129
	mov R20,R22
	subi R20,128    ; addi 128
	.dbline 130
L84:
	.dbline 131
	mov R16,R20
	xcall _WR_control
	.dbline -2
L82:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r address 20 c
	.dbsym r y 22 c
	.dbsym r x 20 c
	.dbend
	.dbfunc e LCD_Write_string _LCD_Write_string fV
;              s -> R20,R21
;              Y -> R10
;              X -> R22
	.even
_LCD_Write_string::
	xcall push_gset3
	mov R10,R18
	mov R22,R16
	ldd R20,y+6
	ldd R21,y+7
	.dbline -1
	.dbline 142
	.dbline 144
	mov R18,R10
	mov R16,R22
	xcall _LCD_address
	xjmp L92
L91:
	.dbline 146
	.dbline 147
	movw R30,R20
	ldd R16,z+0
	xcall _WR_dat
	.dbline 148
	subi R20,255  ; offset = 1
	sbci R21,255
	.dbline 149
L92:
	.dbline 145
	movw R30,R20
	ldd R2,z+0
	tst R2
	brne L91
	.dbline -2
L90:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r s 20 pc
	.dbsym r Y 10 c
	.dbsym r X 22 c
	.dbend
	.dbfunc e BCD_ASCII _BCD_ASCII fc
;            bcd -> R16
	.even
_BCD_ASCII::
	.dbline -1
	.dbline 161
	.dbline 162
	andi R16,15
	.dbline 163
	ldi R24,9
	cp R24,R16
	brsh L95
	.dbline 164
	subi R16,201    ; addi 55
	xjmp L96
L95:
	.dbline 166
	subi R16,208    ; addi 48
L96:
	.dbline 167
	.dbline -2
L94:
	.dbline 0 ; func end
	ret
	.dbsym r bcd 16 c
	.dbend
	.dbfunc e LCD_writeasc _LCD_writeasc fV
;           data -> y+4
;              y -> R22
;              x -> R20
	.even
_LCD_writeasc::
	xcall push_gset2
	mov R22,R18
	mov R20,R16
	.dbline -1
	.dbline 172
	.dbline 173
	mov R18,R22
	mov R16,R20
	xcall _LCD_address
	.dbline 174
	ldd R16,y+4
	xcall _WR_dat
	.dbline -2
L97:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym l data 4 c
	.dbsym r y 22 c
	.dbsym r x 20 c
	.dbend
	.dbfunc e Lcd_INT _Lcd_INT fV
	.even
_Lcd_INT::
	.dbline -1
	.dbline 178
	.dbline 181
	xcall _lcd_control
	.dbline -2
L98:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e lcd_writechar _lcd_writechar fV
;         number -> y+4
;              Y -> R22
;              X -> R20
	.even
_lcd_writechar::
	xcall push_gset2
	mov R22,R18
	mov R20,R16
	.dbline -1
	.dbline 185

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -