大家好,上次给大家笼统的介绍了一下单片机以及单片机C语言的知识,并指出了单片机开发的流程,今天主要给大家讲解一下单片机软件开发环境的搭建,并从试验的角度对开发的流程进行验证,以便大家从实际操作中去理解和熟悉。 我们选用的单片机型号是STC公司的STC15系列的单片机,属于51内核的单片机只是增加更多的外设功能(比如AD模块,PWM模块等);软件方面我们选择Keil V4.0的开发环境和STC公司自己开发的串口下载软件stc-isp-15XX。其中keil是将编写的C语言程序编译成HEX(二进制)文件,然后通过串口下载软件(stc-isp-15XX软件)将编译好的HEX文件下载到单片机的Flash(存储器)中去。 在单片机开发的时候主要考虑的因素有:
下图是STC15系列的单片机内部资源的介绍(其具体性能查阅其手册即可,在这里就不介绍了。对于不同型号厂家的单片机都要以其手册作为标准。) 。 开发环境搭建的准备工作: 1.下载并安装keil v4软件,其安装过程和keil v5区别不大,其安装过程可以参考 2.安装好keil软件后,在STC官网上下载stc-isp烧录软件,后面的版本是绿色免安装的因此只需要下载下来直接运行即可。 3.因为keil自带的器件库里面没有stc器件的头文件和启动文件,但是stc为了能够兼容keil的开发环境自己编写了头文件和启动文件,因此只需要将stc的头文件加入到keil的安装目录即可,其过程如下: 第一步,打开stc-isp-15XX的烧写软件; 第二步,根据下面的方法将stc器件型号和头文件添加到keil中去。 点击“添加型号和头文件到keil中添加STC仿真器驱动到keil中”按钮后会提示将文件添加到的路径,在此一定要根据提示将其添加到keil的安装目录,其目录下含有C51目录和UVx的目录(其中x为版本号,比如在这里是UV4)。添加好后,其软件的开发环境就基本搭建完毕,接下来就是对单片机的开发了。 根据前面介绍的流程,选择好单片机和搭建好软件开发环境以后,接下来就是程序的编写,下面我们对keil软件进行一个简单的介绍。 安装好keil后,双击 打开软件,进入下面的界面。 然后点击Project选项卡新建工程, 点击新建工程以后会提示新建工程的路径以及名称,如下所示,在这里我们假设名称叫做test。 保存好项目以后会弹出选择器件型号的提示框,如下图所示: 在这里根据我们的单片机型号来选择,因为我们选择的单片机是STC的所以在这里我们选择STC MCU Database,点击后出现如下的界面: 这就是选我们选用单片的具体型号,这在开发和调试过程中有着重要的作用,在这我们选择STC15W408AS作为我们的实验,如果没有我们单片机的型号,那么就选择一款类似的单片机型号带代替。 选择好以后会出现是否添加单片机启动文件的选项,我们可以根据自己的水平选择,在初学阶段我们选择是,如下: 到此为止,我们只是建立了工程项目,可以看到里面除了启动文件都是空的,因此我们新建文件。 然后新建一个文件,然后保存,注意在新建文件的时候是没有后缀的,我们要手动将后缀打上去,再次我们要新建C文件,因此格式为“文件名.c”,如下图所示: 将文件保存后,文件只是在项目的文件夹中还没有添加到项目中去,接下来在左侧的导航栏中右键source group1然后选择添加文件导group中去,然后选择刚才保存到文件,就会将文件添加到项目中去。在此也可以选择已经写好的C文件,或者其他项目的C文件。 添加好文件后,便可以在文件中编写C程序了,在写之前还要对项目进行设置来得到hex文件。 右键左边导航栏的target1选择option……选项,进入如下的界面: 我们主要对圈起来的三个选项卡进行简单的介绍(如果对其他的也感兴趣的欢迎探讨或者查看keil手册来得到详细的解释)。首先是器件选项卡,在这里我们可以改变我们在新建项目之前选择的器件,当然如果在新建项目的时候忘记选择器件,在这里也可以修改。然后是target选项卡,我们主要是修改里面的晶振的频率,要填写和实际器件一样的频率这样在仿真的时候可以得到时间信息。对于output的内容我们要修改的是勾选create HEX file选项,这就意味着编译以后会生成可以烧录的hex文件。当然如果为了整洁清楚,还要设置select folder options 以及生成hex文件的文件名,这些都是使得文件管理方便设置的,感兴趣的可以自己设置一下。 三、接下来就是C程序的编写 在这里我们以LED的闪烁作为例子简单介绍一下,后面会详细的讲解。其源码如下: #include #include sbitled=P1^0; voidDelay200ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); _nop_(); i = 9; j = 104; k = 139; do { do { while (--k); } while (--j); } while (--i); } voidmain() { while(1) { led=!led; Delay200ms(); } } 单击如下图的编译按钮, 编译成功以后处出现如下的信息: 可以看出已经成功的得到了hex文件。 接下来就是将hex文件烧写到单片机中去了,将烧录的单片机和电脑通过串口连接连接起来,打开烧写软件stc-isp-15XX软件 在这个烧录软件中主要修改的地方为: 1、 选择烧写的单片机的型号 2、 选择串口,当然可以点击扫描来匹配合适的串口,对于多个串口都是占用的情况下还得手动选择 3、 选择要烧录的hex文件没也就是用keil生成的hex文件,点击打开程序文件按钮后,会提示选择路径以及文件,选中即可 4、 选择单片机的工作频率 选择上面的几个设置后就可以将程序下载到单片机里面了,如果想详细的理解这个软件,请查询使用手册。 我们选择刚才生成的hex文件,将其下载到单片机中去,成功下载后还有提示音以及如下的信息 可以看到LED会出现一闪一闪的现象,表明我们烧写成功,同时也以为这我们的程序没有问题(不好意思视频传不上去就只能拍到照片,现象是一闪一闪的)。 从下一节课开始介绍C语言的一些语法语句的知识,随时欢迎探讨,谢谢大家! |
|