电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机的最小系统

9页
  • 卖家[上传人]:夏**
  • 文档编号:478111133
  • 上传时间:2023-03-19
  • 文档格式:DOC
  • 文档大小:307KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、单片机是一门实践性较强的技术,很多初学者在学习单片机技术开发的时候往往一头雾水,不知何从下手。为此,笔者结合自己使用单片机多年的经验,特意设计了单片机开发所需的Study-c 整机和硬件套件,并结合套件精心编写了单片机从入门到精通系列教程。通过讲述单片机原理、电路设计、应用开发软件工具、编写实验实例让读者全面接触单片机技术。教程编排上由浅入深,循序渐进,内容力求完整、实用、趣味并存,使读者在轻松愉快的学习过程中逐步提高单片机软硬件综合设计水平。一、内容提要本讲主要向大家介绍51 系列单片机的最小系统的实现并通过编写程序来实现对单片机IO 口的输出控制。以点亮外部连接的LED(发光二极管)为例,简要的介绍单片机的原理、最小系统的组成,并通过简单的C51 程序设计来讲述编译软件Keil的使用并下载Hex 文件烧写单片机。二、原理简介在了解原理之前, 首先让我们思考一个问题,什么是单片机, 单片机有什么用? 这是一个有意思的问题,因为任何人都不能给出一个被大家都认可的概念,那到底什么是单片机呢? 普遍来说, 单片机又称单片微控制器, 是在一块芯片中集成了CPU( 中央处理器)、RAM( 数据

      2、存储器)、ROM( 程序存储器)、定时器/ 计数器和多种功能的I/O( 输入/ 输出) 接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。在这里,我们没必要去找到明确的概念来解析什么是单片机,特别在使用C 语言编写程序的时,不用太多的去了解单片机的内部结构以及运行原理等。从应用的角度来说,通过从简单的程序入手,慢慢的熟悉然后逐步深入精通单片机。在简单了解了什么是单片机之后,然后我们来构建单片机的最小系统,单片机的最小系统就是让单片机能正常工作并发挥其功能时所必须的组成部分,也可理解为是用最少的元件组成的单片机可以工作的系统。对51 系列单片机来说, 最小系统一般应该包括: 单片机、时钟电路、复位电路、输入/ 输出设备等(见图1)。图1 单片机最小系统框图三、电路详解依据上文的内容,设计51 系列单片机最小系统见图2。图2 51系列单片机最小系统下面就图2 所示的单片机最小系统各部分电路进行详细说明。1. 时钟电路在设计时钟电路之前,让我们先了解下51 单片机上的时钟管脚:XTAL1(19 脚) :芯片内部振荡电路输入端。XTAL2(18 脚) :芯片内

      3、部振荡电路输出端。XTAL1 和XTAL2 是独立的输入和输出反相放大器,它们可以被配置为使用石英晶振的片内振荡器,或者是器件直接由外部时钟驱动。图2 中采用的是内时钟模式,即采用利用芯片内部的振荡电路,在XTAL1、XTAL2 的引脚上外接定时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。一般来说晶振可以在1.2 12MHz之间任选,甚至可以达到24MHz或者更高,但是频率越高功耗也就越大。在本实验套件中采用的11.0592M的石英晶振。和晶振并联的两个电容的大小对振荡频率有微小影响,可以起到频率微调作用。当采用石英晶振时,电容可以在20 40pF 之间选择(本实验套件使用30pF);当采用陶瓷谐振器件时,电容要适当地增大一些,在30 50pF 之间。通常选取33pF的陶瓷电容就可以了。另外值得一提的是如果读者自己在设计单片机系统的印刷电路板(PCB) 时,晶体和电容应尽可能与单片机芯片靠近,以减少引线的寄生电容,保证振荡器可靠工作。检测晶振是否起振的方法可以用示波器可以观察到XTAL2 输出的十分漂亮的正弦波,也可以使用万用表测量( 把挡位打到直流挡,这个时候测得的是

      4、有效值)XTAL2 和地之间的电压时,可以看到2V 左右一点的电压。2. 复位电路在单片机系统中,复位电路是非常关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。MCS-5l 系列单片机的复位引脚RST( 第9 管脚) 出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST 持续为高电平,单片机就处于循环复位状态。复位操作通常有两种基本形式:上电自动复位和开关复位。图2 中所示的复位电路就包括了这两种复位方式。上电瞬间,电容两端电压不能突变,此时电容的负极和RESET 相连,电压全部加在了电阻上,RESET 的输入为高,芯片被复位。随之+5V电源给电容充电,电阻上的电压逐渐减小,最后约等于0,芯片正常工作。并联在电容的两端为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚出现高电平达到手动复位的效果。一般来说,只要RST 管脚上保持10ms以上的高电平,就能使单片机有效的复位。图中所示的复位电阻和电容为经典值,实际制作是可以用同一数量级的电阻和电容代替,读者也可自行计算RC 充电时间或在工作环境实际测量,以确

      5、保单片机的复位电路可靠。3. EA/VPP(31 脚) 的功能和接法51 单片机的EA/VPP(31 脚) 是内部和外部程序存储器的选择管脚。当EA 保持高电平时,单片机访问内部程序存储器;当EA 保持低电平时,则不管是否有内部程序存储器,只访问外部存储器。对于现今的绝大部分单片机来说,其内部的程序存储器(一般为flash)容量都很大,因此基本上不需要外接程序存储器,而是直接使用内部的存储器。在本实验套件中,EA 管脚接到了VCC 上,只使用内部的程序存储器。这一点一定要注意,很多初学者常常将EA 管脚悬空,从而导致程序执行不正常。4. P0 口外接上拉电阻51 单片机的P0 端口为开漏输出,内部无上拉电阻(见图3)。所以在当做普通I/O 输出数据时,由于V2 截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必须外接上拉电阻。图3 P0端口的1位结构另外,避免输入时读取数据出错,也需外接上拉电阻。在这里简要的说下其原因:在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例外。例如,当从内部总线输出低电平后,锁存器Q 0, Q 1,场效应管V1 开通,端口线呈

      6、低电平状态。此时无论端口线上外接的信号是低电平还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q 1, Q 0,场效应管V1 截止。如外接引脚信号为低电平, 从引脚上读入的信号就与从锁存器读入的信号不同。所以当P0 口作为通用I/O 接口输入使用时,在输入数据前,应先向P0 口写“1”,此时锁存器的Q 端为“0”,使输出级的两个场效应管V1、V2 均截止,引脚处于悬浮状态,才可作高阻输入。总结来说:为了能使P0 口在输出时能驱动NMOS 电路和避免输入时读取数据出错,需外接上拉电阻。在本实验套件中采用的是外加一个10K排阻。此外,51 单片机在对端口P0P3 的输入操作上,为避免读错,应先向电路中的锁存器写入“1”,使场效应管截止,以避免锁存器为“0”状态时对引脚读入的干扰。5. LED 驱动电路细心的读者可能已经发现,在最小系统中,发光二极管(LED)的接法是采取了电源接到二极管正极再经过1K 电阻接到单片机I/O 口上的(见图4 中的接法1)。为什么这么接呢?首先我们要知道LED 的发光工作条件,不同的LED

      7、其额定电压和额定电流不同,一般而言,红或绿颜色的LED 的工作电压为1.7V2.4V,蓝或白颜色的LED 工作电压为2.74.2V, 直径为3mm LED 的工作电流2mA10mA。在这里采用红色的3mm 的LED。其次,51 单片机(如本实验板中所使用的STC89C52单片机)的I/O 口作为输出口时,拉电流(向外输出电流)的能力是A 级别,是不足以点亮一个发光二极管的。而灌电流(往内输入电流)的方式可高达20mA,故采用灌电流的方式驱动发光二极管。当然,现今的一些增强型单片机,是采用拉电流输出(接法2)的,只要单片机的输出电流能力足够强即可。另外,图4 中的电阻为1K 阻值,是为了限制电流,让发光二极管的工作电流限定在2mA10mA。图4 LED的接法四、程序设计在单片机编程语言上,有C 语言和汇编两种选择。本系列教程采用C 语言编写程序,在此对语言和汇编语言在进行单片机开发时进行下简单比较,汇编语言面向硬件,要求对硬件的特性如寄存器之类的比较熟悉,执行效率高,但可读性和移植性差,不同的单片机之间的程序不能通用,例如学会了51 单片机的汇编指令,却没法用到AVR 单片机上。语言面向

      8、过程,可读性和移植性很好,效率要比汇编低一些。对于刚接触单片机的人来说,学习这两种语言是一样的,但在以后的开发效率上,C 语言的优势就体现出来了,其可以几乎完全不改动的情况下移植,大大提高了开发速度。控制发光二极管D1 闪烁的C 语言源程序:1. 程序详细说明(1)头文件包含。程序接下来调用的P0_0 就是该头文件中定义好的一个寄存器地址。在对单片机内部的寄存器操作之前,应申明其来处,有兴趣的读者可以看看AT89X52.h 文件中的内容。(2)宏定义led, 便于直观理解也便于程序修改,将P0_0 口命名为led, 这样在程序中就可以用led代替P0_0 口进行操作。(3)延时函数声明。函数在调用之前必须进行声明,由于函数定义放在主函数之后,所以在主函数之前对延时函数进行了声明。(4)主函数入口。主函数不传递参数也不返回值。(5)死循环。(6)输出高电平,led 不亮。(7)延时一段时间,以便人眼能够直观看到。(8)输出低电平,led 点亮。(9)延时一段时间。(10)延时函数定义。(11)for 语句循环延时。2. 程序流程图与实验现象程序流程如图5 所示。经编译软件(keil)编译

      9、,生成单片机烧写文件,然后就可下载到单片机内部运行了,硬件电路板如图6 所示,本实验板上用的是STC89C52RC,可以用通过板载USB 转串口烧写程序。故将USB 线(本实验套件中有)连接电脑和实验板。供电电源可以从USB 取,也可以从外部电源取电。冷启动,即先点击下载,然后再上电。下载程序到单片机内运行后,可以看到实验板上P0_0 口外接的LED 灯(D1) 一亮一灭的闪烁。图5 程序流程图图6 硬件电路板图五、总结本讲主要介绍了51 单片机最小系统的设计以及编写第一个简单的程序。从过该实验,可以掌握单片机的开发流程,从而快速入门。在该讲中应该注意几个问题:1. 本讲座中采用C 语言编写程序,因为C 语言的可读性和可移植性强。若读者没有学过C 语言,则应去了解和掌握相应的C 语言知识。C 语言易学易用,相信很快就能熟练。2. 程序编译软件采用的是Keil。限于篇幅的原因,在这里就不对其进行讲述,如果读者有对其不明白的地方,可以到本刊论坛的单片机版面,作者制作了一个详细的Keil 入门教程。我们通过Keil编译程序,最终生成烧写单片机的Hex 代码文件。Keil 软件界面如图7 所示, 中间空白区域为代码区,左侧为项目列表,最下面为消息窗口。图7 Keil软件开发界面3. 本实验板上所用的STC 单片机通过串口下载程序。其上位机软件界面如图8 所示(推荐使用V3.1 版本,最新版本可以到STC 主页上下载:http:/www.mcu- 烧写操作很简单,点击“Open File”按钮浏览找到所生成要烧写的Hex 文件后,单片机断电,点击“下载”按钮,单片机上电,程序就可下载到单片机中了。图8 STC烧写软件界面4.

      《单片机的最小系统》由会员夏**分享,可在线阅读,更多相关《单片机的最小系统》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.