IO操作
本节主要介绍数据手册(r01uh0481cj0120_r7f0c806_9用户手册 硬件篇.pdf)中IO的操作。
开发板上MCU的型号为R7F0C809,所以其IO用法应参考下表。
值得注意的是引脚类型。
如P02口和P07口的引脚类型是不同的,这是由引脚的复用功能设计所决定的
对于不同引脚类型的IO操作,其寄存器操作是不尽相同的。
下面以P01口为例,说明如何进行寄存器的位操作。
在开发套件上,P01口连接一个LED,那么例子就是如何点亮这个LED。
电路原理:
上表中P01口的引脚类型为7-1-9,所以要参考数据手册2.4节的图2-5,如下所示。
图中Pmn端对应着电路原理图中的标签Pin04。
如果要点亮LED,就需要使NMOS管N-ch导通,形成电源Vcc --> 电阻R3 --> LED D3 --> NMOS N-ch --> 地Vss的通路。
要使NMOS N-ch导通,则三输入与门的输出须为高电平,所以该与门的三个输入端均应为有效的低电平,即Pmn、PMmn和POMmn寄存器的输出均为0。
需要注意的是,当此类型引脚用于IO操作时,复用功能SAU的输出。应参考4.5节的图4-8和表4-4,如下所示。
所以,当P01用于IO操作时,相应的寄存器应如下图所示
当P0寄存器中P01位值X为0,PM0、POM0寄存器中P01位值为0时,三输入与门的输出为1,NMOS N-ch可以导通,根据上述原理LED D3可以被点亮。
根据官方例程R01AN2006CC0110 Rev.1.10进行试验。
1)源程序注释
消除原例程功能函数的影响,注释main.c文件中以下函数:LED_Display()、Key_Scan()和LED_Mode()三个函数,如下图所示。
调试程序,开发板现象如下图所示,LED2 D3熄灭,4位8段数码管的g笔段微亮。
在while循环中,添加以下语句。
调试程序,开发板现象如下图所示,LED2 D3点亮。
如果对POM0、PM0和P0三个寄存器中任一个寄存器中的P01位保持置位,则LED2 D3均不会被点亮。
综上,在进行R7F0C809的IO操作时,应结合数据手册第4章和第2章的引脚结构,加深对相关寄存器操作的认识。