首先安装编程环境,我用的是MDK5.0。MDK可以跟C51装到同一个目录,这样既可以写C51的程序也可以写M051程序了。
第二步去新唐的官网下载 Nu-Link Driver for Keil RVMDK V1.24.6211.zip 仿真器的驱动,并安装好。
第三部下载M051 SeriesBSP_CMSIS_V2.01.002.zip和 M051 SeriesBSP_DirectRegisterAccess_EN_V1.01.003.zip,这两个是M051的库文件。据说用CMSIS库就像ARM M3的编程方式差不多(我没用过M3),DirectRegisterAccess库是直接操作寄存器跟51单片机的编程方式差不多。问了问高手,他们建议用CMSIS,因为更简单方便。我两个都装上了。这两个文件直接解压C盘即可,路径要记住,要在mdk里面填写。
打开MDK,新建一个项目,取名TEST,然后出现下图,点OK。 出现选择CPU对话框,找到M0516LBN,点OK. 然后下面对话框点yes。 然后就进入MDK的主界面了。再新建一个空文档,并保存,取名为main.c
在Source Group 1上点右键选择Add Existing Files to Group ,把main.c加进来。 点击工具栏上的这个图标。做如下设置。 下图的include paths里面写上刚才解压的 M051 SeriesBSP_CMSIS_V2.01.002.zip的路径。我写的是:
C:\Keil\M051SeriesBSP_CMSIS_v2.01.002\M051SeriesBSP_CMSIS_v2.01.002\LibM051Series\CMSIS\CM0\DeviceSupport\Nuvoton\M051Series;C:\Keil\M051SeriesBSP_CMSIS_v2.01.002\M051SeriesBSP_CMSIS_v2.01.002\LibM051Series\StdDriver\inc 下图在scatter file里写:—map —first=’startup_M051Series.o(RESET)’ —datacompressor=off —info=inline —entry Reset_Handler 选择Nuvoton Nu-Link Debugger,然后点Settings按钮。 然后在main.c里输入以下代码 include <M051Series.h>void SystemInit(void)
{}
int main(void)
{
//设置P2.0为强推挽输出
_GPIO_SET_PIN_MODE(P2, 0, GPIO_PMD_OUTPUT);
while(1)
{
//让P2.0交替输出高低电平。把LED灯的正极接到P2.0负极接地,LED就会一闪一闪的。
P20 = 1;
SYS_SysTickDelay(500000);
P20 = 0;
SYS_SysTickDelay(500000);
}
} 然后按Ctrl+F5就可以单步调试程序了。如果你没有设置断点的话,这时候LED就会一闪一闪的。 如果不想调试,想直接把程序烧入芯片做如下设置。 然后再点工具栏上的按钮。
|