IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机入门——单片机最小系统 -> 正文阅读

[嵌入式]51单片机入门——单片机最小系统

1.什么是最小系统

单片机最小系统也称为单片机最小应用系统,是指使用最少的原件组成单片机可以工作的系统。在这里插入图片描述

2.最小系统的三要素

单片机最小系统的三要素为:电源、晶振和复位电路。

2.1.电源

任何电子设备都需要供电,目前主流单片机的电源分别为5V和3.3V这两个标准。

选用STC89C52,它需要5V的供电系统,上图是使用USB口输出的5V直流直接供电的,从图中可以看出,供电电路在40引脚和20引脚的位置上,40引脚接的是+5V,通常也称为VCC或VDD,代表电源正极,20引脚接GND,代表电源负极。

2.2.晶振

晶振,又叫晶体振荡器,从这个名字上就可以看出,它注定一生都要不停的振荡。它起到的作用是为单片机系统提供基准时钟信号,类似于部队训练喊口号的人,单片机内部所有的工作都是以这个时钟信号为步调基准来进行工作的,可以说晶振就是单片机的“心脏”。STC89C52单片机的18引脚和19引脚是晶振引脚,上图接了一个11.0592MHz的晶振(即每秒振荡11059200次),外加两个30pF的电容,电容的作用是帮助晶振起振,并维持振荡信号的稳定
在这里插入图片描述

2.3.复位电路

单片机的复位一般分为四种:外部RST复位,软件复位,掉电复位/上电复位,看门狗复位。

2.3.1.外部RST引脚复位

在1.中的图中我们可以看到在图的左边是一个复位电路,接到了单片机的9引脚RST(Reset)复位引脚上。这个复位电路是从外部向RST引脚施加一定宽度的复位脉冲,从而实现单片机的复位。将RST复位引脚拉高并维持24个时钟加10us后,单片机会进入复位状态,将RST复位引脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H处重新开始工作。

2.3.2.软件复位

用户的应用程序在运行过程当中,有时会有特殊需求,需要实现单片机系统软复位(热启动之一),传统的8051单片机由于硬件上未支持此功能,用户必须用软件模拟实现,实现起来较麻烦。现STC新推出的增强型8051根据客户的要求增加了ISP CONTR特殊功能寄存器,实现了此功能。用户只需简单的控制ISP_CONTR特殊功能寄存器的其中两位SWBS/SWRST就可以系统复位了。
在这里插入图片描述
ISPEN:ISP/IAP功能允许位。
0:禁止ISP/IAP读/写/擦除Data Flash/EEPROM;
1:允许ISP/IAP读/写/擦除Data Flash/EEPROM。
SWBS:软件选择从用户应用程序区启动(0),还是从ISP程序区启动(1)。要与SWRST直接配合
才可以实现
SWRST:0:不操作;1:产生软件系统复位,硬件自动清零。
;从用户应用程序区(AP区)软件复位并切换到用户应用程序区(AP区)开始执行程序MOV ISP_CONTR, #00100000B;SWBS=0(选择AP区),SWRST=1(软复位)
;从系统ISP监控程序区软件复位并切换到用户应用程序区(AP区)开始执行程序
MOV ISP_CONTR, #00100000B ;SWBS=0(选择AP区), SWRST=1(软复位)
;从用户应用程序区(AP区)软件复位并切换到系统ISP监控程序区开始执行程序
MOV ISP_CONTR, #01100000B;SWBS =1(选择ISP区),SWRST =1(软复位)
;从系统ISP监控程序区软件复位并切换到系统ISP监控程序区开始执行程序
MOV ISP_CONTR, #01100000B;SWBS =1(选择ISP区),SWRST =1(软复位)
本复位是整个系统复位,所有的特殊功能寄存器都会复位到初始值,I/O口也会初始化

2.3.3.上电复位/掉电复位

假设单片机的程序有50行,当某一次运行到第20行的时候,突然停电了,这个时候单片机内部有的区域数据会丢失掉,有的区域数据可能还没丢失。那么下次打开设备的时候,我们希望单片机能正常运行,所以上电后,单片机要进行一个内部的初始化过程,这个过程就可以理解为上电复位,上电复位保证单片机每次都从一个固定的相同的状态开始工作。这个过程跟打开计算机电源的过程是一致的。

2.3.4.看门狗复位

适用单片机型号:
STC89C51,STC89C52,STC89C53,STC89C14,STC89LE51,STC89LE52,STC89LE53,STC89LE14STC89C54,STC89C58,STC89C516,STC89C510,STC89C512,STC89C514,STC89LE54,STC89LE58,STC89LE516,STC89LE510,STC89LE512,STC89LE514

在工业控制/ 汽车电子/航空航天等需要高可靠性的系统中,为了防止“系统在异常情况下,受到干扰,MCU/CPU程序跑飞,导致系统长时间异常工作”,通常是引进看门狗,如果MCU/CPU不在规定的时间内按要求访问看门狗,就认为MCU/CPU处于异常状态,看门狗就会强迫MCU/CPU复位,使系统重新从头开始按规律执行用户程序。

STC89C52系列单片机内部也引进了此看门狗功能,使单片机系统可靠性设计变得更加方便/简洁。为此功能,增加了特殊功能寄存器WDT_CONTR:

WDT_CONTR:看门狗(Watch-Dog-Timer)控制寄存器

SFR nameAddressbitB7B6B5B4B3B2B1B0
WDT_CONTRE1Hname--EN_WDTCLR_WDTDILE_WDTPS2PS1PS0

Symbol符号 Function功能
EN_WDT: Enable WDT bit. When set, WDT is started
看门狗允许位,当设置为“1”时,看门狗启动。
CLR_WDT: WDT clear bit.If set,WDT will recount. Hardware will automatically clear this bit.
看门狗清“0”位,当设为“1”时,看门狗将重新计数。硬件将自动清“0”此位。
IDLE_WDT: When set,WDT is enabled in IDLE mode. When clear, WDT is disabled in IDLE
看门狗“IDLE”模式位,当设置为“1”时,看门狗定时器在“空闲模式”计数当清“0”该位时,看门狗定时器在“空闲模式”时不计数
PS2,PS1,PSO: Pre-scale value of Watchdog timer is shown as the bellowed table:

/* 看门狗测试程序,可在STC的开发板上直接测试*/
WDT_CONTR			EQU		0EIH		;看门狗地址
WDT_TIME_LED 		EQU 	P1.5 		;用P1.5 控制看门狗溢出时间指示灯,
					;看门狗溢出时间可由该指示灯亮的时间长度或熄灭的时间长度表示
WDT_FLAG_LED 		EQU 	P1.7
					;用P1.7控制看门狗溢出复位指示灯,如点亮表示为看门狗溢出复位
Last_WDT_Time_LED_Status		EQU 	00H :位变量,存储看门狗溢出时间指示灯的上一次状态位
;WDT复位时间(所用的Oscillator frequency=18.432MHz):
;Pre_scale_Word 	EQU 	00111100B 		;清0,启动看门狗,预分频数=320.68S
Pre_scale_Word 		STO 	00111101B 		;清0,启动看门狗,预分频数=641.36S
;Pre scale_Word 	EQU 	00111110B 		;清0,启动看门狗,预分频数=1282.72S
;Pre_scale_Word 	EQU 	00111111B 		;清0,启动看门狗,预分频数=2565.44S
		ORG 	0000H
		AJMP	 MAIN
		ORG 	0100H
MAIN:
		MOV 	A, WDT_CONTR 		;检测是否为看门狗复位
		ANL 	A, #10000000B
		JNZ 	WDT_Reset 			;WDT_CONTR.7=1,看门狗复位,跳转到看门狗复位程序
;WDT_CONTR.7=0,上电复位,冷启动,RAM单元内容为随机值
		SETB 	Last_WDT_Time_LED_Status ;上电复位,
;初始化看门狗溢出时间指示灯的状态位=1
		CLR 	WDT_TIME_LED 		;上电复位,点亮看门狗溢出时间指示灯
		MOV 	WDT_CONTR, #Pre_scale_Word 	;启动看门狗
WAIT1:
		SJMP 	WAIT1 ;循环执行本语句(停机),等待看门狗溢出复位
;WDT_CONTR.7=1,看门狗复位,热启动,RAM单元内容不变,为复位前的值
WDT_Reset: 				;看门狗复位,热启动
		CLR 	WDT_FLAG_LED 		;是看门狗复位,点亮看门狗溢出复位指示灯
		JB 		Last_WDT_Time_LED_Status, 		Power_Off_WDT_TIME_LED
;为1熄灭相应的灯,为0亮相应灯
;根据看门狗溢出时间指示灯的上一次状态位设置WDT_TIME_LED灯,
;若上次亮本次就熄灭,若上次熄灭本次就亮
		CLR 	WDT_TIME_LED 		;上次熄灭本次点亮看门狗溢出时间指示灯
		CPL 	Last_WDT_Time_LED_Status ;将看门狗溢出时间指示灯的上一次状态位取反
WAIT2:
		SJMP 	WAIT2 ;循环执行本语句(停机),等待看门狗溢出复位
Power_Off_WDT_TIME_LED:
		SETB 	WDT_TIME_LED 上次亮本次就熄灭看门狗溢出时间指示灯
		CPL 	Last_WDT_Time_LED ;将看门狗溢出时间指示灯的上一次状态位取反
WAIT3:
		SJMP	WATT3 		;循环执行本语句(停机),等待看门狗溢出复位
END  

2.3.5.冷启动复位和热启动复位

在这里插入图片描述

3.单片机引脚简介及电路原理图

电路原理图是为了表达这个电路的工作原理而存在的,很多器件在绘制的时候更多的考虑是方便原理图分析,而不是表达各个器件实际位置。比如原理图中的单片机引脚图,引脚的位置是可以随意改变的,但是每个引脚上有一个数字标号,这个数字标号才是单片机真正的引脚位置。一般情况下,双列自插封装的芯片,左上角是1引脚,逆时针旋转引脚号依次增加,一直到右上角是最大引脚号,例如:STC89C52单片机芯片一共有40个引脚,因此右上角就是40引脚。如图所示:
在这里插入图片描述

单片机引脚说明:

管脚LQFP 44/ PQFP 44 编号PDIP 40 编号PLCC 44 编号说明
P0.0~P0.737 - 3039-3243 - 36P0口既可以作为输入/输出口,也可以作为地址/数据复用总线使用。当P0口作为输入/输出口时,P0是一个8位准双向口,上电复位后处于开漏模式。P0口内部无上拉电阻,所以作I/O口必须外接10K - 4.7K的上拉电阻。当P0作为地址/数据复用总线使用时,是第8位地址线[A0~A7],数据线的[D0 ~ D7],此时无需外接上拉电阻。
P1.0/T24012P1.0 : 标准I/O口 PORT1[0] / T2 : 定时器/计数器2的外部输入
P1.1/T2EX4123P1.1 : 标准I/O口 PORT1[1] / T2EX : 定时器/计数器2捕捉/重装方式的触发控制
P1.24234P1.2 : 标准I/O口 PORT1[2]
P1.34345P1.3 : 标准I/O口 PORT1[3]
P1.44456P1.4 : 标准I/O口 PORT1[4]
P1.5167P1.5 : 标准I/O口 PORT1[5]
P1.6278P1.6 : 标准I/O口 PORT1[6]
P1.7389P1.7 : 标准I/O口 PORT1[7]
P2.0 ~ P2.718 - 2521 - 2824 - 31P2口内部有上拉电阻,既可以作为输入/输出口,也可以作为地址总线使用(A8 ~ A15)。当P2口作为输入/输出口时,P2是一个8位准双向口。
P3.0 /RxD51011P3.0 : 标准I/O口 PORT3[0] / RxD : 串口1数据接收端
P3.1/TxD71113P3.1 :标准I/O口 PORT3[1] / TxD :串口1数据发送端
P3.2/INT081214P3.2: 标准I/O口 PORT3[2] / INT0 :外部中断0,下降沿中断或低电平中断
P3.3/INT191315P3.3 :标准I/O口 PORT3[3] / INT1: 外部中断1,下降沿中断或低电平中断
P3.4/T0101416P3.4 :标准I/O口 PORT3[4] / T0 : 定时器/计数器0的外部输入
P3.5/T1111517P3.5 :标准I/O口 PORT3[5] / T1 : 定时器/计数器1的外部输入
P3.6/WR121618P3.6 :标准I/O口 PORT3[6] / WR :外部数据存储器写脉冲
P3.7/RD131719P3.7 :标准I/O口 PORT3[7] / RD : 外部数据存储器读脉冲
P4.01723P4.0 :标准I/O口 PORT4[0]
P4.12834P4.1 :标准I/O口 PORT4[1]
P4.2/INT3391P4.2 :标准I/O口 PORT4[2] / INT3 :外部中断3,下降沿中断或低电平中断
P4.3/INT2612P4.3 :标准I/O口 PORT4[3] / INT2 : 外部中断2,下降沿中断或低电平中断
P4.4/PSEN262932P4.4 :标准I/O口 PORT4[4] / PSEN 外:部程序存储器选通信号输出引脚
P4.5/ALE273033P4.5 :标准I/O口 PORT4[5] / ALE :地址锁存允许信号输出引脚/编程脉冲输入引脚
P4.6/EA293135P4.6 :标准I/O口 PORT4[6] / EA :内外存储器选择引脚
RST4910RST :复位脚
XTAL1151921内部时钟电路反相放大器输入端,接外部晶振的一个引脚。当直接使用外部时钟源时,此引脚是外部时钟源的输入端。
XTAL2141820内部时钟电路反相放大器的输出端,接外部晶振的另一端。当直接使用外部时钟源时,此引脚可浮空,此时XTAL2实际将XTAL1输入的时钟进行输出。
VCC384044电源正极
GND162022电源负极,接地
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:23:33  更:2021-10-06 12:23:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:19:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码