能让单片机工作的由最基本元器件构成的系统称为单片机最小系统。构成51系列单片机最小系统的基本条件如下:
电源:单片机使用的是5V电源
振荡电路:单片机是一种时序电路,必须有脉冲信号才能工作。在它的内部有一个时钟产生电路,只要接上两个电容和一个晶振即可正常工作
复位电路:启动后让单片机从初始状态开始执行程序
引脚:接到电源正极,表示使用内部程序存储器
图2-23所示为点亮发光二极管D1所需的单片机最小系统原理图。
图2-23 点亮发光二极管D1所需的单片机最小系统原理图
注意: 在Proteus中绘制仿真原理图时,最小系统所需的晶振电路、复位电路和 引脚与电源的连接都可以省略,并不影响仿真效果。
本例在Keil C51下编写点亮图2-23中发光二极管D1的程序,并用Proteus软件对编写的程序进行仿真。
点亮发光二极管D1的工作原理很简单,只要让P1.0输出低电平,使D1正向偏置即可。在C语言中,只要输入以下语句即可。
可见控制语句很简单,但怎样将其写入单片机呢?换句话说,怎样让单片机明白我们的意思呢?这些工作需要用Keil C51软件来完成。
1.新建项目和源程序文件
Keil C51软件安装完成后,双击桌面上的“Keil μVision2”图标,进入“μVision2”工作界面。
1)新建项目
执行菜单命令“工程”→“新建”,弹出“新建工程”对话框,如图2-24所示。指定好保存路径后,在“文件名”文本框中输入“ex3”,再单击“保存”按钮即完成新工程的创建(系统默认扩展名为“.uv2”)。此时系统弹出图2-25所示的“为目标选择设备”对话框,单击对话框左端数据库内容中Ateml前面的图标“+”,再从弹出的系列单片机型号中单击“89C51”,单击“确定”按钮即完成设备的选择。
图2-24 “新建工程”对话框
图2-25 为目标选择设备
设备选择结束后,在图2-26所示的窗口左边的项目管理器中新增加了一个“Target1”文件夹,利用它可以对项目进行源程序添加和属性设置等操作。
图2-26 项目管理器中新增了“Target1”文件夹
2)新建源程序文件
要编写程序,还需要新建一个源程序文件,再在该文件中编写程序。
执行菜单命令“文件”→“新建”,将会新建一个默认名为“Text 1”的空白文档,如图2-27所示。输入以下C语言源程序:
图2-27 新建源程序文件
执行菜单命令“文件”→“保存”,弹出图2-28所示“另存”对话框。指定好文件保存路径后,在文件名文本框中输入“ex3.c”。然后单击“保存”按钮完成源程序的保存。
图2-28 保存源程序文件的对话框
注意: 源程序后缀“.c”必须手工输入,表示为C语言程序,让Keil C 51采用对应C语言的方式来编译源程序。
2.将新建的源程序文件加载到项目管理器
单击图2-27所示的项目管理器中“Target 1”旁边的“+”图标,展开后在“Source Group 1”文件夹上单击鼠标右键,弹出图2-29所示的快捷菜单,选择“增加文件到组‘Source Group 1’”命令,会出现图2-30所示的对话框。在该对话框中选择文件类型为“C源文件”,找到新建的“ex3.c”,单击“Add”按钮,“ex3.c”文件即被加入到项目中。此时对话框并不会消失,可以继续加载其他文件。单击“关闭”按钮将该对话框关闭。在Keil 软件项目管理器的“Source Group 1”文件夹中可以看到新加载的“ex3.c”文件,如图2-31所示。
图2-29 在快捷菜单中选择加载源程序文件的命令
图2-30 在对话框中选择要添加的文件
图2-31 “Source Group 1”文件夹下出现加载的文件
3.编译程序
单片机不能处理C语言程序,必须将C 程序转换成二进制或十六进制代码,这个转换过程称为汇编或编译。Keil C51软件本身带有C51编译器,可将C程序转换成十六进制代码,即*.hex文件。用鼠标右键单击“Target 1”,从弹出快捷菜单中选择“目标Target 1属性”命令,弹出图2-32所示的目标属性设置对话框。该对话框有8个标签页,其中“目标”和“输出”标签页较为常用,默认打开的是“目标”标签页。本书只需在“输出”标签页中选中“生成HEX文件”选项即可,如图2-33所示。选中该选项后,在编译时会生成扩展名为“.hex”的十六进制文件供程序烧录或Proteus仿真使用。最后单击“确定”按钮即可完成所需设置。设置完成后单击图2-34所示的 图标,或者执行菜单命令“工程”→“重新构造所有目标”命令,软件就开始对源程序“ex3.c”进行编译。如果程序没有问题,将在输出窗口给出“0 错误,0警告”的信息提示。
图2-32 目标属性设置对话框
图2-33 编译时生成十六进制文件“.hex”的设置
图2-34 程序编译后的提示信息
4.用Proteus软件仿真
程序经Keil软件编译通过后,就可以利用Proteus软件进行仿真了。在Proteus ISIS工作环境中绘制好仿真电路图,或者打开配套光盘中的“仿真实例\第二章\ex3”文件夹内的“ex3.DSN”仿真原理图文件。然后用鼠标右键单击图中的AT89C51,从弹出的快捷菜单中选择“Edit Properties”命令,弹出“Edit Component”对话框,在“Programe File”栏目中载入编译好的“ex3.hex”文件,并在“Clock Frequency”文本框中输入“11.0592MHz”,单击“OK”按钮返回Protus ISIS原理图工作界面。最后单击运行按钮即可进行功能仿真。仿真效果如图2-35所示。从图中可以看出,发光二极管D1被点亮,达到了预期控制目的。
图2-35 点亮一个发光二极管的仿真效果