📄 simp.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 + -