1、单片机概述:单片机是微单片微型计算机的简称,微型计算机的一种。它把中央处理器(CPU),随机存储器(RAM),只读存储器(ROM),定时器计数器以及IO接口,串并通信等接口电路的功能集成与一块电路芯片的微型计算机。字长:在计算机中有一组二进制编码表示一个信息,这组编码称为计算机的字,组成字的位数称为“字长”,字长标志着精度,MCS-51是8位的微型计算机。89c51 是8位(字长)单片机 (51系列为8位)单片机硬件系统仍然依照体系结构:包括 CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、输入设备和输出设备、内部总线等。由于一块尺寸有限的电路芯片实现多种功能,所以制作上
2、要求单片机的高性能,结构简单,工作可靠稳定。单片机软件系统包括监控程序,中断、控制、初始化等用户程序。一般编程语言有汇编语言和C语言,都是通过编译以后得到机器语言(二进制代码)。1.1单片机的半导体工艺一种是HMOS工艺,高密度短沟道MOS工艺具有高速度、高密度的特点;另一种是CHMOS工艺,互补金属氧化物的HMOS工艺,它兼有HMOS工艺的特点还具有CMOS的低功耗的特点。例如:8051的功耗是630mW,80C51的功耗只有110mW左右。1.2开发步5骤:1.设计单片机系统的电路2.利用软件开发工具(如:Keil c51)编辑程序,通过编译得到.hex的机器语言。3.利用单片机仿真系统(
3、例如:Protus)对单片机最小系统以及设计的外围电路,进行模拟的硬软件联合调试。4.借助单片机开发工具软件(如:STC_ISP下载软件)读写设备将仿真中调试好的.hex程序拷到单片机的程序存储器里面。5.根据设计实物搭建单片机系统。2.1MCS-51单片机的组成:(有两个定时器)CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线 和中断系统等。工作过程框图如下:运算器组成:8位算术逻辑运算单元ALU(Arithmetic Logic Unit)、8位累加器A(Accumulator)、8位寄存器B、程序状态字寄存器PSW(Program S
4、tatus Word)、8位暂存寄存器TMP1和TMP2等。功能:完成算术运算和逻辑运算控制器组成:程序计数器PC、指令寄存器IR、指令译码器ID、堆栈指针SP、数据指针DPTR、定时控制逻辑和振荡器OSC等电路。功能:CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号。 2.2存储器MCS-51的存储器可分为程序存储器和数据存储器,又有片内和片外之分。(1)程序存储器 一般将只读存储器(ROM)用做程序存储器。可寻址空间为64KB,用于存放用户程序、数据和
5、表格等信息。MCS-51单片机按程序存储器可分为内部无ROM型(如8031)和内部有ROM型(如8051)两种, 连接时 引脚有区别。程序存储器结构如图所示:(2)数据存储器 一般将随机存储器(RAM)用做数据存储器。可寻址空间为64KB。MCS-51数据存储器可分为片内和片外两部分。片外RAM:最大范围:0000HFFFFH,64KB;用指令MOVX访问。片内RAM:最大范围:00HFFH,256B;用指令MOV访问。又分为两部分:低128B(007FH)为真正的RAM区,高128B(80FFH)为特殊功能寄存器(SFR)区。如图所示。2.3定时器/计数器(TL0, TH0, TL1和TH1
6、)MCS-51单片机中有两个16位的定时器/计数器T0和T1,它们由4个8位寄存器(TL0, TH0, TL1和TH1)组成,2个16位定时器/计数器是完全独立的。可以单独对这4个寄存器进行寻址,但不能把T0和T1当做16位寄存器来使用。8051内部有两个16位可编程序的定时器/计数器,均为二进制加1计数器,分别命名为T0和T1。T0和T1均有定时器和计数器两种工作模式。在定时器模式下,T0和T1的计数脉冲可以由单片机时钟脉冲经12分频后提供。在计数器模式下,T0和T1的计数脉冲可以从P3.4和P3.5引脚上输入。对T0和T1的控制由定时器方式选择寄存器TMOD和定时器控制寄存器TCON完成2
7、.4中断系统中断:指CPU暂停原程序执行,转而为外部设备服务(执行中断服务程序),并在服务完后返回到原程序执行的过程。中断系统:指能够处理上述中断过程所需要的硬件电路。中断源:指能产生中断请求信号的源泉。8051可处理5个中断源(2个外部,3个内部)发出的中断请求,并可对其进行优先权处理。外部中断的请求信号可以从P3.2, P3.3(即 和 )引脚上输入,有电平或边沿两种触发方式;内部中断源有3个,2个定时器/计数器中断源和1个串行口中断源。8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成。2.5MCS-51单片机外部引脚8051单片机有40个引脚,分为端口线、电源线
8、和控制线三类。电源线 GND:接地引脚20。VCC:正电源引脚40。接5V电源2.6MCS-51单片机的工作方式:MCS-51系列单片机的工作方式可分为:复位方式、程序执行方式、单片执行方式、掉电保护方式、节电工作方式和EPROM编程/校验方式。复位电路有两种:上电自动复位和上电/按键手动复位,如图所示。程序执行方式是单片机基本工作方式,可分为连续执行工作方式和单步执行工作方式。节电工作方式是一种低功耗的工作方式,可分为空闲(等待)方式和掉电(停机)方式。是针对CHMOS类芯片而设计的,HMOS型单片机不能工作在节电方式,但它有一种掉电保护功能。1HMOS单片机的掉电保护 当VCC突然掉电时,
9、单片机通过中断将必须保护的数据送入内部RAM,备用电源VPD可以维持内部RAM中的数据不丢失。 2CHMOS单片机的节电方式 CHMOS型单片机是一种低功耗器件,正常工作时电流为1122mA,空闲状态时为1.75mA,掉电方式为550mA。因此,CHMOS型单片机特别适用于低功耗应用场合,它的空闲方式和掉电方式都是由电源控制寄存器PCON中相应的位来控制。 3.空闲工作方式:将IDL位置为1(用指令MOV PCON, #01H),则进入空闲工作方式,其内部控制电路如右图所示。此时,CPU进入空闲待机状态,中断系统、串行口、定时器/计数器,仍有时钟信号,仍继续工作。退出空闲状态有两种方法:一是中
10、断退出,二是硬件复位退出。4. 掉电工作方式:将PD置为1(用指令MOV PCON, #02H),可使单片机进入掉电工作方式。此时振荡器停振,只有片内的RAM和SFR中的数据保持不变,而包括中断系统在内的全部电路都将处于停止工作状态。退出掉电工作方式,只能采用硬件复位的方法。欲使8051从掉电方式退出后继续执行掉电前的程序,则必须在掉电前预先把SFR中的内容保存到片内RAM中,并在掉电方式退出后恢复SFR掉电前的内容。2.7单片机的时序时序:CPU在执行指令时所需控制信号的时间顺序称为时序。时序是用定时单位来描述的,MCS-51的时序单位有四个,分别是时钟周期(节拍)、状态、机器周期和指令周期
11、。 MCS-51的时序单位:1. 时钟周期:又称为振荡周期、节拍(用P表示),定义为单片机提供时钟信号的振荡源(OSC)的周期。它是时序中的最小单位。2. 状态(用S表示):单片机振荡脉冲经过二分频后即得到整个单片机工作系统的状态。一个状态有两个节拍,前半周期对应的节拍定义为P1,后半周期对应的节拍定义为P2。3. 机器周期:通常将完成一个基本操作所需的时间称为机器周期。 MCS-51中规定一个机器周期包含12个时钟周期,即有6个状态,分别表示为S1S6。若晶振为6MHz,则机器周期为2s,若晶振为12MHz,则机器周期为1s。4. 指令周期:执行一条指令所需要的时间称为指令周期。它是时序中的
12、最大单位。一个指令周期通常含有14个机器周期。指令所包含的机器周期数决定了指令的运算速度,机器周期数越少的指令,其执行速度越快。 以机器周期为单位,指令可分为单周期、双周期和四周期指令。3.1单片机系统的工程设计 设计要求:一、可靠性和稳定性是衡量单片机系统工程设计指标。提高系统可靠性的几种基本方法包括:1.系统采用双机系统2.采用集散式控制系统3.进行软硬件滤波:几种常用的数字滤波方法包括:(1)中值滤波 (2)算术平均值滤波 (3)防脉冲干扰平均值滤波4.提高元器件的可靠性5.提高印制电路板的质量:设计是布线及接地要合理6.对供电电源采用抗干扰措施7.加强输入输出通道的抗干扰性二、系统自诊
13、断功能当系统正常运行的时候,定时对各工作模块进行监控,并对外界的情况作出快速应变处理。应能自己及时切换到后备装置投入运行或及时发出信号,以便手动操作。三、操作维修方便尽量降低对操作人员的专业知识要求,于,控制开关尽量少,操作顺序简便,数据输入与输出显示采用十进制表示,能有效地定位故障,以便进行维修和系统的推广。四、性能/价格比设计的时候尽量考虑花钱少,能用软件实现的应该采用软件实现。设计方法:一、总体设计:1.掌握工作原理2.机器和元器件的选择3.软硬件功能的划分:硬-提高工作速度,减少工作量,花钱多;软-花钱少,增加软件复杂性,降低系统工作速度二、硬件设计任务1.掌握工作原理三、软件设计1.
14、系统定义2.软件结构3.程序设计4.1模拟量输入通道的一般组成模拟量输入通道一般由信号预处理、多路转换器、前置放大器、采样保持器、模/数转换器和接口逻辑电路等组成。其核心是模/数转换器。4.2AD转换器及技术指标:A/D转换器的作用是将模拟量转换为数字量,它是模拟量输入通道的核心部件,是模拟系统和计算机之间的接口。分辨率:通常用数字量的位数n(字长)来表示,若n8,满量程输入为5.12V,则LSB对应于模拟电压 。转换时间:从发出转换命令信号到转换结束信号有效的时间间隔,即完成 n 位转换所需要的时间。转换精度:绝对精度指满量程输出情况下模拟量输入电压的实际值与理想值之间的差值;相对精度指在满
15、量程已校准的情况下,整个转换范围内任一数字量输出所对应的模拟量输入电压的实际值与理想值之间的最大差值。转换精度用LSB的分数值来表示。线性误差:在满量程输入范围内,偏离理想转换特性的最大误差定义为线性误差。线性误差常用LSB的分数表示,如1/2LSB、1/4LSB等。转换量程:所能转换的模拟量输入电压范围,如05V,010V,5V十5V等。4.3AD转换器与计算机的接口ADC0809与8255A的连接接口电路:采用查询方式完成8路模拟量数据采集的程序框图(假设在主程序中已完成对8255A的初始化编程)。编程:ORG OO13HAJMP PINT1ORG2000HMAIN:MOV R1,#DAT
16、ASETBIT1SETB EASETBEX1MOVDPTR,#7FF8HMOVX DPTR,ALOOP:NOPAJMPLOOPORG2100HPINT1: PUSH PSWPUSHACCPUSHDPL(按两个一组竖直向下写)PUSH DPHMOV DPTR,#7FF8HMOVX A,DPTRMOVR1,AINCR1MOVX DPTR,APOPDPHPOPDPLPOPACCPOPPSW4.4D/A转换器的主要技术指标 :分辨率: D/A转换器的分辨串定义为基准电压与之比值,其中n为D/A转换器的位数。稳定时间:输入二进制数变化量是满刻度时,输出达到离终值时所需的时间。数字量时,D/A转换器的实际
17、输出值与理论值之间的最大偏差;相对精度是指在满刻度己校准的情况下,整个转换范围内对应于任一输入数据的实际输出值与理论值之间的最大偏差。转换精度用最低有效位LSB的分数来表示,如土1/2 LSB、土1/4 LSB等。线性度:理想的D/A转换器的输入输出特性应是线性的。在满刻度范围内,实际特性与理想特性的最大偏移称为非线性度,用LSB的分数来表示,如土1/2 LSB、土1/4 LSB等。 4.5D/A双极性模拟量输出的实现方法Vout1为单极性输出,若D为输入数字量,Vref为基准参考电压,且为位DA转换器,则有为双极性输出,且可推导得到 这种双极性输出方式,是把最高位当作符号位使用,与单极性输出
18、比较,使分辨率降低1位。 5.1干扰的来源和分类一、 外部干扰(1) 自然界的现象,如:闪电、雷击等对通信设备,导航仪 ,无线传输模块的影响。(2) 各种电气设备所产生的电磁场、电火花、电弧焊接、高频加热、晶闸管整流等干扰通过供电电源对系统产生影响。(3) 地磁场的影响及来之电源本身的高频干扰。 一、 内部干扰计算机控制系统内部的各种元器件的各种干扰包括固定干扰和过渡干扰。另外按干扰的特性来分,干扰又分为直流干扰,交流干扰和随机干扰,其中交流干扰最易出现。1.固定干扰(1)电阻中B随机性电子热运动引起的热噪声; (2) 半导体及电子管截流子的随机运动引起的散粒噪声;(3) 两种导电材料之间的不
19、完全接触,接触面的电导产的不一致而产生的接触噪声;(4) 因布线不合理,寄生参数,泄露电阻等耦合形成寄生反馈电流所造成的干扰; (5) 多点接地造成的电位差引起的干扰; (6) 寄生振荡引起的干扰; (7) 热骚动噪声干扰等。 5.2 硬件抗干扰能力 电源系统抗干扰方法(1) 采用低通滤波器:抑制电网侵入的外部高频干扰;(2) 采用隔离变压器:控制系统与供电电源之间加入一个三相隔离变压器,其中一次侧接三角形揭发,二次侧按星形连接,有利于工频的3次以上鞋包对控制系统的干扰;(3) 采用能抑制交流电源干扰的计算机控制系统电源; (4) 采用电源分组供电:输入通道电源和其他设备电源分开,防止设备间干
20、扰;(5) 采用直流电源抗干扰措施:每次逻辑印刷制电路板的电源与地线的弧处接电容,以防止板间的互相干扰; 过程通道抗干扰方法(1) 串模干扰:叠加在被测信号上得干扰噪声。它的抑制方法包括选用低通、高通、带通滤波器;双积分式A/D转换器抑制串模尖峰干扰;采用高抗扰度逻辑器件;采用双绞线做信号引入线减少电磁感应。 (2) 共模干扰:输入端上公共的干扰电压。它的抑制方法包括变压器隔离;光电隔离。利用屏蔽方法使输入信号的“模拟地”浮空。 (3) 长线传输抗干扰:滞后;波形减变化;外界电磁干扰;线路终端阻抗不匹配,有用信号产生反射波与原有用信号叠加产生“长线效应”。抑制方法包括双绞线传输抑制电磁干扰;采
21、用终端阻抗匹配和始端阻抗匹配抑制“长线效应”。5.3单片机的接地技术:(1)一点接地;(2)浮地系统:设备的整个地线系统和大地之间无导体连接,以悬浮的地作为系统的参考电平。(3)接地系统:设备的整个地线系统和大地之间通过导体连接,对人员比较安全。交流地与直流地分别汇流以后接到接地板;(4) 模拟地与数字地分别汇流接地;(5) 加宽印刷电路板地线,以降低地线阻抗;(6) 屏蔽地域放大器的公共端连接起来。5.4软件抗干扰办法:1. 数字滤波2.设立软件陷阱3.时间监视器(wantchdog看门狗电路):控制系统周期性地复位。6.1串行接口控制器SCON,8位分别代表什么?SCON(Serial C
22、ontrol Register)串行口控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下: SCON D7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI 位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H (1).SM0、SM1:串行口工作方式控制位。SM0,SM1 工作方式 00 方式0 ,01 方式1 ,10 方式2 ,11 方式3 (2).SM2:多机通信控制位。(3).REN:允许接收位。(4).TB8:发送接收数据位8。(5).RB8:接收数据位8。(6).TI:
23、发送中断标志位。(7).RI:接收中断标志位。波特率是每秒钟传送的信息位的数量(位数)。它是所传送代码的最短码元占有时间的倒数。例如一个代码的最短时间码元宽度为20毫秒,则其波特率就是每秒50波特。 20毫秒=0.02秒 波特率1/0.02=50波特。6.2:20根地址线16根数据线的cpu的寻址范围20根地址线,每根线传输0或1,20根共有220总组合寻址范围00000-FFFFF总字节数为220 = 165 = 1048576 Byte = 1024 KB = 1 MB一字为2字节,所以为512K。而数据线决定cpu与外界传输速度:16根数据线,只能传输4位16进制,所以在表示地址时我们使
24、用4位段地址和4位偏移地址来表示,用EA表示段地址,SA表示偏移地址,物理地址即为16*EA+SA6.3 线选法,部分译码法,全译码法线选法:CPU的某条地址线直接接存储器芯片的片选端特点:各存储器芯片地址范围不连续,但是会造成地址堆叠,空间利用率低且具体编程时不易编织部分译码法:CPU的部分地址线参加译码输出控制片选端特点:一个存储器单元有多个地址值,部分译码法介于两者之间,也会产生一定程度的地址堆叠,但是有相对连续的地址空间。全译码法:CPU的全部地址线参加译码输出控制片选端特点:一个存储器单元仅有一个地址值,全译码法的芯片利用率高,不会出现地址堆叠,但是电路比起线选法复杂得多;6.4溢出
25、率定时器1的溢出率,也叫定时器1的溢出频率,从设定初值开始计数,当计数到0FFH再一个计数脉冲到来时刻就溢出,初值越大溢出率也越高,我们使用这个溢出率确定通信波特率。在使用11.0592MHz晶体时,SMOD=0,C/T=0,方式=2,波特率=9600,则定时器重装载数值是0FDH。溢出速率=(技术速率)(256TH1初值)溢出速率=fosc12*(256TH1初值)6.5怎么在c语言里嵌入汇编语言-C语言中嵌入汇编:方法是这样的#pragma ASM ; Assembler Code Here;#pragma ENDASM即用_asm.汇编(注)看不懂的话下面是用例,没有必要把用例写在卷纸上
26、# include void main() unsigned long m,*v;_asmmov eax,mbswap eaxmov m,EAXprintf( %xn,m); 一、 方式 0 的应用 例 1 利用定时器输出周期为2ms的方波, 设单片机晶振频率为 6 MHz。 选用定时器/计数器T0 作定时器, 输出为P1.0引脚, 2ms 的方波可由间隔1ms的高低电平相间而成, 因而只要每隔1ms对 P1.0取反一次即可得到这个方波。 定时 1 ms的初值: 因为 机器周期=126 MHz= 2 s所以 1 ms内T0 需要计数N次: N= 1 ms2 s = 500由此可知: 使用方式
27、0 的 13 位计数器即可, T0 的初值X为 X=MN=8192500=7692=1E0CH 但是, 因为 13 位计数器中, 低 8 位 TL0 只使用了 5 位, 其余码均计入高 8 位TH0 的初值, 则 T0 的初值调整为 TH0=0F0H, TL0=0CHTMOD初始化: TMOD=00000000B=00H (GATE=0, C/T=0, M1=0, M0=0)TCON初始化: 启动TR0=1 IE初始化: 开放中断EA=1, 定时器T0 中断允许ET0=1程序清单如下: ORG 0000H AJMP START; 复位入口 ORG 000BH AJMP TOINT ; T0中断
28、入口 ORG 0030HSTART: MOV SP, 60H; 初始化程序 MOV TH0, 0F0H ; T0赋初值 MOV TL0, 0CH MOV TMOD, 00H SETB TR0 ; 启动T0 SETB ET0 ; 开T0中断 SETB EA ; 开总允许中断 MAIN: AJMP TOINT; 主程序 TOINT: CPL P1.0 MOV TL0, 0CH MOV TH0, 0F0H RET有时对A/D转换器的位数要求以分辨率形式给出,其定义为;如果所要求的分辨率为D0,则位数;例如,某温度控制系统的温度范围为0至200,要求分辨率为0.005(相当于1),可求出A/D转换器的位数因此,取A/D转换器的位数n为8位。