PIC单片机AD转换LED显示程序
;*单片机模拟量进行模/数转换,并用LED显示出来我们可以看到转换
;*结果,0位AD当做8位来用了,利用 单片机 片内硬件资源TMR0和预分频器,
;*为ADC提供定时启动信号,A/D转换的时钟源选用了系统周期的8倍,选
;*用了电源电压VDD和VSS作为基准电压,软件方式查询其中断标志位ADIF.
【PIC单片机AD转换LED显示程序】
;************************************************************
LISTP=16F877;列表伪指令
INCLUDE"P16F877.INC";把包含文件含入源程序
;**************************************************
__CONFIG3F39H;设置配置位中振荡方式为XT,其它全部禁止或关闭
;************************************************************
ORG0000H
NOP;放置一条ICD必段的空操作指令
START
BANKSELPORTC;选择同PORTC寄存器相同的体
CLRFPORTC;清PORTC
MOV LWB’010000001’;选择:时钟时钟源为FOSC/8,允许ADC工作
MOV WFADCON0;通道AN0,暂时不启动转换过程
BANKSELOPTION_REG;选择寄存器OPTION_REG的体为当前体
MOV LWB’10000111’;设定:RB口不用上拉,分频器配给TMR0
MOV WFOPTION_REG;分频比设为1:256
CLRFTRISC;PORTC所有管脚设为输出(接LED)
MOV LWB’00001110’;转换结果左对齐,只选1个A/D通道RA0/AN0
MOV WFADCON1;选择VDD和VSS作参考源
BANKSELPORTC;选中同寄存器PORTC的体为当前体
;---------------------------------
MAIN
BTFSSINTCON,T0IF;等待和循环检测TMR0溢出中断标志位
GOTOMAIN;如果没有发生TMR0溢出中断则返回循环检测
BCFINTCON,T0IF;如果发生了TMR0溢出中断,则清除标志位T0IF
BSFADCON0,GO;开启A/D转换过程
WAIT
BTFSSPIR1,ADIF;等待A/D转换过程结束,检测ADC中断标志位
GOTOWAIT;如果没有转换结束,则返回循环检测
MOV FADRESH,W;如果转换完毕,则把A/D结果读到W
MOV WFPORTC;经过W送C口LED显示
GOTOMAIN;循环进行A/D转换
;---------------------------------
END;源程序结束
推荐阅读
- mcs51单片机计数器工作方式1 计数初值计算与定时编程举例
- AVR单片机—_五、ATMEGA16的USART与PC机串行通信—02
- M50462AP摇控器-PIC解码程序_已测试OK
- stm32 DA 数模转换
- 51单片机测量占空比
- 如何采用电容降压式电源实现交流市电转换为低压直流
- PIC系列单片机的优势
- 单片机中用C语言查表和移位问题
- STC单片机 IAP_EEPROM的使用
- 8031单片机各种算术操作指令简介