text1.asm

来自「关于AD转换的51单片机程序 在很多的地方都可以用到」· 汇编 代码 · 共 92 行

ASM
92
字号
;************************************************************
;name :ADC0809的应用
;day  :05.08.08
;功能 : 
;      p2口接0809的数字量输出口
;************************************************************
	start	bit	p0.4	;p3.0接0809的开始选通端口
	oe	bit	p0.5	;p3.1接0809的输出允许控制端
	eoc	bit	p3.2
;---------------------程序开始-----------------------------
	org	0000h
	ajmp	main
main:
	nop
	lcall	proinit
loop:	
	setb	start		;启动A/D转换
	nop
	clr	start
	jnb	eoc,$
	lcall	dat_cov		;数据处理
	lcall	display
	ajmp	main
;---------------------初始化子程序-------------------
proinit:
	mov	30h,#0
	mov	31h,#0
	mov	32h,#0
	mov	33h,#0
	ret
;-----------------送显前的数值转换程序---------------
dat_cov:
	setb	oe		;打开输出允许控制端
	mov	a,p2
	nop
	nop	
	clr	oe
        mov	b,#51
        div	ab		;除以51即是乘以5除以255
	mov	30h,a		;30H中是整数部分

	mov	a,b
	mov	b,#5
	div	ab
	mov	31h,a

	mov	a,b
	mov	b,#2
	mul	ab
	mov	32h,a

	ret 
;---------------------显示程序段-----------------------------	
display:
	mov	dptr,#tab
	mov	a,33h
	movc	a,@a+dptr
	mov	p0,#0feh
	mov	p1,a
	lcall	delay8ms

	mov	a,32h
	movc	a,@a+dptr
	mov	p0,#0fdh
	mov	p1,a
	lcall	delay8ms
	
	mov	a,31h
	movc	a,@a+dptr
	mov	p0,#0fbh
	mov	p1,a
	lcall	delay8ms
	
	mov	a,30h
	movc	a,@a+dptr
	mov	p0,#0f7h
	mov	p1,a
	lcall	delay8ms
	ret
;-----------------------------------------------------------
delay8ms:
	mov	r6,#1
delay1:	mov	r7,#10
	djnz	r7,$
	djnz	r6,delay1
	ret
;--------------------------------------------------------
tab:
	db 40h,79h,24h,30h,19h,12h,02h,78h,00h,10h
;------------------------------------------------------------
	end

⌨️ 快捷键说明

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