单片机简介

数字电路简介

在一个控制系统中, 单片机是电路的一部分, 单片机中的程序是针对其所在的电路编写

的。因此,要对单片机编程并实现一定的功能,必须了解整个系统的电路图。单片机编程是

针对某个特定的电路进行的单片机编程是针对某个特定的电路进行的, 这一点和普通的编程不一样。 编程时很可能要经常参照电路图。与单片机直接相关的电路大都是数字电路。 数字电路各部分的功能十分明确, 因此相对比较容易掌握。

简单地说,数字电路就是只有“0”和“1”两种信号的电路。判别信号究竟是“0”还

是“1”是通过电压的大小(常称作“电平” )来判断的。不同的数字器件的电平判断标准是

不一样的。常用的数字器件以高电平(超过某一阈值的电平)作为逻辑“1” ,以低电平(低

于某一阈值的电平)作为逻辑“0” 。其中高电平阈值大于低电平阈值,处于高电平阈值与低

电平阈值之间的电压是无效的。 高电平阈值与低电平阈值的具体值与数字器件的供电电压有

关,如 AT89S51 单片机的高电平阈值为(0.2Vcc+0.9)V,低电平阈值为(0.2Vcc-0.1)V,

其中 Vcc 为单片机的供电电压。 早年常用的数字器件的额定供电电压为 5V, 现在 3.3V、 1.8V

等电压的数字器件已经大量使用了。在 Easy 51 Kit Pro 中,我们仍使用 5V 供电的单片机。

另外,还有一种 RS-232 电平标准,以-12V~-5V 作为逻辑“1” ,以 5V~12V 作为逻辑“0” 。

电脑上的串口都符合 RS-232 标准。还有一个“地”的概念。在电路中“地”并不是通常意义中的地,而是指电路中的一点,这一点的电压被人为地规定为 0V。

MCS-51 单片机简介

目前生产单片机产品的公司非常多, 当中较有影响力的有 intel 公司推出的 MCS-51 系

列等。很多公司的产品都是与 MCS-51 架构兼容(MCS-51 compatible)的。本资料中采用的

atmel 公司的 AT89C51/52 或 AT89S51/52 单片机,就是兼容 MCS-51 架构的单片机。

Atmel 公司的 AT89C51( 以后简称“C51”)、AT89C52( 以后简称“C52”)、AT89C2051

( 以后简称“C2051”)以及 C51、C52 的换代产品 AT89S51( 以后简称“S51”)、AT89S52

( 以后简称“S52”)容易上手、价格低廉(不超过 10 元/片)、资料丰富,是初学者入门

时广泛采用的单片机。

C51 拥有 4096 字节(1 字节=8 位)的片内程序存储器、128 字节的 RAM、32 个 I/O 口、

两个定时器、6 个中断源、一个串口等。C52、C2051 的资源与 C51 差别不大,其中 C52 的片

内程序存储器为 8192 字节、RAM 为 256 节、定时器有 3 个,其它与 C51 一样; C2051 的片

内程序存储器为 2048 字节、I/O 口只有 15 个,另比 C51 多了一个模拟比较器,工作电压范

围比较宽,为 2.7V~6V(C51/52、S51/52 为 4.5~5.5V),其它与 C51 一样。

I/O、 定时器、 中断、 串口等资源的用法在后面有详细介绍。 这里只对程序存储器与 RAM

作一下说明。单片机程序代码经过编译(C 程序)或汇编(汇编程序)后,要把编译或汇编

得到的代码文件(一般来说编译得到 hex 格式文件、汇编得到 bin 格式文件)烧写到单片机

内,存放这个程序的地方就是程序存储器。显而易见,单片机的程序存储器越大,我们就可

以把越大、越复杂的程序放进去。如果我们编写的程序太大,那么单片机的程序存储器就有

可能会放不下这个程序。这时,解决办法就只有精简代码、外接程序存储器(前提是所用的

单片机支持使用外部程序存储器)或采用程序存储器容量更大的单片机。RAM 是单片机程序

运行时存放变量的地方,常量也可以放在 RAM 中。C51 中的 RAM 大小为 128 字节,这就是说

单片机程序中最多只能同时存在 128 个 unsigned char 型的变量或 64 个 unsigned int 型的

变量(在 Keil 环境中,int 型变量的长度为 16 位,这与 VC 的 32 位不一样)或者是相应的

中国科学技术大学业余无线电协会 各种不同类型变量的组合。 可以看出, 单片机程序所允许的规模比 Windows 或其它操作系统环境下的程序要小得多。编写单片机程序时一定要注意不要滥用资源。

S51 与 S52 分别是 C51、C52 的换代产品。从用户的角度看,S5x 单片机比相对应的 C5x

单片机多了看门狗与在线编程 (ISP) 功能, 另外最高运行速度有所增加 (C5x 最高支持 24MHz

的时钟频率, 而 S5x 最高支持 33MHz 的时钟频率, 但市面上比较容易买到的 S5x 单片机仍只

最高支持 24MHz 的时钟频率)。看门狗的使用在后面会有详细介绍,我们来看看单片机的在线编程(ISP)功能。要把程序烧写到 AT89C 系列单片机中, 最常用的做法是把单片机插入专用的编程器中, 通过编程器把程序烧到单片机里。 这样做的麻烦之处是在调试程序时, 编程者对程序作出的每次修改,都要把单片机从电路中拔出来,插到编程器,烧好后又要把单片机重新插回电路板。可以想

象,这种工作是吃力不讨好的。利用 S5x 单片机的 ISP 功能,我们就无须来回插拔单片机,

只要在电路中把单片机的 ISP 编程引脚接出来, 并且这几个引脚所接的外围电路对 ISP 没有

影响,就可以用 ISP 编程器对单片机进行烧写了。另外,支持 AT89C 系列单片机的编程器成

本要比 ISP 下载线高最少几倍。一根并口 ISP 下载线的成本仅几元钱。

除了 S 系列、C 系列外,atmel 公司的 MCS-51 兼容产品也有其它系列,它们的主要区

别在于供作电压范围,在此就不作介绍了。

值得注意的是,一片单片机可以反复擦写的次数是有限的,atmel 的 C 系列、S 系列单

片机的声称可重复擦写次数为 1000 次。

下面以 S52 为例,对其引脚功能一一作出说明。C51、C52 以及 S51 的引脚功能与 S52

大致相同,如有遇到不同的地方会用 粗斜体字 特别说明。

单片机程序指令的执行是以振荡器的振荡来驱动的。在MCS-51架构中,每12个振荡器

周期组成一个指令周期(或称机器周期)。单片机执行指令的时间是以指令周期为单位的。

不同指令的执行时间可能是不同的,一条指令的执行时间最短为一个指令周期。

在MCS-51架构中,每12个振荡器

周期组成一个指令周期(或称机器周期)。单片机执行指令的时间是以指令周期为单位的。

不同指令的执行时间可能是不同的,一条指令的执行时间最短为一个指令周期。因此,单

片机所接的振荡器频率越高,它执行指令的速度就越快。

型号同样为AT89S52的芯片,在其后面还有频率编号,有24MHz和33MHz等可选。读者在

购买和选用时要注意了。 如AT89S52 24PC就是最高振荡频率为24MHz,40P6封装的普通商用芯

片。单片机芯片后缀的详细含义可见相应单片机数据手册的Ordering Information。

复位 RST 9

复位

在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将

使单片机复位,只要这个引脚保持高电平,单片机便一直处于复位状态。复位后P0~P3口均

置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位引脚由高电平

变为低电平时,芯片从ROM的00H处开始运行程序。复位操作不会对内部RAM有所影响。常用

的复位电路如图2.4所示。当单片机上电时,由于电容的作用,RST引脚会处于短暂的高电平

状态,直到电容充电到一定程度时,RST引脚的电平会被8.2K的电阻拉低,单片机开始运行

程序。图中的按键为手动复位按键,当按下复位按键后,RST引脚会被1K的电阻上拉至高电

平, 单片机复位, 按键松开后, RST恢复低电平, 单片机重新从程序存储器的00H处运行程序。

手动复位按键在单片机的最小系统中并不是必须的,但对单片机的复位控制会方便些。

常用的复位电路

输入输出引脚

(1)P0端口[P0.0~P0.7] P0是一个8位漏极开路型双向I/O端口, 端口置1 (对端口写1)

时作高阻抗输入端端口置1 (对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。 P0端口要外接上拉电阻。

(2)P1端口[P1.0~P1.7] P1是一个带有内部上拉电阻的8位双向I/0端口。 输出时可驱

动4个TTL。 端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存

储器编程时,接收低8位地址信息。除此之外P1端口还用于一些专门功能,

3)P2端口[P2.0~P2.7] P2是一个带有内部上拉电阻的8位双向I/0端口。 输出时可驱

动4个TTL。 端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存

储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口

送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。

(4)P3端口[P3.0~P3.7] P2是一个带有内部上拉电阻的8位双向I/0端口。 输出时可驱

动4个TTL。 端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存

储器编程时,接控制信息。除此之外P3端口还用于一些专门功能,

其它的控制或复用引脚

(1)ALE/-PROG 30 访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的

低位字节。 即使不访问外部存储器, ALE端仍以不变的频率输出脉冲信号(此频率是振荡器频

率的1/6)。在访问外部数据存储器时,出现一个ALE脉冲。对Flash存储器编程时,这个引脚

用于输入编程脉冲PROG。

(2)PSEN 29 该引脚是外部程序存储器的选通信号输出端。 当S52由外部程序存储器取

指令或常数时,每个机器周期输出2个脉冲即两次有效。但访问外部数据存储器时,将不会

有脉冲输出。

(3)-EA/Vpp 31 外部访问允许端。当该引脚访问外部程序存储器时,应输入低电平。

要使S52只访问外部程序存储器(地址为0000H-FFFFH),这时该引脚必须保持低电平。当使

用内部的程序存储器时,此引脚应与Vcc相连。当使用内部的程序存储器时,此引脚应与Vcc相连。对Flash存储器编程时,用于施加Vpp编程电压。

C2051 的引脚功能与 C51 相仿,在此不另外介绍了

51单片机雾化片自动扫频程序_单片机简介相关推荐

  1. 51单片机怎么显示当前时间_单片机初学者必看

    写给初学者的一些话 本文原创,仅代表我搞单片机的一些想法,有不妥之处,不承担任何责任. 第一个问题,讲一下初学者到底学习那个系列单片机. 51.AVR.430.ARM(包括嵌入操作系统).FPGA当前 ...

  2. 单片机人流统计装置的程序_单片机其实不难

    对于大学读电子方面专业的同学们,肯定知道有这么一个神奇的元器件,它枯燥难懂,但也十分吸引人,它就是我们今天要讲的元器件--单片机 单片机作为工业控制领域里面最核心的部件,它存在于每一台机器,小到扫地机 ...

  3. 单片机STM8S测量电压电路_单片机电路设计中的10个难点

    单片机是嵌入式系统的核心元件,使用单片机的电路要复杂得多,但在更改和添加新功能时,带有单片机的电路更加容易实现,这也正是电器设备使用单片机的原因.那么在单片机电路的设计中需要注意的难点有哪些? 嵌入式 ...

  4. 单片机搭建环境烧录方法_单片机仿真器的工作原理解析

    仿真器出现的原因 1.早期的单片机内部没有ROM,比如8031.8032,这种单片机只能外部扩展紫外擦除的EPROM存储器,就是芯片上带窗口的ROM.紫外擦除的ROM需要用紫外灯照射较长时间(10分钟 ...

  5. 单片机STM8S测量电压电路_单片机毕设(课设)题目汇总

    点击上方「电子菌」关注我们 单片机类设计题目有哪些呢 ?下面是由为大家带来的关于单片机设计题目汇总,希望能够帮到您 ! 1. 电子时钟的设计 2. 全自动节水灌溉系统 -- 硬件部分 3. 数字式温度 ...

  6. 单片机拟真电路图软件_单片机最小系统电路图,以及单片机的应用分类

    单片机是集成电路芯片,它使用超大规模技术通过微处理器,存储器,具有数据处理功能的输入和输出接口电路集成在同一芯片上.接下来就为大家简单介绍一下单片机最小系统电路图. MCS-51单片机是一种集成的电路 ...

  7. 单片机多功能电子琴课设_单片机电子琴课程设计

    单片机技术及系统设计 题 目 : 基于单片机的电子琴制作 专 业 : 自动化 班 级 : 姓 名 : 学 号 摘要 : 随着电子技术的发展,尤其是大规模集成电路的出现,给人类生活带来 了根本性的改变. ...

  8. 单片机spwm c语言程序,基于单片机SPWM简易逆变电路及程序设计

    作为当今电子行业一种比较成熟的,目前使用较广泛的PWM法,SPWM法是以冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同的结论为理论基础,用脉冲宽度按正弦规律变化而和正弦波等效的PWM ...

  9. 应广单片机长按开关机_单片机单键开关机电路,模仿手机电源键功能 - 实现长按开机、长按关机、轻触开关锁屏...

    分享一个自己电路中的 单键开关机电路,需要与单片机的I/O配合,可实现手机电源键功能,如长按开机.长按关机.轻触开关锁屏或其他自定义功能.并且静态功耗极低,最大uA级,非常适合电池供电. 电路需求 电 ...

最新文章

  1. C#编码实践:使用委托和特性调用指定函数
  2. vss error reading from file 解决方法
  3. SAP Fiori 应用里图标(Icon)的渲染原理和使用技巧
  4. java内存高水位_jvm(1)---java内存结构
  5. CoreCRM 开发实录——开始之新项目的技术选择
  6. 服务器时间延迟,如何处理从服务器延迟响应时间'力逼近'
  7. Linux入门学习(七)
  8. 不写代码不用Excel,销售总监的数据分析,10分钟你就可以学会
  9. opencv imshow 窗口无响应 the window does not seem to be responding. do you want to force
  10. java notifyall 唤醒顺序_Java的多线程NotiFyAll()唤醒线程时的顺序问题 | 学步园
  11. java request含嵌套_使用 RxJava 进行嵌套串行网络请求的一种方法
  12. 从零开始使用Vscode调试XV6
  13. Pascal VOC2012
  14. 分享76网络科技88教育教学47公司企业PPT模板
  15. unity 移动设备查看监控视频
  16. 电流转电压的multisim仿真电路图
  17. [精简]托福核心词汇98
  18. 荧光标记毛细管电泳应用---InDel标记筛选与验证
  19. new Date()时间格式转时间戳在苹果机iOS上无效
  20. NVIDIA BERT推理解决方案Faster Transformer开源了!

热门文章

  1. Undo/Redo框架实现
  2. CDH 6 安装 Hbase 二级索引 Solr + Key-Value Store Indexer
  3. 开发之痛:稳定的测试环境,怎么就那么难
  4. 阿里云能耗宝即将发布,助力中小企业绿色升级,参与碳中和万亿市场
  5. 阿里千万实例可观测采集器-iLogtail正式开源
  6. 2019五个最棒的机器学习课程
  7. 配置管理 ACM 在高可用服务 AHAS 流控降级组件中的应用场景
  8. 从NeurIPS 2018看AI发展路线!
  9. Module 让 Terraform 使用更简单
  10. 走进英特尔中国研究院探索创新日:发布最新科研成果与创新策略