51单片机AD转换代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OE EQU P1.0//给特定的符号名赋值

EOC EQU P1.1

ST EQU P1.2

CLK EQU P1.3

SHU EQU 30H

TEMP EQU 31H

ORG 0000H ;起始指令

AJMP MAIN

ORG 000BH

CPL CLK ;i这是在定时器中翻转CLK,也就是给ADC提供时钟。

RETI

ORG 0100H

MAIN:

MOV SP,#60H ;这个是设置堆栈的位置,否则默认的堆栈肯定会被冲掉

MOV TMOD,#02H ;设置T0工作于外启动,定时,方式2

MOV TH0,#14H

MOV TL0,#00H ;给定时器赋初值,X=M-T/Tm

MOV IE,#82H ;IE初始化

SETB TR0 ; 启动定时器T0

MOV A,#3FH

MOV P1,A ;选通模拟量输入通道3

MOV SHU,#0

SCAN:

CLR ST

SETB ST

CLR ST ;人为地在ST引脚上产生脉冲,给ADC一个开始脉冲,告诉它启动AD 转化

M0: JNB EOC,M0 ;EOC是AD转换结束的标志,可作为转换结束中断的请求信号SETB OE ; OE是数字量输出允许信号输入,高电平有效

MOV A,#0FFH

MOV P3,A

M1: MOV A,P3

MOV SHU,A ;把转换出来的数给SHU

LCALL CHANGE

LCALL DISP

CLR OE ;使能ADC,让它能够工作,看来这个ADC是低电平使能

AJMP SCAN

DISP:

MOV R0,#TEMP

MOV R2,#00H

DISP1:MOV A,R2

MOV DPTR,#TAB1

MOVC A,@A+DPTR

MOV P2,A ;把选通的那一个管的数给P2口

MOV A,@R0

MOV DPTR,#TAB

MOVC A,@A+DPTR ;取字符

MOV P0,A ;A就输出

MOV R5,#5

ACALL DELAY

INC R0

INC R2

CJNE R2,#3,DISP1 ;扫描显示

MOV P0,#00H

RET

CHANGE: ;把数字分成百、十和个位

MOV A,SHU

MOV B,#100

DIV AB

MOV TEMP,A

MOV A,B

MOV B,#10

DIV AB

MOV TEMP+1,A

MOV TEMP+2,B

RET

DELAY: ;延时

MOV R6,#1

DELAY0:

MOV R7,#100

DJNZ R7,$

DJNZ R6,DELAY0

DJNZ R5,DELAY

RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;字形码表TAB1: DB 0FDH,0FBH,0F7H ;选通数吗管的通道

END

相关文档
最新文档