本帖最后由 默默地努力 于 2014-1-16 23:44 编辑
首先我们了解下51单片机的开发平台都由什么组成,如下图所示:
第一部分:单片机应用系统
(1) 硬件:由于大家刚开始学,没有基础,让大家自己制作一定的硬件电路是不可能的。因此硬件部分目前指的是大家手里的51start开发板,等到后期大家对单片机有了一定的学习之后,硬件部分指的就是大家自己制作的作品了。 (2) 软件:大家自己写的C语言代码。
第二部分:开发工具
(1) 硬件:在我们学习51单片机的时候这部分是不需要的,因为STC生产的51单片机是不需要仿真器的(备注:在大家学习其他硬件设备的时候会用到) (2) 软件:这一部分准确的说有三部分
- 驱动程序:大家首先需要安装驱动程序,用USB下载程序需要安装PL2303的驱动;用串口下载需要安装相应的串口驱动。
- 集成开发环境:此处指KEIL软件(集成开发环境是将将代码编辑器、 编译器、软件仿真器软件全部集成在一个软件中)
- 下载软件:此处指STC-ISP软件。
首先我们熟悉下单片机的开发流程,如下图所示:
下面我们将结合一个具体的实例来讲解整个流程!同时会把中途遇到的各种问题讲一下。下面以“点亮第一个LED”为例:
准备工作
(1) 安装和破解Keil软件(具体方法请见文档“Keil的安装和破解”)
这个应该都会吧,就跟安装QQ似的。
【常见问题】
- 安装路径尽量不要修改,按照默认的安装就行。
- 破解Keil的时候出现如下错误:ErrorR206:NO REGISTRY ACCESS。Administration Rights…….原因是打开软件的时候没有以“管理员的身份”打开,应该右击,然后选择“以管理员身份运行”,这样的话就不存在上述问题了。
- KEIL是用来干啥的:KEIL是一个集成开发环境,可以完成编辑、编译、连接、调试、仿真等整个开发流程。
- KEIL为什么要破解:KEIL没有破解的时候,允许程序代码长度限制在32K,注册完之后,就没有限制了。刚开始写小程序是没有影响的,如果后面写相对来说比较长的程序,就会有影响,无法编译。
(2) 安装驱动(具体方法请见文档“驱动的安装”)
【常见问题】
Ø 驱动的安装看人品,有的同学可能会一次性安装好,有的同学同学可能就悲剧了,需要经历不断的重装,重启……Win8系统多试几次
Ø 怎么判断驱动是否安装好了呢?
方法1:右击“计算机”(XP系统为“我的电脑”),选择设备管理器中的“端口(COM 和 LPT) ”,如果前面没有问号或者黄色的叹号,表示安装好了。
方法2:打开下载软件STC-ISP,如果串口号处出现下图所示的信息,表示安装好了。
Ø 如果STC-ISP下载软件中端口号一栏只有通讯端口(com*)这些字,说明驱动没有安装好,请重新安装。
(3) 找到下载软件STC-ISP,将其复制到桌面上(只有几百K,不会占你多大空间的!)
下面我们开始具体的开发流程的讲解!
第一步:写程序
(1)双击桌面上的Keil图标,打开Keil软件
(2)新建工程
点击工程(Project)—>新建工程(NewuVision Project),弹出如下对话框:
打开如下对话框,第一步选择保存路径,第二步写工程名,第三步点击保存。
弹出如下对话框,由于Keil软件里没有STC公司生产的芯片,所以此处我们选择Atmel公司的AT89C51或者AT89C52,点击“OK”。
点击OK后弹出对话框问是否生成启动代码,我们这里选择“否”,因为启动代码冗长,执行效率不高,所以不生产启动代码。
(3)新建程序文件
接下来建立新的程序文件,方式一可以点击工具栏的快捷图标,方式二在菜单栏中选择“File—>New”
新建的程序文件就是一个空白的文本框,默认为Text1,….
然后保存程序文件,方式一可以直接点击工具类的快捷键,方式二点击菜单栏“File—>Save”,弹出保存对话框,在工程文件夹里输入文件名,注意必须带后缀.C (C语言程序后缀名为.C,汇编程序后缀名为.asm)。这里我们写C程序,所以文件名为Test.c(C小写)。
(4)将程序文件添加到项目中
创建好工程和文件后,接下来要把程序文件添加到项目中,添加方法如下:鼠标右击“source group”,然后选择“Add File To Group ‘source group 1’”。
然后单击要添加的文件,点击“Add”,然后点击“Close”。注意点击一下就行,不要重复点击Add,否则软件会报告错误。
(5)写程序
第二步:编译
程序写好后,就可以进行编译了。编译的目的是让程序变成单片机能识别的及其文件,并且帮助程序员找出程序中的语法错误。编译完成后会在输出窗口显示编译结果,只有当结果出现“0error(s),0waring(s)”时,表示程序在语法上没有错误了。
接下来要生成机器码文件,点击快捷图标中的 用来设置输出的及其文件,点击后将出现对话框,然后进行如下操作。
接下来重新编译一次,就能生成hex文件了。
【常见问题】
Ø 新建的程序文件的后缀是.c,注意小写!
Ø 将新建的程序文件保存后,添加到工程里。如果你忘记了添加,编译的时候会出现如下错误:
Ø 出现下面错误:
原因是语句***it led=p1^0;中‘p’小写了,应该为大写。
两种下载方式:USB下载和串口下载(我们一般用USB下载方式)
(1)用USB下载时,只需用一根双公USB线将开发板与电脑连接即可,此时USB有两个作用,下载+供电。
(2)用USB转串口线下载时,首先用USB线将5V电源与开发板连接,然后用USB转串口线连接电脑和开发板,USB线供电,串口线下载。
双击STC-ISP图标
会看到下面的软件界面:按图中的说明操作即可
【常见问题】
下载时有很多同学没有成功,常见的问题有以下几种:
(1) 型号没选对,尤其51和52要看清。如果型号选择错误,会出现如下错误:
(2) 单片机不要插反,单片机的缺口朝上。如果插反的话,单片机会发烫!如果感觉到芯片发烫,请马上把开关断 开!
(3) 晶振是否插上?如果晶振没有插上的话,会一直有“正在检查目标单片机”
(4) 单片机接触不良,单片机的每个引脚应该夹杂紧缩座的两个金属片之间!将紧缩座的小掰手立起来,把单片机 重新放一下,放在中间位置,然后把小掰手掰下去。
(5) 驱动是否安装好了?之前已经说过,在此不再描述。
(6) 有没有冷启动?所谓的冷启动就是单片机在下载程序的时候必须有一个断电-->供电的过程。
- 如果开始的时候你的开发板处于断电状态(开关没开),点击下载之后,把开关闭合(开发板:断电-->供电)。
- 如果开始的时候你的开发板处于供电状态(开关闭合),点击下载之后,把开关先断开再闭合(开发板:供电-->断电-->供电)。
(7) 单片机坏掉/开发板坏掉!包换
6