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

📄 lcd.asm

📁 这是一个段式lcd显示
💻 ASM
📖 第 1 页 / 共 2 页
字号:
	bal	_$M42
_$M41 :
	rb	0f114h.2
_$M42 :

;;        num_10G=nixietube3.bit.bit6;
CLINE 0001H 007AH 0009H 0024H
	tb	NEAR _nixietube3.6
	beq	_$M43
	sb	0f115h.1
	bal	_$M44
_$M43 :
	rb	0f115h.1
_$M44 :

;;        num_9A=nixietube4.bit.bit0;
CLINE 0001H 007DH 0009H 0023H
	tb	NEAR _nixietube4.0
	beq	_$M45
	sb	0f112h.3
	bal	_$M46
_$M45 :
	rb	0f112h.3
_$M46 :

;;        num_9B=nixietube4.bit.bit1;
CLINE 0001H 007EH 0009H 0023H
	tb	NEAR _nixietube4.1
	beq	_$M47
	sb	0f113h.2
	bal	_$M48
_$M47 :
	rb	0f113h.2
_$M48 :

;;        num_9C=nixietube4.bit.bit2;
CLINE 0001H 007FH 0009H 0023H
	tb	NEAR _nixietube4.2
	beq	_$M49
	sb	0f113h.0
	bal	_$M50
_$M49 :
	rb	0f113h.0
_$M50 :

;;        num_9D=nixietube4.bit.bit3;
CLINE 0001H 0080H 0009H 0023H
	tb	NEAR _nixietube4.3
	beq	_$M51
	sb	0f112h.0
	bal	_$M52
_$M51 :
	rb	0f112h.0
_$M52 :

;;        num_9E=nixietube4.bit.bit4;
CLINE 0001H 0081H 0009H 0023H
	tb	NEAR _nixietube4.4
	beq	_$M53
	sb	0f112h.1
	bal	_$M54
_$M53 :
	rb	0f112h.1
_$M54 :

;;        num_9F=nixietube4.bit.bit5;
CLINE 0001H 0082H 0009H 0023H
	tb	NEAR _nixietube4.5
	beq	_$M55
	sb	0f112h.2
	bal	_$M56
_$M55 :
	rb	0f112h.2
_$M56 :

;;        num_9G=nixietube4.bit.bit6;
CLINE 0001H 0083H 0009H 0023H
	tb	NEAR _nixietube4.6
	beq	_$M57
	sb	0f113h.1
	bal	_$M58
_$M57 :
	rb	0f113h.1
_$M58 :

;;        num_8A=nixietube5.bit.bit0;
CLINE 0001H 0086H 0009H 0023H
	tb	NEAR _nixietube5.0
	beq	_$M59
	sb	0f110h.3
	bal	_$M60
_$M59 :
	rb	0f110h.3
_$M60 :

;;        num_8B=nixietube5.bit.bit1;
CLINE 0001H 0087H 0009H 0023H
	tb	NEAR _nixietube5.1
	beq	_$M61
	sb	0f111h.2
	bal	_$M62
_$M61 :
	rb	0f111h.2
_$M62 :

;;        num_8C=nixietube5.bit.bit2;
CLINE 0001H 0088H 0009H 0023H
	tb	NEAR _nixietube5.2
	beq	_$M63
	sb	0f111h.0
	bal	_$M64
_$M63 :
	rb	0f111h.0
_$M64 :

;;        num_8D=nixietube5.bit.bit3;
CLINE 0001H 0089H 0009H 0023H
	tb	NEAR _nixietube5.3
	beq	_$M65
	sb	0f110h.0
	bal	_$M66
_$M65 :
	rb	0f110h.0
_$M66 :

;;        num_8E=nixietube5.bit.bit4;
CLINE 0001H 008AH 0009H 0023H
	tb	NEAR _nixietube5.4
	beq	_$M67
	sb	0f110h.1
	bal	_$M68
_$M67 :
	rb	0f110h.1
_$M68 :

;;        num_8F=nixietube5.bit.bit5;
CLINE 0001H 008BH 0009H 0023H
	tb	NEAR _nixietube5.5
	beq	_$M69
	sb	0f110h.2
	bal	_$M70
_$M69 :
	rb	0f110h.2
_$M70 :

;;        num_8G=nixietube5.bit.bit6;
CLINE 0001H 008CH 0009H 0023H
	tb	NEAR _nixietube5.6
	beq	_$M71
	sb	0f111h.1
	bal	_$M72
_$M71 :
	rb	0f111h.1
_$M72 :

;;        num_7A=nixietube6.bit.bit0;
CLINE 0001H 008FH 0009H 0023H
	tb	NEAR _nixietube6.0
	beq	_$M73
	sb	0f10eh.3
	bal	_$M74
_$M73 :
	rb	0f10eh.3
_$M74 :

;;        num_7B=nixietube6.bit.bit1;
CLINE 0001H 0090H 0009H 0023H
	tb	NEAR _nixietube6.1
	beq	_$M75
	sb	0f10fh.2
	bal	_$M76
_$M75 :
	rb	0f10fh.2
_$M76 :

;;        num_7C=nixietube6.bit.bit2;
CLINE 0001H 0091H 0009H 0023H
	tb	NEAR _nixietube6.2
	beq	_$M77
	sb	0f10fh.0
	bal	_$M78
_$M77 :
	rb	0f10fh.0
_$M78 :

;;        num_7D=nixietube6.bit.bit3;
CLINE 0001H 0092H 0009H 0023H
	tb	NEAR _nixietube6.3
	beq	_$M79
	sb	0f10eh.0
	bal	_$M80
_$M79 :
	rb	0f10eh.0
_$M80 :

;;        num_7E=nixietube6.bit.bit4;
CLINE 0001H 0093H 0009H 0023H
	tb	NEAR _nixietube6.4
	beq	_$M81
	sb	0f10eh.1
	bal	_$M82
_$M81 :
	rb	0f10eh.1
_$M82 :

;;        num_7F=nixietube6.bit.bit5;
CLINE 0001H 0094H 0009H 0023H
	tb	NEAR _nixietube6.5
	beq	_$M83
	sb	0f10eh.2
	bal	_$M84
_$M83 :
	rb	0f10eh.2
_$M84 :

;;        num_7G=nixietube6.bit.bit6;
CLINE 0001H 0095H 0009H 0023H
	tb	NEAR _nixietube6.6
	beq	_$M85
	sb	0f10fh.1
	bal	_$M86
_$M85 :
	rb	0f10fh.1
_$M86 :

;;         Time =1;
CLINE 0001H 0099H 000AH 0011H
	sb	0f10ch.2

;;         TimeOO =1;
CLINE 0001H 009AH 000AH 0013H
	sb	0f10ch.1

;;         Heart =1;
CLINE 0001H 009BH 000AH 0012H
	sb	0f10ch.0

;;         USB =1;
CLINE 0001H 009CH 000AH 0010H
	sb	0f10dh.3

;;         Stopwatch=1;
CLINE 0001H 009DH 000AH 0015H
	sb	0f10ch.3
CBLOCKEND 5 2 172

;;}
CLINE 0001H 00ACH 0001H 0001H
	rt
CBLOCKEND 5 1 172
CFUNCTIONEND 5

CFUNCTION 2

_lcd_clear	:
CBLOCK 2 1 178

;;{
CLINE 0001H 00B2H 0001H 0001H
	push	fp
	mov	fp,	sp
	add	sp,	#-04
	push	bp
CBLOCK 2 2 178
CLOCAL 42H 0002H 0002H 0002H "ptr" 04H 03H 00H 00H 00H
CLOCAL 42H 0002H 0004H 0002H "i" 02H 00H 01H

;;	ptr = &DSPR00;             /* DSPR initialize(ALL off) */
CLINE 0001H 00B6H 0002H 003AH
	mov	r0,	#00h
	mov	r1,	#0f1h
	st	er0,	-2[fp]

;;	for(i=0; i<0xC0; i++){
CLINE 0001H 00B7H 0002H 0017H
	mov	er0,	#0 
	st	er0,	-4[fp]
	cmp	r0,	#0c0h
	cmpc	r1,	#00h
	bge	_$L5
_$L6 :
CBLOCK 2 3 183

;;		*ptr++ = 0x00;
CLINE 0001H 00B8H 0003H 0010H
	l	er0,	-2[fp]
	mov	bp,	er0
	add	er0,	#1 
	st	er0,	-2[fp]
	mov	r0,	#00h
	st	r0,	[bp]
CBLOCKEND 2 3 185

;;	for(i=0; i<0xC0; i++){
CLINE 0000H 00B7H 0002H 0017H
	l	er0,	-4[fp]
	add	er0,	#1 
	st	er0,	-4[fp]
	l	er0,	-4[fp]
	cmp	r0,	#0c0h
	cmpc	r1,	#00h
	blt	_$L6

;;	}
CLINE 0000H 00B9H 0002H 0002H
_$L5 :
CBLOCKEND 2 2 186

;;}
CLINE 0001H 00BAH 0001H 0001H
	pop	bp
	mov	sp,	fp
	pop	fp
	rt
CBLOCKEND 2 1 186
CFUNCTIONEND 2

CFUNCTION 4

_data_divide	:
CBLOCK 4 1 192

;;{
CLINE 0001H 00C0H 0001H 0001H
CBLOCK 4 2 192

;;    temp_data = disp_data_sec;
CLINE 0001H 00C1H 0005H 001EH
	l	r0,	NEAR _disp_data_sec

;;    disp_data1=temp_data/10;
CLINE 0001H 00C2H 0005H 001CH
	mov	r1,	#00h
	mov	r2,	#0ah
	div	er0,	r2
	st	r0,	NEAR _disp_data1

;;    disp_data0=temp_data%10;
CLINE 0001H 00C3H 0005H 001CH
	l	r2,	NEAR _disp_data_sec
	mov	r3,	#00h
	mov	r0,	#0ah
	div	er2,	r0
	st	r0,	NEAR _disp_data0

;;    temp_data = disp_data_min;
CLINE 0001H 00C5H 0005H 001EH
	l	r0,	NEAR _disp_data_min

;;    disp_data3=temp_data/10;
CLINE 0001H 00C6H 0005H 001CH
	mov	r1,	#00h
	mov	r2,	#0ah
	div	er0,	r2
	st	r0,	NEAR _disp_data3

;;    disp_data2=temp_data%10;
CLINE 0001H 00C7H 0005H 001CH
	l	r2,	NEAR _disp_data_min
	mov	r3,	#00h
	mov	r0,	#0ah
	div	er2,	r0
	st	r0,	NEAR _disp_data2

;;    temp_data = disp_data_hour;
CLINE 0001H 00C9H 0005H 001FH
	l	r0,	NEAR _disp_data_hour
	st	r0,	NEAR _temp_data

;;    disp_data6=temp_data/10;
CLINE 0001H 00CAH 0005H 001CH
	mov	r1,	#00h
	mov	r2,	#0ah
	div	er0,	r2
	st	r0,	NEAR _disp_data6

;;    disp_data5=temp_data%10;
CLINE 0001H 00CBH 0005H 001CH
	l	r2,	NEAR _disp_data_hour
	mov	r3,	#00h
	mov	r0,	#0ah
	div	er2,	r0
	st	r0,	NEAR _disp_data5
CBLOCKEND 4 2 204

;;}
CLINE 0001H 00CCH 0001H 0001H
	rt
CBLOCKEND 4 1 204
CFUNCTIONEND 4

	public _lcd_clear
	public _lcd_init
	public _data_divide
	public _set_font_bit
	public _lcd_display
	_disp_data_hour comm data 01h #00h
	_disp_data comm data 01h #00h
	_nixietube4 comm data 01h #00h
	_nixietube5 comm data 01h #00h
	_nixietube6 comm data 01h #00h
	_nixietube1 comm data 01h #00h
	_nixietube2 comm data 01h #00h
	_nixietube3 comm data 01h #00h
	_hun comm data 02h #00h
	_data comm data 02h #00h
	_ten comm data 02h #00h
	__status comm data 01h #00h
	_rFont_Buf comm data 0ah #00h
	_temp_data comm data 01h #00h
	_rMinute comm data 01h #00h
	_cont_500ms comm data 01h #00h
	_disp_data5 comm data 01h #00h
	_disp_data6 comm data 01h #00h
	_disp_data0 comm data 01h #00h
	_disp_data1 comm data 01h #00h
	_disp_data2 comm data 01h #00h
	_disp_data3 comm data 01h #00h
	_ten_num comm data 02h #00h
	_hun_num comm data 02h #00h
	_display_data comm data 01h #00h
	_disp_data_min comm data 01h #00h
	_disp_data_sec comm data 01h #00h
	_data_num comm data 02h #00h
	_rLcd_Buf comm data 0ah #00h
	_thou_num comm data 02h #00h
	_cont_1min comm data 01h #00h
	_cycle_cnt comm data 01h #00h
	_display_number comm data 01h #00h
	_sadc_dataH comm data 01h #00h
	_sadc_dataL comm data 01h #00h
	_rHour comm data 01h #00h
	_thou comm data 02h #00h
	_tempH comm data 01h #00h
	_tempL comm data 01h #00h
	_adc_data comm data 02h #00h
	_cont_1hour comm data 01h #00h
	_sym_flag comm data 01h #00h
	_cont_1second comm data 01h #00h
	extrn code near : _main

	rseg $$NTABlcd
_Font_Table :
	dw	03fh
	dw	06h
	dw	05bh
	dw	04fh
	dw	066h
	dw	06dh
	dw	07dh
	dw	07h
	dw	07fh
	dw	06fh
	dw	077h
	dw	07ch
	dw	058h
	dw	05eh
	dw	079h
	dw	071h
	dw	00h
	dw	040h

	end

⌨️ 快捷键说明

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