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

📄 test.asm

📁 CM320X240LCD的驱动程序
💻 ASM
字号:
AD_DA		bit	P2.3		;ADC的数据线
AD_CS		bit	P2.4		;ADC的/CS线
 AD_CLock	bit	P2.5		;ADC的时钟线

AD_Staly	bit	08h		;标志位

?PR?_AD_Read?_AD_Read 		SEGMENT CODE
 ?PR?AD_temp?_AD_Read           SEGMENT DATA
        PUBLIC AD_Data,AD_Data_h,AD_Data_l,AD_Comp   
        RSEG ?PR?AD_temp?_AD_Read
        AD_Data: DS 1                   ;AD转换的结果存放在此
	AD_Comp: DS 1
      AD_Data_h: DS 1                   ;扫描管子得到的数据,并发往主控CPU显示以调试
      AD_Data_l: DS 1			;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~低8位
	PUBLIC AD_Read
	public _DData_To
	public _DIV16
	RSEG ?PR?_AD_Read?_AD_Read
AD_Read:
	PUSH	acc
        push    psw
	mov	r1,#08h
	mov	a,#00h
	clr	AD_Clock
	clr	AD_CS
	call 	Delay01		;;;延时可以再短一些
AD_Read1:
	rl	a
	setb	AD_Clock
	nop
	jb	AD_DA,AD_Read_h
	sjmp	AD_Read_Next
AD_Read_h:
	setb	acc.0
AD_Read_Next:
	clr	AD_Clock
	djnz	r1,AD_Read1
	mov	AD_Data,a
	mov	r1,#02h
AD_Read3:
	setb	AD_Clock
	nop
	nop
	clr	AD_Clock
	djnz	r1,AD_Read3
	setb	AD_CS
	clr	AD_Clock
        pop     psw
	POP  	acc
	RET
	
;	public	Delay01
;;//========================================================================================//
;;//Program:延时程序
;;//2004年2月2日  小丑于哈工程  Robot实验室
;;//========================================================================================//
Delay01:
	PUSH	acc
	mov	acc,r1
	PUSH	acc
	mov	r1,#0afh
Delay02:
	djnz	r1,Delay02
	POP	acc
	mov	r1,acc
	POP	acc
	ret

;;//========================================================================================//
;;//Program:阵列传感器位处理
;;//InPut:第一个参数(数组的指针)放在r7中,第二个参数(对比数值)放在r5中
;;//Output:AD_Data_l,AD_Data_h
;;//2004年2月2日  小丑于哈工程  Robot实验室		V1。0
;;//04年2月25日做第一次修改     调整16位的数据		V1。1
;;//========================================================================================//
_DData_To:
	push	acc
	push    psw
	mov	a,r7
	mov	r0,a
	mov	r1,#16;
DData_Loop:
	clr	c
	mov	a,AD_Data_l
	rlc	a
	mov	AD_Data_l,a
	mov	a,AD_Data_h
	rlc	a
	mov	AD_Data_h,a
	mov	a,@r0
	cjne	a,AD_Comp,Led_001			;;;;;;;;;??????????#08h暂时用来作为AD转换后黑白线界限值
	sjmp	Led_000
Led_001:
	jnc	Led_high
Led_000:
	mov	a,AD_Data_l
	clr	acc.0
	sjmp	Led_Next
Led_high:
	mov	a,AD_Data_l
	setb	acc.0
Led_Next:
	mov	AD_Data_l,a
	inc	r0
	djnz	r1,DData_Loop
	pop     psw
	pop	acc
	ret

;;十六位除八位子程序   C语言中调用,r7保存结果,r6存放余数
DIV16:
 _DIV16: mov   b,#8
 div161: clr   c
         xch   a,r7
         rlc   a
         xch   a,r7
         xch   a,r6
         rlc   a
         xch   a,r6
         jc    div163
         mov   a,r6
         subb  a,r5
         mov   r6,a
         jnc   div162
         mov   a,r6
         add   a,r5
         mov   r6,a
         djnz  b,div161
         ret
  div163:clr   c
         mov   a,r6
         subb  a,r5
         mov   r6,a
  div162:inc   r7
         djnz  b,div161
         ret
	 end

⌨️ 快捷键说明

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