80C51寄存器详解

合集下载

单片机原理及应用第6章80C51单片机的串行口

单片机原理及应用第6章80C51单片机的串行口

单片机原理及应用第6章80C51单片机的串行口80C51单片机是一种基于哈佛架构的8位单片机,具有强大的串行口功能。

串行口是一种通信接口,可以通过单根线传输数据。

本章将介绍80C51单片机的串行口原理及其应用。

一、80C51单片机的串行口原理80C51单片机的串行口包含两个寄存器,分别是SBUF(串行缓冲器)和SCON(串行控制寄存器)。

SBUF寄存器用来存储待发送或接收到的数据,SCON寄存器用来配置和控制串行口的工作模式。

80C51单片机的串行口有两种工作模式:串行异步通信模式和串行同步通信模式。

1.串行异步通信模式串行异步通信是指通信双方的时钟频率不同步,通信的数据按照字符为单位进行传输,字符之间有起始位、数据位、校验位和停止位组成。

80C51单片机的串行口支持标准的RS-232通信协议和非标准通信协议。

在串行异步通信模式下,SCON寄存器需要配置为相应的工作模式。

首先,需要选择串行口的工作模式。

80C51单片机支持第9位,即扩展模式,可以用来检测通信错误。

其次,需要设置波特率。

波特率是指数据每秒传输的位数,用波特率发生器(Baud Rate Generator,BRGR)来控制。

然后,需要设置起始位、数据位和停止位的配置,包括数据长度(5位、6位、7位或8位)、停止位的个数(1位或2位)。

在发送数据时,将待发送的数据通过MOV指令传送到SBUF寄存器,单片机会自动将数据发送出去。

在接收数据时,需要检测RI(接收中断)标志位,如果RI为1,表示接收到数据,可以通过MOV指令将接收到的数据读取到用户定义的变量中。

2.串行同步通信模式串行同步通信是指通信双方的时钟频率同步,在数据传输时需要时钟信号同步。

80C51单片机的串行同步通信支持SPI(串行外设接口)和I2C(串行总线接口)两种协议。

在串行同步通信模式下,SCON寄存器需要配置为相应的工作模式。

首先,需要选择串行口的工作模式。

80C51单片机支持主从模式,可以作为主设备发送数据,也可以作为从设备接收数据。

80C51中文资料_数据手册_参数

80C51中文资料_数据手册_参数

找电子元器件网上商城就上万联芯城,万联 芯城销售IC电子元器件,芯片,电阻,电容,二极管,三极管等 多种类别,现货型号能够满足各种物料需求,BOM报价可有效提 高采购效率,只需提交物料清单,商城即可为您查询物料报价 ,整单下单有优惠,电子元器件一站式采购,满足客户多样化物的考勤系统,完整masteringof速度与CPU贸易。时钟源包括:•外部时钟输入•高速晶体或陶瓷振荡器•集成高 速RC oscillatorThe选择时钟源可以除以2 - 512在孵蛋的CPU和theperipherals之前。当设置X2函数时,CPU每周期需要6个时钟周期。时钟 由几个SFR寄存器控制:OSCON, CKCON0, CKCON1, CKRL。AT8xC5112包括以下振荡器:•晶体振荡器•集成高速RC振荡器,典型频率为 12 MHzCrystal振荡器:OSCAThe晶体振荡器使用两个外部引脚,XTAL1作为输入,XTAL2作为输出。80C51晶体谐振器和陶瓷谐振器都可 以使用。在振荡器源中,XTAL1是人工启动产品的。OSCCON寄存器中的OSCAEN是晶体振荡器或外部振荡器输入的使能信号。集成 高速RCOscillator: oscb高速RC振荡器的典型频率为12mhz。注意片上振荡器的频率容限为±50%,可能不适合在某些应用中使 用。OSCCON寄存器中的OSCBEN是一种用于高速RC振荡器的使能信号。CKS寄存器中的时钟选择器位用于从晶体到RC振荡器的选 择。OSCCON寄存器中的OSCBEN位用于启动RC振荡器。OSCCON寄存器中的OSCAEN位用于启用晶体振荡器或外部振荡器输入。时 钟预调器在提供CPU和外围设备之前,根据CKRL寄存器的定义,主时钟除以2到512的因数。80C51每条指令的CPU需要12到256*12个时 钟周期。这允许:•接受要在XTAL1输入上接受的任何循环比率。•降低CPU功耗。X2位允许绕过时钟预调器;在这种情况下,CPU每台机 器周期只需要6个时钟周期。在X2模式下,当这个分配器被绕过时,onXTAL1上的信号的循环比率必须在40到60%之间WDT的目的是作 为一种恢复方法,在某些情况下,CPU可能被细分为软件故障。WDT由一个14位计数器和看门狗TimerReset (WDTRST) SFR组成。默认 情况下,退出重置时禁用WDT。要启用WDT,用户必须将01EH和0E1H按顺序写入WDTRST、SFR loca-tion 0A6H。当WDT被启用时, 它将增加每一个机器周期(6个内部时钟周期),除了通过重置(hardwarereset或WDT溢出重置)之外,没有其他方法可以禁用 WDT。WDTPRG寄存器的T0位用于选择10位或14位之后的溢出。当WDT溢出时,它将生成一个内部重置。它还将在模拟器的st -pin上 驱动输出复位高脉冲。脉冲长度为WD时钟的24个时钟周期。使用wdto启用WDT,用户必须将01EH和0E1H按顺序写入WDTRST、SFR 位置0A6H。当启用WDT时,用户需要通过将to01EH和0E1H写入WDTRST来对其进行服务,以避免WDT溢出。当14位计数器达到16383 (3FFFH)或1024 (1FFFH)时溢出,这将重置设备。当WDT启用时,80C51将在振荡器运行时增加每一个机器周期。这意味着用户必须至 少每16383个机器周期重置一次WDT。要重置WDT,用户必须将01EH和0E1H写入WDTRST。WDTRST是一个只写寄存器。wdt计数器 不能读或写。当WDT溢出时,它将在RST-pin处生成一个输出集脉冲。复位脉冲持续时间为96x TOSC,其中TOSC =1/FOSC。为了更好 地利用WDT,应该在那些代码段中提供服务,这些代码段将在防止WDT重置所需的时间内定期执行。为了拥有更强大的WDT,增加 了27个计数器来扩展超时能力,在FOSC = 12mhz和T0=0时,从16ms到2s。要管理这个特性,请参考WDTPRG寄存器描述表13。 (SFR0A7h)。表12。WDTRST注册地址(0A6h)

stc80c51单片机基础知识,汇编,c51方面的

stc80c51单片机基础知识,汇编,c51方面的
例:某运算结果是78H(01111000),显然1的个数为偶数,所以P=0。
4、DPTR(DPH、DPL):数据指针,能用它来访问外部数据存储器中的任一单元,如果不用,也能作为通用寄存器来用,由我们自已决定如何使用。16位,由两个8位寄存器DPH、DPL组成。主要用于存放一个16位地址,作为访问外部存储器(外RAM和ROM)的地址指针。
00H/0
\n
换行符(LF)
0AH/10
\r
回车符(CR)
0DH/13
\t
水平制表符(HT)
09H/9
\b
退格符(BS)
08H/8
\f
换页符(FF)
0CH/12
\'
单引号
27H/39
\"
双引号
22H/34
\\
反ห้องสมุดไป่ตู้杠
5CH/92
表5-1常用转义字符表
常量可用在不必改变值的场合,如固定的数据表,字库等。常量的定义方式有几种,下
下面我们逐一介绍sfr各位的用途
(1)CY:进位标志。用于表示Acc.7有否向更高位进位。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能表示到0-255,如果做加法的话,两数相加可能会超过255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。
例:78H+97H(01111000+10010111)
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
② VPD功能:在Vcc掉电情况下,接备用电源。
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。

第2章 80C51内部结构

第2章  80C51内部结构
2011-5-13
1
存储器的主要功能:存储信息(程序和数据)。 存储器的主要功能:存储信息(程序和数据)。 分以下两类: 分以下两类:
随机存储器RAM CPU在运行时进行数据的写入和读 RAM: ① 随机存储器RAM:CPU在运行时进行数据的写入和读 出,但关闭电 源时,信息将丢失。 源时,信息将丢失。 功能:用来存放暂时性的输入输出数据。运算的中间结果或用作堆栈。 功能:用来存放暂时性的输入输出数据。运算的中间结果或用作堆栈。 只读存储器ROM 写入信息不易改写的存储器。断电后,信息保留不变。 ROM: ②只读存储器ROM:写入信息不易改写的存储器。断电后,信息保留不变。 功能:用来存放程序或常数。 功能:用来存放程序或常数。
2011-5-1内部数据 80C51单片机内部数据 存储器分为两部分: 存储器分为两部分:低 128B和高128B。 128B和高128B。 和高128B 两者地址相连。 两者地址相连。
80C51单片机片内数据存储器配置 2.15 80C51单片机片内数据存储器配置
2011-5-13
5
在程序存储器中有一个固定的中断源入口地址区。 在程序存储器中有一个固定的中断源入口地址区。这些指令 不被其他程序指令占用。80C51的 个中断源的入口地址为: 不被其他程序指令占用。80C51的5个中断源的入口地址为:
0000H:单片机复位后的入口地址; 0000H:单片机复位后的入口地址; 0003H:外部中断0入口地址; 0003H:外部中断0入口地址; 000BH:定时器0溢出中断入口地址: 000BH:定时器0溢出中断入口地址: 0013H:外部中断l入口地址; 0013H:外部中断l入口地址; 001BH:定时/计数器1溢出中断服务程序入口地址; 001BH:定时/计数器1溢出中断服务程序入口地址; 0023H:串行口的中断服务程序入口地址。 0023H:串行口的中断服务程序入口地址。 程序存储器的操作有: 程序存储器的操作有: (1)程序指令自主操作 程序按照PC指针顺序操作或转移操作。 程序指令自主操作: PC指针顺序操作或转移操作 (1)程序指令自主操作:程序按照PC指针顺序操作或转移操作。 (2)表格常数的查表操作 80C5l查表操作指令为MOVC,通过PC 表格常数的查表操作。 查表操作指令为MOVC PC或 (2)表格常数的查表操作。80C5l查表操作指令为MOVC,通过PC或DPTR 的基址变址,寻址方式实现查表操作。 的基址变址,寻址方式实现查表操作。 编程时,一般在这些入口地址开始的 开始的2 个单元中 放入一条转移指 编程时,一般在这些入口地址开始的2或3个单元中,放入一条转移指 以使相应的服务与实际分配的程序存储器区域中的程序段相对应。 令,以使相应的服务与实际分配的程序存储器区域中的程序段相对应。

80C51单片机的内部结构

80C51单片机的内部结构

80C51单片机的内部结构广告单片机按存储结构可分为二类:一类是哈佛结构,另一类是普林斯顿结构。

①哈佛结构所谓哈佛结构是指程序存储器地址空间与数据存储器地址空间分开的单片机结构,如80C51单片机采用哈佛结构,所以80C51单片机的程序存储器地址空间与数据存储器地址空间是分开的,各有64K存储空间。

②普林斯顿结构所谓普林斯顿结构是指程序存储器地址空间与数据存储器地址空间合并的单片机结构,如MCS-96单片机采用普林斯顿结构,所以MCS-96单片机的程序存储器地址空间与数据存储器地址空间是合并的,共有64K存储空间。

1.单片机的CPU图1是80C51单片机的内部结构框图。

若除去图中的存储器电路和I/O部件,剩下的便是CPU。

它可以分为运算器和控制器两部分。

运算器功能部件包括算术逻辑运算单元ALU、累加器ACC、寄存器B、暂存寄存器TMP1、TMP2、程序状态字寄存器PSW等。

控制器功能部件包括程序计数器PC、指令寄存器IR、指令译码器ID、定时控制逻辑电路CU、数据指针寄存器DPTR、堆栈指针SP及时钟电路等。

(1)运算器①算术逻辑运算单元ALU(Arithmetic Logical Unit)ALU可以进行算术、逻辑运算。

算术运算有:加、减、乘、除,逻辑运算有:与、或、异或等。

②累加器ACC累加器ACC的主要功能是在运算前存放一个操作数,运算后存放一个操作结果。

80C51系列单片机虽然在结构上仍然以累加器A作为重要部件。

但由于内部电路采取了措施,使得累加器A在数据传送、逻辑操作等方面的核心作用有所削弱。

数据可以在片内直接/间接地址的存储器之间直接传送,而不必经过累加器A。

但,加、减、乘、除算术运算指令的运算结果都存放在累加器A或AB寄存器对中。

③暂存器TMP1、TMP2由图1可知,ALU进行算术逻辑运算前的两个操作数来自暂存器TMP1、TMP2,所以暂存器TMP1、TMP2用于存放运算前的两个操作数。

80C51特殊功能寄存器表

80C51特殊功能寄存器表

定时器模式
M1 M0 GATE C/T 方式选择 门控开/关 计数/定时 定时/计数器T0 的低8 位 定时/计数器T1 的低8 位 定时/计数器T0 的高8 位 定时/计数器T1 的高8 位
辅助寄存器 P1端口
95H 94H 93H 92H 91H 90H 90H P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 9DH 9CH 9BH 9AH 99H 98H 98H 串行口控制 SCON SM2 REN TB8 RB8 TI RI 多机控制 串行接收允/ 发的第九位 收的第九位 送中断有/ 发 接收中断有/无 串行口数据 SBUF 99H A7H A6H A5H A4H A3H A2H A1H A0H P2端口 P2 A0H P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 辅助寄存器1 AUXR1 A2H 看门狗复位 WDTRST A6H AFH AEH ADH ACH ABH AAH A9H A8H 中断允许 IE A8H EA - - ES ET1 EX1 ET0 EX0 中断总控 T2 串行口 INT1 T0 INT0 允/禁 允/禁 允/禁 允/禁 允/禁 允/禁 1/0 B7H B6H B5H B4H B3H B2H B1H B0H P3端口 P3 B0H P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0 RD WR T1 T0 INT1 INT0 TXD RXD BFH BEH BDH BCH BBH BAH B9H B8H 中断优先权 IP B8H - - PT2 PS PT1 PX1 PT0 PX0 T2 中行口 T1 INT1 T0 INT0 CFH CEH CDH CCH CBH CAH C9H C8H 定时器2控制 T2CON C8H TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 DP/RL2 溢出标志 外部标志 接收时钟使能 发送时钟使能 外部使能 启动标志 定时/计数 捕获/重装 T2OE DCEN 定时器2模式 T2MOD C9H 输出允/禁 计数方式选择 RCAP2L 捕捉寄存器低字节 CAH 捕捉寄存器高字节 RCAP2H CBH T2低字节 TL2 CCH T2高字节 TH2 CDH D7H D6H D5H D4H D3H D2H D1H D0H 程序状态字 D0H PSW CY AC F0 RS1 RS0 OV - P E7H E6H E5H E4H E3H E2H E1H E0H A累加器 ACC E0H ACC.7 ACC.6 ACC.5 ACC.4 ACC.3 ACC.2 ACC.1 ACC.0 F7H F6H F5H F4H F3H F2H F1H F0H B寄存器 B F0H B.7 B.6 B.5 B.4 B.3 B.2 B.1 B.0

80C51特殊功能寄存器地址表

80C51特殊功能寄存器地址表

80C51特殊功能寄存器地址表80C51特殊寄存器名称注释一程序状态字寄存器PSW1 P:奇偶标志该位始终跟踪累加器A内容的奇偶性累加器中1的个数为奇数则P为“1”为偶数则P为“0”.2 F1:用户标志位有用户置位或复位.3 OV:溢出标志有符号数运算时,如果发生溢出,OV置“1”否则清“0”.4 RS0,RSI:工作寄存器组选择位.5 F0:用户标志位. 同F1.6 AC:半进位标志. 如果底半字节(位3)向高半字节有进位或借位,AC置“1”,否则置“0”.7 CY:进位标志. 如果操作结果最高位(位7)有进位,CY置“1”,否则置“0”.二数据指针寄存器DPTR由于80C51可以外接64KB得数据存储器和I/O接口电路,因此在控制器中设置了一个16位的专用地址指针.它主要用以存放16位地址,作间址寄存器使用.它可对外部存储器和I/O 口进行寻址.它可拆成高字节DPH和低字节DPL两个独立的8位寄存器,CPU内分别占据83H和82H两个地址.三累加器ACCACC是8位寄存器,通过暂存器与ALU相连.它是CPU中最繁忙的寄存器.在指令系统中助记符为A.四B寄存器再乘除运算中B寄存器暂存数据乘法指令的两个操作数分别取自A和B.16位乘积的底8位存入A中高8位存放于B中.除法指令中被除数取自A,除数取自B结果商存于A中,余数存于B中.在其它指令中B可作为RAM中一个普通寄存器使用.五堆栈指针SP堆栈是个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场.六端口P0~P3专用寄存器P0~P3分别是I/O口P0~P3的锁存器.80C51单片机是把I/O当作一般的专用寄存器来使用,不设操作指令,使用方便.当I/O端口某一位用于输入信号时对应的锁存器必须先置“1”.。

80C51特殊功能寄存器地址表

80C51特殊功能寄存器地址表

80C51特殊功能寄存器地址表SFR MSB 位地址/位定义LSB 字节地址B F7 F6 F5 F4 F3 F2 F1 F0 F0HACC E7 E6 E5 E4 E3 E2 E1 E0 E0HPSW D7 D6 D5 D4 D3 D2 D1 D0 D0H CY AC F0 RS1 RS0 OV F1 PIP BF BE BD BC BB BA B9 B8 B8H ———PS PT1 PX1 PT0 PX0P3 B7 B6 B5 B4 B3 B2 B1 B0 B0H P3.7 P3.6 P3.5 P3.4 P3.3 P3.2 P3.1 P3.0IE AF AE AD AC AB AA A9 A8 A8H EA ——ES ET1 EX1 ET0 EX0P2A7 A6 A5 A4 A3 A2 A1 A0 A0H P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0SBUF (99H)SCON9F 9E 9D 9C 9B 9A 99 98 98H SM0 SM1 SM2 REN TB8 RB8 TI RIP197 96 95 94 93 92 91 90 90H P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0TH1 (8DH) TH0 (8CH) TX1 (8BH) TX0 (8AH)TMOD GATE C/T M1 M0 GATEC/T M1 M0 (89H)TCON8F 8E 8D 8C 8B 8A 89 88 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0PCON SMOD ———GF1 GF0 PD IDL (87H)DPH (83H)DPL (82H)SP (81H)P0 87 86 85 84 83 82 81 80 80HP0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0/*--------- 8051内核特殊功能寄存器-------------*/sfr ACC = 0xE0; //累加器sfr B = 0xF0; //B 寄存器sfr PSW = 0xD0; //程序状态字寄存器sbit CY = PSW^7; //进位标志位sbit AC = PSW^6; //辅助进位标志位sbit F0 = PSW^5; //用户标志位0sbit RS1 = PSW^4; //工作寄存器组选择控制位sbit RS0 = PSW^3; //工作寄存器组选择控制位sbit OV = PSW^2; //溢出标志位sbit F1 = PSW^1; //用户标志位1sbit P = PSW^0; //奇偶标志位sfr SP = 0x81; //堆栈指针寄存器sfr DPL = 0x82; //数据指针0低字节sfr DPH = 0x83; //数据指针0高字节/*------------ 系统管理特殊功能寄存器-------------*/sfr PCON = 0x87; //电源控制寄存器sfr AUXR = 0x8E; //辅助寄存器sfr AUXR1 = 0xA2; //辅助寄存器1sfr WAKE_CLKO = 0x8F; //时钟输出和唤醒控制寄存器sfr CLK_DIV = 0x97; //时钟分频控制寄存器sfr BUS_SPEED = 0xA1; //总线速度控制寄存器/*----------- 中断控制特殊功能寄存器--------------*/sfr IE = 0xA8; //中断允许寄存器sbit EA = IE^7; //总中断允许位sbit ELVD = IE^6; //低电压检测中断控制位sbit EADC = IE^5; //ADC中断允许控制位sbit ES = IE^4; //串口1中断允许位sbit ET1 = IE^3; //定时器1溢出中断允许位sbit EX1 = IE^2; //外部中断1允许位sbit ET0 = IE^1; //定时器0溢出中断允许位sbit EX0 = IE^0; //外部中断0允许位sfr IE2 = 0xAF; //中断允许寄存器2sfr IP = 0xB8; //中断优先级寄存器sbit PPCA = IP^7; // PCA中断优先级控制位sbit PLVD = IP^6; //低电压检测中断优先级控制位sbit PADC = IP^5; //ADC中断优先级控制位sbit PS = IP^4; //串口1中断优先级控制位sbit PT1 = IP^3; //定时器1中断优先级控制位sbit PX1 = IP^2; //外部中断1优先级控制位sbit PT0 = IP^1; //定时器0中断优先级控制位sbit PX0 = IP^0; //外部中断0优先级控制位sfr IPH = 0xB7; //中断优先级高位寄存器sfr IP2 = 0xB5; //第二中断优先级寄存器低字节sfr IPH2 = 0xB6; //第二中断优先级寄存器高字节/*--------------- I/O 口特殊功能寄存器-------------------*/sfr P0 = 0x80; //P0口寄存器sfr P0M1 = 0x93; //P0口工作模式寄存器1sfr P0M0 = 0x94; //P0口工作模式寄存器0sfr P1 = 0x90; //P1口寄存器sfr P1M1 = 0x91; //P1口工作模式寄存器1sfr P1M0 = 0x92; //P1口工作模式寄存器0sfr P1ASF = 0x9D; //P1口模拟量功能设置寄存器sfr P2 = 0xA0; //P2口寄存器sfr P2M1 = 0x95; //P2口工作模式寄存器1sfr P2M0 = 0x96; //P2口工作模式寄存器0sfr P3 = 0xB0; //P3口寄存器sbit T1 = P3^5; //定时器1外部输入sbit T0 = P3^4; //定时器0外部输入sbit INT1 = P3^3; //外部中断1sbit INT0 = P3^2; //外部中断0sbit TXD = P3^1; //串行输入通道sbit RXD = P3^0; //串行输出通道sfr P3M1 = 0xB1; //P3口工作模式寄存器1sfr P3M0 = 0xB2; //P3口工作模式寄存器0sfr P4 = 0xC0; //P4口寄存器sfr P4M1 = 0xB3; //P4口工作模式寄存器1sfr P4M0 = 0xB4; //P4口工作模式寄存器0sfr P4SW = 0xBB; //P4口功能切换寄存器sfr P5 = 0xC8; //P5口(只有P5.3 P5.2 P5.1 P5.0)sfr P5M1 = 0xC9; //P5口工作模式寄存器1sfr P5M0 = 0xCA; //P5口工作模式寄存器0./*----------------- 定时器特殊功能寄存器-----------------*/sfr TCON = 0x88; //定时/计数控制寄存器sbit TF1 = TCON^7; //定时器1溢出中断标志sbit TR1 = TCON^6; //定时器1运行控制位sbit TF0 = TCON^5; //定时器0溢出中断标志sbit TR0 = TCON^4; //定时器0运行控制位sbit IE1 = TCON^3; //外部中断1请求标志sbit IT1 = TCON^2; //选择外部中断请求1为边沿触发方式的控制位sbit IE0 = TCON^1; //外部中断0请求标志sbit IT0 = TCON^0; //选择外部中断请求0为边沿触发方式的控制位sfr TMOD = 0x89; //定时/计数模式控制寄存器sfr TL0 = 0x8A; //定时/计数器0低字节sfr TH0 = 0x8C; //定时/计数器0高字节sfr TL1 = 0x8B; //定时/计数器1低字节sfr TH1 = 0x8D; //定时/计数器1高字节/*-------------- 串行口特殊功能寄存器------------------*/sfr SCON = 0x98; //串行口控制寄存器sbit SM0 = SCON^7; //串行口工作方式设定控制位0(与FE功能复用)sbit FE = SCON^7;sbit SM1 = SCON^6; //串行口工作方式设定控制位1sbit SM2 = SCON^5; //UART的SM2设定sbit REN = SCON^4; //接收允许位sbit TB8 = SCON^3; //发送数据的第九位sbit RB8 = SCON^2; //接收数据的第九位sbit TI = SCON^1; //发送中断标志sbit RI = SCON^0; //接收中断标志sfr SBUF = 0x99; //串口数据缓冲器sfr SADEN = 0xB9; //从机地址掩码寄存器sfr SADDR = 0xA9; //从机地址寄存器sfr S2CON = 0x9A; //串行口2控制寄存器sfr S2BUF = 0x9B; //串行口2数据缓冲器sfr BRT = 0x9C; //独立波特率定时器/*---------------- 看门狗定时器寄存器------------------*/sfr WDT_CONTR = 0xC1; //看门狗定时器控制寄存器/*---------------- PCA 寄存器-----------------*/sfr CCON = 0xD8; //PCA控制寄存器sbit CF = CCON^7; //PCA计数器溢出(CH,CL由FFFFH变为0000H)标志sbit CR = CCON^6; //PCA计数器计数允许控制位sbit CCF1 = CCON^1; //PCA模块1中断标志sbit CCF0 = CCON^0; //PCA模块0中断标志sfr CMOD = 0xD9; //PCA工作模式寄存器sfr CL = 0xE9; //PCA计数器低8位sfr CH = 0xF9; //PCA计数器高8位sfr CCAPM0 = 0xDA; //PAC模块0的工作模式寄存器sfr CCAPM1 = 0xDB; //PAC模块1的工作模式寄存器sfr CCAP0L = 0xEA; //PAC模块0捕捉/比较寄存器低8位sfr CCAP0H = 0xFA; //PAC模块0捕捉/比较寄存器高8位sfr CCAP1L = 0xEB; //PAC模块1捕捉/比较寄存器低8位sfr CCAP1H = 0xFB; //PAC模块1捕捉/比较寄存器高8位sfr PCA_PWM0 = 0xF2; //PCA模块0 PWM寄存器sfr PCA_PWM1 = 0xF3; //PCA模块1 PWM寄存器/*----------------- ADC 寄存器-----------------*/sfr ADC_CONTR = 0xBC; //ADC控制寄存器, 本寄存器不支持位操作sfr ADC_RES = 0xBD; //ADC转换结果高8位寄存器sfr ADC_RESL = 0xBE; //ADC转换结果低2位寄存器/*---------------- SPI 寄存器--------------------*/sfr SPSTA T = 0xCD; //SPI状态寄存器,本寄存器不支持位操作sfr SPCTL = 0xCE; //SPI控制寄存器sfr SPDAT = 0xCF; //SPI数据寄存器/*----------------- ISP_IAP_EEPROM 寄存器------------------*/sfr IAP_DA TA = 0xC2; //ISP/IAP Flash数据寄存器sfr IAP_ADDRH = 0xC3; //ISP/IAP Flash地址高字节sfr IAP_ADDRL = 0xC4; //ISP/IAP Flash地址低字节sfr IAP_CMD = 0xC5; //ISP/IAP Flash命令寄存器sfr IAP_TRIG = 0xC6; //ISP/IAP Flash命令触发器sfr IAP_CONTR = 0xC7; //ISP/IAP控制寄存器Love is not a maybe thing. You know when you love someone.。

80C51单片机存储器物理结构参考

80C51单片机存储器物理结构参考

详述80C51单片机存储器物理结构、工作特点、地址范围大小并且图示说明?
1、80C51单片机的存储器在物理结构上可分为4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器和片外数据存储器。

在逻辑上可分为3个空间,64KB程序存储器(片内、外统一编址)、256B片内数据存储器和64KB片外数据存储器。

其容量大小和地址如下图。

2、80C51片内256B数据存储器分两部分,特殊功能寄存器区(80H-FFH)和低128BRAM (00H-7FH)区。

特殊功能寄存器区有21个特殊功能寄存器(SFR),字节地址能被8整除的特殊功能寄存器可位寻址。

3、低128BRAM可分为用户RAM区(30H-7FH)可作数据缓冲和堆栈区、位寻址区(20H-2FH )共128位(位地址00H-7FH)和4组通用工作寄存器区(00H-1FH)。

在4组通用工作寄存器区(00H-1FH)中,每组有8个工作寄存器(R0-R7)。

CPU当前使用的工作寄存器组,是由程序状态寄存器PSW中的RS1、RS0的设置来选择的。

80C51的基本结构

80C51的基本结构

80C51的基本结构80C51的引脚封装时钟电路总线控制CPUROM/EPROM/FLASH4K 字节RAM 128字节 SFR 21个定时/计数器2个中断系统5中断源、2优先级串行口 全双工 2个并行口 4个RST EAALE PSENXTAL2XTAL1P0 P1 P2 P3V CCV SS一、80C51的内部结构:1.80C51的微处理器(CPU)(1)运算器:累加器ACC ;寄存器B ;程序状态字寄存器PSW 。

(2)控制器:程序计数器PC ;指令寄存器IR ;定时与控制逻辑2.80C51的片内存储器在物理上设计成程序存储器和数据存储器两个独立的空间:(1)内部ROM容量4K字节,范围是:000H~0FFFH(2)内部RAM容量128字节,范围是:00H~7FH3.80C51的I/O口及功能单元(1)四个8位的并行口,即P0~P3。

它们均为双向口,既可作为输入,又可作为输出。

每个口各有8条I/O线。

(2)有一个全双工的串行口(利用P3口的两个引脚P3.0和P3.1);(3)有2个16位的定时/计数器;(4)有1套完善的中断系统。

4.80C51的特殊功能寄存器(SFR)内部有SP,DPTR(可分成DPH、DPL两个8位寄存器),PCON,…,IE,IP等21个特殊功能寄存器单元,它们同内部RAM的128个字节统一编址,地址范围是80H~FFH。

增强型单片机的SFR有26个字节单元,所增加的5个单元均与定时/计数器2相关。

二、80C51的时钟与时序1.80C51的时钟产生方式可分为内部时钟和外部时钟2.80C51的时钟信号一个机器周期包含12个晶荡周期或6个时钟周期,指令的执行时间称作指令周期(单、双周期)。

各指令的微操作在时间上有严格的次序,这种微操作的时间次序我们称作时序。

三、80C51单片机的复位复位目的是使单片机或系统中的其它部件处于某种确定的初始状态。

复位有上电复位和上电复位和按键均有效的复位。

80C51系列单片机有一个全双工的串行口

80C51系列单片机有一个全双工的串行口

•••
D0
D1
D2
D3
D4
D5
D6
D7
•••
方式0可将串行输入输出数据转换成并行输入输出数据。
⑴ 数据发送 串行口作为并行输出口使用时,要有“串入并出”移位寄存 器配合。
在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移 入74HC164 SA、SB端。当8位数据全部移出后,SCON寄存器的TI位被 自动置1。其后74HC164的内容即可并行输出。74HC164 CLR为清0端, 输出时CLR必须为1,否则74HC164 Q0~Q7输出为0。
工作方式 多机通信 接收 发送 选择 控制 允许 第9位 SM1 —— 串行口工作方式选择位。 —— 多机通信控制位。 —— 允许接收控制位。REN=1,允许接收。 —— 方式2和方式3中要发送的第9位数据。 —— 方式2和方式3中要接收的第9位数据。 —— 发送中断标志。 —— 接收中断标志。 D7 SMOD D6 — D5 — D4 — D3 GF1
RDSB:
;
3、 串行工作方式2
方式2 是一帧 11位的串行通信方式,即1 个起始位,8 个数 据位,1个可编程位TB8/RB8和1个停止位, 其帧格式为:
起始
D0 D1 D2 D3 D4 D5 D6 D7
TB8/RB8
停止
可编程位TB8/RB8既可作奇偶校验位用,也可作控制位 (多机通信)用,其功能由用户确定。 数据发送和接收与方式1基本相同,区别在于方式2把发送/ 接收到的第9位内容送入TB8/RB8。 波特率:方式2波特率固定,即fosc/32和fosc/64。 如用公式表 示则为: 波特率=2SMOD ╳ fosc/64
⑶ 波特率
方式1波特率可变,由定时/计数器T1的计数溢出率来决定。

SFR详解

SFR详解

SFR 详解
SFR 是Special FuncTIon Register(特殊功能寄存器)的缩写。

SFR 特殊功能寄存器区: 8051 把CPU 中的专用寄存器、并行端口锁存器、串行口与定时器/计数器内的控制寄存器集中安排到一个区域,离散地分
布在地址从80H 到FFH 范围内,这个区域称为特殊功能寄存器区SFR。

SFR 是80C51 单片机中各功能部件对应的寄存器,用于存放相应功能
部件的控制命令,状态或数据。

它是80C51 单片机中最具有特殊的部分,现
在所有80C51 系列功能的增加和扩展几乎都是通过增加特殊功能寄存器SFR
来达到目的的。

对于80C51 系列中的80C51,共定义了26 个特殊功能寄存器。


80C52 中,除了80C51 的26 个特殊功能寄存器,还增加了5 个,共计31
个。

2.SFR 是法国电信和网络运行商,由沃达丰掌握32%的股权,2008 年
收购法国网络运行商NEUF,现在主要经营电信和网络业务
3.SFR (spaTIal frequency response)中文解释是"空间频率响应",一般是利于边沿去检测图像的清晰程度.
4.专用寄存器包括:1)程序计数器(PC-Program Counter)2)累加器A (ACC-Accumulator)3)B 寄存器4)程序状态寄存器(PSW-Program Status Word)等。

80C51单片机的存储器在结构上有何特点?在物理上和逻辑上

80C51单片机的存储器在结构上有何特点?在物理上和逻辑上

1、80C51单片机的存储器在结构上有何特点?在物理上和逻辑上各有哪几种地址空间?访问片内RAM和片外RAM的指令格式有何区别?2、80C51单片机的EA信号有什么功能?在使用80C51时,EA信号引脚应如何处理?在使用80C31时,EA信号引脚应如何处理?3、80C51单片机内RAM低128个存储单元划分为哪3个主要部分?各部分主要功能是什么?4、程序存储器的哪些单元被保留用于特定场合?5、什么是堆栈?堆栈有哪些功能?堆栈指针SP的作用是什么?在程序设计时,为什么还要对SP重新赋值?6、80C51单片机的布尔处理机包括哪些部分?它们具有哪些功能?共有多少个单元可以位寻址?7、80C51单片机的节拍、状态、机器周期、指令周期是如何设置的?当主频为12MHz时,各种周期等于多少微秒?8、说明80C51单片机的程序状态字PSW的主要功能。

9、谈谈MCS-51是怎么避免存储空间重叠而产生数据冲突的?10、80C51单片机的4个I/O口在使用上有哪些分工和特点?在用作通用I/O口时,需注意什么?1、51单片机采用哈佛结构,特点是程序存储器和数据存储器分开寻址。

在屋里上有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。

在逻辑上有3个存储空间:片内外统一编址的64KB程序存储器、片内数据存储器、片外数据存储器。

2、CPU访问存储器时,由EA引脚的电平确定访问片内还是片外。

即通过EA引脚的电平来解决空间编址的重叠问题。

EA=1时,程序从片内程序存储器0000H开始执行,即访问片内存储器;当PC值超出片内ROM容量(4K)时,会自动转向片外程序存储器空间执行。

EA=0,迫使系统全部执行片外程序存储器000H开始存放的程序。

在使用80C51时,当EA接高电平时,000H~0FFFH范围从片内取指,1000H~FFFFH范围从片外取指。

当EA接低电平时,从片外取指。

在使用80C31时,EA固定接成低电平,以迫使系统全部执行片外程序存储器中的程序。

AT80C51的工作原理

AT80C51的工作原理

AT80C51的工作原理AT80C51是一款8位微控制器,其工作原理如下:1. 寄存器:AT80C51包含了多个内部寄存器,用于存储数据和控制微控制器的操作。

这些寄存器可以通过特定的地址访问,并且用于存储输入/输出端口、时钟控制、中断向量等信息。

2. CPU:AT80C51的中央处理器(CPU)负责执行指令和处理数据。

它包含一个累加器(ACC)和多个通用寄存器(R0-R7),用于进行算术和逻辑运算。

CPU通过从寄存器中读取数据、执行指令、写入结果来完成计算。

3. 存储器:AT80C51具有内部存储器和外部存储器接口。

内部存储器包括程序存储器(ROM)和数据存储器(RAM)。

ROM用于存储程序指令,RAM用于存储临时数据和变量。

外部存储器接口可以连接额外的存储器设备,以扩展存储容量。

4. 时钟:AT80C51使用时钟来驱动CPU和其他部件的操作。

时钟可以通过内部时钟源或外部时钟源提供。

时钟速度决定了AT80C51的工作频率和指令执行速度。

5. 输入/输出(I/O)端口:AT80C51具有多个可编程输入/输出端口。

这些端口可以连接外部设备,如传感器、显示器、键盘等。

通过读取和写入I/O端口的状态,AT80C51可以与外部设备进行通信。

6. 中断:AT80C51支持中断功能,可以响应外部信号的触发。

当发生中断信号时,CPU会立即暂停当前的任务,并跳转到对应的中断处理程序。

中断可以用于实时响应外部事件,提高系统的实时性能。

总结起来,AT80C51的工作原理是通过CPU执行指令,从寄存器和存储器中读取数据,进行计算和处理,并与外部设备进行通信。

时钟驱动整个系统的运行,而中断机制能够实现实时响应外部事件。

80C51的串行口

80C51的串行口

80C51的串⾏⼝80C51串⾏⼝的结构有两个物理上独⽴的接收、发送缓冲器SBUF,它们占⽤同⼀地址99H;接收器是双缓冲结构;发送缓冲器,因为发送时CPU是主动的,不会产⽣重叠错误80C51串⾏⼝的控制寄存器SCON是⼀个特殊功能寄存器,⽤以设定串⾏⼝的⼯作⽅式、接收/发送控制以及设置状态标志SM0、SM1为⼯作⽅式选择位,可以选择四种⼯作⽅式,详情见下⽅串⾏⼝的⼯作⽅式SM2,多机通信控制位,主要⽤于⽅式2和⽅式3,当接收机的SM2=1时可以利⽤收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进⼊SBUF,并激活RI,进⽽在中断服务中将数据从SBUF读⾛)。

当SM2=0时,不论收到RB8为0和1,均可以使收到的数据进⼊SBUF,并激活RI(即此时RB8不具有控制RI激活的功能),通过控制SM2,可以实现多机通信。

、⽅式0时,SM2必须是0。

在⽅式1时,如果SM2=1,则只有接收到有效停⽌位时,RI才置1。

REN,允许串⾏接收位。

由软件置REN=1,则启动串⾏⼝接收数据;若软件置REN=0,则禁⽌接收。

TB8,在⽅式2或⽅式3中,是发送数据的第九位 可以⽤软件规定其作⽤,可以⽤作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。

在⽅式0和⽅式1中,该位未⽤RB8,在⽅式2或⽅式3中,是接收数据的第九位,作为奇偶校验或地址帧/数据帧的标志位。

在⽅式1时,若SM2=0,则RB8是接收到的停⽌位TI,发送中断标志位。

在⽅式0时,当串⾏发送第8位数据结束时,或在其他⽅式,串⾏发送停⽌位的开始时,由内部硬件使TI置1,向CPU 发中断申请。

在中断服务程序中,必须⽤软件将其清0,取消此中断申请RI,接收中断标志位。

在⽅式0时,当串⾏接收第8位数据结束时,或在其他⽅式,串⾏接收停⽌位的中间时,由内部硬件使RI置1,向CPU 发中断申请。

也必须在中断服务程序中,⽤软件将其清0,取消此中断申请。

80C51单片机的存储器结构

80C51单片机的存储器结构

2. 外部数据存储器 当内部数据存储器不够用时,在单片机的外总 线上可以最大扩展64K的RAM,可独立寻址,有专 用指令系统(MOVX传送指令),不能用于数据的 运算及处理,所以仅有4条指令,两条读,两条写, 用于一般数据的存放,地址为0000H-FFFFH。寻 址方式采用寄存器间接寻址的方式,如MOVX A , @DPTR.,指令中DPTR,开辟在特殊功能寄存器 (SFR)中,是一个16位的数据存储器(数据指针 ),用于访问外部数据存储器和程序存储器,一般 用于存放的是外部数据存储器和程序存储器的地址 (外部数据存储器的地址也是16位)。存储器结构 见图3-7所示。
图3-3
内部数据存储器结构
7FH
用户区
30H 2FH
位寻址区
20H 1FH
工作寄存 器区
00H
(1)工作寄存器区(00H~) 共32个单元,又分为4组,每组8个单元,都用 R0~R7表示,如图3-4所示,
1FH R7
3组
18H 17H R0 R7
2组
10H 0FH R0 R7
1组
08H 07H 06H 05H 04H 03H 02H 01H 00H R0 R7 R6 R5 R4 R3 R2 R1 R0
第3章 80C51单片机的存储器结构
3.1 存储器的分类 存储器的的作用是用来存放程序和数据,存储 器可分为磁存储和半导体存储器,半导体存储器按 功能又可分为只读存储器ROM和随机存储器RAM, 如图3-1所示。单片机存储器结构中都采用半导体存 储器。
1. 只读存储器ROM 只读存储器在正常工作状态下只能从中读出数 据,用户不能快速地随时修改或者重新写入数据, 数据可长时间的保存。 (1)可编程ROM,可通过专用设备(编程器)将 数据写入ROM。 PROM:用户可一次编程; EPROM:紫外线擦除,电改写(多次); EEPROM:电擦除,电改写(多次); FLASHROM:闪存(多次)。 (2)掩膜ROM 用户不能将数据写入,由厂家写入数据。 由于上述特点,所以在单片机中一般做为程序 存储器。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中断使能寄存器
通过设置中断使能寄存器IE 的EA位使能所有中断每个中断源都有单独的使能位可通过软件设置IE 中相应的使能位在任何时候使能或禁能中断中断使能寄存器IE 的各位如下所示
中断使能寄存器IE可位寻址
位地址0AFH0AEH0ADH0ACH0ABH0AAH0A9H0A8H 位符号EA/ET2ES ET1EX1ET0EX0
EA 使能标志位置位则所有中断使能复位则禁止所有中断保留
ET2 定时器2 中断使能
ES 串行通信中断使能
ET1 定时器1 中断使能
EX1 外部中断1 使能
ET0 定时器0 中断使能
EX0 外部中断0使能
8051 支持两个中断优先级有标准的中断机制,低优先级的中断只能被高优先级的中断所中断,而高优先级的中断不能被中断。

中断优先级寄存器
每个中断源都可通过设置中断优先级寄存器IP来单独设置中断优先级如果每个中断源的相应位被置位则该中断源的优先级为高,如果相应的位被复位, 则该中断源的优先级为低, 如果你觉得两个中断源不够用,别急以后我会教你如何增加中断优先级表A-5 示出了IP 寄存器的各位此寄存器可位寻址
IP寄存器可位寻址
位地址0BFH0BEH0BDH0BCH0BBH0BAH0B9H0B8H
位符号//PT2 PS PT1PX1PT0PX0
PT2 定时器2中断优先级
PS 串行通信中断优先级
PT1 定时器1中断优先级
PX1 外部中断1 优先级
PT0 定时器0中断优先级
PX0 外部中断0 优先级
电源控制PCON
8051的CHMOS 版本可通过软件设置两种节电方式空闲模式和低功耗模式设置电源控制寄存器PCON 的相应位来进入节电方式置位IDLE 进入空闲模式空闲模式将停止程序执行RAM 中的数据仍然保持晶振继续工作但与CPU 断开定时器和串行口续工作, 发生中断将退出中断模式执行完中断程序后将从程序停止的地方继续指令的执行通过置位PDWN 位来进入低功耗模式低功耗模式中晶振将停止工作因此定时器和
串行口都将停止工作至少有两伏的电压加在芯片上因此RAM 中的数据仍将保存退
出低功耗模式只有两种方式上电或复位
SMOD 位可控制串行通信的波特率将使由定时器1 的溢出率或晶振频率产生的波特率
翻倍置位SMOD 可使工作于方式1 2 3 定时器产生的波特率翻倍当使用定时器2 产生波特率时SMOD将不影响波特率
电源控制寄存器PCON不可位寻址
编号中断源中断向量
SMOD 串行口通信波特率控制位置位使波特率翻倍
- 保留
- 保留
- 保留
GF1 通用标志位
GF0 通用标志位
PDWN 低功耗标志位置位进入低功耗模式
IDLE 空闲标志位置位进入空闲模式
PSW处理器状态
处理器的状态保存在状态寄存器PSW 中状态字中包括进位位用于BCD 码处理的辅助进位位, 奇偶标志位, 溢出标志位, 还有前面提到的用于寄存器组选择的RS0 和RS1 , 0组从地址00H 开始 1 组从地址08H 开始 2 组从地址10H 开始 3 组从地址18H 开始这些地址都可通过直接或间接方式进行寻址PSW 的结构如下
上电复位0000H
CY 进位标志位
AC 辅助进位标志位
F0 通用标志位
RS1 寄存器组选择位高位
RS0 寄存器组选择位低位
OV 溢出标志位
USR 用户定义标志位
P 奇偶标志位
定时器控制寄存器TCON 可位寻址
0外部中断00003H
TF1 定时器1溢出中断标志响应中断后由处理器清零
TR1 定时器1控制位置位时定时器1 工作复位时定时器 1 停止工作
TF0 定时器0溢出标志位定时器0 溢出时置位处理器响应中断后清除该位 TR0 定时器0控制位置位时定时器0 工作复位时定时器0 停止工作
IE1 外部中断1 触发标志位当检测到P3.3 有从高到低的跳变电平时置位处理器响应中断后由硬件清除该位
IT1 中断1 触发方式控制位置位时为跳变触发复位时为低电平触发
IE0 外部中断1 触发标志位当检测到P3.3 有从高到低的跳变电平时置位处理器响应中断后由硬件清除该位
IT0 中断1 触发方式控制位置位时为跳变触发复位时为低电平触发
定时器控制寄存器TMOD-不可位寻址1定时器0溢出000BH
定时器1 定时器0
GATE 当GA TE置位时定时器仅当TR=1并且INT=1 时才工作如果GA TE=0置位TR 定时器就开始工作
C/T 定时器方式选择如果C/T=1 定时器以计数方式工作C/T=0 时以定时方式工作
M1 模式选择位高位
M0 模式选择位低位
串行控制寄存器SCON -可位寻址
2外部中断10013H
SM0 串行模式选择
SM1 串行模式选择
SM2 多机通讯允许位当模式0 时此位应该为0 模式 1 时当接收到停止位时该位将置位模式 2 或模式 3 时当接收的第9 位数据为1时将置位
REN 串行接收允许位
TB8 在模式2 和模式3 中将被发送数据的第9 位
RB8 在模式0中该位不起作用在模式1中该位为接收数据的停止位在模式2 和模式3 中为接收数据的第9位
TI 串行中断标志位由软件清零
RI 接收中断标志位有软件清零。

相关文档
最新文档