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

📄 simp.asm

📁 温度测量
💻 ASM
字号:
;************************************************
;* Main Program LCD Temperature Readout Demo	*
;*						*
;* Copyright 2001-2003 Wayne Peacock		*
;* First Revision 11 March 2002			*
;* Second Revision 19th September 2002		*
;*						*
;* Displays temperature in low & high resolution*
;* on a 2x16LCD panel. No RS232 included	*
;************************************************
;* See Schematic for Hardware connections	*
;* 						*
;* Disclaimer:					*
;* The Author takes no responsibility for the 	*
;* use of this code. Use at your own risk!	*
;* 						*
;* This code or part there of is licensed only 	*
;* for private use and NOT for commercial use.	*
;* 						*
;* Please contact the Author 'Wayne Peacock' 	*
;* <wpeacock@senet.com.au> before using the code*
;* or part there of in a commercial project.	*
;************************************************
 
.Include 	"1200def.inc" 

.def	count1	= r26		
.def	count2	= r27

.def	temp	= r16
.def	data 	= r17

.def	text	= r0
.def	store	= r1

       .org $0000 
       
;************************************************
;* Interrupt Vectors				*
;************************************************
       
        rjmp	reset		; Reset Handler
	reti			; IRQ0 Handler
	reti			; Timer/Counter0 Overflow
	reti			; Analog Comparator
	 
;************************************************
;* Main 					*
;************************************************
                   
reset:  

	; Power up delay is appox. 16ms
	
	rcall	lcdinit			; Set up Port for LCD
	rcall	wait_2ms		; Give LCD time to start up!
	rcall	DS1820_init		; Set up Port for DS1820
	
	ldi	data, 0x28		; 4 bit mode, 2 lines
	rcall	command
	ldi	data, 0x0C		; Display on, no cursor
	rcall	command
	ldi	data, 0x01		; Clear Display (Requires delay)
	rcall	command
	
;************************************************
;* Top Line Display - "Wayne's TempRead"	*
;************************************************
 						
	ldi	data, 'W'
	rcall	onechar
	
	ldi	data, 'a'
	rcall	onechar
	
	ldi	data, 'y'
	rcall	onechar
	
	ldi	data, 'n'
	rcall	onechar
	
	ldi	data, 'e'
	rcall	onechar
	
	ldi	data, 0x27
	rcall	onechar
	
	ldi	data, 's'
	rcall	onechar
	
	ldi	data, ' '
	rcall	onechar
	
	ldi	data, 'T'
	rcall	onechar
	
	ldi	data, 'e'
	rcall	onechar
	
	ldi	data, 'm'
	rcall	onechar
	
	ldi	data, 'p'
	rcall	onechar
	
	ldi	data, 'R'
	rcall	onechar
	
	ldi	data, 'e'
	rcall	onechar
	
	ldi	data, 'a'
	rcall	onechar
	
	ldi	data, 'd'
	rcall	onechar

	
;************************************************
;* Get Temperature from DS1820			*
;************************************************
	
loop:
  	ldi	data, 0xC0
  	rcall	command			; Bottom Line
  	
	rcall	DS1820_reset		; Reset DS1820
	bld	temp, WIRE
	sbrc	temp, WIRE
	rjmp	error

	rcall	DS1820_conv		; Do Temp Conversion
	rcall	ds1820_reset
	
	rcall	DS1820_Scr		; Read Data in scratch Pad
		
;************************************************
;* Display Temperature on Bottom Line		*
;************************************************
		
	rcall	dump_temp
	ldi	data, ' '
	rcall	onechar
	
	rcall	dump_temp2
	rcall	DS_disp

;************************************************
;* Display Registers on Top Line		*
;************************************************

	ldi	data, 0x80
  	rcall	command			; Top Line
  	
	rcall	dump_reg
	
	ldi	temp, 0x01
del:	ldi	count1, 0xff
	rcall	delay
	dec	temp
	brne	del
	
	rjmp	loop
			
halt:	rjmp	halt

error:	
	ldi	data, 'e'
	rcall	onechar
        ldi	data, 'r'
	rcall	onechar
	ldi	data, 'r'
	rcall	onechar
	rjmp	halt
	
.include "lcd4.asm"
.include "delay.asm"			
.include "DS1820sub1200.asm"
.include "convert.asm"

	

⌨️ 快捷键说明

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