ADuC812单片机原理及应用.ppt
ADuC812单片机原理及应用,东南大学电工电子实验中心赵良法 Tel:3792790Email:zlf_,ADuC812单片机,主要性能特点ADuC812是全集成的12位数据采集系统。它在单个芯片内,把高性能8位MCU(兼容8052)、可重复编程的非易失性FLASH程序存储器、高性能的自校准多通道ADC和2个12位DAC等融于一体。芯片融合了所有的从属功能以完全支持可编程数据采集核心。这些从属功能包括用户FLASH存储器、监视定时器(WDT)、电源监视器(PSM)和多种符合工业标准的并行、串行接口。MCU内核和模拟转换器二者均有正常、空闲及掉电工作模式,提供了适合于低功率应用的、灵活的电源管理方案。,ADuC812单片机,模拟 I/O8通道,高精度12位ADC片内40ppm/电压基准每秒200K高速抽样高速ADC至RAM的DMA控制器2个12位电压输出DAC片内温度传感器,主要功能,ADuC812单片机,存储器8KB片内FLASH/EE程序存储器640B片内FLASH/EE数据存储器256B片内数据RAM16MB外部数据地址空间64KB外部程序地址空间,主要功能,ADuC812单片机,与8051兼容内核12MHz额定工作频率(最大16MHz)3个16位定时/计数器32条可编程的I/O线大电流驱动能力端口39个中断源,2个优先级,主要功能,ADuC812单片机,电源用 3V和5V电压工作正常,空闲和掉电模式 片内外围设备UART串行接口I/O与I2C兼容的串行接口和SPI串行接口看门狗定时器电源监视器,主要功能,ADuC812单片机,功能方块图,ADuC812单片机,引脚排列,ADuC812单片机,引脚说明,ADuC812单片机,引脚说明,ADuC812单片机,引脚说明,ADuC812单片机,引脚说明,ADuC812单片机,引脚说明,ADuC812单片机系统的扩展,存储器组织和所有8052兼容器件一样,ADuC812程序存储器和数据存储器有独立的寻址空间。附加的640B FLASH数据存储器供用户使用,可通过一组映射在特殊功能寄存器SFR范围的控制寄存器间接访问。SFR映射到内部数据存储空间的高128B,仅通过直接寻址来访问(地址为X0H或X8H的SFR可位寻址),并提供CPU和所有片上外设间的接口。256B的内部数据存储器为用户提供了灵活、高效的数据存储空间,具有直接寻址、间接寻址及位寻址等多种寻址方式。,ADuC812单片机系统的扩展,存储器映像,程序存储器空间,ADuC812单片机系统的扩展,存储器映像,数据存储器空间,ADuC812单片机系统的扩展,存储器映像,内部数据存储器的低128B,ADuC812单片机系统的扩展,存储器映像,ADuC812经SFR访问模式,ADuC812单片机系统的扩展,存储器映像,SFR的128B,ADuC812单片机系统的扩展,片内FLASH程序存储器典型应用作为ADuC812可寻址64k程序存储器的低8k空间,用于存放用户代码。用于系统自检时存放自检程序代码,正常运行时不占用程序寻址空间(EA接地)。两种模式编程串行下载(在线编程)作为内嵌下载/调试核心的一部分,ADuC812便于通过标准UART串行接口实现串行代码下载。若引脚PSEN被外部电阻拉低,系统上电时自动进入串行下载模式。并行编程与常规的第3方FLASH/EEPROM 器件编程器完全兼容。编程电压(12V)由片内充电泵产生。,ADuC812单片机系统的扩展,片内FLASH数据存储器控制和配置用户FLASH/EE数据存储阵列有640B,被配置成160(00H到页9FH)页,每页4B。和其它用户外围设备一样,通过映射在SFR空间的一组寄存器与此存储空间相接。四个数据寄存器组(EDATA1-4)用于保存刚被访问的4B页数据。EADRL用于保存被访问页的8位地址。ECON是一个8位控制寄存器,它可写入5个FLASH/EE存储器访问命令之一,以便使能各种读、写、擦除和校验功能。,ADuC812单片机系统的扩展,片内FLASH数据存储器,控制和配置,ADuC812单片机系统的扩展,片内FLASH数据存储器,控制和配置,ADuC812单片机系统的扩展,片内FLASH数据存储器编程一个字节只有在FLASH/EE阵列已预先被擦除时,才能被编程(被编程字节已保持FFH)。根据FLASH/EE的构造,擦除操作必须发生在页级别,即最少擦除4个字节(1页)。当用户仅请求修改页中的一个字节时,先要读取整个页,以便擦除该页时不丢失已存在的数据。字节编程实例,ADuC812单片机系统的扩展,片内FLASH数据存储器典型编程/擦除时间擦除全部阵列(640字节)20ms擦除单个页(4字节)20ms编程页(4字节)250s读取页(4字节)在单个指令周期内FLASH/EE擦除和编程定时由主频时钟派生出来。当使用11.0592MHz的主时钟频率时,不需要把它写到ETIM寄存器。当在其它主时钟频率(fCLK)下工作时,必须改变ETIM的值以避免降低数据FLASH/EE持续性和保持力。,ADuC812单片机系统的扩展,单片机最小应用系统电源ADuC812维持运行的电源电压范围是2.7V5.25V。只有保证提供的电源电压不超出3V或5V的10%,才能保证器件达到额定性能。将模拟和数字电源引脚(分别为AVDD和DVDD)分离,可使AVDD不受DVDD噪声的干扰。虽然可以用各自独立的电源驱动AVDD和DVDD,但应保证它们之间的电压差不能超过0.3V,以避免损坏芯片。因此,建议AVDD和DVDD不是直接相连的情况下,在它们之间连接反向相叠的肖特基二极管。,ADuC812单片机系统的扩展,单片机最小应用系统电源,采用两个独立电源供电的处理措施,ADuC812单片机系统的扩展,单片机最小应用系统电源,采用一个电源供电时的处理措施,ADuC812单片机系统的扩展,单片机最小应用系统系统时钟当时钟频率少于400KHz时,片内ADC不能正常工作。因此,应保证系统时钟的工作范围在400KHz16MHz。,使用片内时钟振荡器的时钟电路,ADuC812单片机系统的扩展,单片机最小应用系统系统时钟,使用片外时钟源的时钟电路,ADuC812单片机系统的扩展,单片机最小应用系统复位ADuC812需要外部POR(上电复位)电路。在电源电压低于2.5V时,要使RESET引脚保持高电平;而且,VDD电压高于2.5V时,RESET引脚保持低电平至少10ms。外部POR电路必须在低至1.2V甚更低的电压下工作。采用专门的 POR芯片能够很好地满足上述要求。如ADI公司的ADM181X系列复位芯片、MAXIM公司的MAX813等。可增加手动复位功能,便于调试。,ADuC812单片机系统的扩展,单片机最小应用系统复位,高电平有效复位芯片的复位电路,ADuC812单片机系统的扩展,单片机最小应用系统复位,低电平有效复位芯片的复位电路,ADuC812单片机系统的扩展,单片机最小应用系统其它硬件考虑为方便在线编程,加上在线调试和仿真器,用户希望在他们的硬件上通过一些简单的连接,能够方便的进入下载、调试和仿真模式。这可以通过连接ADuC812的UART端实现,如果是从PC机下载代码,则需要一片RS-232芯片实现电平转换。用户仍需找到一个方法触发芯片进入下载模式。这可以通过在PSEN引脚跨接一个1K的下拉电阻来实现。如果去掉跨接线,当系统复位后,就会进入正常运行模式。注意当在上电或复位期间,如果任何外部电路无意间使PSEN变为低电平,就会导致芯片进入下载状态而不能开始本来应该进行的用户代码执行过程。,ADuC812单片机系统的扩展,实例,单片机最小应用系统的硬件设计,ADuC812单片机系统的扩展,外部存储器的扩展系统的寻址能力程序存储器64KB数据存储器16MB译码控制必须选择出该芯片,即片选必须选择出该芯片所有存储单元译码方法线选法全地址译码法,ADuC812单片机系统的扩展,外部程序存储器的扩展存储器的类型ROM:EPROM,EEPROM,FLASH接口总线方式:并行使用的控制信号ALE:低8位地址锁存控制PSEN:外部程序存储器“读取”控制总线P0:分时复用的数据/地址总线P2:高8位地址总线,ADuC812单片机系统的扩展,外部程序存储器的扩展,地址锁存器:74LS37374LS2738282GALCPLD,ADuC812单片机系统的扩展,外部数据存储器的扩展存储器的类型RAM:SRAM,DRAM,NVRAM,MPRAM接口总线方式:并行,串行使用的控制信号ALE:地址锁存控制WR:外部数据存储器“写”控制RD:外部数据存储器“读”控制总线P0:分时复用的数据/地址总线P2:高8位地址总线,ADuC812单片机系统的扩展,外部数据存储器的扩展(64KB),地址锁存器:74LS37374LS2738282GALCPLD,ADuC812单片机系统的扩展,外部数据存储器的扩展(16MB),地址锁存器:74LS37374LS2738282GALCPLD,ADuC812单片机系统的扩展,并行I/O接口P0:当作为通用的I/O口时,P0口的引脚以“开漏”的方式输出,所以必需外加上拉电阻当作为外部程序或数据存储器的数据/地址总线时,内部控制信号为高电平,P0口的引脚可以在数据/地址总线的作用下实现上拉,不需要外加上拉电阻P2:具有内部的上拉功能,可作为准双向口(用作输入时引脚被拉成高电平)使用作为外部程序或数据存储器的高地址总线,ADuC812单片机系统的扩展,并行I/O接口P1:主要作为模拟输入口使用,在P1口相应的SFR上写0可以把P1口设置为数字输入口P3:具有内部的上拉功能,可作为准双向口(用作输入时引脚被拉成高电平)使用作为专用功能引脚,相应的口锁存器必须为1状态,ADuC812单片机系统的扩展,I/O接口的扩展I/O接口的寻址范围I/O接口与外部数据存储器统一编址,可使用16MB空间的一部分作为扩展I/O的地址空间接口总线方式并行,串行使用的控制信号ALE:地址锁存控制WR:外部数据存储器“写”控制RD:外部数据存储器“读”控制总线P0:分时复用的数据/地址总线P2:高8位地址总线,ADuC812单片机系统的扩展,I/O接口的扩展译码控制必须选择出该芯片,即片选必须选择出该芯片的某一存储单元(或I/O接口芯片中的寄存器),即字选译码方法线选法把单独的地址线接到外围芯片的片选端上全地址译码法将低位地址线作为芯片的片内地址(取外部电路中最大的地址线位数),用译码器对高位地址进行译码,译出的信号作为片选线,ADuC812单片机系统的扩展,I/O接口的扩展,线选法,ADuC812单片机系统的扩展,I/O接口的扩展线选法,ADuC812单片机系统的扩展,I/O接口的扩展,全地址译码法,ADuC812单片机系统的扩展,I/O接口的扩展全地址译码法,ADuC812单片机接口资源,定时器/计数器性能3个16位定时器/计数器基本结构2个8位的计数器THx,TLx工作方式定时,计数,波特率发生器控制和状态寄存器模式控制寄存器TMOD控制寄存器TCONT2控制寄存器T2CON,ADuC812单片机接口资源,定时器/计数器对输入信号的要求当作为定时器使用时,计数输入信号是内部时钟脉冲,是由晶体振荡器的输出经12分频后得到的,故其频率为晶振频率的1/12。因此,需要高精度的定时器时,要选择频率较高的晶体。当作为计数器使用时,计数脉冲来自相应的外部引脚T0或T1。当输入信号产生由1至0的跳变时,计数器加1。每个机器周期的S5P2期间,对外部输入进行采样,若在第一个周期采到的值为1,而在下一个周期采到期的值为0,则在紧跟着的再下一个周期中的S3P1期间,计数器加1。由于确认一次跳变需要两个机器周期,因此,外部输入的计数脉冲的最高频率为振荡器频率的1/24。对外部信号的占空比没有什么要求,但为了确保某一给定的电平在变化之前至少被采样一次,这一电平至少要保持一个机器周期。,ADuC812单片机接口资源,定时器/计数器控制和状态寄存器用于控制和确定各定时器/计数器的功能和操作模式。这些寄存器的内容由软件设置,系统复位时,寄存器所有位被清0模式控制寄存器TMODT1字段用于定时器1,T0字段用于定时器0M1M0:定时器/计数器模式选择,见下表,ADuC812单片机接口资源,定时器/计数器模式控制寄存器TMODC/T:工作方式选择位。由软件置位或清0,C/T=1时,为计数器方式;C/T=0时,为定时器方式GATE:定时器/计数器运行控制位,用来确定对应的外部中断请求引脚(INT0,INT1)是否参与T0或T1的运行控制。当GATE=0时,只要定时器控制寄存器TCON中的TR0(TR1)被置1时,定时器/计数器即开始计数;当GATE=1时,不仅要TCON中的TR0(TR1)被置1,还要对应的外部中断请求引脚(INT0,INT1)为高电平,才允许定时器/计数器计数。,ADuC812单片机接口资源,定时器/计数器定时器控制寄存器TCONTR0:T0的运行控制位。置1开始计数,置0停止计数TF0:T0的溢出中断标志位。计数溢出时由硬件自动置1,在CPU中断处理时由硬件清0TR1:T1的运行控制位。置1开始计数,置0停止计数TF1:T1的溢出中断标志位。计数溢出时由硬件自动置1,在CPU中断处理时由硬件清0,ADuC812单片机接口资源,定时器/计数器定时器控制寄存器TCONIE1:外部中断1请求标志位。检测到INT1引脚上出现由1到0的跳变时由硬件置位,请求中断;进入中断服务后由硬件清0IT1:外部中断信号触发类型控制位。IT1=1时,下降沿触发;IT1=0时,低电平触发IE0:外部中断1请求标志位。功能同IE1。IT0:外部中断信号触发类型控制位。功能同IT1。,ADuC812单片机接口资源,定时器/计数器定时器/计数器2控制寄存器T2CONTF2:T2的溢出中断标志位。计数溢出时由硬件自动置1并请求中断,只能软件清0;在波特率发生器方式下不置位EFX2:定时器2的外部中断标志。当EXEN2=1,且T2EX引脚出现负跳变而造成捕获或重装载时,由硬件自动置位;只能软件清0RCLK:接收时钟标志。靠软件置位或清除,置1时用定时器2溢出脉冲作为串口的波特率发生器。清0时选择定时器1TCLK:发送时钟标志。靠软件置位或清除,置1时用定时器2溢出脉冲作为串口的波特率发生器。清0时选择定时器1,ADuC812单片机接口资源,定时器/计数器定时器/计数器2控制寄存器T2CONEXEN2:定时器2的外部使能标志。靠软件置位或清除。若定时器2未用作波特率发生器,当EXEN2=1,且T2EX引脚出现负跳变时发生捕获或重装,并置位EXF2,请求中断TR2:T2的运行控制位。置1开始计数,置0停止计数C/T2:定时器计数器方式选择位。由软件置位或清0,C/T2=1时,为计数器方式;C/T=0时,为定时器方式CP/RL2:捕获或自动重装标志。用软件设置或清除。当CP/RL2=1,若EXEN2=1,且T2EX引脚出现负跳变时发生捕获;当CP/RL2=0,若定时器2溢出,或EXEN2=1,且T2EX引脚出现负跳变时就会造成自动重装。,ADuC812单片机接口资源,定时器/计数器定时器/计数器0(或1)模式0(13位计数器),ADuC812单片机接口资源,定时器/计数器定时器/计数器0(或1)模式1(16位计数器),ADuC812单片机接口资源,定时器/计数器定时器/计数器0(或1)模式2(8位自动重装计数器),ADuC812单片机接口资源,定时器/计数器定时器/计数器0模式3(2个位计数器),ADuC812单片机接口资源,定时器/计数器定时器/计数器216位自动重装模式,ADuC812单片机接口资源,定时器/计数器定时器/计数器216位捕获方式,ADuC812单片机接口资源,定时器/计数器定时器/计数器2波特率工作方式,ADuC812单片机接口资源,看门狗 定时器用途因编程不完善、电气噪声或电磁干扰等原因使程序进入无序运行状态时,Watchdog定时溢出使CPU复位,使程序自动纳入正规 性能由于看门狗定时器的振荡器独立于CPU的振荡器,无论CPU的振荡器因何失灵,只要看门狗定时器被启动,溢出后总能使CPU可靠复位溢出时间设定范围16ms2048ms启动与定时控制设置控制与状态寄存器WDCON相应位,ADuC812单片机接口资源,看门狗 定时器控制和状态寄存器WDCONPRE2、PRE1、PRE0:溢出时间设置位。可设置16ms2048ms看门狗溢出时间WDR1、WDR2:看门狗定时器的刷新位。通过对这两位的有序位操作,可使看门狗复位,即称“喂狗”WDS:看门狗定时器的状态位。WDS=1,说明看门狗为溢出状态WDE:看门狗定时器的使能位。WDE=1,启动看门狗定时器,WDE=0,关闭看门狗定时器,ADuC812单片机接口资源,看门狗 定时器“喂”看门狗的次序WDFeed:SETBWDR1 SETB WDR2,ADuC812单片机接口资源,看门狗 定时器应用举例设定监视器的工作时间间隔为2048ms,可参考下面程序:MOV WDCON,0E0H;set overflow time 2.048 secondsSETB WDE;enable watchdog timer为防止定时监视器溢出,刷新位需在2.048秒到之前设定完成SETB WDR1;refresh watchdog timer.SETB WDR2;.bits must be set in this order,ADuC812单片机接口资源,串行接口种类UART,SPI,I2C通讯方式同步,异步,I2C兼容配置模式主,从,ADuC812单片机接口资源,串行接口UART此串行端口是全双工的,可同时进行数据的发送和接收。接收时有缓冲,意味在前一个字节被读走前就可开始第二个字节的接受。事实上,如果在第二个字节的接受时间完成时第一个字节还未被读走,第一个字节将丢失。由于发送是主动的,一般不需要缓冲。与串行数据网的物理接口是通过引脚RXD(P3.0)和TXD(P3.1)实现的。UART使用的SFR包括:SBUF、SCON 和PCON。SBUF为接收/发送缓冲器;SCON用来存放串行接口的控制和状态信息,T1或T2作为串口的波特率发生器,PCON的最高位控制波特率是否倍增,ADuC812单片机接口资源,串行接口UART控制寄存器PCOND7位为波特率倍增位,其余位无意义。当SMOD=1时,串行口在方式1,2或3通讯中,波特率提高一倍UART控制寄存器SCONSM0,SM1:串行口工作方式选择位,见下表,ADuC812单片机接口资源,串行接口UART控制寄存器SCONREN:串行接口接收允许/禁止标志位,软件设置。REN=1允许接收;REN=0禁止SM2,TB8,RB8:多机通讯控制位。方式0应设置0,不用TB8和RB8。方式1下,SM2=0时,RB8是接收到的停止位;SM2=1时,,ADuC812单片机接口资源,串行接口UART控制寄存器SCON只有收到有效的停止位才会激活RI,否则RI不置位方式2和方式3下,TB8是发送的第9位数据,可用软件置1或清0;RB8是接收的第9位数据。接收时若SM2=1,接收到的RB8为0,则RI不置1;若SM2=1且接收到的RB8=1,则置位RI。通常RB8、TB8在多机通讯中,用于地址数据帖标志位,也用于奇偶较验位TI:发送中断标志位。硬件置位,软件清除。方式0中,发送完8位数据置位;方式1中,在发送停止位之初置位RI:接收中断标志位。硬件置位,软件清除。方式0中,接收完8位数据置位;方式1中,在接收停止位一半时置位,ADuC812单片机接口资源,串行接口UART工作方式及帖格式方式0:8位(同步)移位寄存器模式 串行数据通过RXD接收和发送。TXD输出同步时钟。波特率固定不变,为1/fosc。传送或接收的8位数据为一帖,没有起始位和停止位,先发送或接收最低位。将数据写入SBUF后即引起数据发送。当接收使能位(REN)为1,并且接收中断位(RI)为0时,开始接收数据方式1:8位波特率可变的传输模式RXD接收,TXD发送。波特率由定时器1或定时器2的溢出 率控制。帖格式为:1个起始位,8个数据位,1个停止位。适合于点对点的异步通讯,ADuC812单片机接口资源,串行接口UART工作方式及帖格式方式2:9位固定波特率传输模式波特率固定,只有2种选择:fosc/64或 fosc/32,可由PCON的最高位选择。帖格式为:1个起始位,9个数据位,1个停止位。第9个数据与SCON中的SM2配合,适用于多机通讯方式3:9位波特率可变的传输模式波特率控制同方式1,帖格式同方式3,因此,也适用于多机通讯,ADuC812单片机接口资源,串行接口UART工作方式与波特率的设置方式0:固定的方式2:波特率=(2SMOD/64)*fosc方式1,方式3:波特率=(2SMOD/32)*T1(或T2)的溢出率T1(或T2)的溢出周期=(12/fosc)*(M-X)其中,M为计数器的最大值,X为计数初值溢出率=1/溢出周期,ADuC812单片机接口资源,串行接口SPISPI是一种标准工业同步串行接口,允许同时传送和接受八位数据,也就是全双工方式具有主从控制模式采用三线通讯标准本系统使用4条线可与多种标准外围器件直接接口:串行时钟线SCLOCK、主机输入/人机输出数据线MISO、主机输出/从机输入数据线MOSI和低是平有效的从机选择线SS使用两个相关的寄存器SPICON和SPIDAT,通过对SPICON中的相应位进行设置实现初始化;对SPIDAT的写操作会产生从高位开始的数据发送,接收字节保留在移位寄存器中,移位寄存器的数据锁存到SPIDAT中,ADuC812单片机接口资源,串行接口SPICON控制寄存器ISPI:SPI中断标志位。当发送和接收一字节数据完毕时自动置位,也可软件置位。中断响应后自动清0WCOL:写冲突标志位。当SPI正在进行数据交换时,若向SPIDAT写数据,将发生写冲突,写入的数据无效。必须软件清除SPE:SPI使能。SPE=0时,I2C串行接口使能;SPE=1时,SPI串行接口使能SPIM:主模式选择位。置1工作于主模式,清0工作于从模式,ADuC812单片机接口资源,串行接口SPICON控制寄存器CPOL:时钟极性选择位。置1时,主机时钟发生负跳变时读取数据,高电平处于空闲状态;置0时,主机时钟发生由低至高跳变时读取数据,低电平处于空闲状态CPHA;时钟相位选择位。置1时,数据在时钟前沿出现,在同一时钟的后沿读入;清0时,最高位在SS的下降沿出现,在时钟的第一个上升沿读入,之后的数据在时钟后沿出现。SPR1,SPR0:SPI波特率选择位。,ADuC812单片机接口资源,串行接口SPI主模式主模式下,SCLOCK引脚通常作为输出,无论何时用户写入SPIDAT寄存器,都将产生八个时钟信号。SCLOCK的波特率由SPICON的SPR0和SPR1决定。主模式下SS引脚通常不使用。在主模式下,通过对SPIDAT的写操作完成一个字节的发送。时钟信号的一次作用对应一位数据的发送(MOSI)和另一位数据的接收(MISO)。八个时钟周期后,完成一个字节的传输。输入的字节保留在移位寄存器中,ISPI标志位将自动置位,如果中断允许将产生中断。移位寄存器中的数据将被锁存到SPIDAT中。此后对SPIDAT的读操作把数据读出,ADuC812单片机接口资源,串行接口SPI从模式发送和接收可以同时工作在从模式下。在字节传输中,SS引脚必须始终处于低电平状态。同样数据的发送由SPIDAT的写操作来启动。在每个输入SCLOCK时钟的作用下,由MISO发送一个数据位,由MOSI接收。八个时钟周期后,完成一个字节的传输。输入的字节保留在移位寄存器中,ISPI标志位将自动置位,如果中断允许将产生中断。移位寄存器中的数据将被锁存到SPIDAT中。此后对SPIDAT的读操作把数据读出,ADuC812单片机接口资源,串行接口I2C全双工方式具有主从控制模式采用二线通讯采用I2C总线传输协议使用3个SFR实现通讯I2CADD,I2CDAT,I2CCON,ADuC812单片机接口资源,串行接口I2C的接口约定器件支持面向协议的双向总线。协议定义任何发送数据到总线的器件为发送器,接收器件为接收器。把控制发送的器件称为主机,被控制的器件称为从机。主机总是启动数据的传送,并为发送和接收操作提供时钟。I2C的时钟和数据SDATA线上的数据状态仅在SCLOCK为低电平期间发生变化,而SCLOCK高电平期间SDATA数据状态的改变被保留用于指示起始和停止条件。,ADuC812单片机接口资源,串行接口I2C的时钟和数据SDATA线上有效的数据变化见下图,ADuC812单片机接口资源,串行接口I2C通讯的起始条件和停止条件SCLOCK为高电平期间SDATA发生从高电平至低电平的跳变,称为起始条件。器件连续监视SCLOCK和SDAT是否满足起始条件,此条件满足之前将不对任何命令作出响应。所有通讯必须由停止条件结束。此条件是SCLOCK为高电平期间SDATA发生从低电平至高电平的跳变,只有在发送器件已释放总线之后才能发出停止条件。,ADuC812单片机接口资源,串行接口I2C通讯的应答应答用于表示成功的数据传送的软件约定。在发送8位数据之后,发送器件(主机或从机)将释放总线,在第9 个时钟周期内,接收器将把SDATA线拉至低电平以做出应答。表示它已接收到8位数据。见下图,ADuC812单片机接口资源,串行接口I2C通讯的过程在识别了起始条件后如果在从地址字节中包含了正确的器件识别符,那么器件将用应答作出响应,如果从地址字节最低位为0,则为写操作。从器件接收了8位数据之后用应答作出响应。如果从地址字节最低位为1,则为读操作。从器件将发送8位数据,释放SDATA线,然后监视线上的应答。如果检测到应答,且主机未产生停止条件将继续发送数据。如果未检测到应答,那么器件将结束进一步的发送,主机必须发出停止条件,以便使器件返回待机方式。,ADuC812单片机接口资源,串行接口I2C通讯的过程写操作,ADuC812单片机接口资源,串行接口I2C通讯的过程读操作,ADuC812单片机接口资源,串行接口I2C特殊功能寄存器I2CADD:将ADuC812器件的7位地址保存在总线上7位地址的保存过程如下:若从机地址为44H,则主机必须送出88H/89H才能与从机建立联系。由于地址为7位,从机自动确定最低位为R/W位,只须将前7位与自己的地址相比较。为构成一个完整字节,从机在最高位添加一个0,添加后的结果即为从机的地址。,ADuC812单片机接口资源,串行接口I2C特殊功能寄存器I2CDAT:保存需要接收或发送的8位数据I2CCON:保存主/从模式操作的模式/控制位,ADuC812单片机接口资源,模拟接口ADCADuC812中集成了一个快速8通道的12位A/D转换器,为用户提供了多通道多路转换器、采样/保持、片内基准及校准特性。所有部件很容易通过3个寄存器接口配置。该ADC是基于电容DAC的常规逐次逼近转换器组成。模拟电压输入范围从0Vref。片上提供一个高精度低偏移的工厂校准的2.5V基准电压。也可接入外部Vref,外部基准电压应在2.3VAVDD范围内。,ADuC812单片机接口资源,模拟接口ADC的内部等效电路,ADuC812单片机接口资源,模拟接口ADC使用外部基准电源,应当在Vref 与AGND之间连接0.1uF的电容,ADuC812单片机接口资源,模拟接口ADC使用内部基准电源,应当在Vref 与AGND之间连接0.1uF的电容,ADuC812单片机接口资源,模拟接口ADC的输入驱动由于通道转换时,2pF取样电容器上驻留的电荷会产生瞬间的冲击,应采取措施消除。,推荐的输入驱动电路,ADuC812单片机接口资源,模拟接口ADC的工作模式用软件或通过转换信号加至外部引脚CONVST,可以启动单步或连续模式用定时器2产生ADC转换的重复触发信号配置ADC工作于DMA模式。可以通过配置3个SFR来实现,ADuC812单片机接口资源,模拟接口ADCCON1控制寄存器MD1,MD0:选择有效工作模式,ADuC812单片机接口资源,模拟接口ADCCON1控制寄存器CK1,CK0:选择ADC时钟的主时钟分频比,1次A/D转换需要16个ADC时钟加上所选数目的采集时钟,ADuC812单片机接口资源,模拟接口ADCCON1控制寄存器AQ1,AQ0:选择用于采样/保持放大器采集输入信号的时间T2C:设置定时器2转换位,选择定时器2 溢出位用作A/D转换的起始触发脉冲输入EXC:设置外部触发使能位。CONVST引脚信号触发有效,ADuC812单片机接口资源,模拟接口ADCCON2控制寄存器ADC1:ADC中断允许位。在单个A/D转换结束或在DMA块转换结束时由硬件置位DMA:DMA模式使能位。CCONV:连续转换位。SCONV:单个转换位。单个转换完成自动复0,ADuC812单片机接口资源,模拟接口ADCCON2控制寄存器CS3,CS2,CS1,CS0:通道选择位,ADuC812单片机接口资源,模拟接口ADCCON3控制寄存器BUSY:ADC忙状态位,只读RSVD:保留位,只能写入0CTYP:同上CAL1:同上CAL0:同上CALST:同上,ADuC812单片机接口资源,模拟接口ADC的DMA模式的配置DMA地址指针必须被设置指向写入ADC结果的初始地址。用改写DMA模式地址指针DMAL,DMAH和DMAP的方式实现。顺序是DMAL,DMAH,最后是DMAP外部存储器必须被预先配置。它包括把所需ADC通道ID写入由DMA地址指针指向的外部RAM初始地址的最高4位。为了保证有效终止重复写入最后一个通道ID,需要对它提供一个停止命令 设置DMA使能位,ADuC812单片机接口资源,模拟接口ADC的DMA模式的配置典型的DMA预配置,ADuC812单片机接口资源,模拟接口ADC的DMA模式的配置典型的DMA配置情况,ADuC812单片机接口资源,模拟接口DACAduC812组合了两只12位电压输出的DAC,每只都含有一个电压输出缓冲器,可以驱动 10k/100pF。包括两个可选量程,0V至Vref(内部基准电压2.5V)和0V至Avdd。可以在12位或8位模式下工作。两只DACs共享一个控制寄存器,DACCON和四只数据寄存器DAC1H/L,DAC0H/L。需注意在12位异步工作方式下,一旦数据被写入DACL,DAC的电压输出就将被刷新;因此,数据寄存器应先刷新DACH,然后才刷新DACL。若负载电阻大于10K和基准电压为AVDD,在靠近地和AVDD电压的100mV以内会产生一定的非线性;采用片内基准或远小于AVDD电源则无上述问题。,ADuC812单片机接口资源,模拟接口DACCON 控制寄存器,ADuC812单片机接口资源,模拟接口DACxH/L 数据寄存器功能:用户写入数据,以更新DAC输出DAC0L:DAC0数据低字节DAC1L:DAC1数据低字节DAC0H:DAC0数据低字节DAC1H:DAC1数据低字节上电默认指标值 00H12位DAC数据写入DACxH/L时应右对齐写入,即DACL中放低八位数据,DACH的低半字节放余下高四位数据,ADuC812单片机接口资源,模拟接口DAC等效电路图,ADuC812单片机接口资源,模拟接口DAC输出缓冲电路的设计,ADuC812单片机接口资源,中断系统ADuC812提供具有2个优先级的9个中断源。,ADuC812单片机接口资源,中断系统中断源、中断向量与中断优先级,ADuC812单片机接口资源,中断系统中断使用的SFRIE:中断使能寄存器,ADuC812单片机接口资源,中断系统中断使用的SFRIP:中断优先权寄存器,ADuC812单片机接口资源,中断系统中断使用的SFRIE2:中断使能寄存器,ADuC812单片机接口资源,中断系统对外部中断输入信号的要求ADuC812有两个独立的外部中断源,通过对TCON中的IT1和IT0置位和清除,可将外部中断源设置为电平触发或边沿触发。若设置为边沿触发,由于外部中断引脚信号是每个机器周期采样一次,因此,要求外部引脚信号的高电平或低电平至少维持一个机器周期,才能保证跳变信号被检测到。在检测到外部中断信号后,由硬件将中断标志位IE0/IE1置 1,中断响应时由硬件清0。若设置为电平触发,并在响应中断后外部中断信号仍维持低电平,则会引起再一次的中断。因此,要求在中断服务程序返回之前,外部中断请求输入必须无效(变回高电平)。此方式适合于以低电平输入而且中断服务程序能清除外部中断源的情况。,