adc.asm

来自「飞利浦的80C552的AD采集测试程序」· 汇编 代码 · 共 69 行

ASM
69
字号
      ORG 0000H
      LJMP MAIN
      ORG 0053H
      LJMP ADC

ORG 500H
MAIN:  MOV TMOD,#20H    ;定时器T1为方式2
       MOV TL1,#0FDH
       MOV TH1,#0FDH    ;波特率为9600
       SETB TR1         ;启动T1
      
       MOV IEN0,#0C0H
       MOV IP0,#40H
       MOV ADCON,#0FH
       SETB EA          ;开CPU总中断

WAIT:  
       CLR P1.0
       SETB P1.0
       LCALL DELAY1
       CLR P1.0 
       LCALL DELAY1
      
         NOP
         NOP
         NOP
         NOP
         NOP

    
         MOV S0CON,#40H
         MOV R0,#48H         ;发送字符的始址
         MOV R7,#02H         ;发送字符的字节数
         SETB TR1
 
TXD:MOV A,@R0
      MOV S0BUF,A
WAIT1:JNB TI,WAIT1
      CLR TI
      INC R0
      DJNZ R7,TXD

       NOP
       NOP
       AJMP MAIN        

ADC:  CLR EAD
      MOV A,ADCON           ;启动AD
      ANL A,#0C0H
      MOV 48H,A
      MOV A,#00H
      MOV ADCON,A
      MOV A,ADCH
      MOV 49H,A
      RETI




DELAY1: MOV 	R1,#0AH
DEL11:  MOV 	R2,#0FFH
DEL12:  MOV 	R3,#080H
DEL13:  DJNZ 	R3,DEL13 ; 1+[1+(1+2*255+ 2)*255+2]*10+2=0.66S
        DJNZ 	R2,DEL12
        DJNZ 	R1,DEL11
        RET

END

⌨️ 快捷键说明

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