云计算百科
云计算领域专业知识百科平台

51单片机

1. 基本结构

 8位CPU,16位地址总线,8位数据总线。

哈佛结构:程序存储器与数据存储器分开编址。

程序存储器:64KB;数据存储器:64KB。

内部RAM:256B;SFR:128B。

常见型号:AT89C51/52、STC89C52、STC15/STC8等。传统8051为12T,STC部分支持1T。

 

2. 存储器与复位

程序存储器入口:

 复位:0000H

 外部中断0:0003H

  定时器0:000BH

  外部中断1:0013H

  定时器1:001BH

  串口:0023H

内部RAM:

  00H~1FH:4组工作寄存器R0~R7

  20H~2FH:位寻址区,共128位

  30H~7FH:用户RAM和堆栈区

  80H~FFH:高128B,只能间接寻址,与SFR地址重叠

位寻址:20H~2FH,以及地址能被8整除的SFR。

复位后:PC=0000H,SP=07H,P0~P3=FFH,IE=00H,TMOD=00H,TCON=00H,SCON=00H。

复位条件:RST高电平持续2个机器周期。

 

3. 时钟与机器周期

传统8051:1机器周期=6状态周期=12振荡周期。

12MHz晶振:1机器周期=1μs。

最小系统:电源、晶振、复位电路、EA接高电平、下载电路。

 

4. 引脚与I/O口

40脚DIP:VCC、GND、P0~P3、RST、ALE、PSEN、EA、XTAL1、XTAL2。

P0:开漏,作通用I/O需上拉;可作低8位地址/数据复用。

P1:准双向I/O。

P2:准双向I/O;可作高8位地址。

 P3:准双向I/O,第二功能:

   P3.0 RXD,P3.1 TXD

  P3.2 INT0,P3.3 INT1

  P3.4 T0,P3.5 T1

  P3.6 WR,P3.7 RD

 准双向口输入前要先写1。

ALE:地址锁存允许;PSEN:外部程序存储器读选通;EA=1从内部程序开始,EA=0只访问外部程序。

 

5. 中断系统

 

5个中断源:INT0、T0、INT1、T1、串口。

2个优先级,由IP控制。

相关寄存器:IE、IP、TCON、SCON。

外部中断触发方式:低电平触发或下降沿触发,由IT0/IT1设置。

中断服务函数最后用RETI返回。

C51中断号:

  0:INT0

  1:T0

  2:INT1

   3:T1

   4:串口

 

6. 定时器/计数器

T0、T1,相关寄存器:TMOD、TCON、TH0/TL0、TH1/TL1。

TMOD:GATE、C/T、M1、M0。

方式:

  方式0:13位

  方式1:16位

  方式2:8位自动重装

  方式3:T0拆成两个8位,T1停止

定时初值:

  定时时间 = (65536 – 初值) × 机器周期

  THx = (65536 – N)/256,TLx = (65536 – N)%256

方式2常用于串口波特率发生器。

 

7. 串口UART

相关寄存器:SCON、SBUF、PCON。

 SCON位:SM0、SM1、SM2、REN、TB8、RB8、TI、RI。

方式:

  方式0:同步移位寄存器,波特率=fosc/12

  方式1:8位UART,波特率由T1溢出率决定

   方式2:9位UART,波特率=fosc/64或fosc/32

  方式3:9位UART,波特率由T1溢出率决定

 方式1波特率:

  波特率 = (2^SMOD/32) × fosc/[12(256-TH1)]

  SMOD=0时:TH1=256 – fosc/(384×波特率)

  SMOD=1时:TH1=256 – fosc/(192×波特率)

TI、RI需软件清零。

 

8. 指令系统与寻址

 111条指令,按功能分:数据传送、算术、逻辑、控制转移、位操作。

7种寻址方式:立即、直接、寄存器、寄存器间接、变址、相对、位寻址。

 常用指令:

   MOV、MOVX、MOVC、PUSH、POP

  ADD、ADDC、SUBB、INC、DEC、MUL、DIV

  ANL、ORL、XRL、CLR、CPL

  LJMP、AJMP、SJMP、JZ、JNZ、CJNE、DJNZ

  LCALL、ACALL、RET、RETI

  SETB、CLR、CPL、JB、JNB、JBC

 

9. C51编程

头文件:reg51.h、reg52.h。

关键字:sfr、sbit、bit、code、data、idata、xdata、pdata、bdata。

中断函数写法:

  ```c

  void timer0_isr() interrupt 1 using 1

  {

      // …

  }

  ```

常见外设:LED、按键、数码管、LCD1602、矩阵键盘、蜂鸣器、继电器、步进电机、AD/DA、DS1302、DS18B20、AT24C02、红外、蓝牙、超声波等。

 

注意

 

P0作通用I/O必须外接上拉。

准双向口输入先写1。

EA=1从内部程序存储器开始执行;EA=0只执行外部程序。

串口TI/RI软件清零;边沿触发外部中断标志硬件清零,低电平触发需外部撤除。

SP复位为07H,入栈先SP加1再存数据。

位寻址区20H~2FH;SFR可位寻址地址必须能被8整除。

传统8051是12T,STC增强型可能是1T,定时计算要按型号区分。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 51单片机
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!