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

📄 display.asm

📁 应用松翰母体写的一款电磁炉
💻 ASM
字号:
;**********************************************
;Name	:mndisplay
;Function:
;Input  :
;Output	:
;Register Used:
;***********************************************
mndisplay:
	b0bts1	t10msflag	;如果显示闪动,时间改小(可以用跑一个循环显示一次)
	jmp	mndisplay90
	bclr	t10msflag
	call	p2output
;--------------------------------
	b0bts0	com1flag
	jmp	displaycom2
	mov	a,combuf
	and	p4,a
	mov	a,seg1buf
	mov	p2,a
	jmp	mndisplay80
;--------------------------------
displaycom2:
	b0bts0	com2flag
	jmp	displaycom3
	mov	a,combuf
	and	p4,a
	mov	a,seg2buf
	mov	p2,a
	jmp	mndisplay80
;--------------------------------
displaycom3:
	b0bts0	com3flag
	jmp	displaycom4
	mov	a,combuf
	and	p4,a
	mov	a,seg3buf
	mov	p2,a
	jmp	mndisplay80
;--------------------------------
displaycom4:
	b0bts0	com4flag
	jmp	mndisplay90
	mov	a,combuf
	and	p4,a
	mov	a,seg4buf
	mov	p2,a
	mov_	combuf,#11110111b
;--------------------------------
mndisplay80:
	bset	fc
	rlcm	combuf
;-----	
mndisplay90:
	ret


;**********************************************
;Name	:mntwinkle
;Function:
;Input  :
;Output	:
;Register Used:
;***********************************************
mntwinkle:

mntwinkle90:
	ret
	
;**********************************************
;Name	:mngetdata
;Function:
;Input  :
;Output	:
;Register Used:
;***********************************************
mngetdata:
	b0bts0	refurbishflag
	jmp	mngetdata70	;刷新显示
	b0bts1	operateflag	;只有在使能工作下,进入该程序
	jmp	mngetdata90
	b0bts1	settimeflag
	jmp	mngetdata90
	b0bts1	t1mflag
	jmp	mngetdata90
;----
	bclr	t1mflag		;一分钟到计时
	mov	a,timerbuf
	b0bts0	fz
	jmp	mngetdata80	;定时到
;----
	mov	a,timerbuf
	and	a,#0fh
	sub	a,#1
	b0bts0	fc
	jmp	mngetdata60
;----
	mov	a,timerbuf
	sub	a,#10h
	or	a,#09h
	mov	timerbuf,a
	jmp	mngetdata70
;----
mngetdata60:
	mov	timerbuf,a
;----
mngetdata70:
	bclr	refurbishflag
;----
;求得个位值
	b0mov	y,#font_tbl$m
	b0mov	z,#font_tbl$l
	mov	a,timerbuf
	and	a,#0fh
	add	z,a
	mov	a,#0
	adc	y,a
	movc
	mov	seg1buf,a
;----
;求得十位值
	b0mov	y,#font_tbl$m
	b0mov	z,#font_tbl$l
	swap	timerbuf
	and	a,#0fh
	add	z,a
	mov	a,#0
	adc	y,a
	movc
	mov	seg2buf,a
	ret
;------------------
mngetdata80:	
	

mngetdata90:
	ret
	
/*
;********************************************
;name:conv_hex_bcd
;function:小于10000的十六进制转换BCD码(要作10000以上的加个条件判断)
;input:	hexh,hexl
;output:bcdh,bcdl
;register:
;********************************************
conv_hex_bcd:
	clr	bcdl
	clr	bcdh
gethighnibble:
	mov	a,hexl
	sub	a,#100
	mov	hexl,a
	b0bts1	fc
	jmp	getmidnibble10
;----
highnibbleinc:	
	mov	a,#1
	add	bcdh,a
	mov	a,bcdh
	and	a,#0fh
	sub	a,#0ah
	b0bts1	fc
	jmp	gethighnibble
	mov	a,#06h
	add	bcdh,a
	jmp	gethighnibble
;----
getmidnibble10:
	mov	a,hexh
	sub	a,#1
	mov	hexh,a
	b0bts1	fc
	jmp	getmidnibble00
	jmp	highnibbleinc
;----
getmidnibble00:
	mov	a,#100
	add	hexl,a
getmidnibble:
	mov	a,hexl
	sub	a,#10
	mov	hexl,a
	b0bts1	fc
	jmp	getlownibble00
	incms	bcdl
	nop
	jmp	getmidnibble
;----
getlownibble00:
	add	a,#10
	swapm	bcdl
	or	bcdl,a
	ret
;********************************************
;name:conv_bcd_hex
;function:小于10000的BCD码转换为十六进制
;input:	bcdl,bcdh
;output:hexl,hexh
;register:var3,var4,var5,var6,var7,var8
;********************************************
conv_bcd_hex:
	clr	var3
	clr	var4
	clr	var5
	clr	var6
;----
;x1000
	swap	bcdh
	and	a,#0fh
	mov	var7,a
	mov_	var8,#8	
	mov_	var3,#0e8h
	mov_	var4,#03h
	call	mulsub		;two byte multiply
	mov_	hexl,var5
	mov_	hexh,var6
;----
;x100
	clr	var3
	clr	var4
	clr	var5
	clr	var6
	mov	a,bcdh
	and	a,#0fh
	mov	var7,a
	mov_	var8,#8
	mov	a,#100
	mov	var3,a
	call	mulsub		;two byte multiply
	mov	a,var5
	add	hexl,a
	mov	a,var6
	adc	hexh,a
;----
;x10
	clr	var3
	clr	var4
	clr	var5
	clr	var6
	swap	bcdl
	and	a,#0fh
	mov	var7,a
	mov_	var8,#8	
	mov	a,#10
	mov	var3,a
	call	mulsub		;two byte multiply
	mov	a,var5
	add	hexl,a
	mov	a,var6
	adc	hexh,a
;----
;x1
	mov	a,bcdl
	and	a,#0fh
	add	hexl,a
	mov	a,#0
	adc	hexh,a	
	ret
;**********************************************
;两个BYTE的数相乘
mulsub:
	bclr	fc
	rrcm	var7
	b0bts1	fc
	jmp	deccount
	mov	a,var3
	add	var5,a
	mov	a,var4
	adc	var6,a
;----
deccount:
	decms	var8
	jmp	adjustposition
	ret
;----
adjustposition:	
	bclr	fc
	rlcm	var3
	rlcm	var4
	jmp	mulsub	
*/	

⌨️ 快捷键说明

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