赞
踩
ü 掌握C51单片机的基础知识;
ü 完成Keil和烧录软件的安装,并能正确使用。
1)单片机的基本组成
单片机又称单片微控制器,类似于一台微型计算机,内部资源主要可分为Flash、RAM、SFR。
Flash,俗称“闪存”,用于存储程序,它的最大特点是断电后数据不会丢失,其存储特性相当于计算机的硬盘。
RAM(Random-Access Memory),俗称“内存”,主要用于存储短时间使用的程序,特点是断电后数据丢失,但是读写速度非常快,其特性相当于计算机的内存。
SFR(special funtion register)是单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令、状态或数据,通过对SFR的读写来实现单片机的多种多样的功能。。
通常说到的51单片机,指的都是兼容Intel MCS-51体系架构的一系列单片机,51是它的一个通俗的简称。全球有众多的半导体厂商推出了无数款这一系列的单片机,比如Atmel的AT89C52,NXP(Philips)的P89V51,宏晶科技的STC89C52……具体型号千差万别,但他们的基本原理和操作都是一样,程序开发环境也是一样。
所有项目中选择STC89C52这款单片机来进行学习。STC89C52是宏晶科技出品的一款51内核的单片机,具有标准的51体系结构,全部的51标准功能,程序下载方式简单,方便学习。它的资源情况:Flash程序空间是8K字节(1K=1024,1 字节=8位),RAM数据空间是512字节。
2)单片机引脚分布(位的概念)
如图1所示,共40引脚,其中P0为准双向口,P1、P2、P3为双向口。除了这32个引脚外,常用的还有:
EA:当引脚信号为高电平时,对ROM读操作从内部存储器开始;当引脚信号为低电平时,对ROM读操作从外部存储器开始。因此,一般情况下EA外接高电平。
RST:复位引脚。当输入的高电平信号持续两个机器周期以上时,实现单片机复位操作。
XTAL1和XTAL2:晶振信号引脚。外接石英晶振和微调电容,为单片机提供精准时钟,常用的晶振有11.0592M和12M。
VSS:接地线。
VCC:接电源,常用+5V。
其中RXD和TXD为引脚的第二功能,用于接收和发送数据。
3)单片机最小系统
使单片机能运行的最简配置叫做单片机的最小系统,包括电源、晶振和复位电路,如图2所示。
1.电源
目前主流单片机的电源分为5V和3.3V这两个标准,当然现在还有对电压要求更低的单片机系统,一般多用在一些特定场合。
STC89C52需要5V的供电系统,开发板使用USB口输出的5V直流直接供电。从图2中可以看到,供电电路在40脚和20脚的位置上,40脚接的是+5V,通常也称为VCC或VDD,代表的是电源正极,20脚接的是GND,代表的是电源的负极。+5V和GND之间还有个电容。
2.晶振
晶振又叫晶体振荡器,它起到的作用是为单片机系统提供基准时钟信号,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作。STC89C52单片机的18脚和19脚是晶振引脚,项目中接了一个11.0592M(或12M)的晶振(它每秒钟振荡11,059,200次),外加两个20pF的电容,电容的作用是帮助晶振起振,并维持振荡信号的稳定。
3.复位电路
在图2左侧是一个复位电路,接到了单片机9脚RST(Reset)复位引脚上。单片机复位一般是3种情况:上电复位、手动复位、程序自动复位。
假设单片机程序有200行,当某一次运行到第20行的时候,突然断电,这个时候单片机内部有的区域数据会丢失掉,有的区域数据可能还没丢失。那么下次打开设备的时候,希望单片机能正常运行,所以上电后,单片机要进行一个内部的初始化过程,这个过程就可以理解为上电复位,上电复位保证单片机每次都从一个固定的相同的状态开始工作。这个过程跟打开电脑的过程是一致。
当程序运行时,如果遭受到意外干扰而导致程序死机,或者程序跑飞的时候,可以按下一个复位按键,让程序重新初始化重新运行,这个过程就叫做手动复位,最典型的就是电脑的重启按钮。
当程序死机或者跑飞的时候,单片机往往有一套自动复位机制,比如看门狗,具体应用以后再了解。在这种情况下,如果程序长时间失去响应,单片机看门狗模块会自动复位重启单片机。还有一些情况是程序故意重启复位单片机。
电源、晶振、复位构成了单片机最小系统的三要素,也就是说,一个单片机具备了这三个条件,就可以运行程序了,其他的比如LED小灯、数码管、液晶等设备都是属于单片机的外部设备,即外设。最终完成想要的功能就是通过对单片机编程来控制各种各样的外设实现的。
4)本书配套电路图
本书配套的电路原理图如图3所示,普及下原理图的知识,电路原理图是为了表达这个电路的工作原理而存在,很多器件在绘制的时候更多考虑的是方便原理分析,而不是表达各个器件实际位置。比如原理图中的单片机引脚图,引脚的位置可以随意放,但是每个引脚上有一个数字标号,这个数字标号代表的才是单片机真正的引脚位置。一般情况下,这种双列直插封装的芯片,左上角是1脚,逆时针旋转引脚号依次增加,一直到右上角是最大脚位,现在选用的单片机一共是40个引脚,因此右上角就是40(在表示芯片的方框的内部),一定要分清原理图引脚标号和实际引脚位置的区别。
1)Keil软件作用
Keil是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,该软件包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。在本教材中用于程序的编译、调试等,经Keil编译后生成HEX文件,结合STC-ISP烧录软件,将HEX烧录到单片机中。
Keil软件版本众多,在本教材中采用Keil u4Vision4,也叫作Keil C51,由于版权关系,该软件试用版最大能编译4K大小的HEX文件,需要的读者可以到Keil官网购买正版软件。
2)STC-ISP烧录软件
STC-ISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,使用简便,在本学习中通过STC-ISP将HEX文件烧录到单片机中。
Keil软件安装只需一步步安装下来即可,如图4所示。
当安装到如图5界面时,在空白处填任何字母即可,右下角“Next”就会显示高亮,可以进行下一步操作。
安装完成后在桌面出现如图6所示的快捷方式。
双击该软件后,可能出现图7红框中的文件,称为“工程”,自带的工程并不是我们所需,因此在新建工程之前将原先的工程关闭,操作如图8所示,Project—>Colse Project,关闭工程即可。
单片机操作流程:新建工程项目à程序编写、调试à烧录程序à运行。
首先建立本教材的第一个项目工程,在桌面上新建一个文件夹,取名“MyFirstPJ”,双击打开已安装的Keil C51,如图9所示,点击ProjectàNew uVision Project,再定位到新建的文件夹MyFirstPJ,输入文件名MyFirstPJ,如图10,文件名可以任取,编者建议选取跟项目相关的名字,方便区分,点击保存,出现如图11对话框,选择Atmel—>AT89C52,点击“OK”,如图12,弹出如图13所示的对话框,选择“是”或者“否”均可,在本例中选择了“否”,表示使用默认的启动代码,如需要进行修改启动代码选择“是”。
工程建完,接下去新建工程文档,点击FileàNew,出现如图14界面,点击
,出现如图15界面,输入“main.c”,点击保存。注意一定要后缀名为“.c”,如果采用汇编语言后缀名为“.asm”,大小写没有关系,后缀名必须正确,文件的名字应该具有实际含义,会给后续的查找带来很大方便,初学者更应养成这个好习惯。
工程文档新建完成后,将文档和工程进行关联,如图16所示,在“Source Group 1”右键选择“Add Files to Group ‘Source Group 1’”,出现图17界面,选择“main.c”,点击“Add”,关闭该界面。
至此完成文档与工程的联系,如图18左侧框所示。
3.3、程序编写及HEX文件生成
编写如图19程序,注意括号有中括号和小括号之分,完成程序后点击
,出现图20对话框,选择“Output”,勾选“Create HEX File”前复选框,再点击“OK”,这样编译后才会生成HEX文件。
在编译前解释下图19的三个按钮
,左侧第一个是编译按钮,只是检查所写程序中是否有语法错误,不会进行链接,所以无法生成HEX文件,使用较少;第二个比较常用,按钮的作用是只编译当前文件并进行库连接等,其将会完成需要生成HEX的所有操作;第三个按钮也会生成HEX文件,但是会重新编译全部文件,例如如果一个文件较大,修改后每次重新编译会消耗很多时间,大部分情况只需要重新编译修改后的文档即可。类似编译本例中较小的程序,两者没有本质的区别。
程序编写和设置完成后,点击菜单栏中的
,界面左下角出现如图21界面,其中ERROR(S)代表程序中的错误数,WARNING(S)代表程序中的警告数。如果程序中存在ERROR(S)则表示程序有绝对意义上的错误,此时无法生成HEX文件。如果程序中存在WARNING(S),则表示程序中有欠完善的地方,但是这种欠完善不是绝对意义上的错误,生成的HEX是可以在硬件上运行。这种WARNING(S)究竟是什么“警告”需要读者自己清楚,如果不知道“警告”的出处,需要排除这种“警告”,该程序显示0错误和0警告,至此生成的HEX可以在单片机正常运行。
打开MyFirst文档可看到MyFirstPJ.hex文件,如图22所示。
为了更好的使用Keil软件,可以进行字体大小等一些设置。在菜单栏中选择Edit—>Configuration,显示图23画面,先选择Editor,在Tab size写“4”,表示在编程中按下TAB键会相应的缩进4格。
在Configuration中选择“Colors&Fonts”—>“8051:Editor C Files”—> “Test”—> “Courier New”,即可改变字体大小,如图24所示。
单片机开发需要跟电脑进行串口通讯,现在电脑上很少有串口,而较为普遍的是USB接口,因此将电脑的USB口映射为串口用,CH340是常用的USB转串口芯片,同时也能实现USB转串口、USB转IrDA红外或者USB转打印口。
CH340芯片已集成在配套的开发板上,还需要安装相应的驱动,相应的驱动在配套的软件包,文件名为“CH341SER”,读者也可以在网上下载安装即可。
安装界面如图25所示,以Win7为例,在我的“计算机”右键—>属性—>设备管理器打开,显示如图26界面,在“端口”处只有“通信端口”,安装完驱动后,在“端口”处出现“USB-SERIAL CH340”,通道为“COM3”,如图27界面,“COM3”在下一小节中用到。
打开配套软件包中的“STC-ISP-v4.80”,也可以去STC官网下载最新的STC-ISP软件,软件操作大同小异,以软件包中烧录软件为例。
第一次使用该软件首先找到后缀为“.exe”的执行文件,右键以管理员身份运行,如图28所示,操作步骤:①选择单片机型号,选择“STC89C52RC”;②打开程序文件,找到相应的HEX文件;③选择串口号,计算机à属性à设备管理器à端口,即可查找相应串口号;④点击“Download/下载”按键
点击后,界面会停留在图29所示,显示“仍在连接中,请给MCU上电…”,因为单片机为冷启动类型,需要关闭单片机电源,再次重新打开,此时界面如图30所示,表示下载成功。
程序无法下载或是工作异常通常有以下原因:
1、观察单片机在单片机座是否安装正确,如果安装错误长时间通电会烧毁单片机!
2、开发板长时间不用导致引脚氧化层太厚,表现为单片机和单片机座接触不良。这时只需要将单片机放入单片机座并将单片机座锁紧(注意:是锁紧不是锁死)然后左右横向移动单片机来摩擦引脚,反复十次左右即可。
3、是否安装相关驱动,在烧录程序时是否选择正确的串口号。
3、长时间不用时一定要避免灰尘的侵入,由于开发板本身就是裸板所以更要避免灰尘。这些地方一旦有灰尘导致引脚间导电轻则工作不稳,重则烧毁芯片。
在b站可以观看相关视频!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。