单片机最小系统的设计与制作江西冶金职业技术学院刘昆山刘星慧【摘要】本文通过讲解单片机的工作条件,设计并制作单片机最小系统,编写单片机C语言程序,调试单片机产品,掌握单片机产品开发的基本过程。
【关键字】单片机C语言,单片机入门,单片机最小系统一、单片机最小系统功能介绍单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的以单片机为核心元件的可以正常工作的具有特定功能的单片机系统,是单片机产品开发的核心电路。
图1单片机最小系统成品图本制作采用单片机C语言编程,主要能完成单灯闪烁的任务,通过AT89S51单片机控制一个LED的亮与灭,实现闪烁现象。
同时应具有上电复位和手动复位,并且使用单片机片内程序存储器存放用户程序。
二、知识点讲解1、AT89S51单片机简介AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K 的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储器技术生产,兼容标准8051指令系统及引脚。
它集成的Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程。
单片机的应用可以理解为是单片机芯片通过其引脚控制各种不同的外围电路,实现各种具体功能,所以要学好单片机技术,必须先了解单片机的引脚功能。
AT89S51采用了40引脚的双列直插DIP封装形式,实物图如图2所示,引脚配置图如图3图4所示。
图2 AT89S51实物图图3 AT89S51引脚图图4 AT89S52引脚图2、引脚功能介绍IO口灌(流进)电流大,拉(流出)电流小。
P0:漏极开路的双向IO口,使用时,当电流流出需外加上拉电阻外部地址数据总线,可带八个TTL负载P1:准双向口(当作输入口用时,须将IO口置1(P1=0XFF;i=P1;)),可带四个TTL负载P1.0:T2定时计数器2的外部脉冲输入及时钟输出P1.1:T2EX定时计数器2的捕捉、自动重装的触发输入及减法计数控制P1.5:MOSI,主动输出从动输入引脚,用于flash(闪存)编程P1.6:MISO, 主动输入从动输出引脚,用于flash编程 P1.7:SCK, 同步时钟,用于flash编程 ISP编程时用P2:准双向口,可带四个TTL负载外部地址总线高八位P3:准双向口,可带四个TTL负载P3.0:RXD,串行输入P3.1:TXD,串行输出P3.2:INT0,外部中断0输入P3.3:INT1,外部中断1输入P3.4:T0,定时计数器0的外部脉冲输入P3.5:T1,定时计数器1的外部脉冲输入P3.6:/WR,外部数据存储器的写选能信号P3.7:/RD,外部数据存储器的读选能信号VCC:电源正极,工作电压范围:4.0v-5.5v。
GND:地RST:复位端,高电平有效XTAL1(clock in)、XTAL2(clock out):时钟引脚,外接晶振和谐振电容(5-47PF),晶振的谐振频率范围:0hz--33Mhz,用作工控产品时不超过6MHZ。
常用晶振型号: 4MHZ,6MHZ,8MHZ,16MHZ,12MHZ,24MHZ,5.5296MHZ,11.0592MHZ,22.1184MHZ,33.1776 MHZEA/Vpp:外部程序存储器的选通信号/编程电压输入EA=0:使用外部程序存储器EA=1:先使用内部程序存储器,后使用外部程序存储器ALE/PROG:外部低八位地址总线锁存信号/编程脉冲输入,Fosc/6PSEN:外部程序存储器的读选通信号2、产品框图设计对51系列单片机来说,单片机要正常工作,必须具有五个基本电路,也称五个工作条件:1、电源电路,2、时钟电路,3、复位电路,4、程序存储器选择电路,5、外围电路。
为了下载程序方便,增加一个ISP 下载电路。
因此,单片机最小系统一般应该包括单片机、晶振电路、复位电路、外围电路、ISP 下载电路等,如图5所示: 图 5单片机最小系统框图三、电路设计我们把AT89S51单片机的40个引脚分成了四类:主电源输入引脚、时钟电路引脚、控制类引脚、输入输出I/O 口引脚。
1、电源电路设计单片机芯片的第40脚为正电源引脚VCC ,一般外接+5V 电压。
第20脚为接地引脚GND ,常见电源电路设计如图6所示:12MHZ C130pF C230pFXTAL2AT89S51XTAL11819图6电源电路 图7时钟单片机 时钟电路 复位电路外围电路电源电路 程序存储器选择电路 ISP 下载电路电路2、时钟电路设计单片机是一种时序电路,必须要有时钟信号才能正常工作。
单片机芯片的18脚(XTAL2)、19脚(XTAL1)分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个晶振,再加上2个30PF的瓷片电容即可构成单片机所需的时钟电路。
常见的时钟电路如图7所示。
注意,当采用外部时钟时,19脚(XTAL1)接地,18脚(XTAL2)接外部时钟信号,本文就不详细讨论了。
3、复位电路的设计单片机芯片的第9脚RST(Reset)是复位信号输入端。
单片机系统在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。
复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。
MCS-51系列单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。
常见的复位电路有上电复位电路(如图8所示)和按键复位电路(如图9所示)两种。
IO1AT89S519VCC5VC110uFR210k W 220 W图8上电复位电路 图9按键复位电路4、程序存储器选择电路单片机芯片的第31脚(EA )为内部与外部程序存储器选择输入端。
当EA 引脚接高电平时,CPU 先访问片内4KB 的程序存储器,执行内部程序存储器中的指令,当程序计数器超过0FFFH 时,将自动转向片外程序存储器,既是从1000H 地址单元开始执行指令;当EA 引脚接低电平时,不管片内是否有程序存储器,CPU 只访问片外程序存储器。
AT89S51内部有4KB 的程序存储器,所以根据该引脚的功能,只要将该引脚接上高电平,才能先从片内程序存储器开始取指令。
常见的程序存储器选择电路就是将第31脚直接接到正电源上。
5、外围电路的设计单片机的主要控制功能是通过单片机的I/O 口按不同时序输出不同的高低电平控制外部的电路实现特定的功能。
I/O 口,是英文IN/OUT 的缩写,就是输入/输出的意思。
AT89S51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
这四个口的电路结构不完全相同,所以使用也有区别。
外围电路的设计主要依据项目要实现的功能,本项目要实现的功能是用单片机控制一个LED闪烁,先来分析图8的LED工作原理图:图10 LED显示电路如果用“1”表示高电平,“0”表示低电平。
当开关K接上高电平,既是K=1时,LED1不亮;当开关K接上低电平,既是K=0时,LED1亮。
LED1的亮与灭,完全受开关K的控制。
如果把开关K换成单片机的第1个引脚,电路设计如图11:图11 单片机控制1个发光二极管LED显示电路现在只需要通过指令控制单片机的第1个引脚输出高电平,就可以控制LED的不亮。
或通过指令控制单片机的第1个引脚输出低电平,就能控制LED的发光。
从图8到图9实现了开关控制到软件控制LED的一种转变。
6、ISP下载电路设计ISP是一种通用的程序下载方式,AT89S5X系列单片机都有ISP下载接口。
AT89S51单片机实现了ISP下载功能,可以通过ISP下载线把程序下载到单片机芯片中。
ISP下载线成本低廉,一个并口ISP下载线只需几十元即可得到,是单片机初学者必备的工具之一。
一般与市场上的并口ISP下载器相配套的牛角座的接口定义如图12所示。
图12 接口定义AT89S51单片机的第6到第9引脚的定义如下:端口引脚第二功能P1.5第6脚MOSI(数据串行输入,用于ISP编程)P1.6第7脚MISO(数据串行输出,用于ISP编程)P1.7第8SCK(同步控制时钟,用于脚ISP编程)RST复位引脚RST第9脚ISP下载电路设计如下:图13 ISP下载电路依据单片机的工作条件和上面的电路设计,单片机最小电路原理图设计如图14所示:二、单片机最小系统原理图图14 单片机最小系统原理图三、单片机最小系统工作原理1、硬件电路分析对51系列单片机来说,单片机要正常工作,必须具有五个基本电路,也称五个工作条件:1、电源电路,2、时钟电路,3、复位电路,4、程序存储器选择电路,5、外围电路。
为了下载程序方便,增加一个ISP下载电路。
因此,单片机最小系统一般应该包括单片机、晶振电路、复位电路、外围电路、ISP下载电路等,如下图所示:单片机的主要控制功能是通过单片机的I/O口按不同时序输出不同的高低电平控制外部的电路实现特定的功能。
I/O口,是英文IN/OUT的缩写,就是输入/输出的意思。
AT89S51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。
这四个口的电路结构不完全相同,所以使用也有区别。
外围电路的设计主要依据项目要实现的功能,本项目要实现的功能是用单片机控制一个LED闪烁。
现在只需要通过指令控制单片机的第1个引脚输出高电平,就可以控制LED的不亮。
或通过指令控制单片机的第1个引脚输出低电平,就能控制LED的发光。
2、程序设计依据上面设计的硬件电路,设计源程序如下:#include<reg52.h> //52系列单片机头文件sbit LED1=P1^0; //声明单片机P1口的第一个引脚void delay unsigned char k //延时子函数{unsigned char i,j;for(i=0;i<k;i++)for(j=0;j<200;j++);}Main() //主函数{while(1) //实现永久循环{LED1=0; //点亮LED1delay(200); //延时LED1=1; //熄灭LED1delay(200); //延时}}四、元件清单及实物图五、调试技巧及成品图1、硬件电路焊接步骤(1)根据原理图和万能板的大小,设计好元件布局,然后开始焊接,首先固定好紧锁座,并先焊接振荡电路。
(2)第二步应该焊接复位电路。
(3)第三步焊接ISP下载电路(4)第四步,焊接外围功能电路。
(5)第五步,焊接电源电路,及程序存储器选择电路,就是将第31脚直接接到正电源上。
所有电路焊接完成后,插上单片机芯片,如下图所示:2、把程序写入到单片机最小系统中进行调试第一步:编辑源代码。