单片机最小系统组成与IO输出控制_第1页
单片机最小系统组成与IO输出控制_第2页
单片机最小系统组成与IO输出控制_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机址一门实践性较强的技术.很多初学者征学习单片机技术开发的时候往往一头雾水.不知何从下手。为此.笔者 结合自己使用单片机多年的经验.待意设计r单片机刃发所需的study-c整机和碾習套件并结會套何精心編写r单片 机从入门到蒂通系列教程.通过讲述单片机原理.电路设计.应用开发软件匸具.編写实验实例让读者全而接他单片机 技术,教程編排上由浅入深循序渐进.内容力求完整.实用、趣味并存.使读者在轻松愉快的学习过程中逐步提高单 片机软谀件综合设计水平。一、内容提要本讲主耍向大家介绍51系列单片机的撤小系统的实现并通过編另程序来实现对单片机I0 口的输出控制。以点亮 外部连接的LED (发光二极管)为

2、例.简耍的介绍单片机的原理、瑕小系统的组成.并通过简单的C51程序设计來讲述 编译软件Keil的便用并下我Hex文件烧写单片机.二、原理简介在了解原理乙前首先让我们思考一个何題.什么堤单片机.单片机有什么用?这是一个有总思的问題.因为 任何人都不能给出一个被大家都认可的概念.那到底什么是单片机呢?普遍來说.单片机又称单片微控制器.是在 一块芯片中集成了 CPU (中央处理器八RAM (数据存储器、ROM (程序存储器).定时器/计数器和多种功能 的I/O (输入/输出接口零一台计算机所需耍的基本功能部件.从而可以完成复杂的运算、逻辑控制.通信等功能, 在这里.我们没必耍去找到明确的概念來解析什

3、么是单片机.持别在便用C语言编写程序的时.不用太多的去J'解单片 机的内部结构以及运行煉理等,从应用的角度来说.通过从简单的程序入手.慢慢的熟悉然后逐步深入精通单片机,在简单了解了什么是单片机2后然后我们来构建单片机的最小系统.单片机的巌小系统就堤让单片机能正常工作 并发挥其功能时所必须的组成部分也可理解为是用鼓少的元件组成的单片机可以匸作的系统。对51系列单片机來说. 最小系统一般咸该包括:单片机.时钟电路、芟位电路、输入/输出设备導(见因1) 图1单片机最小系统框图三、电路详解依据上文的内容.设计51系列单片机最小系统见图2:vccRSIGNDo I 2.34 d 6 7 plpl

4、plpppplpSTCAWX5Xinnnninnl 琪234567891011121314151617181920P3.CXRXD) P3 l(TXD) PJ2(INTo) P33(TNTI) P3.4(T0) P3.XT1) P3.&回 P3.7(RD)XTAL2 XTAL1VCCPOO(ADO) PO 1(AD1) P0 2(AD2) PO.3<AD3) P0.4(AIM) PO.5<AD5) P0.6(AD6) P0?(AD7)EAATP ale¥rog PSENP2.7(A15) P2.6(A14) P2.5(AL3) P2.4(A12)P2 3(A11)

5、 P22(AIO) P2.1(A9) P2.0(A8)4039艾37J6353433323127262524232?10KR1IK图2 51系列单片机鼓小系统下而就图2所示的单片机最小系统乞部分电路进行详细说明。1.时钟电路在设计时钟电路Z前.让我们先了解下51单片机上的时钟管脚:XTAL1 (19脚):芯片内部振荡电卅输入端。XTAL2 (18脚):芯片内部振荡电珞输出端。XTAL1和XTAL2绘独立的输入和输出反相放大器.它们可以被配肚为便用石英晶振的片内振荡器.或者是器件直 接由外部时钟驱动.图2中采用的是内时钟模式即采用利用芯片内部的振荡电路.在XTAL1. XTAL2的引脚上外接 定

6、时元件(一个石英晶体和淅个电容).内部振荡器便能产生口激振荡。一般來说晶振可以在1.212MHz Z间任选. 施至可以达到24MHz或碎更臥但是频率越高功耗也淤越大。在本实验套件屮釆用的11.0592M W石英晶振。和晶振 并联的两个电容的大小对振荡频率冇微小影响可以起到频率微调作用。当釆用石英晶振时.电容可以在2040pF Z 间选择(本实验套件使用30pF):当采用陶浇谐振器件时.电容要适当地增大一些.在3050pF Z间。通常选取 33pF的陶瓷电容就可以了。另外值得一提的是如果读者自己在设计单片机系统的印刷电路板(PCB)时晶体和电容应尽可能与单片机芯片靠 近.以减少引线的寄生01容.

7、保证振荡器可矗工作,检测晶抿是否起抿的方法可以用示波器可以观察到XTAL2输出的 十分漂壳的正弦波.也可以便用万用表测址(耙挡位打到直滅挡.这个时候测得的是有效值)XTAL2和地Z间的电压 时.可以看到2V左右一点的电压。2复位电路在单片机系统中.复位电路是非常关键的.当程序跑飞(运行不正常)或死机(停止运行)时.就需耍进行复位.MCS-51系列单片机的圮位引脚RST第9管脚)出现2个机器周期以上的拓电平时单片机就执行复位操作。 如果RST持续为尚电平单片机淤处F循坏复位状态.复位操作通常有两种星本形式:上电自动复位和开关复位。图2中所示的复位电路就包括了这两种复位方式。上电 瞬间.电容两端电

8、压不能突变.此时电容的负极和RESET相连,电压全部加在了电阻上,RESET的输入为高.芯片被 芟位。随Z+5V电源给电容充电.电阻上的电压逐渐械小.址后约零于0.芯片正常工作并联在电容的沥端为芟位按 键.当芟位按键没冇被按下的时候电路实现上电芟位.在芯片正常匸作庙 通过按下按键便RST管脚出现高电平达到手 动复位的效果:一般來说.只耍RST管脚上保持10ms以上的高电平.就能使单片机有效的复位。图中所示的复位电 阴和电容为经典值.实际制作是可以用同一数业级的电阻和电容代替.读者也可自行计筋RC充电时间或在匸作环境实 际测邑以确保单片机的复位电路可靠。3EA/VPP(31脚)的功能利接法51单

9、片机的EA/VPP (31脚)皑内部和外部程序存储器的选择管脚。当EA保持高电平时单片机访何内部程序 存储器;当EA保持低电平时.则不管是否有内部程序存储器.只访问外部存储器。对于现今的绝大部分单片机來说其内部的程序存储器(一般为flash )容址都很大.因此基本上不需耍外接程序存 储器.而是直接使用内部的存储器,在本实脸套件中.EA管脚接到f VCC上.只便用内部的程序存储器。这一点一定耍注臥 很多初学考常常将EA管 脚悬空从而导致程序执行不正常,4. P0 口外接上拉电阻51单片机的P0瑞口为开湖输出,内部无上拉电阻(见图3).所以在当做普通I/O输出数据时,由于V2截止. 输出级是漏极开

10、路电路.要使“1"倍号(即高电平)正常输出.必须外接上拉电阻.另外.避免输入时读取数据出错.也需外接上拉电HL在这里简要的说下其原因:在输入状态下从镇存器和从引 脚上读來的倍号一般是一致的.但也有例外。例如.当从内部总线输出低电平后.谀存器Q = 0. Q = 1.场效应管 V1开通.端口纨呈低电平状态。此时无论端口线上外接的倍芳绘低电平还是高电平.从引脚读入单片机的信芳都是低 电平.因而不能正确地读入端口引脚上的信号,又如.肖从内部总线输出高电平后.镇存器Q = 1,Q = 0,场效应管 V1截止。如外接引脚信号为低电平.从引脚上读入的信号就与从锁存器读入的信号不冋。所以当P0 口

11、作为通用I/O接 口输入使用时在输入数据前賊先向P0 口2T1”.此时锁存器的Q端为“0”,使输出级的两个场效应管V1、V2均截 止.引脚处于悬浮状态.才可作高阻输入总结来济 为J'能便P0 口在输出时能驱动NMOS电路和避免输入时读取数据出错.需外接匕拉电阻。在本实验套 件中采用的是外加一个10K排姐。此外.51单片机在对端口 P0-P3的输入操作上,为避免读错.应先向电路中的镇 存器场入竹”使场效应管裁止.以避免镇存器为“0”状态时对引脚读入的干扰;5LED驱动电路細心的读者可能己经发现.在最小系统中.发光二极管(LED)的接法是采取了电源接到二极管正极再经过1K电 阻接到单片机I

12、/O 口上的(见图4中的接法。为什么这么接呢?首先我们要知道LED的发光匸作条件.不同的LED其额定电压和额定电ifi不Rh 一般而詁红或绿颜色的LED的工作电斥为17V24V.蓝或口陡色的LED工作电压为2.7-4.2V直径为3mm LED的工作电流2mA“0mA,在这里采用红色的3mm的LED。其次.51单片机(如本实验 板中所使用的STC89C52单片机的I/O 口作为输出口时.拉电涼(向外输出电流)的能力是pA级别.是不足以点亮 一个发光二极锌的,而灌电流(往内输入电潦)的方式可高达20mA.故釆用灌电流的方式驱动发光二极管。当然.现 今的一些增强型单片机.是采用拉电流输出(接法2)的

13、,只要单片机的输出电流能力足够强即可。另外.图4中的电阻为1K阻值.绘为限制电流.让发光二极管的匸作电流限定在2mA-10mAIO接法1IO图4 LED的接法接法2四、程序设计在单片机編程语言上有C语言和汇編两种选择。本系列教程采用C语言编写程序.在此对C语言和汇编语言在 进行单片机开发时进行下简单比较.汇編语言面向硬件.耍求对硬件的持性如寄存器Z类的比校熟悉.执行效率臥 但 可读性和移榊性差.不同的单片机Z间的程序不能通用例如学会了 51单片机的汇編拆令却没法用到AVR单片机上。 C语詳而向过程.可读性和移植性很好.效率耍比汇编低一些。对于刚接触单片机的人來说.学习这两种语言堤一样的. 但在

14、以后的开发效率上.C语言的优势就体现出來J'其可以几乎完全不改动的情况下移植.大大提高开发速度。控制发光二极管D1闪烁的C语吝源程序:1.程序详细说明(1)头文件包含。程序接下来调用的P0J)就是该头文件中定义好的一个寄存器地址。在对单片机内部的奇ff器操 作2前应申明其来处.冇兴趣的读者可以看看AT89X52.h文件中的内容.(2)宏定义led,便于直观理解也便于程序修改.将P0_0 口命名为led,这样在程序屮就可以用led代替P0_0 口 进行操作.(3延时函数声明。函数在调用Z前必须进行声明.由于函数定义放在主函数2后所以在主函数Z前对延时函 数进行了声明(4)主函数入口。主函

15、数不传递参数也不返回值。(5死循环。(6输出高电平.led不亮.(7)延时一段时间以便人眼能够克观看到。(8)输出低电平.led点亮.(9)延时一段时间。(10)延时函数定义。(11)for语句循环延时。2程序流程图与实验现皱程序涼程如图5所示。经编译软件(keil)編译,生成单片机烧另文件,然后就可下裁到单片机内部运行了,硬件 电路板如图6所示.本实验板上用的是STC89C52RC.可以用通过板载USB转申口烧耳程序:故将USB线(本实聆套 件中有)连接电脑和实验板。供电电源可以从USB取.也可以从外部电源取电。冷启动.即先点击下it然后再上电. 下裁程序到单片机内运行后.可以看到实验板上P

16、0_0 口外接的LED灯(D1) 一亮一灭的闪烁。'开始五.总结图6谀件电路板图熄灭LED延时点亮LED1r延时图5程序流程图本讲主耍介绍了 51单片机眾小系统的设计以及編写第一个简单的程序。从过该实验.可以型握单片机的开发流程. 从而快速入门在该讲中应该注:&几个何题:1.本讲座中采用C语言編写程序因为C语言的可读性和可移植性强。若读者没有学过C语言则应文汀解和 韋握相应的C语言知识。C语言易学易用相信很快就能熟练。2程序編译软件釆用的是Keil;限于篇幅的原因.在这里就不对其进行讲述.如果读者有对其不明口的地方.可以 到本刊论坛的单片机版而.作者制作J"一个详细的

17、Keil入门教程。我们通过Keil编译程序.鼓终生成烧雳单片机的Hex 代码文件,Keil软件界面如图7所示.屮间空口区域为代码区.左测为项日列表鼓下面为消息窗口。图7 Keil软件开发界面3.本实验板上所用的STC单片机通过也口下載程序。其上位机软件界面如图8所示(推荐使用V3.1版本最新 版本可以到STC主页上下裁:.mcu-memory./).烧耳操作很简单.点击“Open File”按钮浏览找到所生成耍烧耳的 Hex文件后.单片机断电点击“下叔"按钮单片机上电程序就可下救到单片机中了.Mp!/rTW.«iL li.sty.ssB审口八"RZ迥:八:H W

18、! Ftt:j.:3WTOyo M« i II壯W1H£f«rAUro.OlO Kd DuTZEHMMG ISFJ/iUM W皿 urivFil:£il« .ra« cm. s>r»WM*of3j i七21.13tM卅3 Sdict OM rvtjuOCB to2 *? lu Htl |naro VOKMLO <»»» oooo» OOOM)!翊晦苓13朝爾ft&E菟)nKW.5TfOi.ceU«/gg iM口®u&nrnfmur w&a

19、mp;is Imbib r)i«< / WISEW«H5® iw/aiBifcea* «ict/2 z a fan 小矢砂幅ltMi uir 翊afi可越i/» sgTmeitsw n <L»L i-c,0 才*WrrtWF r ns :. »0X»M MIW owiioOW O) »>»«»«»»» M 03 »<» M »cnM OJ «M » M M 6J

20、» <H M 05 » M « ® 0) I » 0) «» » « W 0) i» » 00 0) G) l» 03 0» 0) 0»0)<»<»OOCM«»<»«)00 0) »«»>»<»(»CM O) »«»»«»»» 03 W O)«»«» 03 W O)« 03 o)» oo (M » <» «n oo o)» «» 03 » o) » 0) ») » I» M 0) G) «n GO 0) |» 0) 03 M 0)» o)«» 

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论