单片机知识点

时间:2024.4.13

单片机就是一片半导体硅片上,集成了中央处理单元(CPU)、存储器(RAM ROM)、并行I/O、

串行I/O、定时器/计数器、中断器、系统时钟电路及系统总线的用于测控领域的微型计算机、简称单片机。

何谓单片机?单片机与一般微型计算机相比,具有哪些特点? 答:单片机是在一块集成电路上把CPU、存储器、定时器/计数器及多种形式的I/O接口集成在一起而构成的微型计算机。它与通用微型计算机相比,具有如下特点:

(1) 单片机的程序存储器和数据存储器是分工的,前者为ROM,后者为RAM;

(2) 采用面向控制的指令系统,控制功能强; (3) 多样化的I/O接口,多功能的I/O引脚; (4) 产品系列齐全,功能扩展性强;

(5) 功能是通用的,像一般微处理机那样可广泛地应用在各个方面。

单片机主要应用在哪些领域? 答:单片机的应用范围很广泛,诸如智能化家用电器、仪器仪表、工业控制、计算机外部设备、智能机器人、电信及导航等方面。 嵌入式DPS处理器

嵌入式数字信号处理器是一种非常产擅长高速实现各种数学信号处理运算的嵌入式处理器。由于DPS硬件结构和指令进行了特殊设计,定时器能够完成各种数字信号处理算法。

与单片机相比DSP具有的实现高速运算的硬件结构和指令和多总线,DSP处理的算法复杂度和大的数据处理流量更是单片机不可企及的。

嵌入式微处理器

其基础是通用计算机的CPU。在应用设计中,将嵌入式处理器装配在专门的电路板上,只保留和嵌入式应用有关的母版功能,这样可以大幅度减小系统体积和功耗。为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强处理。嵌入式实时多任务操作系统具有高度灵活性,可很容易对它进行定制或适度开发,即对它进行“裁剪”、“移植”、“编写”,从而设计出用户所需的应用程序,满足实际应用需求。正是由于嵌微为核心的嵌入式系统,能够运行多任务操作系统,所以能够处理复杂的系统管理任务和处理工作。 AT89S51单片机特性(芯片内部包括): (1)8位处理器(CPU)。包括了运算器和控制器两大部分,此外还有面向控制的位处理功能; (2)数据存储器(123B RAM)。片内为128B,片外最多还可外扩64KB; (3)程序存储器(4KB FLASH ROM)。用来存储程序,AT89S51片内集成有4KB的FLASH存储器,如果片内程序存储器容量不够,片外最多可外扩64KB程序存储器; (4)4个8位可编程并行I/O口(P0口、P1口、P2口和P3口); (5)1个全双工的异步串行口(UART);具有4种工作方式。可进行串行通信,扩展进行IO口。还可以与多个单片机相连构成多机串行通信系统。

(6)2个可编程的16位定时器/计时器。具有4钟工作方式; (7)1个看门狗定时器(WDT)。当单片机犹豫干扰而使程序陷入死循环或跑飞状态时,使程序恢复正常运行; (8)中断系统具有5个中断源、5个中断向量。2级中断优先权; (9)特殊功能寄存器(SFR)26个。用于CPU对片内各外围部件进行管理、控制和监视,特殊功能寄存器实际上是片内各外围部件的控制寄存器和状态警察局,这些特殊功能寄存器映射在片内RAM区80HZ—FFH的地址区间内;

(10)低功耗节电模式有空闲模式和掉电模式,且具有掉电模式下的中断恢复模式;

(11)3个程序加密锁定位。 控制引脚:

EA为该引脚的第一功能:外部程序存储器访问允许控制端。接高电平时,在PC值不超过0FFFH时,单片机读片内程序存储器存储的程序,超过,则读取片外程序存储器空间的程序。VPP为第二功能:在对片内FLASH进行编程时,VPP引脚接入编程电压。

(引脚 第二功能 说明)P3.0 RXD 串行数据输入口;P3.1TXD 串行数据输出口P3.2 INT0 外部中断0输入 P3.3INT1外部中断1输入P3.4 T0 定时器0外部计数输入 P3.5 T1定时器1外部计数输入 P3.6 WR 外部数据存储器写选通输出P3.7RD外部数据存储器读选通输出.

时钟周期是单片机时钟控制信号的基本时间单位。若时钟晶体的震荡频率为fosc,则时钟周期TOSC=1/fosc如fosc=6MHz,TOSC=166.7ns。

机器周期:CPU完成一个基本操作所需要的时间。单片机中常把执行一条指令的过程分为几个机器周期。每个机器周期完成一个基本操作,如取指令、读或写数据等。AT89S51单片机的每12个时钟周期为一个机器周期,即Tcy=12/fosc。 若fosc=6MHz,Tcy=2us, fosc=12MHz, Tcy=1us。

内部RAM中,可作为工作寄存器区的单元地址为00H-1FH。 控制串行口工作方式的寄存器是SCON

C51在标准C的基础上,扩展了4种数据类型。注意,这4种数据类型,不能使用指针对它们存取。Bit1位—值域0或1。sfr 8位1字节值域0~255。sfr16 16位2字节值域1~65535。 Sbit1位—可进行寻址的特殊功能寄存器的某位的绝对地址。 特殊功能位sbit指AT89S51片内特殊功能寄存器的可寻址位。例如:sfr PSW=0xd0(PSW寄存器地址为0xd0);sbit PSW^2=0xd2(定义OV位为PSW.2)注意,不要把bit和sbit相混淆。Bit是用来定义普通的位变量,它的值只能是二进制的0或1.而sbit定义的是特殊功能寄存器的可寻址位,它的值是可进行位寻址的特殊功能寄存器的某位的绝对地址,如PSW寄存器OV位的绝对地址0xd2。

Sfr特殊功能寄存器名字=特殊功能寄存器地址; 1直接访问SFR: 例如:sfr IE=0xA8;(中断允许寄存器地址 A8H)sfr TCON=0x88,(定时器/计数器控制寄存器地址88H)sfr SCON=0x98;(串行口控制寄存器地址98H)

2访问16位SFR:sfr DPTR=0x82(数据指针DPTR的低8位地址为82H,高8位地址为83H)

特殊功能寄存器中的位定义3种方法:sbit 位名=特殊功能寄存器^位置;sfr PSW=0xD0(定义PSW寄存器的字节地址0xD0H);sbit= CY=PSW^7(定义CY位为PSW.7,地址为0xD0);sbit OV=PSW^2(定义OV位为PSW.2,地址为0xD2);sbit 位名=字节地址^位置;sbit CY=0xD0^7;sbit OV=0xD0^2;sbit 为名=位地址;sbit CY=0xD7;sbit OV=0xD2。CY位地址为0xD7;OV位地址为0xD2.

逻辑运算符&&逻辑与‖逻辑或!逻辑非。关系运算符!=不等于;>=大于等于;==等于。位运算&按位逻辑与;∣按位逻辑或;^按位异或;~按位取反;<<按位左移;>>按位右移。 例编写程序将扩展的某I/O口PORTA的PORTA .5清0,PORTA.1置为1,程序如下# define <absacc.h>;# define PORTA XBYTE[0xFFC0];void main();{??PORTA=(PORTA&0xDF)∣0x02;??}

例实型数组sample存有10个采样值,编写程序段,要求范围其平均值(平均值滤波)。如下: float avg(float *sample){float sum=0;

char n=0;do{sum+=sample[n];n++;}while(n<10);return};}

P1字节地址90H位地址90H~97H;P2字节地址A0H位A0H~A7H;P3字节地址B0H位B0H~B7H; 为什么采用低电平驱动

P0口比其他(P1、2、3、)端口驱动能力大,当P0口的某位位高电平时。可提供400uA的电流;当P0口的某位位低电平时,可提供3.2mA的灌电流,如低电平允许提高,灌电流可相应增大。所以任何一个口想要获得较大的驱动能力,只能用低电平,如果高电平输出,则强行输出电流Id。会造成单片机端口损坏。 开关量检测指示器1(I/O端口另一应用作为输入端口使用时,检测开关的状态)

例:AT89S51单片机的P1.4~P1.7接4个开关S0~S3,P1.0~P1.3接4个发光二极管LED0~LED3。编写程序将P1.4~P1.7上的4个开关的状态反映在P1.0~P1.3引脚控制的4个发光二极管上。1个发光二极管的状态,对应一个开关的状态,例如P1.4引脚上开关S0的状态,有P1.0脚上开关S2的状态,由P1.2脚上的LED2显示。凡是开关的引脚,对应的LED发光二极管点亮。接口如图的:

程序参考:#include <reg51.h>回车void main()回车{while(1)回车 {unsigned char temp;

P1=0xff;temp=P1&0xf0;temp=temp>>4;P1=temp;}} 开关量检测指示器2

例如图AT89S51单片机P1.0和P1.1引脚有两只开关S0和S1,两只引脚上的高低电平共有4种组合,分别点亮P2.0~P2.3引脚控制的4只LED;LED0~LED3(高电平点亮),编程实现此功能。

#include <reg51.h>;void main();{char stata;do回车{P1=0xff;state=P1;state=state&0x03;swich (a){case0: P2=P2∣0x01;breal;case1: P2=P2∣0x02;break; case2: P2=P2∣0x04;break; case3: P2=P2∣0x08; }}while(1);} 同级中断的查询次序

中断源的中断级别由高到低——(外部中断0、T0溢出中断、外部中断1、T1溢出中断、串行口中断)

关键字interriupt后面的n是中断号,对于51单片机,n的取值为0~4,编译器从8xn+3处产生中断向量。AT89S51单片机的中断源对应的中断号和中断向量如表。(中断号,中断源,中断向量8×n+3)0;外部中断0;0003H。1;定时器0;000BH。2;外部中断1;0013H;3;定时器1;001BH。4;串行口;0023H。

一个中断源的中断请求被响应,必须满足:

(1)总中断允许开关接通,即IE寄存器中的中断总允许位IE=1。(2)该中断源发出中断请求,即中断源对应的中断请求标志为“1”。(3)该中断的中断允许位=1,即中断被允许。(4)无同级或更高级中断正在被服务。 中断响应:就是CPU对中断源提出的中断请求的接受。在CPU查询到有效的中断请求时,在满足上述条件时,紧接着就进行中断响应。

工作方式控制寄存器TMOD

AT89S51单片机的定时器/计数器工作方式寄存器TMOD用于选择定时器/计数器的工作模式和工作方式,字节地址的89H,不能位寻址,其格式如图:

单片机知识点

8位分为两组,高4位控制T1,低4位控制T0。TMOD各位说明:(1)GATE:门控位,GATE=0,仅由运行控制位TRx(x=0,1)来控制定时器/计数器运行。GATE=1时,用外中断引脚(INT0或INT1)上的电平与运行控制TRx共同控制定/计运行。(2)M1、M0:工作方式选择,M1、M0的4种编码,对应于4种工作方式的选择(M1 M0 工作方式)—00方式0,为13位定/计;01方式1;16位定/计10方式2,8位的常数自动重新装载的定/计11方式3,仅适于T0,此时T0分成2个8位计时器,T1停止计数。(3)C/:计数器模式和定时器模式选择位。=0时,为定时器工作模式,对单片机的晶体振荡器12分频后的脉冲进行计数。=1,为计数器工作模式,计时器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。 P1.0上产生周期为2ms的方波

例假设系统时钟为12MHz,编写程序实现从P1.0引脚上输出一个周期为2ms的方波,如图 程序:#include<reg51.h> sbit P1_0=P1^0; void main(void)

{TMOD=0x01;P1_0=0;TH0=(65536-1000)/256; TL0=(65536-1000)%256; ET0=1;EA=1;TR=1 do{}while(1);}

void T0_int(void) interrupt 1 using 1 {P1_0=! P1_0;

TH0=(65536-1000)/256; TL0=(65536-1000)%256;} 产生1s的方波 #include<reg51.h> sbit P1_0=P1^0; sbit P1_0=P1^1; void main(void)

{TMOD=0x61;P1_0=0; TH0=(65536-1000)/256; TL0=(65536-1000)%256; TH1=206;

TL1=206 ;EA=1;

ET0=1;ET1=1; TR=1; while(1);} void T0_int(void) interrupt 1 { TH0=(65536-1000)/256;

TL0=(65536-1000)%256; P1_0=! P1_0;} void T1_int(void) interrupt 3 { P1_0=! P1_0;};

定时器T1产生波特率的计算

波特率的定义:串行口每秒发送或接收的位数。通过软件对AT89S51的串口可设定4种工作方式。

在串行通信中,收发双方或者接收的波特率必须5 其中方式0和2的波特率是固定的;方式1和3是可变的,由定时器T1的溢出率来确定。

方式0为同步移位寄存器输入/输入方式:一帧8位,全是数据位,没有起始位和停止位,先发送或者接受最低位;方式1为双机串行通信(异步串行通信)方式:一帧10位,1位起始位0,8位数据位和1位停止位1;方式2、3为9位异步通信接口:每帧数据均为11位,1位起始位0,8位数据位,1位可程控为1或0的第九位数据和1位停止位,11位,其中1位起始位,9位数据位,1位停止位。

常用波特率通常按规范取1200、2400、4800、9600、?,若采用晶振12MHz和6MHz,则计算得出的T1定时初值将不是一个整数,产生波特率误差而影响串行通信的同步性能。

解决的方法只有调整单片机的时钟频率fosc,通常采用11.0592MHz晶振。

帧格式为1个起始位,8个数据位和一个停止位的异步串行通信方式是(方式1)

在串行通信中,收发双方对波特率的设定应该是一致的。 串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出率设定

AT89S51串口有4种工作方式方式0、方式1、方式2、方式3,3种帧格式,波特率确定: 方式0——波特率为fosc/12

方式1、3——2SMOD╳定时器T1的溢出率

32

2SMOD╳

fosc,X为T1初值)

3212(256?X)

T1初值X=

SMOD256?

2fosc

32?12?波特率

方式2:波特率=2SMOD ╳ fosc/64(fosc/32和fosc/64)

若晶体振荡器为11.0592MHz,串行口工作于方式1,波特率为4800bit/s,写出用T1作为波特率发生器的方式控制字的计数初值

T1初值=SMOD

= 256?

2

32

?

fosc

12?波特率

T1初值=

256?

2SMOD?

fosc=250=FAH

3212?波特率

(SMOD=0)控制字:

MOV TMOD,#20H 设置T1工作于方式2 MOV TH1,#0FAH MOV TL1,#0FAH

MOV SCON,#40H 设置串口工作于方式1 6.判断下列说法是否正确:

(1) 串行口通信的第9数据位的功能可由用户定义。(对) (2) 发送数据的第9数据位的内容在SCON寄存器的TB8位预先准备好的。(对)

(3) 串行通讯发送时,指令把TB8位的状态送入发送SBUF。(错)

(4) 串行通讯接收到的第9位数据送SCON寄存器的RB8中保存。(对)

(5) 串行口方式1的波特率是可变的,通过定时器/计数器T1的溢出设定。(对)

7.通过串行口发送或接收数据时,在程序中应使用:(选(3)) (1)MOVC指令 (2)MOVX指令 (3)MOV指令 (4)XCHD指令

8.为什么定时器/计数器T1用做串行口波特率发生器时,采用方式2?若已知时钟频率、通讯波特率,如何计算其初值? 解答:因为定时器/计数器在方式2下,初值可以自动重装,这样在做串口波特率发生器设置时,就避免了重装参数的操作。定时器/计数器的工作方式2具有自动恢复初值的特点,适用于精确定时,比如波特率的产生。

更多相关推荐:
单片机知识点总结(1)

单片机知识点总结第一章:微型计算机基础1、微型计算机数制及他们之间的相互转换2、微型计算机码制和编码第二章:MCS-51单片机结构和时序1、单片机的内部结构第三章:MCS-51单片机指令系统1、指令及其表示方法…

单片机知识点总结

单片机考点总结1.单片机由CPU、存储器及各种I/O接口三部分组成。2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。3.MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有803…

单片机个人知识点总结

波特率公式TH1256f波特率12322SMODMCS51系列单片机内部有哪些主要的逻辑部件答案一个8位的CPU一个布尔处理机一个片内振荡器128B的片内RAM21个特殊功能寄存器4个8位并行IO接口一个全双工...

单片机重点总结

第1章1、微型计算机通常由哪些部分组成?各有哪些功能?答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输出设备组成。控制器的功能是负责从内部存储器中取出指令并对指令进行分析、判断、并根…

单片机知识点总结 考试大题

单片机考点总结及考试大题1234单片机由CPU存储器及各种IO接口三部分组成单片机即单片微型计算机又可称为微控制器和嵌入式控制器MCS51系列单片机为8位单片机共40个引脚MCS51基本类型有80318051和...

单片机知识点总结

第一部分硬件基础1单片机的组成2单片机的并行IO口在使用时有哪些注意的地方3单片机的存储器程序存储器和数据存储器的寻址范围地址总线和数据总线的位数数据存储器内存空间的分配特殊功能寄存器区4时钟及机器周期5单片机...

51单片机初学知识点总结

51单片机初学知识点总结经过这半个月的学习我对于单片机的定时器对IO口的随意操作输入检测中断定时器的中断单片机的外部中断串口通信等几大学习模块有了一定了解和掌握1软件我主要是在keiluvision3实现用C语...

单片机相关知识点

三总线包括数据总线DC控制总线CB地址总线AB主机的组成部分CPU内存硬盘主板接口单片机的组成部分中央处理器RAMROM中断系统定时器计数器IO接口片机的特点1体积小重量轻价格便宜2两极分化3运行速度快4低电压...

单片机考试复习知识点

1什么是单片机51单片机内部程序数据存储器为多少80318051875189S51是什么有何不同答1单片机集成在一个芯片上的微型计算机内部程序4KB数据存储器128字节2单片机38031内部没有程序存储单元80...

单片机知识点

振荡周期时钟周期Tc晶振频率fosc或外加频率的倒数状态周期Ts2个时钟周期Tc很少用到此概念机器周期Tm6个状态周期Ts12个振荡周期Tc指令周期Ti执行一条指令所需的机器周期Tm数牢牢记住振荡周期晶振频率f...

单片机知识点

试题1参考答案一填空题25分每空1分1AT89S51单片机为位单片机3AT89S51的异步通信口为全双工单工半双工全双工4AT89S51有级中断个中断源5AT89S51内部数据存储器的地址范围是位地址空间的字节...

单片机知识点(机电系)

单片机复习知识点20xx1什么是单片机它有哪几部分组成2简述单片机的最小系统包含3部分3单片机有多少个IO口其中P3口经常使用它的什么功能4在C51编程中使用较多的数据类型是无符号字符型即unsignedcha...

单片机知识点总结(27篇)