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

📄 lcd.asm

📁 含LCD驱动的MCU在显示方面的软件设计,利用Holtek46R02
💻 ASM
字号:
;*********************************************
;FILE NAME:	LCD DEMO
;MCU:		HT46R62
;MASK OPTION:	WDT: DISABLE
;		LCD DUTY: 1/3
;		LCD BIAS: 1/2
;		LCD BIAS TYPE: C
;		SYSVOLT: 5.0V 
;		SYSFRAG: 4000KHZ
;AUTHOR:	RADOME
;HISTORY:	2006.02.20
;*********************************************
include Ht46r62.inc
include Micro.inc
;*********************************************
lcd_data	.section 'data'
;*********************************************
acc_bk		db	?
status_bk	db	?
msecond		db	?
number1		db	?
number2		db	?
number3		db	?
display_temp	db	?
f_display	dbit
;*********************************************
lcd_code	.section 'code'
;*********************************************
	org	0000h
	jmp	init

	org	000ch
timer_int:				;8ms			
	push
	inc	msecond
	mov	a,msecond
	sub	a,125			;8ms*125=1s
	snz	c
	jmp	timer_end
	clr	msecond
	set	f_display
timer_end:
	pop
	reti
;*********************************************
;Initializers
;*********************************************
init:
	clr	wdt
	clr	intc0
	clr	intc1
	clr	rtcc

	clr	msecond
	clr	number1
	clr	number2
	clr	number3

	mov	a,00001001b
	mov	intc0,a
	mov	a,6			;8ms
	mov 	tmr,a
	mov	a,10010111b
	mov	tmrc,a
;*********************************************
;Display
;*********************************************
display:
	snz	f_display
	jmp	display
	clr	f_display

	inc	number3
	mov	a,number3
	sub	a,10
	snz	c
	jmp	display_next
	clr	number3
	
	inc	number2
	mov	a,number2
	sub	a,10
	snz	c
	jmp	display_next
	clr	number2	

	inc	number1
	mov	a,number1
	sub	a,10
	snz	c
	jmp	display_next
	clr	number1

display_next:
	set	bp.0
	mov	a,40h
	mov	mp1,a
display_number1:
	mov	a,number1
	add	a,number_table
	mov	tblp,a
	tabrdl	display_temp
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1
display_number2:
	mov	a,number2
	add	a,number_table
	mov	tblp,a
	tabrdl	display_temp
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1		
display_number3:
	mov	a,number3
	add	a,number_table
	mov	tblp,a
	tabrdl	display_temp
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	inc	mp1
	rl	display_temp
	rl	display_temp
	rl	display_temp
	mov	a,display_temp
	mov	iar1,a
	clr	bp.0
	jmp	display
;*********************************************
;Table
;*********************************************
	org	0700h
number_table:
	;	bdeacfg0
	dw	10111110b	;"0" 
	dw	00001100b	;"1" 
	dw	01111010b	;"2" 
	dw	01011110b	;"3" 
	dw	11001100b	;"4" 
	dw	11010110b	;"5" 
	dw	11110110b	;"6" 
	dw	00011100b	;"7" 
	dw	11111110b	;"8" 
	dw	11011110b	;"9" 
;*********************************************
	end

⌨️ 快捷键说明

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