《第4章外部接口功能及应用.ppt》由会员分享,可在线阅读,更多相关《第4章外部接口功能及应用.ppt(90页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第4章外部接口功能及应用现在学习的是第1页,共90页 4.1 I/O端口o单片机的性能优劣在很大程度上取决于I/O端口功能的强弱。任何单片机都带有用于信号输入和输出的引脚,差别只是多少而已。nPIC18F248/258RA、RB、RCnPIC18F448/458RA、RB、RC、RD、RE6 6根根3 3根根8 8根根8 8根根8 8根根现在学习的是第2页,共90页o绝大多数I/O引脚具有复用功能,除具备常规的双向输入/输出功能以外,还有各自第二、第三功能的特殊作用o如果某个I/O端口承担相应功能模块的输入/输出或数据通信接口,就不再担任通用I/O端口的功能 4.1 I/O端口现在学习的是第3
2、页,共90页每个端口都对应3个在RAM中统一编址的寄存器:1.端口数据寄存器PORTx PORTA、PORTB、PORTC、PORTD、PORTE2.端口方向控制寄存器TRISx 1 输入 0 输出3.端口输出数据锁存器LATx 从I/O端口输出数据,就是通过PORT端口寄存器 将数据写入数据锁存器现在学习的是第4页,共90页 说明:o对端口进行读写操作的含义n端口寄存器读出的是相应I/O引脚的电平状态n写端口寄存器则是写入其输出数据锁存器n所有写I/O端口的操作都是“读入-修改-写入”操作现在学习的是第5页,共90页 1、RA端口o是一个6位宽双向I/O端口o在基本I/O功能的基础上,复合了
3、A/D转换器的模拟量输入功能、A/D转换器所需的外接参考电压输入功能、TMR0的外部时钟输入功能、MSSP的从动选择信号输入功能等现在学习的是第6页,共90页现在学习的是第7页,共90页 RA对应3个寄存器oPORTA 端口A数据寄存器oLATA 端口A输出数据锁存器oTRISA 端口A方向控制寄存器n1 输入 0 输出现在学习的是第8页,共90页 RA应用实例Main()PORTA=0;清空输出锁存器并初始化 LATA=0;清空输出锁存器 TRISA=0XCF;设置输出和输入 PORTA=0X55;输出数据 while(1);其他代码 现在学习的是第9页,共90页 2、RB端口o8位双向I/
4、On除用作基本I/O之外,每个引脚内部都有一个可编程弱上拉电路。若想让弱上拉电路发挥作用,则必须在端口引脚方向设定为输入的情况下,将/RBPU设置为0现在学习的是第10页,共90页 2、RB端口n高4位RB7-4引脚具有电平变化中断功能,RB2-0具有外部中断输入功能nRB5-7可用作串行编程的控制时钟和数据引脚,RB2和RB3可用作CAN发送/接收引脚现在学习的是第11页,共90页 RB应用实例Main()PORTB=0;清空输出锁存器并初始化 LATB=0;清空输出锁存器 TRISB=0XCF;设置输出和输入 PORTB=0X55;输出数据 while(1);其他代码 现在学习的是第12页
5、,共90页 3、RC端口o也是一个8位双向I/O端口,除了具有普通数字I/O功能外,绝大部分的片内外围模块都复用到该端口上来。nCCP1、TMR1、MSSP、USARTo每条引脚内部都设置了一个施密特触发输入缓冲器,对输入波形起整形作用。现在学习的是第13页,共90页 4、RD端口o只有448和458芯片有此端口o8位双向I/O端口,除了用作基本的数字I/O口外,RD还被复用为并行从动端口的数据输入/输出线。oRD端口还可复用为CCP和ECCP模块PIC单片机原理及应用现在学习的是第14页,共90页 5、RE端口o仅PIC18F448/458芯片有o只有3条引脚的双向I/O端口,除了基本的数字
6、I/O口应用外,RE端口可以被复用为并行从动端口的控制线和模数转换器的模拟信号输入端 现在学习的是第15页,共90页o微芯公司生产的PIC系列各款产品片内全部配备有定时/计数器模块。oPIC18CXXX、PIC18FXXX都配置了4个定时/计数器模块。4.2 定时器/计数器现在学习的是第16页,共90页o如果计数脉冲源自于单片机的内部指令周期,就称之为定时器;o若计数脉冲来自于外部引脚的输入信号,则被称之为计数器。4.2 定时器/计数器现在学习的是第17页,共90页各定时/计数器模块功能及配置情况定时/计数器模块位宽分频器普通功能特别功能TMR08或16预分频器定时/计数通用目的TMR116预
7、分频器定时/计数捕捉/输出比较TMR28预/后分频定时器脉宽调制TMR316预分频器定时/计数捕捉/输出比较现在学习的是第18页,共90页 1、定时/计数器模块TMR0o定时/计数器TMR0是所有PIC单片机都具备的一个标准定时器资源,可以作为一般功能的定时使用;o同时由于它有一个专用的外部触发信号输入端(T0CKI),也可用于一般功能的计数方式。现在学习的是第19页,共90页 TMR0具有以下特性:o是一个8/16位宽的定时/计数器o定时寄存器的当前计数值可读/写o附带一个8位可编程的预分频器o可以选择内部或外部时钟源o具有溢出中断功能o可选择外部时钟信号的触发方式PIC单片机原理及应用现在
8、学习的是第20页,共90页 2、定时/计数器TMR1o在中、高档PIC系列单片机中,还专门设计了一个具有较高性能的16位定时/计数器TMR1模块。o它在性能上有效突破了TMR0的局限。通过TMR1模块,可以很容易构成实时时钟、变频输出,以及实现信号捕捉、比较和频率检测等功能。PIC单片机原理及应用现在学习的是第21页,共90页 TMR1的功能1)作为通用的定时/计数器2)利用内置的低频时基振荡器,可实现实时时钟RTC(Real Time Clock)输出等功能,并可在系统休眠模式下照常实现计数工作。3)能够与CCP模块配合使用,实现输入信号边沿的捕捉和输出信号的比较功能,在频率检测和脉冲宽度测
9、量中得到广泛应用。现在学习的是第22页,共90页 TMR1的特性1)核心是一个16位宽的循环累加寄存器对TMR1H:TMR1L,采用时钟信号上升沿触发的计数方式。2)可用软件方式直接读出或写入TMR1寄存器对的内容。3)带有一个可编程预分频器,可形成4种分频比(1:1,1:2,1:4,1:8),可达到定时/计数的扩展效果。PIC单片机原理及应用现在学习的是第23页,共90页 TMR1的特性4)用于累加计数的信号源可选择内部系统时钟、外部触发信号或自带时基振荡器信号。5)既可工作于定时模式,又可工作于计数模式,还可以用作实时时钟RTC。6)具有溢出中断功能现在学习的是第24页,共90页 TMR1
10、的控制寄存器T1CON位7 6543210功能RD16-T1CKPS1T1CKPS1T1OSCENT1SYNCTMR1CSTMR1ONTMR1CS:时钟源选择位1 选择外部时钟源,计数0 选择内部时钟源,定时TMR1ON:TMR1使能控制位现在学习的是第25页,共90页 TMR1的控制寄存器T1CON位7 6543210功能RD16-T1CKPS1T1CKPS1T1OSCENT1SYNCTMR1CSTMR1ONRD16:16位读写使能位(TMR1H:TMR1L)1:16读写0:2个8位读写T1SYNC:外部输入时钟同步控制1:不同步0:同步现在学习的是第26页,共90页 TMR1的控制寄存器T
11、1CON位7 6543210功能RD16-T1CKPS1T1CKPS1T1OSCENT1SYNCTMR1CSTMR1ONT1CKPS1-T1CKPS1:前分频选择位11:1:8 10:1:401:1:2 00:1:1TMR1ON:TMR1使能控制位现在学习的是第27页,共90页 TMR1使用实例:利用定时器TMER1产生50HZ的方波,晶振4MHZ思路:方波周期T=1/50=20ms;定时10ms取反一次;1:8前分频;指令周期=1us;计数初值=65536-t/(1us x p)=FB1E;现在学习的是第28页,共90页 TMR1使用实例:#include Main()TRISC=0;设置输
12、出 PORTC=0;TICON=0X30;前分频1:8,2次8为读写 TMR1H=0XFB;TMR1L=0X1E;TMR1IE=0;TMR1ON=1;启动 现在学习的是第29页,共90页 TMR1使用实例:while(1)if(TMR1IF=1)TMR1IF=0;if(PORTC=0)PORTC=1;else PORTC=0;取反 TMR1H=0XFB;TMR1L=0X1E;现在学习的是第30页,共90页 TMR1使用实例:利用TMER1对外部脉冲计数,晶振4MHZ思路:采用中断方式;初始值设置为:TMR1H=0XFF TMR1L=0XFF 现在学习的是第31页,共90页 TMR1使用实例:#
13、include Unsigned char count=0;Display(unsigned char count);Viod initial();Interrupt HI_ISR();现在学习的是第32页,共90页 TMR1使用实例:Void initial()TRISC=1;设置输入,对外部引脚计数 PORTC=0;TICON=0X0A;前分频1:1,2次8位读写,计数方式。TMR1H=0XFF;TMR1L=0XFF;TMR1IE=1;使能 TMR1IF=0;现在学习的是第33页,共90页 TMR1使用实例:IPEN=1;开优先级 TMR11P=1;定时器设置为高优先级 GIEH=1;使能
14、高优先级 GIEL=1;现在学习的是第34页,共90页 TMR1使用实例:Interrupt HI_ISR()GIEH=0;if(TMR1IE=1&TMR1IF=1)TMR1IF=0;count+;计数 TMR1H=0XFF;TMR1L=0XFF;GIEH=1;现在学习的是第35页,共90页 TMR1使用实例:Main()initial();TMR1ON=1;启动 While(1)Display(count);显示 .现在学习的是第36页,共90页 4.3 捕捉/比较/PWM(CCP)模块oCCP是英文单词Capture、Compare和PWM的缩写。在PIC单片机中,CCP模块可以任意配置为
15、这三种功能之一。o在PIC18F4X8中,同时配置了CCP/ECCP模块。它们各自都有独立的16位特殊功能寄存器CCPR1/ECCPR1。现在学习的是第37页,共90页 1、CCP模块基本功能(1)输入捕捉:)输入捕捉:是指CCP模块可捕捉外部输入时序脉冲 的上升沿或下降沿,从而产生相应的捕捉中断,适用于测量引脚输入的周期性方波信号的周期、频率和占空比等。现在学习的是第38页,共90页 1、CCP模块基本功能(2)输出比较:)输出比较:n主要是依据标准时序信号的计数比较从引脚上输出不同宽度的矩形正脉冲、负脉冲和延时启动信号等。现在学习的是第39页,共90页 1、CCP模块基本功能(3)PWM功
16、能:功能:n能够从引脚上输出脉冲宽度随时可调的PWM信号,来实现直流电机的变频调速、D/A转换和步进电机的步进控制等。现在学习的是第40页,共90页 2、CCP模块寄存器介绍o一个是CCP模块16位可读/写寄存器CCPR1H:CCPR1L主要用于存放数据参考信息或计数比较信息;o另一个是CCP模块控制寄存器CCP1CON,用于设置CCP模块的工作方式。现在学习的是第41页,共90页o寄存器CCPR1H:CCPR1L,它在3种工作方式下承担的功能:16位捕捉寄存器/16位比较寄存器,也能通过主/从寄存器的设置定义占空比可变的脉宽调制信号输出。o不管CCP模块工作于哪一种模式,都需要用到CCPR1
17、H:CCPR1L寄存器对。因此,任何时候只能有一种模式。2、CCP模块寄存器介绍PIC单片机原理及应用现在学习的是第42页,共90页oDC1B1:DC1B0 PWM占空因数寄存器的低2位,高8位通过CCPR1L设置。n引入低2位补充数据,其目的是为了提高PWM脉宽调制的精度。n该2位定义仅适用于PWM方式,在捕捉和比较方式中未使用。CCP1CON寄存器寄存器现在学习的是第43页,共90页oCCP1M3:CCP1M0 模式选择位o0000 关闭功能o0001 保留o0010 比较模式,若匹配输出翻转o0011 捕获模式,CAN总线数据接收触发o0100 捕获模式,下降沿触发o0101 捕获模式,
18、上升沿触发o0110 捕获模式,四个上升沿触发o0111 捕获模式,十六个上升沿触发CCP1CON寄存器寄存器现在学习的是第44页,共90页oCCP1M3:CCP1M0 模式选择位o1000 比较模式,CCP1置高o1001 比较模式,CCP1置低o1001 比较模式,CCP1电平不变o1001 比较模式,CCPIF置1,计数器复位到0,并启动一次A/D转换。o11XX PWM模式CCP1CON寄存器寄存器现在学习的是第45页,共90页 3、捕捉方式oPIC单片机的输入捕捉功能,就是对外部接口引脚CCP1上输入的脉冲信号上升沿或下降沿进行实时捕捉检测。具 体:o当引脚输入信号发生沿跳变时,CC
19、P的捕捉功能就立即把当时的TMR1/TMR3定时器的16位计数值记录到寄存器CCPR1H:CCPR1L。现在学习的是第46页,共90页 工作原理o当CCP工作于输入捕捉模式,下列事件出现时,TMR1/TMR3中的16位计数值将会立即被复制到CCPR1H:CCPR1L寄存器对中。n出现一个脉冲下降沿n出现一个脉冲上升沿n连续出现4个脉冲上升沿n连续出现16个脉冲上升沿现在学习的是第47页,共90页o捕捉类型将由CCP1M3:CCP1M0控制。当捕捉到一次事件时,CCP1IF标志将被自动置1,可产生中断,但必须用软件清0。o如果前一次捕捉的CCPR1H:CCPR1L时间值还没有被读取又发生了一次捕
20、捉,则原先保存其中的时间值将被覆盖而丢失。工作原理现在学习的是第48页,共90页o为配合CCP模块实现输入捕捉功能,TMR1/TMR3必须工作于定时器模式。o另外,一次事件的捕捉并不会使TMR1的当前计数值复位归0。因此,TMR1还可以作为普通的定时器使用。n在其计数溢出归在其计数溢出归0时依旧可以产生时依旧可以产生TMR1IF中断标志。中断标志。工作原理现在学习的是第49页,共90页 操作过程:1)CCP引脚设定o在捕捉模式下,RC2/CCP1引脚必须由相应的方向控制寄存器TRISC设定为输入方式。现在学习的是第50页,共90页2)TMR1/TMR3工作方式设定 必须配置为定时/同步计数方式
21、,在T3CON寄存器中选择与CCP模块一起工作的定时器:T3ECCP1:T3CCP1 1x 选择TMR3 01 选择TMR3为ECCP服务 00 选择TMR1 操作过程:现在学习的是第51页,共90页3)改变不同的捕捉模式 运行过程中动态改变输入捕捉模式时,在改变捕捉事件前,应该将CCP1IE清0,以免响应不需要的中断。设定好新的捕捉事件后,将CCP1IF清0复位后再恢复使能中断。操作过程:现在学习的是第52页,共90页方波信号周期的测量#includeUnsigned char cpl=0;Unsigned char cph=0;Unsigned char flag=0;应用实例:现在学习的
22、是第53页,共90页main()flag=0;While(1)if(flag=0)TMR1H=0;TMR1L=0;PEIE=1;GIE=1;TRISC=0X04;设置CCP1为输入 T3ECCP1=0;T3CCP1=0;选择定时器1 T1CON=0;1:1 分频 主函数:现在学习的是第54页,共90页 CCP1CON=0X04;捕获方式 上升沿触发 CCP1IE=0;CCP1IF=0;While(CCP1IF=0);Flag=1;捕获到第一个上升沿 TMR1ON=1;开始定时 CCP1IF=0;CCP1IE=1;主函数:现在学习的是第55页,共90页Void interrupt HI_ISR(
23、)中断函数 if(CCP1IF=1)cpl=CCPR1L;cph=CCPR1H;CCPR1CON=0;关闭捕获 TMR1ON=0;关闭定时器1 flag=0;display(cpl,cph);显示子程序 CCP1IF=0;应用实例:现在学习的是第56页,共90页 4、比较工作方式o预置的特定值与TMR1/TMR3计数器的计数值进行比较,当两者数值一致时将给出匹配信号,触发CCP中断标志位。o一般在CCP中断后可及时调整CCP引脚的输出电平。如果实现CCP的连续比较,将能够从引脚上输出不同宽度的矩形脉冲信号、不同的周期频率脉冲以及非周期信号等。PIC单片机原理及应用现在学习的是第57页,共90页
24、 工作原理 当CCP1模块工作在比较方式时:系统将CCP1寄存器中的设定值CCPRIH:CCPRIL与16位TMR1/TMR3寄存器中的计数值进行实时比较。如果16位比较器检测二者数值相等,将给出匹配信号。现在学习的是第58页,共90页匹配输出4种情况:o引脚电平变高 用于驱动外接电路o引脚电平变低 用于驱动外接电路o引脚电平维持原状 内部产生软件中断o引脚电平翻转o引脚电平维持原状 启动A/D究竟是让哪种情况发生,由寄存器CCP1CON的低4位设定。工作原理PIC单片机原理及应用现在学习的是第59页,共90页 在比较模式下,CCP1引脚应该设定为输出,才能在比较相符时从对应引脚上输出特定的电
25、平。当一次比较匹配发生后,都会由硬件自动将中断标志位CCP1IF置1,表示产生了一次CCP1比较器中断。CPU响应中断后,CCP1IF位必须用软件清0。工作原理PIC单片机原理及应用现在学习的是第60页,共90页 利用比较输出的功能,产生一方波信号。说明:配置为引脚电平翻转,半个方波信号周 期翻转一次,预置的比较值为半个方波 周期。比较输出应用实例PIC单片机原理及应用现在学习的是第61页,共90页输出方波信号:#includeUnsigned char cpl=xx;Unsigned char cph=xx;设置比较值 应用实例:现在学习的是第62页,共90页main()T3ECCP1=0;
26、T3CCP1=0;选择定时器1 TMR1H=0;TMR1L=0;TRISC=0X00;设置CCP1为输出 T1CON=0;1:1 分频 PEIE=1;GIE=1;主函数:现在学习的是第63页,共90页 CCP1L=cpl;CCP1H=cph;设置比较值 CCP1CON=0X02;比较模式,匹配输出翻转 CCP1IE=1;CCP1IF=0;TMR1IE=0;TMR1ON=1;开始定时While(1);其他代码 主函数:现在学习的是第64页,共90页Void interrupt HI_ISR()中断函数 GIE=0;if(CCP1IF=1)TIMER1L=0;TMER1H=0;CCP1IF=0;G
27、IE=1;应用实例:现在学习的是第65页,共90页 5、PWM工作方式o在CCP模块中,功能最强大、应用最广泛。oPWMPulse Width Modulation功能可以很方便地从CCP引脚上获得脉冲宽度随时可调的PWM信号。直流电机调速、简易DAC、步进电机的变频控制等现在学习的是第66页,共90页 脉宽调制模式的工作原理oCCP为PWM模式时,CCP1引脚可以输出占空比10位分辨率可调的方波。o所谓占空比是指在一个周期内高电平的宽度。o必须由TMR2配合实现,在这里PR2寄存器负责控制方波的周期,占空比的调整则主要通过CCPR1H:L寄存器实现。现在学习的是第67页,共90页 分析:oP
28、WM模式下TMR2在计数过程中将同步进行两次比较:nTMR2和CCPR1H比较一致将使CCP1引脚输出低电平0;nTMR2和PR2比较一致将使CCP1引脚输出高电平1。PRPR2CCPR1H现在学习的是第68页,共90页 PWM周期oPWM的周期由PR2寄存器决定,TMR2和PR2的比较只是8位的,故此PWM周期调整的分辨率只有8位oPWM波形的周期计算公式:PWM周期=(PR2+1)4ToscTMR2预分频现在学习的是第69页,共90页例如:以4MHz振荡频率工作的单片机需要产生38KHz的方波,取TMR2的预分频为1:1,则有:26.3s=(PR2+1)40.25s1 可得PR2=25,此
29、时输出方波频率误差为1.2%现在学习的是第70页,共90页 PWM占空比oPWM占空比的设定通过对寄存器CCPR1L和CCP1CON总共10位数据写入得到。o其中CCPR1L为高8位(DC1B),CCP1CON为低2位(DC1B)。o在很多应用中,如果只需8位分辨率的占空比调制,则只需简单地设定CCPR1L寄存器,CCP1CON两位固定为00即可。现在学习的是第71页,共90页 PWM占空比o如果以10位分辨率计算,PWM占空比时间的计算公式为:PWM占空比=CCPR1L:CCP1CONToscTMR2预分频n程序在运行过程中可以修改占空比,但修改后并不立即起作用;必须等到当前PWM周期结束,
30、才会将10位的占空比值装入CCPR1H寄存器。现在学习的是第72页,共90页例1 在某单片机应用中,要在RC2/CCP1引脚输出频率为4100Hz的PWM信号,系统时钟为4MHz,TMR2的预分频比是1:1,脉宽占空比为20%PWM周期=(PR2+1)4ToscTMR2分频比代入数据得:PR2=244-1=243=0F3HPWM脉宽=PWM周期1/5=244s/5=48.8s20%20%现在学习的是第73页,共90页o脉宽寄存器CCPR1L的定义数值应为48.8s,只能取48或49,从某种意义上说后者更接近48.8s。但如果考虑低2位补充位,情况就不一样了。o因为系统时钟周期为0.25s,可以
31、调整的数值为48.25、48.5和48.75s,所以取48.75为脉宽数值,显然更接近真正的PWM脉宽。20%20%现在学习的是第74页,共90页 PWM工作模式设定o设定PR2寄存器,决定PWM方波的周期o设定DC1B,决定PWM输出的高电平占空比o将方向控制寄存器TRISC清0,以设定CCP1引脚为输出状态o设定TMR2的预分频系数并通过设定T2CON寄存器启动TMR2工作o配置CCP1模块使其进入PWM工作模式PIC单片机原理及应用现在学习的是第75页,共90页 PWM实例:在某单片机应用中,要在RC2/CCP1引脚输出频率为4KHz的PWM信号,系统时钟为4MHz,TMR2的预分频比是
32、1:1,脉宽占空比为50%分析:PWM周期=(PR2+1)4ToscTMR2分频比 得:PR2=249;CCPR1L=PR2/2;现在学习的是第76页,共90页main()TMR2=0;八位 PEIE=0;关外部中断 PR2=249;设置周期 CCPR1L=PR2/2;设置占空比 TRISC=0X00;设置CCP1为输出 CCP1IE=0;T2CON=0;1:1 分频 PWM实例:现在学习的是第77页,共90页 CCP1CON=0X2C;设置为PWM方式 TMR2ON=1;开始定时 While(1)if(CCP1IF=1)CCP1IF=0;其他代码;主函数:现在学习的是第78页,共90页 4.
33、4 A/D转换器oA/D转换模块:PIC18F2X8单片机提供5个输入通道 PIC18F2X8单片机提供8个输入通道。o片上A/D转换模块可以将输入的模拟信号转换成相应的10位数字信号。其包含ADRESH和ADRESL寄存器。现在学习的是第79页,共90页 A/D转换模块包含4个寄存器:oADRESH寄存器(A/D结果高位寄存器);oADRESL寄存器(A/D结果低位寄存器);oADCON0寄存器(A/D控制寄存器0);oADCON1寄存器(A/D控制寄存器1);现在学习的是第80页,共90页 1.ADCON0寄存器 o ADXS1:ADCS0:A/D转换时钟选择位 与ADCON1的ADCS2
34、 结合,来选择AD转换的时钟。如:000 fosc/2 001 fosc/8 100 fosc/4位7 6543210功能ADCS1ADCS0CHS2CHS1CHS0GO/DONE-ADON现在学习的是第81页,共90页 1.ADCON0寄存器 oCHS2:CHS0:输入模拟信号通道选择位o 000=通道0(AN0);o 001=通道1(AN1);o 010=通道2(AN2);o 011=通道3(AN3);o 100=通道4(AN4);o 101=通道5(AN5);o 110=通道6(AN6);o 111=通道7(AN7);位7 6543210功能ADCS1ADCS0CHS2CHS1CHS0G
35、O/DONE-ADON现在学习的是第82页,共90页 1.ADCON0寄存器 oADON:A/D模块使能位模块使能位 1:A/D转换模块开始工作;0:A/D转换电路停止工作,并且电路没有消耗。位7 6543210功能ADCS1ADCS0CHS2CHS1CHS0GO/DONE-ADON现在学习的是第83页,共90页 1.ADCON0寄存器 oGO/DONE:A/D转换状态位当ADON=1 时:1:A/D转换正在进行;0:未进行A/D转换,或转换结束。o注意:当转换完毕之后此位会自动清零,故若要开始A/D转换需要重新设置此位。位7 6543210功能ADCS1ADCS0CHS2CHS1CHS0GO
36、/DONE-ADON现在学习的是第84页,共90页 2.ADCON1寄存器 oADFM:A/D转换结果格式选择位 1:证明结果右侧正确,ADRESH寄存器的 高6位重要信息为0;0:证明结果左侧正确,ADRESL寄存器的 低6位重要信息为0。位7 6543210功能ADFMADCS2-PCFG3PCFG2PCFG1PCFG0现在学习的是第85页,共90页 2.ADCON1寄存器 oADCS2:A/D转换时钟选择位oBit 5,bit4 未定义,读为0oPCFG3-PCFG0;A/D端口配置控制位 见表3-5位7 6543210功能ADFMADCS2-PCFG3PCFG2PCFG1PCFG0现在
37、学习的是第86页,共90页 3.AD转换的一般步骤(1)配置)配置A/D转换模块:转换模块:o设定模拟管脚,参考电压和数字I/O(ADCON1寄存器);o选择A/D输入通道(ADCON0寄存器);o选择A/D转换时钟(ADCON0寄存器);o使能A/D转换模块(ADCON0寄存器)。现在学习的是第87页,共90页 3.AD转换的一般步骤(2)配置)配置A/D中断:中断:清除ADIF 设定ADIE 设定GIE(3)等待所需要足够长采样时间。)等待所需要足够长采样时间。(4)启动)启动AD转换转换(5)等待转换完成)等待转换完成 查询GO/DONE 等待A/D中断现在学习的是第88页,共90页 3.AD转换的一般步骤(6)读取转换结果,清楚)读取转换结果,清楚ADIF。(7)为下一次转换做准备。一次转换时间)为下一次转换做准备。一次转换时间为为T,则需要等待两个,则需要等待两个T。现在学习的是第89页,共90页 AD转换实例 AN2通道进行直流电压采样,电压范围通道进行直流电压采样,电压范围是是(0-5V),并显示,显示单位,并显示,显示单位mV。分析:分析:A/D转换结果格式选择右对齐转换结果格式选择右对齐 显示电压显示电压=(ADRESH*256+ADRESL)*5000/1024现在学习的是第90页,共90页