为了便于测试,可选取其中的GPIO例程来加以验证。为生成目标文件,需按图4所示来勾选。
图4 生成HEX文件
经编译,其结果如图5所示,此时并已生成GPIO.HEX目标文件。
图5 完成编译
接下来就是解决下载问题了,为此需要安装Nuvoton_8051_Keil_uVision_Driver_v2.00.6561。
随后,按图6来选择调试器类型及按图7来选取目标烧录器。
图6 选取调试工具类型
图7选取目标烧录器
由于N76E003开发板有不同的版本,这里选用的是一款最小系统的开发板,它除了电源指示灯、复位键及测试LED灯外,就啥也没有了,其接口电路如图8所示。
图8 接口电路
由于开发板属最小系统,故它只有通过了下载调试工具的接口。为此,需要另行配置下载工具,这里所用的是NU_link,见图9所示。
图9 开发板与下载工具
在连接好下载工具并上电的情况下,可见到图10所示的配置结果。
图10下载工具的配置
这样就可以进行下载测试了,其完成下载的界面如图11所示。
图11 完成下载
此时,选择复位键,则可见到板上供测试的LED灯在不同地闪烁,说明下载成功,至此开发环境就彻底地搭建好,并具有了下载功能。
那么GPIO的例程是如何来控制这个LED灯的呢?
其主程序如下:
void main (void)
{
unsigned char i;
Set_All_GPIO_Quasi_Mode; // Define in Function_define.h
InitialUART0_Timer3(115200);
set_CLOEN;
while(1)
{
i--;
clr_GPIO1; // Tiny board GPIO1 LED define in Common.h
Timer2_Delay1ms(300);
set_GPIO1;
Timer2_Delay1ms(300);
Send_Data_To_UART0(0x55); // UART0 send ascii "U"
P3M1 = 0xff;
P3M2 = 0x00;
P3M1 = 0x00;
P3M2 = 0x00;
if(P30) P10 = 1;
else P10 = 0;
i += 6;
}
}
由程序可知,它在对全部引脚进行配置后,便对串口0进行的初始化,并通讯波特率设置为115200bps。
随后,就是通过延时函数的调用来切换GPIO1的输出状态。
此外,它还提供工作模式的设置来使P30作为输入口,使P10为输出口。
也就是说这个例程的信息量还是满多的,它不但测试了定时器2的延时功能,还测试了串口通信功能和定时器3的波特率生成及输入输出口的测试。
在连接USB转TTL模块的情况下,其串行通讯功能的测试结果如图12所示。
图12 通讯测试
那么程序中的GPIO1只指的啥呢?
通过查询它的定义,可知其定义为:
#define set_GPIO1 P12=1
#define clr_GPIO1 P12=0
这就是为什么LED灯能够产生闪烁效果的原因了。
为了测试其输入输出功能,不妨再为它配置一个触摸按键作输入,为它配置一个LED模块作输出,见图13所示。
图13 测试电路
图14 测试效果
经测试,其确实能以触摸键控制LED模块。
至此,就为N76E003的开发打开了大门!
开发环境搭建步骤详细,便于以后需要的朋友借鉴,新塘的8051性能还是不错的,官方的固件库函数封装也较好,算是一个不错的选择