ADuC812应用中的若干问题
当P1口用作模拟输入时,它对应于ADμC812内8通道模数转换的输入端口ADC0~ADC7。若在实际使用中,不须将8个通道ADC都用上,可将剩余的P1口引脚设置为数字输入,但此时须注意,它与标准的8051单片机用作数字输入的通用I/O口不同,认为高电平有效。因此,P1口用作数字输入时,在检测是否有输入信号之前,须将0写至对应端口,然后再判断。这就要求系统在设计时,应将用作数字输入的P1口外加1个下拉电阻,一般为几kΩ。
(2)P2口
如前所述,ADμC812的P2口也是双向端口,包含输入缓冲器、输出锁存器和输出驱动器。通过与P2口相应的端口SFR,可将P2口的各端口引脚独立地配置为数字输入或数字输出,以及对它们进行读、写访问。这些与一般单片机P2口作通用I/O口的用法相同。
但当ADμC812接有外部数据存储器时,P2口不仅要用于输出中8位地址(A8~A15),还要用于输出高8位地址(A16~A23),此用法类似于P0口。不同的是,P0口是数据和地址总线复用,而P2口是中位、高位字节地址总线复用。因此,P2口在用于外扩大容量数据存储器时,也应通过一个锁存器将高位字节地址锁存,如图4所示。
4.外部寻址问题
与其他单片机不同,ADμC812具有24根地址线。它可寻址的外部数据存储器空间为16MB,此超大容量的存储空间可满足众多应用领域的需求。由于外部数据存储器空间高达16MB,只用DPT
R作间址寄存器是不够的。因此,ADμC812的数据指针是由3个8位寄存器来组成,分别是DPP(页字节寄存器)、DPH(高位字节寄存器)和DPL(低位字节寄存器),在进行内部和外部代码访问或外部数据访问时,由它们来提供存储器地址。与其他单片机一样,DPTR仍然是由DPH和DPL两个寄存器来构成,且用法相同;而DPP是用于传送A23~A16最高8位地址的寄存器,这相当于若将外部数据寄存器每64KB划分为1页,则不同的DPP值将对应于不同的页,因此取名为页寄存器。
5.SPI串口对P3口的影响
为便于MCU与各种外围设备进行通信,ADμC812提供了三种串行I/O端口:UART接口、I2C兼容的串行接口和串行外设接口(SPI)。其中,SPI接口是工业标准的同步串行接口,它允许MCU与各种外围设备以串行方式(8位数据同时同步地被发送和接收)进行通信。由于只须使用4条线就可与多种标准外围器件直接接口,因此,SPI接口在串口通信方面有着广泛的应用。
然而,我们在使用ADμC812的SPI串口进行通信时,发现它与其他芯片(具有SPI串口功能)不同,此SPI串口的使能会对P3口产生影响,其现象表现为:无论P3口实际输入电平为何值,P3口的内部锁存器都认定为高电平,从而程序中的JB或JNB等判断转移指令将失去作用。这说明,SPI串口使能将使P3口只能作为输出口来使用。因此,在同时使用SPI串口和P3口作输入口时,为避免错误发生,必须在每次P3口检测输入信号之前都将SPI串口禁止。
结束语
ADμC812作为一种新型的微控制器,具有一般单片机所不能比拟的强大功能。它内部集成的8通道高精度ADC和双12位DAC,使其能极有效地简化仪器中数据采集系统部分,同时它所提供的三种串口通信方式,可满足各种串行器件的接口问题。它的在线调试和下载功能可极大地方便用户系统的开发研制。经过一段时间探索和应用,我们已基本掌握ADμC812的各种功能,总结出一些经验和教训,本文旨在为用户提供借鉴参考。
《ADuC812应用中的若干问题(第3页)》