




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机是一种实践性很强的技术,很多初学者在学习单片机技术开发的时候就会冒烟,不知道做什么。 因此,笔者结合自己多年使用单片机的经验,设计了开发单片机所需的Study-c单元和硬件组件,并结合该组件从单片机入门到系列教程。 通过单片机的原理、电路设计、开发软件工具的应用、实验实例的编制,读者将全面接触单片机的技术。 教程的组织由浅而深、渐进,内容追求完美、实用、趣味并存,在读者轻松愉快的学习过程中逐步提高单片机的硬件和软件的综合设计水平。一、内容提要本演讲主要介绍了51系列单片机最小系统的实现,通过编制程序实现单片机IO端口的输出控制.具体实施方式。 以点亮外部连接的LED (发光二极管)为例,
2、简单介绍了单片机的原理、最小系统的构成,用简单的C51程序设计来说明编译软件Keil的使用,下载Hex文件并进行单片机二、原理介绍在理解原理之前,先考虑一个问题。 什么是单片机,单片机有什么用? 这是一个有趣的问题,因为没有人能表示大家都认可的概念,所以单片机又是什么呢?一般来说,单片机也称为单片机控制器,CPU (中央处理器)、RAM (数据可以将计时器/计数器和多功能I/O (输入输出)接口等计算机所需的基本功能部件集成在一个芯片上,完成复杂的运算、逻辑控制、通信等功能。 这里,没有必要分析什么是单片机,特别是在用c语言编制程序的情况下,没有必要太了解单片机的内部结构和工作原理等。 从应用
3、的角度,从简单的程序开始,逐渐熟悉,精通单片机。在简单理解了什么是单片机之后,构建单片机的最小系统。 单片机的最小系统是使单片机正常工作所需的组成部分,可以理解为由最小部件构成的单片机能工作的系统。 对于51系列单片机,最小系统应该包括单片机、时钟电路、复位电路、输入输出设备等(参见图1 )。图1单片机的最小系统框图三、电路细节根据以上内容,设计51系列单片机的最小系统如图2所示。图2 51系列单片机最小系统下面详细说明图2所示的单片机最小系统的各部分电路。1 .时钟电路在设计时钟电路之前,先检查一下51单片机的时钟引脚。XTAL1(19脚) :芯片内部振荡电路输入端。XTAL2(18脚) :
4、芯片内部振荡电路的输出端。XTAL1和XTAL2是独立的输入/输出反相放大器,并且是被配置为使用晶体振荡器芯片内振荡器的装置或由外部时钟直接驱动的装置。 在图2中,采用利用芯片内部的振荡电路,在XTAL1、XTAL2的管脚上外接定时元件(1个晶体晶体和2个电容)的内部时钟模式,内部振荡器能够进行自激振荡。 一般来说,水晶振子在1.2 12MHz之间是任意的,虽然达到24MHz以上,但是频率越高,消耗功率就越大。 本实验试剂盒采用的11.0592M水晶振子。 与水晶振子并联的两个电容的大小对振动频率有微小的影响,起到频率微调的作用。 使用水晶振子时,电容可以从20 40pF中选择(本实验试剂盒使
5、用30pF )。 在采用陶瓷谐振器件的情况下,电容在30 50pF之间适当增大。 通常可以选择33pF的陶瓷电容器。此外,读者自己设计单片机系统的印刷电路板(PCB )时,水晶和电容必须尽量接近单片机芯片,并减少引线的寄生电容,以保证振荡器的可靠工作。 检测水晶振动是否振动的方法可以用示波器观察XTAL2输出的非常美丽的正弦波,使用万用表(将微波炉接触直流范围,此时测量的是有效值)测量XTAL2和地之间的电压,可以看到2V左右的电压。2 .复位电路在单片机系统中,复位电路非常重要,一旦程序飞散或者恐慌,就需要复位。当MCS-5l系列单片机的复位引脚RST (第9引脚)出现2机器周期以上的高电平
6、时,单片机执行复位动作。 如果RST持续处于高电平,单片机就会进入循环复位状态。复位操作通常有上电复位和开关复位两种基本形式。 图2所示的复位电路具备这两种复位方式。 接通电源的瞬间,如果电容器两端的电压没有急剧变化,电容器的负极和RESET连接,所有的电压都施加到电阻上,RESET的输入变高,芯片复位。 随之,5V电源对电容器充电,电阻上的电压逐渐减少,最后约为0,芯片正常工作。 电容器的两端并联有复位按钮,当未按下复位按钮时,电路实现通电复位,芯片正常动作后,通过按下按钮,具有使RST引脚成为高电平而手动复位的效果。 通常,如果RST引脚保持10ms以上的高电平,则可以有效地复位单片机。
7、图所示的复位电阻和容量是经典的值,实际制作的可以用相同数量级的电阻和容量代替,读者也可以自己计算RC充电时间,或者在工作环境中实际测量,能够确保单片机的复位电路的可靠性。3. EA/VPP(31脚)的功能和连接方法51单片机的EA/VPP(31管脚)是内部和外部程序存储器的选择管脚。 EA为高电平时,单片机访问内部程序存储器如果EA保持低电平,则无论是否有内部程序存储器,单片机都只访问外部存储器。现在的大部分单片机,由于其内部的程序存储器(一般为闪存)容量大,所以几乎不需要外置程序存储器,直接使用内部的存储器。在本实验套件中,EA引脚与VCC连接,仅使用内部的程序存储器。 必须注意这一点,是因
8、为很多初学者把PS悬空,程序不能正常执行。4 .在P0口外连接拉伸电阻器51单片机的P0端口为开路输出,内部没有上拉电阻(参见图3 )。 因此,作为通常的I/O输出数据时,v2 off,输出级为漏极开路电路,因此为了正常输出“1”信号,需要外接上拉电阻。图3 P0端口的1比特结构另外,为了避免在输入时读取数据的错误,还需要上拉电阻。 在此简单地说明,虽然在输入状态下锁存器与从引脚读取的信号一致,但也有例外。 例如,当从内部总线输出低电平时,锁存器Q=0,Q=1,场效应晶体管V1导通,端口线成为低电平的状态。 在这种情况下,无论连接在端口线上的信号是低电平还是高电平,从管脚读取到单片机的信号都是
9、低电平,所以不能正确读取端口管脚上的信号。 作为另一例子,当从内部总线输出高电平时,锁存器Q=1、Q=0,场效应晶体管V1截止。 外部端子的信号为低电平时,从端子读取的信号与从锁存器读取的信号不同。 因此,在P0端口用作通用I/O接口的输入的情况下,在输入数据之前,应该将P0端口写为“1”,此时锁存器的q端子为“0”,使输出级的两个场效应晶体管V1、V2截止,处于引脚浮起的状态总而言之,为了使P0端口在输出时能够驱动NMOS电路,和为了避免在输入时数据的读取错误,需要连接上拉电阻。 本实验试剂盒采用了加了10公斤的电阻。 此外,51单片机为了避免在端口P0P3的输入操作中读出错误,预先将“1”
10、写入电路中的锁存器,并关断场效应晶体管,以便在锁存器为“0”的状态时不干扰读入。5. LED驱动电路细心的读者在最小系统中,发光二极管(LED )的连接方法是将电源连接到二极管的阳极,并经由1K的电阻连接到单片机的I/O端口(参见图4的连接方法1 )。 为什么要这样迎接呢?首先,需要知道LED的发光动作条件,根据LED的不同,额定电压和额定电流不同,一般来说,红和绿的LED的动作电压为1.7V2.4V,蓝和白的LED的动作电压为2.74.2V,直径为3mm LED的动作电流为2ma3 mm 这里采用了红色的3mm的LED。 接着,如果将51单片机(本实验板使用的STC89C52单片机)的I/O
11、端口作为输出端口,则引电流的能力(向外输出电流的能力)为A级,不足以点亮发光二极管。 另一方面,冲击电流(冲击电流)的方式高达20mA,因此以冲击电流的方式驱动发光二极管。 当然,目前的几个增强型单片机采用拉电流输出(接收法2 ),只要单片机的输出电流能力足够强即可。 另外,图4中电阻为1K的电阻值是为了限制电流,将发光二极管的工作电流限制为2mA10mA。图4的led的连接方法四、程序设计单片机的编程语言有c语言和汇编两种选择.的选择。 本系列教程用c语言编程,在此将c语言和汇编语言在单片机的开发时简单地进行比较,汇编语言面向硬件,硬件的特性,如寄存器那样比较熟悉,执行效率高我们学习了不同单
12、片机之间的程序不通用,例如51单片机的组装指令,但不能用于AVR单片机。 c语言面向过程,可读性和可移植性高,比汇编效率低。 对于刚接触单片机的人来说,学习这两种语言是一样的,但在今后的开发效率中,c语言的优势显现出来了,几乎没有变化就能移植,开发速度大幅度提高了。控制发光二极管D1闪烁的c语言源程序:1 .程序细节(1)包含头文件。 程序下一次调用的P0_0是头文件中定义的寄存器地址。 在操作单片机内部的寄存器之前,必须明确那个地方。 有兴趣的读者可以看到AT89X52.h文件的内容。(2)宏定义led,直观上的理解容易,程序的修正也容易,将P0_0端口命名为led,可以通过程序用led代替
13、P0_0端口来操作。(3)延迟函数宣言。 函数在调用之前必须声明,因为函数定义放在主函数之后,所以在主函数之前声明了延迟函数。(4)主函数入口。 主函数既不传递参数也不传递返回值。(5)死循环。(6)输出为高电平,led不点亮。(7)延迟时间,以使人的眼睛看起来直观。(8)输出为低电平,led点亮。(9)推迟时间。(10 )延迟函数的定义。(11)for语句的循环延迟。2 .程序流程图和实验现象程序的流程如图5所示。 您可以使用编译软件(keil )进行编译,创建单片机的写入程序文件,然后下载到单片机内部执行. 硬件基板如图6所示,本实验板上可以使用STC89C52RC,通过板载USB旋转串行
14、写入器。 把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 .本
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工艺施工合同范本
- 2025年中国POS机专用液晶显示器市场调查研究报告
- 健身私教合同范本
- 加盟合同解约函范文
- 吊装设备维护保养合同
- 借款合同样式模板
- 酒水销售合同范本及格式要求
- 2025年二手房购买中介服务合同
- 新版员工与企业劳动合同模板大全
- 2025年二手房装修款项转让合同示例
- 人教版八年级下册生物全册教案完整版教学设计含教学反思
- 无人机警用方向应用简介课件
- 变电站一次系统图
- 《思想道德修养与法律基础》说课(获奖版)课件
- 幼儿园中班居家安全教案
- 网页设计和制作说课稿市公开课金奖市赛课一等奖课件
- 《新媒体营销》新媒体营销与运营
- 食用油营销整合规划(含文字方案)
- 苏教版科学五年级下15《升旗的方法》教案
- 现代工业发酵调控绪论
- 超高性能混凝土项目立项申请(参考模板)
评论
0/150
提交评论