好文档 - 专业文书写作范文服务资料分享网站

51单片机教程

天下 分享 时间: 加入收藏 我要投稿 点赞

在MCS-51单片机的内部有一个高增益的反相放大器其输入端为引脚XTAL119脚输出端为XTAL218脚我们只要在外部接上两个电容和一个晶振就能构成一个稳定的自激振荡器它的内部电路的工作原理就不介绍了这里主要讲一下电容和晶振的选择看上面的图晶振的大小与单片机的振荡频率有关我们到串行接口时再详细讲解电容的大小影响着振荡器振荡的稳定性和起振的快速性通常选择10-30P的瓷片电容或校正电容另外在设计电路时晶振和电容应尽可能的靠近芯片以减少PCB板的分布电容保证振荡器工作的稳定性提高系统的抗干扰能力

外部时钟电路 2

除了内部时钟方式外单片机还可以采用引入外部时钟的振荡方式什么时候需要采用外部时钟方式呢当我们的系统由多片单片机组成时为了保证各单片机之间时钟信号的同步就应当引入唯一的公用的外部脉冲信号作为各单片机的振荡脉冲此时应将XTAL2悬空不用外部脉冲信号由XTAL1引入如上右图所示这是大虾们的作品在此就不介绍了 三本课总结

本课的内容比较少我就罗嗦一下讲几句题外话我是一个只有初中毕业没有读过多少书的人从小就爱好无线电记得很小的时候当通讯兵的父亲带回来几本电子方面的书籍从此就迷上了无线电那种痴迷程度决不亚于现在的小孩迷恋游戏机至今仍然清楚的记得曾经因为装成功一台6管收音机而兴奋的几天几夜没睡好觉那个时候我国的电子工业还刚刚起步买一个3AX31的三极管都要特地跑到市区而且价格奇贵几乎要用去一个月的零化钱当时最愿意去的地方就是上海的虬江路电子旧货市场因为在那里可以淘到好多旧的电子元件初中毕业以后在当地根本就找不到一家电子企业只好在镇上开了一家电器修理店也就是这几年边干边做地学了不少在今天已根本无法再学得进去的电子啊空穴啊移位啊寄存啊等等理论知识由于身边没有一个可以请教的老师为了加深学习的印象所以只好一边做实验一边学理论尽管进度很慢但效果竟然还不错好在当时搞家电修理的收入还可以加上没有家庭负担也就这么过来了

随后的几年做过工人也当过老师但更多的时间是在搞技术开发这些年来看到很多的昔日同学靠导腾房地产或者做生意发了财可自己依然还在这个领域默默无闻的钻研着但我还是没有后悔也从来没有想过改行因为电子技术那众多迷人而未知的领域常常会使我深深地陷入其中以至无法自拔也感叹自己搞了这么多年还只是一个入门者

现在老是听到有些年轻的朋友说我要速成单片机速成C语言速成什么什么的每当我看到或听到这些话的时候总有一种说不出的滋味现在的社会什么都讲究个效率这本来没有错但学一项技术也能速成实在让人有点不知道说什么好就单片机而言即使你现在只有156岁也很有天赋想把现在的几种主流单片机都搞懂并很好的应用到实践中去没有个几年恐怕也难更何况单片机的技术是在不断发展的你想跟也来不及

不过话又说回来我不是要打击大家的学习积极性单片机是一种非常宽泛的技术它的设计是为了满足大多数的需要换言之即使你并没有把全部的知识都理解得很深透或者说没有把每种单片机都搞懂也没关系你一样可以在实际的产品开发中应用它因为几乎没有一个产品会把全部的指令都用起来

好了废话讲了半天还是言归正传吧希望大家课后多进行交流因为在我看来技术只有不断的交流才会有进步闭门造车只有S路一条 四第5课习题

1 什么是单片机的机器周期什么是振荡周期什么是指令周期它们之间的关系是怎么样的 2 什么是单片机的时序 3 单片机有几种振荡方式

简述单片机内部时钟的产生过程 4

19

第六课 单片机的内部结构四

在前一课中我们讲述了单片机的时序和时钟大家是不是又觉得有些头疼了下面让我们再来做两个实验放松一下

一单片机I/O口的输出实验 1实验程序 程序如下

LOOP:MOV P1,#0FFH ; LCALL DELAY ; MOV P1,#00H ; LCALL DELAY ; LJMP LOOP ; DELAY:MOV R7,#250 ; D1:MOV R6,#250 ; D2:DJNZ R6,D2 ; DJNZ R7,D1 ; RET ; END

还是老规矩调试写入源代码编译下载看到了什么8只LED灯都在闪烁注意前面的实验是让一个LED灯闪烁分析一下程序 2程序分析

这段程序和前面的程序比较有两处不同第1条原来是SETB P1.0现在改为MOV P1#0FFH第3条原来是CLR P1现在改为MOV P1#00H为什么这样改了之后就变成了8只LED灯同时闪烁了原来P1代表了P1.7-P1.0的全部我们把它当作一个存储器单元即一个字节不过对一个存储器单元送数就应该用MOV指令了在这里P1P1.7-P1.0接的是LED灯也就是负载它起到了一个输出端的作用那如果把P1改为P0或P2或P3行不行呢答案是肯定的为什么我们稍后再谈接着看第2个实验

二单片机I/O口的输入实验 1实验程序 程序如下

MAIN:MOV P3,#0FFH ; LOOP:MOV A,P3 ; MOV P1,A ; LJMP LOOP ; END.

同样的方法把程序下载到单片机按下第1个按钮第1个LED灯亮了按下第2个按钮第2个LED灯亮了松开按钮相应的灯就灭了是不是有点象工业控制中的点动控制原理分析一下这个程序

2程序分析

看附图的实验系统硬件接线图有4个按钮分别接到了P3.2P3.3P3.4P3.5引脚上再来分析一下程序第1条使P3口包括P3.7-P3.0全部为高电平为什么MOV P3#0FFH能使P3口全部为高电平我们在下一课中讨论第2条MOV AP3MOV我们已经知道是送数的意思这条指令的意思就是把P3口的数送到A中去A是什么呢我们也可以把它看成一个中间单元就象R7寄存器一样第3条指令就是把A中的数送到P1口去第4条是循环这些我们都已经见过当我们按下

20

P3.2所连接的按钮时#0FFH这个数就被送到了A中通过程序又送到了P1使P1.2输出低电平LED3就亮了按下P3.3-P3.5连接的按钮对应的LED4-LED6也亮了松开按钮相应的LED灯就灭了如果把按钮接到P2.0-P2.7或P0.0-P0.7可不可以呢当然可以所以在这里P3口又起到了一个输入端的作用

由上面两个实验我们得出结论凡是以P开头的管脚都可以用作输入输出口在89C51中这32个管脚我们就称之为并行口它们实际上就是特殊功能存储器SFR什么是特殊功能寄存器我们后面再讲中的四个记作P0P1P2P3它们都是双向通道即既可以作为输出口也可以作为输入口作输出时数据可以锁存作输入时数据可以缓冲锁存和缓冲是什么意思忘了我也不告诉你自己回去看数字电路基础呵呵不是我不肯讲只是自己看可以加深印象那么它们是怎么实现输入输出功能的呢继续往下看 三 单片机并行口的结构分析 先来看看输入结构 1输入结构

I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心

读引脚时也就是把端口作为外部输入线时首先要通过外部指令把端口锁存器置1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0P1P2P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能这些功

21

能又是作什么用的呢下面我们就来详细讲解这个问题 2端口的工作原理

1P0口

先来看P0口从图中可以看到P0口的内部有一个2选1的选择器它受内部信号的控制如果在图中的位置则处在I/O口工作方式此时相当于一个准双向口输入时须先将口置1每根口线可以独立定义为输入或输出但是须在口线上加上拉电阻如果将开关往另一个方向则就是另一个功能—作为地址/数据复用总线用此时不能逐位定义为输入/输出它有两种用法当作数据总线用时输入8位数据而当作地址总线用时则输出低8位地址再强调一点当P0口作为地址/数据复用总线用之后就再也不能作I/O口使用了讲到这里也许大家会感到困惑什么叫作地址/数据复用这其实是当单片机的并行口不够用时需要扩展输入输出口时的一种用法具体如何使用这就比较复杂了我们只能留到下册课程中再来给大家讲解这里大家只要知道一下就可以了了解了P0口再来看P1口

2P1口

同P0不同P1口只能作为I/O口使用但它的内部有一个上拉电阻所以连接外围负载时不需要外接上拉电阻这一点P1P2P3都一样务必请大家记住

3P2口

P2口作为I/O口线用时与P0口一样当内部开关向另一个方向时即作地址输出时可以输出程序存储器或外部数据存储器的高8位地址并与P0口输出的低地址一起构成16位的地址线(注意和数据总线的区别数据总线是8位的很多书上都会提到51单片机是8位数据总线16位地址总线但都不会解释有什么不同看到这里你应该明白了吧)16位的地址可以寻址64K的程序存储器或外部数据存储器为什么下一课我们再给大家解释这里要注意的是当P2口作为地址总线时这高8位地址线是8位一起输出的不能象I/O口线那样逐位定义这和P0口是一样的

4P3口

P3口作为I/O口线用时同其他的端口相同也是准双向口不同的是P3口的每一位都有另一种功能也叫第二功能各位的功能如下它们的具体作用我们用到时再详细解释

端口位 第二功能 注释 P3.0 RXD 串行口输入 P3.1 TXD 串行口输出 P3.2 INTO 外部中断0 P3.3 INT1 外部中断1 P3.4 T0 计数器0计数输入 P3.5 T1 计数器1计数输入 P3.6 WR 外部RAM写入选通信号 P3.7 RD 外部RAM读出选通信号

讲到这里也许您会问既然单片机的引脚有第二功能那么CPU是如何来识别的呢这是一个令许多初学者困惑的问题几乎没有一本教科书提到过这个问题其实单片机的第二功能是不需要人工干预的也就是说只要CPU执行到相应的指令就自动转成了第二功能

了解了各个I/O口的功能和作用后再来给大家讲解一下单片机I/O与外围电路的连接方法这可是蛮重要的哦

四单片机I/O口的连接方法

当单片机的I/O口作输出时可以直接与外部设备连接不过由于在实际的应用中由于其驱动电流是有限的DATA SHEET上说是20mA所以我们常常需要通过接口电路来扩展它的驱动能力在单片机的后向通道控制系统中常用的功率控制器件有机械继电器晶闸管固态继电器等等下面我们将以机械继电器和固态继电器的应用为例介绍其具体的使用方法

单片机与机械继电器的接口 1

我们知道单片机的一个I/O口只能灌入20mA的电流所以往往不足以驱动一些功率开关比如

22

稍大一点的机械继电器等此时就应该采用必要的扩展电路如何来实现单片机与机械继电器的接口呢其实很简单我们通常采用下面的接法如图为了防止前向通道信号的干扰常采用一些光电隔离器件比如光电耦合器4N25PC814等当单片机的P1.0脚输出为低电平时光藕受电导通Q1饱和开通继电器吸合负载电路接通

另外为了防止电压间的互相干扰继电器的工作电压VDD与单片机的工作电压VCC不要使用同一个电源接地端也不要连在一起即所谓的模拟地与数字地分开驱动管的电流要大于继电器的工作电流,其他的元件就不讲了大家自行分析一下讲了单片机与继电器的接口再来介绍与固态继电器的接口方法接着往下看 2 单片机与固态继电器的接口

普通继电器由于开关速度慢易跳火易机械磨损通常用于要求不高的场合在某些特殊应用场合比如防火防爆等系统中则应采用固态继电器固态继电器是一种无触点的电子继电器它的输入端只要很小的控制电流可以与单片机的I/O口直接连接输出则采用双向晶闸管控制其输入输出间均通过内部光电耦合器隔离可以防止信号间的干扰是单片机接口的理想器件随着其技术的成熟应用的广泛价格也已经非常的便宜1A/250V的目前在10元左右它与单片机的连接方法如图所示当-端所接的P1.0为低电平时SSR导通负载工作 除了以上两种连接方法外单片机与TTLCMOS管等都可以连接具体的方法这里就不介绍了大家可以自行找一下相关的资料 五本课总结

输入和输出口简称I/O口是单片机与外部电路接口的唯一途径四个并行口的结构是有一定区别的如何根据系统的设计要求和产品用途来正确灵活地使用是初学者必须掌握的基本功我们必须好好搞清楚它的功能和用途 六 第6课习题

P0P1P2P3口的驱动电流分别是多少 1 2 什么是输入什么是输出

找本数字电路的书了解一下D触发器的原理 3

23

51单片机教程

在MCS-51单片机的内部有一个高增益的反相放大器其输入端为引脚XTAL119脚输出端为XTAL218脚我们只要在外部接上两个电容和一个晶振就能构成一个稳定的自激振荡器它的内部电路的工作原理就不介绍了这里主要讲一下电容和晶振的选择看上面的图晶振的大小与单片机的振荡频率有关我们到串行接口时再详细讲解电容的大小影响着振荡器振荡的稳定性和起振的快速性通常选择10-30P的瓷片电容或校正电容另外在设
推荐度:
点击下载文档文档为doc格式
6dlnp7qvor0wk4t3w2fu
领取福利

微信扫码领取福利

微信扫码分享