;****************
list p=16f877A ; list directive to define processor
#include <p16f877A.inc> ; processor specifIC variable definitions
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;---------------------
COUNTER EQU 20H ;计数寄存器
COUNT1 EQU 21H
COUNT2 EQU 22H
TABADD EQU 23H ;查表地址寄存器
DISPBUF EQU 24H ;显示值暂存
DISPBUF_H EQU 25H ;显示器高位
DISPBUF_L EQU 26H ;显示器低位
BUFFER EQU 27H ;BCD十进制结果存放
BUFFER1 EQU 28H ;BCD转换缓存
SUM EQU 29H ;校正+3缓存
DIGIT EQU 2AH ;数据显示寄存器
HB EQU 2BH ;百位寄存器
;--------------------
ORG 0000H
NOP
GOTO MAIN
ORG 0005H
MAIN
;********************** 初始化程序 *********************************
CLRF PORTA
CLRF PORTC ;初始化IO口
BSF STATUS,RP0 ;设置寄存器体1
MOVLW 0EH ;转换结果左对齐,只选1个A/D通道RA0/AN0
MOVWF ADCON1 ;选择VDD和VSS作参考源
MOVLW 01H ;RA0为模拟输入
MOVWF TRISA ;RA1~5为输出
MOVLW 00H ;RC为LED段输出
MOVWF TRISC
BCF STATUS,RP0 ;恢复寄存器体0
MOVLW 0FFH ;先让数码管全部不显示
MOVWF PORTC
MOVWF PORTA
MOVLW 81H ;选择:时钟时钟源为FOSC/8,允许ADC工作
MOVWF ADCON0 ;通道AN0,暂时不启动转换过程
CLRF DISPBUF ;清显示值
;********************************************************************************
ADC
BSF ADCON0,GO ;开启A/D转换过程
BTFSS PIR1,ADIF ;等待A/D转换过程结束,检测ADC中断标志位
GOTO ADC ;如果没有转换结束,则返回循环检测
MOVF ADRESH,W ;仅取高8位,把A/D结果读到W
本文关键字:暂无联系方式PIC单片机,单片机-工控设备 - PIC单片机
上一篇:PIC选型简单介绍