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

📄 ok.dt

📁 HT1621。。 义隆芯片。。显示音频进度。。用了A/D功能。
💻 DT
📖 第 1 页 / 共 2 页
字号:
;FOR LCM 1621
;R1--传递指令码/显示码
;R0--传递地址


;单LCD屏+MPU+双PLL麦克风程序

;芯片为EM78P447SBP
;振荡模式为4MHz晶振
;看门狗关,指令周期为2个CLOCK

;==============寄存器的定义========================
	R0 == 0X00
	TCC == 0X01
	PC == 0X02

	SREG == 0X03
	C==0
	DC==1
	Z==2
	P==3
	T==4
	PS0==5
	PS1==6
	CMPOUT==7

	R4 ==  0X04

	P5 == 0X05
	K1 == 0
	K2 == 1
	K3 == 2
	K4 == 3
	K5 == 4
	DAT== 5
	_WR== 6
	CS == 7

	P6 == 0X06
	AF1==0
	AB1==1
	ANT1==2
	RF1==3
	AB2==4		;无上拉
	AF2==5
	ANT2==6
	RF2==7

	IOCB == 0XB	;下拉控制
	IOCC == 0XC	;漏极开路控制
	IOCD == 0XD	;上拉控制

	R_F == 0XF	;中断状态寄存器
	IOCF== 0XF	;IOW中断屏蔽寄存器

;ADC Contro Registers
	ADDATA == 0XA	;MOV
	ADCONR == 0X9	;MOV
	ADRUN==4
	ADPD==3
	ADIS2==2	;模拟输入选择
	ADIS1==1
	ADIS0==0
	ADCONC == 0XA	;IOW
	VREFS==7	;参考电压,0为工作电压
	CE==6
	COE==5
	IMS2==4		;模拟和数据I/O口选择
	IMS1==3
	IMS0==2
	CKR1==1		;ADC时钟分频数
	CKR0==0
	GCON   == 0X9	;IOW
	OP2E==7		;增溢放大器2,==0时OP2关闭
	OP1E==6
	G22==5		;增溢选择
	G21==4
	G20==3
	G12==2
	G11==1
	G10==0


;============用户寄存器========================================

	TMP	==0XB
	FG	==0XC		;低两位
;	DATA	==0XD
;	==0XE		;低两位
	S1      == 0X10		;通用寄存器
	S2      == 0X11
	S3      == 0X12

	CNT0 	== 0X14
	CNT1	== 0X15
	ADRL	== 0X16
	ADRH	== 0X17
	DATA	== 0X18
	ADDR	== 0X19
	TM1	== 0X1A
	TM2	== 0X1B
;	== 0X1C
;	== 0X1D
;	== 0X1E
;	== 0X1F
;==========================STAR0===============================
	ORG	0
	JMP	INITIAL
	ORG	1		;软件中断地址
	RETI
	ORG	8		;硬件中断地址
	RETI
	ORG	10
;---------------------------------------------
CODEB:		;七段LED数据,高低字节分别对应LED的两个部分
	ADD	PC, A
	RETL 	@0XEB		;0
	RETL 	@0X0A		;1
	RETL 	@0XAD		;2
	RETL 	@0X8F		;3
	RETL 	@0X4E		;4
	RETL 	@0XC7		;5
	RETL 	@0XE7		;6
	RETL 	@0X8A		;7
	RETL 	@0XEF		;8
	RETL 	@0XCF		;9
;----------------------------------------------
INITB:
	ADD	PC,A		;高------低	     地址
	RETL 	@0X0E		;1A,1F,1E,R3	     ;0
	RETL 	@0X0B		;1B,1G,1C,1D	     ;1
	RETL 	@0X0E		;2A,2F,2E,R2	     ;2
	RETL 	@0X0B		;2B,2G,2C,2D	     ;3
	RETL 	@0X0E		;3A,3F,3E,R1	     ;4
	RETL 	@0X0B		;3B,3G,3C,3D	     ;5
	RETL 	@0X0F		;4A,4F,4E,P1	     ;6
	RETL 	@0X0B		;4B,4G,4C,4D	     ;7
	RETL 	@0X08		;I,U7,U6,U5 	     ;8
	RETL 	@0X00		;U4,U3,U2,U1	     ;9
	RETL 	@0X00		;S4,S3,S2,S1	     ;10
	RETL 	@0X00		;\,S7,S6,S5 	     ;11
	RETL 	@0X0E		;5A,5F,5E,R10        ;12
	RETL 	@0X0B		;5B,5G,5C,5D	     ;13
	RETL 	@0X0E		;6A,6F,6E,R9	     ;14
	RETL 	@0X0B		;6B,6G,6C,6D	     ;15
	RETL 	@0X0E		;7A,7F,7E,R8	     ;16
	RETL 	@0X0B		;7B,7G,7C,7D	     ;17
	RETL 	@0X0F		;8A,8F,8E,P2	     ;18
	RETL 	@0X0B		;8B,8G,8C,8D	     ;19
	RETL 	@0X08		;II,R13,R12,R1	     ;20
	RETL 	@0X08		;R14,T7,T6,T5 	     ;21
	RETL 	@0X00		;T4,T3,T2,T1  	     ;22
	RETL 	@0X00		;V4,V3,V2,V1  	     ;23
	RETL 	@0X01		;V5,V6,V7,R16 	     ;24
	RETL 	@0X01		;R4,R5,R6,R7  	     ;25
;----------------------------------------------
FREQI:
	ADD	PC,A
	RETL 	@0X47		;0	;第三位数=0,25,50,75无显示
	RETL 	@0X90                   ;第三位数=1,25显示,50,75无显示
	RETL 	@0X00                   ;第三位数=2,50显示,25,75无显示
	RETL 	@0X49		;0      ;第三位数=3,75显示,25,50无显示
	RETL 	@0X44
	RETL 	@0X00
	RETL 	@0X47		;1
	RETL 	@0X98
	RETL 	@0X00
	RETL 	@0X49		;1
	RETL 	@0X50
	RETL 	@0X00
	RETL 	@0X48		;2
	RETL 	@0X08
	RETL 	@0X00
	RETL 	@0X49		;2
	RETL 	@0X67
	RETL 	@0X00
	RETL 	@0X48		;3
	RETL 	@0X20
	RETL 	@0X00
	RETL 	@0X49		;3
	RETL 	@0X78
	RETL 	@0X00
	RETL 	@0X48		;4
	RETL 	@0X34
	RETL 	@0X00
	RETL 	@0X49		;4
	RETL 	@0X97
	RETL 	@0X00
	RETL 	@0X48		;5
	RETL 	@0X54
	RETL 	@0X00
	RETL 	@0X50		;5
	RETL 	@0X10
	RETL 	@0X00
	RETL 	@0X49		;6
	RETL 	@0X34
	RETL 	@0X00
	RETL 	@0X50		;6
	RETL 	@0X90
	RETL 	@0X00
	RETL 	@0X49		;7
	RETL 	@0X14
	RETL 	@0X00
	RETL 	@0X50		;7
	RETL 	@0X77
	RETL 	@0X00
	RETL 	@0X49		;8
	RETL 	@0X00
	RETL 	@0X00
	RETL 	@0X50		;8
	RETL 	@0X58
	RETL 	@0X00
	RETL 	@0X48		;9
	RETL 	@0X88
	RETL 	@0X00
	RETL 	@0X50		;9
	RETL 	@0X47
	RETL 	@0X00
	RETL 	@0X48		;10
	RETL 	@0X78
	RETL 	@0X00
	RETL 	@0X50		;10
	RETL 	@0X30
	RETL 	@0X00
	RETL 	@0X48		;11
	RETL 	@0X70
	RETL 	@0X00
	RETL 	@0X50		;11
	RETL 	@0X24
	RETL 	@0X00
	RETL 	@0X79		;12
	RETL 	@0X53
	RETL 	@0X00
	RETL 	@0X79		;12
	RETL 	@0X98
	RETL 	@0X00
	RETL 	@0X79		;13
	RETL 	@0X58
	RETL 	@0X00
	RETL 	@0X79		;13
	RETL 	@0X88
	RETL 	@0X00
	RETL 	@0X79		;14
	RETL 	@0X64
	RETL 	@0X00
	RETL 	@0X80		;14
	RETL 	@0X10
	RETL 	@0X00
	RETL 	@0X79		;15
	RETL 	@0X71
	RETL 	@0X00
	RETL 	@0X80		;15
	RETL 	@0X30
	RETL 	@0X00
	RETL 	@0X79		;16
	RETL 	@0X41
	RETL 	@0X00
	RETL 	@0X80		;16
	RETL 	@0X26
	RETL 	@0X00
	RETL 	@0X70		;17
	RETL 	@0X22
	RETL 	@0X00
	RETL 	@0X71		;17
	RETL 	@0X70
	RETL 	@0X02
	RETL 	@0X70		;18
	RETL 	@0X42
	RETL 	@0X00
	RETL 	@0X72		;18
	RETL 	@0X08
	RETL 	@0X00
	RETL 	@0X70		;19
	RETL 	@0X72
	RETL 	@0X00
	RETL 	@0X72		;19
	RETL 	@0X20
	RETL 	@0X01
	RETL 	@0X70		;20
	RETL 	@0X94
	RETL 	@0X01
	RETL 	@0X72		;20
	RETL 	@0X42
	RETL 	@0X02
	RETL 	@0X70		;21
	RETL 	@0X37
	RETL 	@0X02
	RETL 	@0X71		;21
	RETL 	@0X85
	RETL 	@0X03
	RETL 	@0X70		;22
	RETL 	@0X59
	RETL 	@0X03
	RETL 	@0X71		;22
	RETL 	@0X43
	RETL 	@0X01
	RETL 	@0X70		;23
	RETL 	@0X88
	RETL 	@0X02
	RETL 	@0X72		;23
	RETL 	@0X38
	RETL 	@0X00
	RETL 	@0X70		;24
	RETL 	@0X56
	RETL 	@0X02
	RETL 	@0X72		;24
	RETL 	@0X06
	RETL 	@0X00
	RETL 	@0X70		;25
	RETL 	@0X86
	RETL 	@0X02
	RETL 	@0X72		;25
	RETL 	@0X22
	RETL 	@0X02
	RETL 	@0X71		;26
	RETL 	@0X08
	RETL 	@0X03
	RETL 	@0X72		;26
	RETL 	@0X34
	RETL 	@0X03
	RETL 	@0X20		;27
        RETL 	@0X23
        RETL 	@0X00
        RETL 	@0X22		;27
        RETL 	@0X20
        RETL 	@0X00
        RETL 	@0X20		;28
        RETL 	@0X36
        RETL 	@0X00
        RETL 	@0X22		;28
        RETL 	@0X40
        RETL 	@0X00
        RETL 	@0X20		;29
        RETL 	@0X44
        RETL 	@0X00
        RETL 	@0X22		;29
        RETL 	@0X24
        RETL 	@0X00
        RETL 	@0X20		;30
        RETL 	@0X18
        RETL 	@0X00
        RETL 	@0X22		;30
        RETL 	@0X52
        RETL 	@0X00
        RETL 	@0X20		;31
        RETL 	@0X23
	RETL 	@0X00
        RETL 	@0X22		;31
        RETL 	@0X62
        RETL 	@0X00
;----------------------------------------------
;========================HT1621================
CLRALL:
	CLR	ADDR
	CLR	DATA
LPL:
	CALL	INDAT
	INC	ADDR
	MOV	A,@0X1A
	XOR	A,ADDR
	JBS	SREG,Z
	JMP	LPL
	RET
;===============================================
DISALL:
	CLR	ADDR
	MOV	A,@0X0F
	MOV	DATA,A
LPH:	
	CALL	INDAT
	INC	ADDR
	MOV	A,@0X1A
	XOR	A,ADDR
	JBS	SREG,Z
	JMP	LPH
	RET
;===============================================
INCOM:
	BC	P5,CS
	NOP
	MOV	A,@0X03
	MOV	S1,A
	MOV	A,@0X80
	MOV	TMP,A
SPT1:
	NOP
	NOP
	RLC	TMP
	JBS	SREG,C
	JMP	ST0
	BS	P5,DAT
	JMP	SWT0
ST0:	BC	P5,DAT
SWT0:	NOP
	BC	P5,_WR
	NOP
	NOP
	NOP
	BS	P5,_WR
	NOP
	NOP
	DJZ	S1
	JMP	SPT1
	MOV	A,@0X09
	MOV	S1,A
SPT2:	RLC	DATA
	JBS	SREG,C
	JMP	ST1
	BS	P5,DAT
	JMP	SWT1
ST1:	BC	P5,DAT
SWT1:	NOP
	BC	P5,_WR
	NOP
	BS	P5,_WR
	NOP
	DJZ	S1
	JMP	SPT2
	BS	P5,CS
	RET
;===============================================
INDAT:
	BC	P5,CS
	NOP
	MOV	A,@0X03
	MOV	S1,A
	MOV	A,@0XA0
	MOV	TMP,A
SPP1:
	RLC	TMP
	JBS	SREG,C
	JMP	SB0
	BS	P5,DAT
	JMP	SWR0
SB0:	BC	P5,DAT
SWR0:	CALL	DELAY
	BC	P5,_WR
	CALL	DELAY
	BS	P5,_WR
	CALL	DELAY
	DJZ	S1
	JMP	SPP1
	MOV	A,ADDR
	MOV	TMP,A
	RLC	TMP		;ADDRESS(FROM 0-31)
	RLC	TMP
	MOV	A,@0X06
	MOV	S1,A
SPP2:
	RLC	TMP
	JBS	SREG,C
	JMP	SB1
	BS	P5,DAT
	JMP	SWR1
SB1:	BC	P5,DAT
SWR1:	CALL	DELAY
	BC	P5,_WR
	CALL	DELAY
	BS	P5,_WR
	CALL	DELAY
	DJZ	S1
	JMP	SPP2
	MOV	A,DATA
	MOV	TMP,A
	RLC	TMP
	RLC	TMP
	RLC	TMP
	RLC	TMP
	MOV	A,@0X04
	MOV	S1,A
SPP3:
	RLC	TMP
	JBS	SREG,C
	JMP	SB2
	BS	P5,DAT
	JMP	SWR2
SB2:	BC	P5,DAT
SWR2:	CALL	DELAY
	BC	P5,_WR
	CALL	DELAY
	BS	P5,_WR
	CALL	DELAY
	DJZ	S1
	JMP	SPP3
	NOP
	BS	P5,CS
	RET
;==============================================================
DELAY5MS:			;延时5mS
	MOV	A, @10
	MOV	CNT0, A
P0_DLY:
	NOP
	MOV	A, @199
	MOV	CNT1, A
P0_LP:
	NOP
	NOP
	NOP
	DJZ	CNT1		;5 X 199 (LP_CNT1 = 199) = 995
	JMP	P0_LP		;5  +  995(P0_LP所有的指令) = 1000
	DJZ	CNT0		;1000 X 10 (LP_CNT0 = 2) = 10000
	JMP	P0_DLY		;10000 + 1 (CALL)+ 1(RET) + 2(2MOV) + 1(CALL) = 10005
	RET			;10005 * 0.5 = 5.0025(mS)
;===============================================================
DELAY6US:			;延时6uS
	MOV	A,@10
	MOV	CNT0,A
DELAY_LOOP:
	DJZ	CNT0
	JMP	DELAY_LOOP
	RET
;===============================================================
DELAY:			;延时6uS
	MOV	A,@10
	MOV	CNT0,A
DEL:
	DJZ	CNT0
	JMP	DEL
	RET
;---------------------------------------------------------
INITIAL:
	MOV	A,@0B10111011	;ANT1,ANT2内部接下接
	IOW	IOCB
	MOV	A,@0B11111111
	IOW	IOCC
	MOV	A,@0B11111111	;AB1,AB2内部不接上拉,要外接
	IOW	IOCD
	MOV	A,@0B00011111
	IOW	P5
	MOV	A,@0B11111111
	IOW	P6
	DISI
INI1621:
	MOV	A,@0X01		;SYS EN
	MOV	DATA,A
	CALL	INCOM
	MOV	A,@0X18		;RC 256K
	MOV	DATA,A
	CALL	INCOM
	MOV	A,@0X03
	MOV	DATA,A
	CALL	INCOM
	MOV	A,@0X29		;BIAS 1/3(USE COM0-COM3)
	MOV	DATA,A
	CALL	INCOM

	CALL	DISALL		;开显示
W1S:	MOV	A,@0XC8		;延时1S
	MOV	S1,A
WW:	CALL	DELAY5MS
	DJZ	S1
	JMP	WW
	NOP
	CALL	CLRALL		;关显示

	MOV	A,@0X20		;显示数据起始位置
	MOV	R4,A
	MOV	A,@0X00
	MOV	ADDR,A
INILCD:
	NOP
	NOP
	NOP
	MOV	A,ADDR
	CALL	INITB
	MOV	R0,A
	MOV	DATA,A
	CALL	INDAT
	INC	R4
	INC	ADDR
	MOV	A,ADDR
	XOR	A,@0X1A
	JBS	SREG,Z
	JMP	INILCD
WHILE:
	MOV	A,P5		;检测K1-K5(0-31)
	AND	A,@0X1F
	MOV	TM1,A
	XOR	A,TM2
	JBC	SREG,Z
	JMP	CH_ANT1
	MOV	A,TM1
	MOV	TM2,A
	BC	SREG,C
	RLC	TM1
	RLC	TM1
	ADD	TM1,A
	ADD	TM1,A		;开关量乘以6
	MOV	A,TM1
	CALL	FREQI
	MOV	S2,A
	SWAPA	S2
	AND	A,@0X0F
	CALL	CODEB
	MOV	S3,A
	SWAPA	S3
	AND	A,@0X0F
	MOV	0X20,A
	MOV	DATA,A
	MOV	A,@0X0		;LED1
	MOV	ADDR,A
	CALL	INDAT
	MOV	A,S3
	AND	A,@0X0F 
	MOV	DATA,A
	INC	ADDR
	CALL	INDAT
	MOV	A,S2
	AND	A,@0X0F
	CALL	CODEB
	MOV	S3,A
	SWAPA	S3
	AND	A,@0X0F
	MOV	0X22,A
	MOV	DATA,A
	INC	ADDR		;LED2
	CALL	INDAT
	MOV	A,S3
	AND	A,@0X0F
	MOV	DATA,A
	INC	ADDR
	CALL	INDAT
;-------------------------
	INC	TM1
	MOV	A,TM1
	CALL	FREQI
	MOV	S2,A
	SWAPA	S2
	AND	A,@0X0F
	CALL	CODEB
	MOV	S3,A
	SWAPA	S3
	AND	A,@0X0F
	MOV	0X24,A
	MOV	DATA,A
	INC	ADDR		;LED3
	CALL	INDAT
	MOV	A,S3
	AND	A,@0X0F
	MOV	DATA,A
	INC	ADDR
	CALL	INDAT
	MOV	A,S2
	AND	A,@0X0F
	CALL	CODEB
	MOV	S3,A
	SWAPA	S3
	AND	A,@0X0F
	OR	A,@0X01
	MOV	DATA,A
	INC	ADDR		;LED4
	CALL	INDAT
	MOV	A,S3
	AND	A,@0X0F
	MOV	DATA,A
	INC	ADDR
	CALL	INDAT
;-----------------
	INC	TM1
	MOV	A,TM1
	CALL	FREQI
	AND	A,@0X0F
	MOV	S3,A
	JBS	SREG,Z
	JMP	S25
;	MOV	A,0X24
;	AND	A,@0X0E		;R1=0
;	MOV	0X24,A
;	MOV	A,0X22
;	AND	A,@0X0E		;R2=0
;	MOV	0X22,A

⌨️ 快捷键说明

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