C语言:51单片机 结构体系(带最小系统设计图)

注:本案例采用AT89C51系列单片机

单片机的内核

89系列单片机型号由3个部分组成,分别是前缀型号后缀,格式为AT89C(LV\、S)XXXX。

前缀

由字母组成,表示某某公司的产品。

型号

型号由89 CXXXX或89 LVXXXX或89 SXXXX等表示。

9表示芯片内部含Flash存储器,

C表示是CMOS产品,

S表示含可串行下载的Flash存储器

XXXX为表示型号的数字,如51、52、2051等。

后缀

后缀由XXXX4个参数组成,与产品型号间用-隔开。

第一个X 表示速度,如12MHz

第二个X表示封装

J表示PLV封装

P表示塑料双列直插DIP封装

S表示SQIC封装

Q表示PQFP封装

A表示TQFP封装

W表示裸芯片

第三个X表示温度范围

C表示商业用产品,0~+70°

I表示个工业用产品,-40~+85°

C表示汽车用产品,-40~+125°

C表示军用产品,-55~+150°

第四个X表示处理工艺

X为空 表示采用标准处理工艺

X为=/883 表示采用MIL-STD-833标准

单片机的引脚功能

主电源引脚Vcc和GND

Vcc:Vcc接+5V电压。

GND:GND接地。

时钟电路引脚XTAL1和XTAL2

XTAL1接外部晶振和微调电容的一端。

XTAL2接外部晶振和微调电容的另一端。

常见的晶振选择 11.0592MHz、12MHz以及22.1184MHz。

控制信号引脚

RST:复位

在引脚加上持续时间大于2个机器周期的高电平,可以使单片机复位,单片机将从0000H单元开始执行程序。

ALE(不重要):地址锁存器/编程脉冲输入端

PSEN(不重要):访问外部程序存储器选通信号,低电平有效。

EA/Vpp:内部和外部程序存储器选择信号。

该引脚为低电平时,读取外部的程序代码来执行程序。

为高电平时,使程序运行时访问内部程序存储器。

并行I/O口P0~P3端口引脚

51系列单片机有4个双向并行I/O端口;P0、P1、P2和P3,它们的输出锁存器属于特殊功能寄存器。

51单片机的存储器

存储结构

单片机的存储结构有两种:

哈佛(Harvard)结构:即程序存储器和数据存储器分开相互独立的。

普林斯顿(Princeton)结构:即程序存储器和数据存储器是统一的,地址空间统一编址。

程序存储器

程序存储器(ROM)的内部地址为0000H~0FFFH,共4KB;最多可外接64KB程序存储器。

数据存储器

数据存储器(RAM)用于存放程序运行的中间结果、状态标志位等。

片内数据存储器的配置

分为内部数据存储器和外部数据表存储器,是两个独立的地址空间。片内RAM为256字节,地址范围为00H~FFH。

(1)底128字节(00H~7FH)为真正的 RAM区。

(2)高128字节(80H~FFH)为特殊功能寄存器区。

51单片机的时钟与复位

CPU时序

时序是计算机指令执行是各种微操作在时间上的顺序关系。

时钟周期

时钟周期也叫震荡周期,是时序中最小的时间单位。

使用12MHz石英晶体震荡器,此时的时钟周期为1/12us。

机器周期

执行一条指令的过程可分为若干个阶段,每一阶段完成一项规定的操作。机器周期为时钟周期的12倍。

使用12MHz晶振时,机器周期为1up。

指令周期

指令周期定义为执行一条指令所用的时间。指令周期通常为1~4个机器周期。

乘除指令消耗 为4个机器周期。

时钟电路

51单片机时钟电路由两种接法,通常采用 1个晶振、2个30pF微调电容。

复位电路

当外界给单片机的9角(RST)一小段高电平时,单片机就会复位。

单片机最小系统硬件设计图

相关推荐
一直奔跑在路上几秒前
深入浅出RDMA:原理、应用与实战指南
开发语言·php
j7~9 分钟前
【C++】STL--string类--拆析解剖string类的实现以及string类的底层详解(2)
开发语言·c++·浅拷贝·深拷贝·string类的实现·string拷贝构造·string赋值重载
程序员二叉18 分钟前
【JUC】AQS底层深度拆解|独占/共享模式|队列原理全详解
java·开发语言·面试·juc
踏着七彩祥云的小丑20 分钟前
Go 学习第6天:结构体 + 切片 + range遍历
开发语言·学习·golang·go
读书札记202223 分钟前
Qt中windeployqt.exe工具的使用:解决使用CMake创建的项目点击exe文件后系统提示0xc000007b的问题
开发语言·qt
xiaoshuaishuai835 分钟前
C# 定制化Markdown编辑器
开发语言·c#·编辑器
DogDaoDao35 分钟前
C++核心技术深度剖析:从底层原理到工程实践
开发语言·c++·面试·程序员·指针·虚函数
磊 子39 分钟前
C++移动语义和智能指针
java·开发语言·c++
不负岁月无痕42 分钟前
C++继承与多态知识点及其高频面试问题
开发语言·c++·面试
June`1 小时前
如何组织一个并行程序
开发语言·cuda