关于51单片机的整理与介绍
单片机自20世纪70年代末诞生至今,经历了单片微型计算机SCM、微控制器MCU及片上系统SoC三大阶段,前两个阶段分别以MCS-51和80C51为代表。随着在嵌入式领域中对单片机的性能和功能要求越来越高,以往的单片机无论是运行速度还是系统集成度等多方面都不能满足新的设计需要,这时Silicon Labs 公司推出了C8051F系列单片机,成为SoC的典型代表。目前教学主要以STC89C51为代表
读懂单片机信息
不同厂商以及芯片型号命名方式不同,但本质都是51内核扩展出来的单片机,以STC89C51RC-40CPDIP举例,其标识解释如下: STC:标识芯片生产公司 8:表示该芯片为8051内核芯片 9:表示内部含有Flash ERPOM存储器 C:该器件为CMOS产品 5:固定不变 1:芯片内部程序存储空间的大小 1为4KB,2为8KB,3为12KB RC:内部RAM为512B 40:表示芯片外部晶振最高接入40MHZ C:产品级别,芯片使用温度范围,(C为商业级,0-+70℃) PDIP:产品封装型号,表示双列直插式
芯片标号对应温度范围 C:表示商业用产品,温度范围为0℃~+70℃ I:工业用产品,温度范围为-40℃~+85℃ A:表示汽车用产品,温度范围为-40℃~+125℃ M:表示军用产品,温度范围为:-55℃~+150℃
芯片封装简介 1,DIP (双列直插式)绝大多数中小规模集成电路采用 2,PLCC(带引线的塑料芯片封装)表面贴型封装 3,QFP (塑料方形扁平式封装,PFP,塑料扁平组件式封装)大规模集成电路采用 4,PGA(插针网格列阵封装)方阵形插针 5,BGA(球栅阵列封装)
常用逻辑电平
常用的逻辑电平有TTL,CMOS,LVTTL,ECL,PECL,GTL,RS-232,RS-422,RS-485,其中TTL与CMOS按典型电压可分为四类:5V, 3.3V, 2.5V, 1.8V TTL电平信号用的最多,这是因为数据采用二进制,+5V等价于逻辑1,0V等价于逻辑0, CMOS电平Vcc达12V,CMOS电路输出高电平约为0.9Vcc,输出低电平为0.1Vcc, TTL与CMOS的逻辑电平转换: CMOS电平能驱动TTL电平,但TTL电平不能驱动CMOS电平,需要上拉电阻
进制与逻辑运算
在单片机开发中常使用16进制,而寄存器一般是二进制数,因此要特别熟悉16进制与2进制的转换 逻辑运算主要牵扯到的是数字电路的知识 1,“与”运算 & 2,“或”运算 | 3,“非”运算 ~ 4,同或 5,异或
C51中常用的数据类型
C51数据类型扩充定义 sfr-特殊功能寄存器 sfr16-16位特殊功能寄存器 sbit-特殊功能位定义 bit-位变量声明
C51常用的头文件
reg51.h 与reg52.h 用来定义51单片机中特殊功能寄存器与位寄存器的 math.h 是用来定义数学运算的,该头文件包含各种数学运算函数,
#define宏定义
#define 新名称 原内容
单片机几个周期的介绍
(1)时钟周期,振荡周期,最基本,最小的时间单位,晶振的倒数 (2)状态周期,时钟周期的两倍 (3)机器周期,单片机的基本操作周期 (4)指令周期,CPU执行一条指令所需要的时间,一个指令周期由几个机器周期组成
中断
中断的概念 对于单片机来说,中断是指CPU在处理A事件时,发生另一件事B,请求CPU进行处理(中断发生)cpu暂停当前工作(中断响应),转去执行事件B(中断服务);待CPU将事件处理完毕后,再回到事件A中断地方继续处理事件A。整个过程被称为中断。
中断嵌套:
当 CPU 正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果 CPU 能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的中断系统称为多级中断系统,没有中断嵌套功能的中断系统称为单级中断系统。 中断的开与关闭,设置启用哪一个中断是由单片机内部的一些特殊功能寄存器来决定的,一般单片机会有五个中断; 中断允许寄存器IE:用来设定各个中断源的打开与关闭 EA:全局中断允许位 ET2:定时器/计数器2中断允许位 ES:串行口中断允许位 ET1:定时器/计数器1中断允许位 EX1:外部中断1中断允许位 ET0:定时器/计数器0中断允许位 中断优先级寄存器IP 定时器/计数器工作方式寄存器TMOD 定时器/计数器控制寄存器 TCON 定时器初始化过程: *对TMOD赋值,以确定T0与T1的工作方式 * 计算初值,并将初值写入TH0,TL0或者TH1,TL1 中断方式时,对IE赋值,开放中断 使TR0或TR1置位,启动定时器/计数器定时计数
void time() interrupt3
{
TH1=(65536-10000)/256;
TL1=(65536-10000)%256;
}
定时器1的中断服务程序,定时器1的中断序号是3
switch-case 语句
if语句通常用来处理两个分支,但不能处理多个分支,C语言提供了专门用来处理多分支的条件选择语句,可以用来处理多个分支
switch(表达式)
{
case 表达式1:
语句1;
break;
case 表达式2:
语句2;
break;
case 常量表达式n:
语句n:
default:
语句n+1 ;
break;
}
计算switch后面圆括号中表达式的值,用此值依次与各个case后的常量表达式比较,若相等,就执行此case 后面的语句,当执行遇到break语句就退出switch语句,若都不相等,则执行default 后面的语句n+1,然后退出
nop() 解释
延时一个机器周期的意思,包含在头文件intrins.h中,当程序中需要使用时,需要在最开始出包含头文件intrins.h
看门狗概念与应用
看门狗:出于对于单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗” 工作过程:看门狗芯片与单片机一个引脚相连,通过单片机程序控制,使其定时往看门狗芯片引脚送入高电平(低电平),一旦单片机由于干扰造成程序跑飞而陷入某一个程序段进入死循环状态时,给看门狗送电平的程序便不能被执行到,这时由于看门狗电路由于得不到单片机送来的信号,便对它与复位引脚相连的引脚送出一个复位信号,使得单片机复位,进而重新执行程序, 看门狗定时器寄存器(WDT_CONTR)
typedef与#define的区别
typedef-类型定义,其功能是用户为已有的数据类型取“别名”
typedef int INT;
将int定义为INT define-宏定义
#define pi 3.14
关于51单片机的通信
关于通信方式可以参考·这篇
小结
文章主要用于自己本身的小结,可能写的比较简略与粗糙,也是在逐步学习,也欢迎有问题一起来讨论交流
|