【精选】C51精简版教程(AT89C51/STC89C52) 您所在的位置:网站首页 ch05t1631引脚功能 【精选】C51精简版教程(AT89C51/STC89C52)

【精选】C51精简版教程(AT89C51/STC89C52)

2023-10-21 04:35| 来源: 网络整理| 查看: 265

文章目录 第一章:AT89S52(STC89C52)的引脚功能介绍第二章:51的存储器结构(89s52或90C52RC为例)第三章: C51的语法基础第四章:IO口输入输出原理第五章: 内部资源之外部中断第六章:内部资源之定时计数器T0、T1第七章: 通用异步串行口(UART)

第一章:AT89S52(STC89C52)的引脚功能介绍

一、PDIP封装引脚图:

在这里插入图片描述

二、引脚功能介绍 IO口灌(流进)电流大,拉(流出)电流小。 P0:漏极开路的双向IO口,使用时,当电流流出需外加上拉电阻

外部地址数据总线,可带八个TTL负载

P1:准双向口(当作输入口用时,须将IO口置1 (P1=0XFF;),可带四个TTL负载

P1. 0T2定时计数器2的外部脉冲输入及时钟输出P1.1T2EX定时计数器2的捕捉、自动重装的触发输入及减法计数控制P1.5:MOSI,主动输出从动输入引脚,用于flash(闪存)编程P1.6:MISO, 主动输入从动输出引脚,用于flash编程P1.7:SCK, 同步时钟,用于flash编程 ISP编程时用

P2:准双向口,可带四个TTL负载

外部地址总线高八位

P3:准双向口,可带四个TTL负载

P3.0:RXD,串行输入P3.1:TXD,串行输出P3.2:INT0,外部中断0输入P3.3:INT1,外部中断1输入P3.4:T0,定时计数器0的外部脉冲输入P3.5:T1,定时计数器1的外部脉冲输入P3.6:/WR,外部数据存储器的写选能信号P3.7:/RD,外部数据存储器的读选能信号

其他非IO口

VCC:电源正极,工作电压范围:4.0v-5.5v。GND地RST复位端,高电平有效XTAL1(clock in)XTAL2(clock out )时钟引脚,外接晶振和谐振电容(5-47PF),晶振的谐振频率范围:0hz–33Mhz,用作工控产品时不超过6MHZ。常用晶振型号: 4MHZ,6MHZ,8MHZ,16MHZ,12MHZ,24MHZ,5.5296MHZ,11.0592MHZ,22.1184MHZ,33.1776 MHZEA/Vpp外部程序存储器的选通信号/编程电压输入 EA=0:使用外部程序存储器 EA=1:先使用内部程序存储器,后使用外部程序存储器ALE/PROG:外部低八位地址总线锁存信号/编程脉冲输入,Fosc/6PSEN:外部程序存储器的读选通信号

三、最小系统工作电路 在这里插入图片描述

四、ISP下载线相关针脚: (一)针对AT89C51:

单片机引脚|40 | 20 | 9 | 6| 7 | 8 | |–|–|–| – |–|–|–| – |–|–|–| | | VCC| GND | RST | MOSI | MISO | SCK | | Usbasp引脚 | 1| 2 | 3 | 4 | 5 | 6|

(二)针对STC89C52:

| 单片机引脚 | 40 | 20 | 10 | 11| |–|–|–| – |–|–| | | VCC | GND| RXD| TXD| | Usb->TTL引脚 | 1 | 2 | 3 | 4 |

第二章:51的存储器结构(89s52或90C52RC为例)

一、程序存储器(ROM) 只读不写 code (0x0000-0xffff) 共有8k,主要放写的程序代码。

1、类型:FLASH(闪存) ISP code 区所写的程序的容量不能超过8192个字节。

2、作用:存放程序代码

3、容量:8KB=8*1024字节=8192bit=2^13bit

4、地址编码:16位二进制编码

0000 1111 1111 1111 0~0FFFH 4095 89s51 0001 1111 1111 1111 0~1FFFH 8191 89s52

5、功能分区:0000H-0002H,启动单元,复位中断入口 (中断矢量)

入口地址中断事件中断号0003H外部中断0入口0000BH定时中断0入口10013H外部中断1入口2001BH定时中断1入口30023H串行 中断入口4002BH定时中断2入口50100H主程序区(预留32个中断入口)

汇编例子:

ORG 0000H LJMP MAIN ;转向主程序 ORG 0003H LJMP ZD0 ;转向中断0程序 ORG 0023H LJMP CS ;转向串行中断程序 ORG 0033H ;ORG 定义程序存放的首地址 MAIN: ;主程序 zd0: cs:

二、数据存储器(RAM) (文件寄存器) 1、类型:静态数据存储器 (数据总线8根)

2、作用:存放临时数据 idata间接寻址,一般省略不写

3、容量:256字节=2^8 0X00~0Xff

4、地址编码: 八位二制表示 0000 0000 ~ 1111 1111 0~0ffh (S52)

mov 30H,#05H;把0x05写入地址为30H的存储器 mov 7fh,#01h

5、功能分区

1)00h-1fh,工作寄存器区(32个)

00H R008H R010H R018H R001H R109H R111H R119H R102H R30AH R312H R31AH R3…………07H R70FH R717H R71FH R7

相关汇编操作

RS1=0CLR RS1RS1=0CLR RS0RS1=1CLR RS1RS0=0SETB RS0

选择当前寄存器组

using 0选择当前寄存器组0

2)20H-2FH,位寻址区 bdata

16*8位=128(位地址:00H-7FH) 寄存器操作MOV 20H,#91H位操作CLR 20H.020H.7 20H.6 20H.5 20H.4 20H.3 20H.2 20H.1 20H.0=1001 0001

3)30H-7FH,用户RAM区, 缓冲区或是堆栈区(RAM 07h)

4)80-ffh,高128单元,只能间接寻址

6、51变量的存贮类型与其数据存储器的关系 内部RAM 00h-7fh data (直接寻址) unsigned char data i=3;

内部RAM20h-2fhbdata(位寻址)内部RAM00h-ffhidata(间接寻址)外部RAM00H-ffhpdata ( MOVX A,@R0 MOV @R0,A)外部RAM0000H-ffffhxdata ( MOVX A,@DPTR)

三、51特殊功能寄存器(SFR)

P0(80H)P1(90H)P2(A0H)P3(B0H)ACC(E0H)B(F0H)PSW(D0H)SP(81H)DPL(82H)DPH(83H)IE(A8H)IP(B8H)TCON(88H)TMOD(89H)TL0(8AH)TL1(8BH)TH0(8CH)TH1(8DH)SCON(98H)SBUF(99H)PCON(87H)

在SFR中,地址以0或是8结尾的,可以位寻址,其位地址从字节地址开始,例如: P0、P1、P2、P3、ACC、B、PSW、IE、IP、TCON、、SCON、

ACC累加器 作用:运算 数据传送 数据转换

相关操作

ADD ACC,#10累加器ACC=ACC+10ACC=246+10ACC=246+10MOV P1,A把ACC载入到P1中MOVC A,@A+DPTR查表,DPTR是首地址

B 寄存器 作用:乘除法运算

MUL AB乘法DIV AB除法

SP: 堆栈指针 作用:存放栈顶,保护临时数据,

DPTR:(dph+dpl)数据指针 作用:数据传送 数据转换

PSW 程序状态字

CYACF0RS1RS0OV-P76543210

|CY|进位标志位 | |–|–|–| | AC| 辅助进位标志位, 加法运算时,低四位向高四位有进位为1 F0| 用户标志位 RS1 RS0 | 当前寄存器组选择位 OV| 溢出标志位 OV=CYC67=10=1 P| 寄偶校验位 (偶校验,由ACC中1的个数决定的,若为寄数个1,则P=1,反之为0)

PC:程序指针(0000H) 作用:存放即将执行指令的首地址(ROM)

四、51的时序

振荡频率:Fosc振荡(时钟)周期T=1s/Fosc (12M晶振就是1/12M)机器周期Tfr(Tcyc)=12s/Fosc (12M晶振为1us)指令周期根据指令不同,1个机械周期~4个机械周期

五、51的工作方式 连续运行 单步运行 空闲方式:CPU停止工作,睡眠方式 掉电保护方式:RAM工作 编程方式: 校验方式: 复位方式:P0 P1 P2 P3 全为高电平 SP=07H 其余大都00H pc=0000h

第三章: C51的语法基础

1、数据类型 (1)基本类型 0000 0001 +1

无符号字符型(unsigned char)0~255有符号字符型(char) (1个字节)-128~+127无符号字符型(unsigned char ) (1个字节)0-255有符号整型(int) (4个字节)-32768~+32767无符号整型(unsigned int) (4个字节)0~65535位类型(1位)(bit)有符号长整型(long (int))(8个字节)-2^31~+ 2^31-1无符号长整型(unsigned long int)(8个字节)0~2^32-1单精度实型(float)(4个字节)~双精度实型(double)(8个字节)~(2)构造类型数组类型(array)––结构体(struct)共用体(union)枚举类型(enum)(3)指针类型 (* ) 24位(3个字节)(4)空类型(void)

2、常量 固定不变的量,称为常量,通常用大写字符串表示 常量的定义:

#define 常量名 常数表达数 #define SHANGXIAN 242 #define uc unsigned char #define ui unsigned int

3、变量 变量的定义: 数据类型 变量名;

unsigned int data i; unsigned char xdata j;

变量的存贮类型有时可以省略,即为系统默认类型 全局变量、局部变量

4、C51的存贮类型

data内部RAM区0x00~0x7f单元,128字节;ramxdata外部RAM区0x0000~0xffff单元,64KcodeROM区0x0000~0xffff单元,64K 0x0000-0x1fff,flashidata内部RAM区0x00~0xff单元,256字节bdata内部RAM区0x20~0x2f单元,16字节允许位寻址pdata外部RAM区当P2口固定0x00~0xff单元,分页256字节5、C51中特殊功能寄存器(SFR)的定义格式:sfr 特殊功能寄存器名称=特殊功能寄存器地址;sfr IE=0XA8; //定义寄存器IE地址为0XA8

sfr16 特殊功能寄存器名=低八位特殊功能寄存器地址; sfr16 TMR0=0XCC; T2则为16位,包括TH2及TL2 注:必须是高八位与低八位寄存器地址连续才能用sfr16定义

6、C51中并行I0口的定义 (1)CPU自带并口P0、P1、P2、P3,用sfr定义

P0:0x80 P1:0x90 P2:0xA0 P3:0xB0 sfr P0=0x80;

注:中已定义

(2)外扩并口 #include #define IO口名称 XBYTE [IO口地址]

#include #define PA8255 XBYTE [0X7C00] #define PB8255 XBYTE [0X7D00]

7、C51中特殊功能位及位变量的定义 (1)特殊功能位的定义 sbit 位名称=位地址; 在特殊功能寄存器中,地址以“0”或是“8”结尾的SFR才能定义特殊功能位

IE (0XA8) EA X ET2 ES ET1 EX1 ET0 EX0 sbit EA=IE^7; sbit EX0=IE^0; sbit EX0=0XA8^0; sbit EX0=0XA8; sbit EA=0XAF; sbit EX1=0xAA; sbit EX1=IE^2; sbit EX1=0XA8^2; sbit led=P1^0; sbit bee=P1^7;

(2)位变量的定义 bit 变量名; bit statues; statues=0; (3)在字节变量中定义位变量 #define uchar unsigned char uchar bdata kk;

第四章:IO口输入输出原理

在这里插入图片描述

一、51单片机IO口工作原理 (一)、IO口原理图 1、P0口 在这里插入图片描述 2、P1口 在这里插入图片描述 2、P2口 在这里插入图片描述 3、P3口 在这里插入图片描述

第五章: 内部资源之外部中断

在这里插入图片描述

中断类型中断入口地址中断序号外部中断0(INT0)P3.20003H0外部中断1(INT1)P3.30013H2定时计数器0(T0) 16bit000BH1定时计数器1(T1)001BH3定时计数器2(T2)002BH5异步串行通信口(UART)0023H4CPU外围模块的掌握方法:(1)相关口线(2)相关控制字(3)模块的工作方式一、外部中断(1)相关口线P3.2int0,外部中断0输入。分为低电平和下降沿两种可选触发––P3.3int1,外部中断1输入。分为低电平和下降沿两种可选触发(2)相关控制字IE IP TCON

IE 中断允许控制寄存器

|EA| – |ET2 |ES |ET1| EX1| ET0 |EX0 | |–|–|–|–|–|–|–|–|–|–| 7|6|5|4|3|2|1|0|

EA中断总允许控制位ET2定时中断2允许控制位ES串行中断控制位ET1定时中断1允许控制位ET0定时中断0允许控制位EX0外部中断0允许控制位EX1外部中断1允许控制位

当中断控制位为0时禁止中断,为1是允许中断

IP 中断优先级控制寄存器

––PT2PSPT1PX1PT0PX076543210 PX0外部中断0优先级控制位PX1外部中断1优先级控制位PT0定时中断0优先级控制位PT1定时中断1优先级控制位PT2定时中断2优先级控制位PS串行中断优先级控制位优先级控制位为0时表示中断优先级为低,为1时表示中断优先级为高,中断优先级高的中断源可再次中断中断优先级低的中断源同级间不能发生再次中断

TCON 定时计数器控制寄存器

TF1TR1TF0TR0IE1IT1IE0IT076543210 IT0:外部中断0触发方式选择位当IT0=0时,外部中断0为低电平触发中断当IT0=1时,外部中断0为下降沿触发中断,优先选择IE0:外部中断0中断请求标志位 ,当EA&EX0=1时,如果中断外部(P3.2)有信号时,IE0自动置1,当CPU响应中断后自动清零。IT1外部中断1触发方式选择位当IT1=0时,外部中断1为低电平触发中断,当IT1=1时,外部中断1为下降沿触发中断IE1外部中断1中断请求标志位。当EA&EX1=1时,如果中断外部脚(P3.3)有信号时,IE1自动置1,当CPU响应中断后自动清零。(3)CPU外围模块的使用方法:相关控制字初始化;如果模块工作在中断模式,则编写响应中断功能的子程序。 第六章:内部资源之定时计数器T0、T1

在这里插入图片描述

16位计数器:T0 分为 TH0(高八位) 和 TL0(低八位) T1 分为TH1(高八位) 和 TL1(低八位) (1)相关口线:

T0:P3.4定时计数器0外部脉冲输入端;如果是内部时钟,则工作时钟为fosc/12,此时P3.4作IO口使用T1:P3.5定时计数器1外部脉冲输入端;如果是内部时钟,则工作时钟为fosc/12,此时P3.5作IO口使用输入信号下降沿有效,前一个机期周期为高电平 ,后一个机期周期为低电平表示有脉冲,信号周期: T>=2Tfr=212Tosc,信号的频率:f(1/f)>=(24/fosc) >> f>C =1000 000 /(zi*0.707*3) nf t=(2^n-初值)Tfr 1000=2^n-x x=2^13-1000=8192-1000=7192 f=38k T=1s/f t=T/2 13us=(2^n-x)Tfr 13=2^n-x x=2^n-13=2^8-13 第七章: 通用异步串行口(UART)

在这里插入图片描述 内部结构: 在这里插入图片描述

(1)相关口线:

P3.0RXD串行接收P3.1TXD串行发送 波特率:串行通行的速率,BIT/S 数据帧:起始位 8个数据位(D0-D7) D8(奇偶校验位) 停止位 起始位:低电平 数据位:高电平表示数据1,低电平表示数据0;低位在前,高位在后 奇偶校验位:MCS-51默认为偶校验, 经常用作数据第九位 奇校验=D0⊕D1⊕D2⊕D3⊕D4⊕D5⊕D6⊕D7⊕1 偶校验=D0⊕D1⊕D2⊕D3⊕D4⊕D5⊕D6⊕D7⊕0 停止位:高电平 点对点通信模式:单工模式 半双工模式 全双工模式

(2)相关控制字 SCON SBUF IE IP PCON TH1 TL1 TCON TMOD T2CON RCAP2H RCAP2L TH2 TL2

SCON串行控制寄存器 SM0SM1SM2RENTB8RB8TIRI76543210 SM0 SM1 :串行工作方式选择位 0 0 方式0,同步移位寄存器方式 0 1 方式1,10位UART 1 0 方式2,11位UART(波特率不可调) DMAX512 250K 1 1 方式3,11位UART P0=0xf0 SM2:多机通信位 0 REN=1,即允许接收数据(接收与RB8无关) 1 REN=1,且RB8=1时才接收前收前八位(SBUF) REN 接收使能位 0 禁止接收 1 允许接收 TB8 发送数据第九位,在多机通迅中,TB8=1,表示前八位(SBUF)发送地址信号,TB8=0,表示前八位(SBUF)发送数据信号。 RB8 接收数据第九位,由发送方决定 TI 发送中断标志位 当串口发送完一帧数据,自动置“1”,如果EA&ES=1,则会触发串行中断,但必须软件清零。 RI 接收中断标志位 当串口接收完一帧数据,自动置“1”,如果EA&ES=1,则会触发串行中断,但必须软件清零。 SBUF:串行缓冲器,专用于收发数据 发:SBUF=0xaa; 收:data1=SBUF; MOV A,SBUF PCON电源管理寄存器

|SMOD | X | X | X | GF1 |GF0 | PD | ID | |-- |-- |-- |-- |-- |-- |-- |-- |– 7|6|5|4|3|2|1|0|

SMOD 波特率倍增位 0 波特率不倍增 1 波特率倍增 GF1 GF0 用户标志位 PD 掉电保护模式控制位 RAM保存数据,其它部件停上工作, 只能复位激活 ID 空闲模式控制位,CPU不工作, 其余外围模块正常,可用中断激活

TMOD TH1 TL1 TCON与PCON配合设置通信波特率, T1工作方式2,定时状态 IE IP 控制串行中断 EA ES PS三位 (3)工作方式

1、方式0 八位同步移位控制方式(属于主动的同步串行模式) 特点:波特率=Fosc/12; 数据帧格式:8位 P3.0: 数据线,即可发送亦接收 P3.1:时钟线,用于产生移位脉冲 2、方式1 10位通用异步串行通信模式特点: 波特率=(2SMOD/32)*Fosc/(12(256-x)), Fosc=11.0592 ,22.1184,5.5296 9600=28800/(256-X) X为T1工作在定时mode 2 下TH1中的初值 数据帧格式:10位, 起始位 8位数据位 停止位 3、方式2 11位通用异步串行通信模式 DMAX512 特点:波特率=2SMOD *Fosc/64; 数据帧格式:11位, 起始位 8位数据位 奇偶校验位 (TB8或是RB8) 停止位 4、方式3 11位通用异步串行通信模式特点: 波特率=(2SMOD /32)*Fosc/(12(256-x)), X为T1工作在mode 2 下TH1中的初值 数据帧格式:11位, 起始位 8位数据位 奇偶校验位 (TB8或是RB8) 停止位

在这里插入图片描述 (4)串口用法: 1、设相同工作方式 2、设相同波特率 3、制定通信协议



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有