PIC16F877A电压采集.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PIC16F877A电压采集

;数码管点亮实验 ;所用资源 ;1、trm0定时器,为保证采样精度,提供延时 ;2,porta端口,pa。1到pa。4作为数码管的位选 ;3,portc端口,作为7段共阴极的段信号,其中rc7作为小数点 ;3、本例的软件设计思路:利用单片机片内硬件资源TMR0和预分频器,为ADC提供定时 ;启动信号。但是 ;没有利用其中断功能,而是采用了软件查询方式,转换结果采用了右对齐方式, ;A/D转换的时钟源选用了系统周期的8倍,本例对于ADC的电压基准要求不高, ;我们就选用了电源电压VDD和VSS作为基准电压, ;4、对于A/D转换过程是否完成也没有利用ADC模块的中断功能,而是以软件方式查询其;中启动位GO是否为0。本例中选用的模拟通道为AN0。 5,片选端口用ra口的1/2/3/4/5控制74ls273的端口 ?? LIST????? P=16F877A ?? INCLUDE?? P16F877A.INC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ?CBLOCK?? 0X20 DISBUF?? ;EQU? 20H?????? ;显示缓冲区20,21,22,23 LEDTEMP? ;EQU? 29H VREVH??? ;EQU? 2AH VREVL??? ;EQU? 2BH SOUH???? ;EQU? 40H??????? ;子程序入口高位 SOU????? ;EQU? 41H??????? ;子程序入口低位 RLTH???? ;EQU? 42H??????? ;子程序入口高位 RLT????? ;EQU? 43H??????? ;子程序入口低位 CNT????? ;EQU? 44H??????? ;子程序应用寄存器 TEMP1??? ;EQU? 45H TEMP2??? ;EQU? 46H TEMP3??? ;EQU? 47H TEMP4??? ;EQU? 48H TEMP5??? ;EQU? 49H TEMP6??? ;EQU? 4AH TEMP7??? ;EQU? 4BH TEMP8??? ;EQU? 4CH ?ENDC ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ??? ORG??? 0000H ??? NOP ??? GOTO?? START ??? ORG??? 0005H START: ??? CLRF??? PORTA ??? CLRF??? PORTC ??? BCF???? STATUS,RP0?? ;恢复寄存器体0? ??? MOVLW?? 00H???????? ;先让数码管全部不显示 ??? MOVWF?? PORTC ??? BANKSEL TRISA ??? MOVLW?? 01H ??? MOVWF?? TRISA??????? ;porta口,除第一个为输入,其它的为输出 ??? MOVLW?? 00H ??? MOVWF?? TRISC ??? MOVLW?? 87H????????? ;预分频器给trm0,且分品比为1:256 ??? MOVWF?? OPTION_REG ??? CLRF??? STATUS ??? MOVLW?? 0Xa0 ??? MOVWF?? TMR0 ;;;;;;;;;;;;;ADC初始化 ATOD: ??? BANKSEL? ADCON1 ??? MOVLW??? 8EH???????? ;A转换结果右对齐,除RA0口外,其它为普通数字口 ??? MOVWF??? ADCON1 ??? CLRF???? STATUS ??? MOVLW??? 41H???????? ;时钟频率为内部时钟的1、8,an0通道允许ADC工作 ??? MOVWF??? ADCON0 ;;;;;;;;;;;;;; ??? MOVLW??? 00H????????? ;初始化寄存器 ??? MOVWF??? DISBUF ??? MOVWF??? DISBUF+1 ??? MOVWF??? DISBUF+2 ??? MOVWF??? DISBUF+3 ??? CLRF???? STATUS ??? BTFSS??? INTCON,T0IF?? ;等待&循环检测tmr0溢出中断标志 ??? GOTO???? $-1 ??? BCF????? INTCON,T0IF ??? MOVLW??? 0Xa0 ??? MOVWF??? TMR0 ??? BSF????? ADCON0,GO ADWAIT: ??? BTFSC??? ADCON0,GO? ??? GOTO???? ADWAIT ??? BANKSEL? ADRESH ??? MOVF???? ADRESH,W?????? ;读电压值高两位 ??? CLRF???? STATUS ??? MO

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档