单片机简介
单片机简介数字电路简介
在一个控制系统中, 单片机是电路的一部分, 单片机中的程序是针对其所在的电路编写
的。因此,要对单片机编程并实现一定的功能,必须了解整个系统的电路图。单片机编程是
针对某个特定的电路进行的单片机编程是针对某个特定的电路进行的, 这一点和普通的编程不一样。 编程时很可能要经常参照电路图。与单片机直接相关的电路大都是数字电路。 数字电路各部分的功能十分明确, 因此相对比较容易掌握。
简单地说,数字电路就是只有“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 相仿,在此不另外介绍了
单片微型计算机知识点
单片机知识点1、单片微型计算机(Single-ChipMicrocomputer),简称单片机。就是将微处理器(CPU)、存储器(储存程序或数据的ROM和RAM)、总线、定时器/计数器、输入/输出插口(I/O口)和其他多种功能元件集成在一块芯片上的微型计算机。单片机的主要特征有:(1)可靠性高(2)以便扩充(3)控制功能强(4)低电流、低帧率(5)片显存储容量较小,除此之外,单片机还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特征2、AT8989SS5151单片机在片内集成了中央处理器(CPU)、程序储存器(ROM)、数据储存器(RAM)、定时器/计数器、并行I/O插口、串行I/O插口和中断系统等几大单元。A、CPU是整个单片机的核心部件,由运算器和控制器组成。运算器可以完成算术运算和逻辑运算,其操作次序在控制器控制下进行。B、程序储存器(ROM)用于储存程序、常数、表格等。C、数据储存器(RAM)用于储存数据。D、两个16位可编程序的定时器/计数器T0T1。用于定时或则计数。E、具有五个中断源、两个优先级的中断系统。个八位中断行I/O插口P0、P1、P2、P3,主要用于完成数据的并行输入和输出G、时钟振荡器,形成时序,保证单片机同步的工作方法H、一个可编程全双工串行口,用于实现单片机与其他设备间的串行数据传递I、看门狗电路和FlashROM编程逻辑电路3、80C51单片机有4端口,每位端口都是8位单向口,共占32根引脚。
每位端口都包括一个锁存器(即专用寄存器P0~P3)、一个输入驱动器和输入缓冲器。一般把个端口称为P0~P3。在无片外扩充的储存器的系统中,这端口的每一位都可以作为单向通用I/O端口使用。在具有片外扩充储存器的系统中,P2口作为高8位地址线,P0口分时作为低8位地址线和单向数据总线。4、指令:人为输入计算机,由计算机辨识并执行一步步操作的命令的方式称为指令。程序:一系列指令的有序集合称为程序。程序在计算机中是按序执行的,CPU通过程序计数器PC控制程序的执行次序,通常情况下程序是按序执行的,当执行转移、调用、返回等指令时,程序转移到相应的目的地址处执行。CPU依照程序计数器PC中的地址将欲执行指令的指令码从储存器中取出,储存在指令寄存器中,指令混频器对指令寄存器中的指令码进行解调,定时控制逻辑在振荡电路配合下对指令检波后的讯号进行分时,形成执行本条指令所需的全部讯号,完成本条指令的执行。5.单片机储存器地址空间在化学结构上看储存器上设有5个储存器空间:片内程序储存器、片外程序储存器、片内数据储存器、片外数据储存器、片内特殊功能寄存器SFR。在逻辑上有3个储存器地址空间:片内、片外统一的64KB程序储存器地址空间,片内128B数据储存器地址空间,片外64KB的数据储存器地址空间。
6、堆栈是一个特殊的储存区。主要功能是暂时储存数据和地址,一般拿来保护断点和现场。它的特征是根据“先进后出”的存取数据。堆栈表针SP是一个8寄存器,是用于指示堆栈的栈顶地址的寄存器,它决定了堆栈在内部RAM中的数学位置。7、数据表针DPTR16位的专用寄存器,它由两个位的寄存器DPH(低位)和DPL(低8位)组成。专门拿来寄存片外RAM及扩充I/O口进行数据存取时的地址。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器来使用(即低位字节寄存器DPH和高位字节寄存器DPL)。DPTR主要是拿来保存16位地址,当对64KB外部数据储存器轮询时,可作为间址寄存器使用。8.程序状态字PSW位状态一般是在指令执行的过程中手动产生的,但也可以由用户按照须要采用传送指令加以改变。各个标志位的意义如下:PSW.7(Cy):进位标志位。PSW.6(AC):辅助进位标志位,又称为半进位标志位。PSW.5(F0):用户标志位。PSW.4、PSW.3(RS1和RS0):寄存器组选择位。RS1RS0寄存器组地址PSW.2(OV):溢出标志位。PSW.1(空缺失):此位未定义。PSW.0(P):奇偶校准位9.8051片内数据储存器有256B轮询空间。
储存器空间的地址范围为:00H—-FFH在这个储存器空间又可分为:基本的数据储存区:00H—-7FH,可界定为工作寄存器、位轮询区、堆栈与数据缓冲区。10、8051片内RAM低128单元界定为:片内RAM低128单元界定及主要功能如下:(1)工作寄存器组(00H——1FH)这是一个用寄存器直接轮询的区域,内部数据RAM区的0—31,共32个单元。它是4个通用工作寄存器组,每位组包含8个8位寄存器,编号为R0——R7。(2)位轮询区(20H——2FH)16个字节单元,共包含128位,这16个字节单元既可以进行字节轮询,又可以实现位轮询。主要用于位轮询。(3)堆栈与数据缓冲区(30H——7FH)11、MCS-51单片机的时钟周期又称为振荡周期,由单片机内部振荡电路形成,定义为时钟频度的倒数。时钟周期又称为节拍(用P表示)。时钟周期是时序中的最小单位。一个状态有两个节拍机器周期定义为实现特定功能所需的时间。MCS-51的机器周期由12个时钟周期构成。执行一条指令所须要的时间称为指令周期,指令周期是时序中的最大单位。因为机器执行不同指令所需的时间不同,因而不同指令所包含的机器周期数也不尽相同。
MCS-51的指令可能包括1~4个不等的机器周期。MCS-51的显存为12MHz时,一个机器周期为1ms。执行一条指令须要的最长时间为4ms。12、8051单片机复位后机器的初始状态,即各寄存器的状态:PC之外,复位操作还对其它一些特殊功能寄存器有影响,它们的复位状态如下:单片机复位方式有:上电手动复位,键盘电平复位和外部脉冲三种形式。假定某cpu富含16根地址线,8根数据线,则该cpu最大轮询能力是216KB计算机里通常具有地址总线,数据总线,控制总线地址总线:它是双向传输,用于传送地址信息,地址线的数量决定了可以轮询的空间数据总线:它通常为单向传输,用于CPU与储存器、CPU与外设或外设与外设之间传输数据信息控制总线:它是计算机系统中所有控制讯号线的合称,在控制总线中传送的是控制信息运算器内数据线的多少被称为微处理器的字长,它是评判微处理器运算速率及精度上网重要标准之一,也是界定微处理器档次的重要根据字长是CPU一次能处理的数据位数,它决定着寄存器、运算部件、数据总线等的位数,MCS-51单片机的字长是8指令由操作码,操作数两部份组成13、寻址方法:确定指令中操作数所在储存单元地址的方法单片机的几种轮询形式:立刻轮询、直接轮询、寄存器轮询、寄存器间接轮询、相对轮询、变址轮询、位轮询14、机器语言:用二补码代码表示的指令,是计算机系统中惟一才能理解和执行的指令15、单片机的应用领域:一、家用家电,电视、冰箱、空调等二、办公手动化,复印机、复印机、传真机等三、商业营销,电子称、收款机、条形码阅读器等四、工业手动化,超市保安、空气调节、冷冻保鲜等五、智能控制,电气检测仪表(如把井下压力讯号传到控制中心)16、单片机的指令系统:数据传送指令、算术运算指令、逻辑运算指令、程序控制、微操作指令17、单片机主要使用的机器语言和汇编语言A、机器语言:直接用二补码代码指令抒发的计算机语言,指令是用0组成的一串代码B、汇编语言:是在机器语言的基础上发展上去的,它用一系列形象直观的助记符来代替二补码编码,是一种面向机器的程序设计语言,用助记符取代操作码,用符号地址取代操作数,这样用符号取代机器语言的二补码码,就把机器语言变成了汇编语言。
字节是计算机中通用的基本单元,它又8个二补码位组成,即八位二补码数组成一个字节18、汇编语言源程序、汇编程序、和目标程序之间的关系:汇编语言源程序经过汇编语言翻译,生成一个目标目标程序,计算机能够执行。19、汇编语言的的三种基本类型:可执行指令句子,伪指令句子,宏指令句子20、汇编语言句子的格式:指令句子:[标号:],操作码[操作数表][;注释]伪指令句子的格式[标号]定义符[参数表][;注释]21、汇编语言程序设计就是使用汇编语言指令来编撰计算机程序。22、一个高质量的汇编语言程序,应具备以下几点:A、结构简明、清晰,易于理解B、便于阅读、修改和调试,具有较好的维护性C、具有较高的可靠性D、程序应当是高效的23、程序设计的步骤:A、分析问题,确定算法B、根据算法,画出成粗流程图C、合理地分配储存空间和寄存器D、编写程序E、上机调试程序F、程序设计的流程图24、对单片机来讲汇编有两种方式:机器汇编,手工汇编25、汇编语言程序中,有四种常见的程序结构:次序结构、分支结构、循环结构和子程序,能辨识理解简单的程序结构,读懂程序执行过程26、计算机中的数据编码,带符号数的编码表示如“1”表示乘号,“0”表示正号,64H可以表示为01100100B,-64H则为11100100B进制表示带符号数BCD码:二补码编码的十补码数,即把每个十补码数字用四位二补码数来表示ASCII码:将数字、字母及各类符号进行统一编码27、单片机的输入输出形式:无条件传送方法、查询传送方法、中断传送方法理解各类传送形式目标程序汇编程序汇编语言源程28、什么是中断:CPU正在执行程序的过程中,因为CPU之外的某种缘由,有必要暂停该程序的执行,转而去执行相应的处理程序,待处理程序结束后,再返回原程序断点继续运行。
29、主程序与中断服务程序,CPU当前执行的程序称作主程序,CPU转去对突发风波的处理程序叫中断服务程序30、S51单片机的中断系统有五个中断源,两级中断优先级,五个中断源分别是:两个外部中断、两个片内定时器/计数器溢出中断、一个片内串行口中断31、中断恳求标志寄存器由定时器控制寄存器(TCON)和串行口控制寄存器(SCON)的若干位构成,具体的位控制参阅p83,复位时,TCON=00H,SCON=00H,无中断恳求32、中断容许控制寄存器IE的构成,复位时,IE=00H.严禁所有中断33、中断优先级控制寄存器IP,复位时,IP=00H,所有中断为低级中断34、中断处理过程:中断查询、中断响应条件、中断响应、执行中断服务程序、中断返回、中断恳求撤走注意:中断返回指令应用RETI,而不是RET35、计算机与外界的信息交换称为通讯,基本的通讯方式有并行通讯和串行通讯串行通讯有同步通讯与异步通讯两种形式,安按数据传送的方向分为单工和双工,双工又分为半双工和全双工36、波特率:在串行通讯中,每秒传送数据的位数称为码率,单位为波特,位/秒(b/S),码率的倒数称为为传送时间,用T表示,单位为秒(S)比如:传送速度为每秒十帧数据,每一帧数据11位,则传送码率为10帧/秒11位/帧=110b/s位传送时间T=9.1ms37、89ATS51单片机串行口是一个可程控、全双工的串行口,由两个独立的发送器和接收器组成。通过设置特殊功能寄存器SCON、PCON来控制串行口的工作方式与码率38、单片机的系统扩充有并行扩充和串行扩充两种方式
相关问答
单片机 驱动交流接触器的方法[回答]在各种自动控制设备中,都存在一个低压的自动控制电路与高压电气电路的互相连接问题,一方面要使低压的电子电路的控制信号能够控制高压电气电路的执...
单片机 实现500KHZ时钟信号?CLRP1.0---1USAJMPLOOP----2US周期是4us,还是超出了!所以12M下不能通过编程产生500khz的时钟那么只有提高单片机的晶振了,24M,机器周期0....
at89c51plcc封装 单片机 如何下载程序?at89c51必须是专用的编程器下载程序,还必须用专用的软件。而plcc封装的还要做一个转接板,因编程器只能插直插DIP封装的。现在还用at89c51plcc的单片机,太落后...
at89c51相似的 单片机 ?都是51内核的理论上可以代替但是估计你买不到了或者你有以前存在的老古董现在差不多的电子城都能买到C51或S51,C52或S52系列的单片机至于前面的字母或数...
单片机 电路要焊成实物,需要买哪些元件,肿么把程序下载到AT89...买单片机芯片,电容电阻,晶振,数码管,做PCB板等等,AT89C51的话只能用编程器了,S51的话可以ISP烧写1、如果楼主没有电子电路制作经验,建议先买一块实验板、一杆焊...
帮个忙各位童鞋,求助,北京专业的蜂鸣器,蜂鸣器性价比好不...[回答]蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出...
AT89 S51 内部数据存储器的地址范围是-ZOL问答显示器索尼索尼S51讨论回答(6)位地址空间的字节地址范围是20H-2FH.对应...我觉得应该这样说:前128是未定义的自由区域,可随意使用;后128是单片机已定义的...
好不好做 单片机 AT89C51的烧录器-ZOL问答你能确定单片机是AT89C51吗?还是AT89S51,别看这只差一个字母,但编程的方法却大不相同的。前者是需要专用的编程器的,自己是做不了的,就是你自己是不可能做烧录...
STC89C51RC芯片的引脚说明-ZOL问答怎么不用S51或者STC的单片机呢,下程序方便的很STC89C52有PDIP、LQFP、PLCC三种不同的封装。你得搞清楚自己要用哪种封装,才能据此设计。百度嫌我字数不够程...