star 发表于 2012-8-21 17:20:48

877AD转换的程序ZHUAN

程序功能是RAO口检测模拟电压输入,经过AD转化后在RC口直接输出二进制结果!
;===============================================
LIST P=16F877A, R=DEC;
#INCLUDE <P16F877A.INC>
;===========================================
            ORG      0X0
               NOP                              ;ICD调试必须一条NOP
START      
      BCF             STATUS,RP0       ;体选
      CLRF         PORTC
      MOVLW       B'01000001'      ;D7 D6=01 AD转换时钟频率= FOSC/8
      MOVWF       ADCON0             ;D5 D4 D3=000 AD转换模拟通道选择RA0/AN0
                                                      ;D2=0 AD已完成或未进行AD D0=0关闭ADC
      BSF             STATUS,RP0      ;体选

      MOVLW       B'10000111'         ;D7=1取消上拉,D6=0 INT下降沿触发,
      MOVWF       OPTION_REG      ;D5=0 TOCK1使用内部时钟 D4=0 TOCK1 上升沿增量
                                                         ;D3=0用于TMR0D2 D1 D0=1 TMR0 1:256分频
      CLRF          TRISC
      MOVLW      B'00001110'         ;D3 D2 D1 D0 1110选择RA0为模拟口。
      MOVWF       ADCON1            ;D7=0左对齐 ADRESL的低六位读作0
      BCF             STATUS,RP0       ;体选


AD_MAIN
      BTFSS      INTCON,T0IF      ;等待TMR0 定时溢出中断
      GOTO      AD_MAIN                ;否,返回再等待
      BCF         INTCON,T0IF         ; 是,清TMR0 定时溢出标志
      BSF         ADCON0,GO            ;开启A/D
WAIT
      BTFSS      PIR1,ADIF         ;等待A/D完成
      GOTO      WAIT                   ;否,返回再等待
      MOVF         ADRESH,W          ;A/D值从ADRESH送到W
      MOVWF      portc                  ;A/D值从PORTC口输出显示      
      
      GOTO      AD_MAIN
      END
页: [1]
查看完整版本: 877AD转换的程序ZHUAN