单片机学习笔记——系列单片机

电给我疲乏衰弱的身躯注入了最宝贵的东西——生命的活力、精神的活力。

51系列的单片机及其他系列单片机

单片机是典型的嵌入式系统,能更好地满足对控制对象,应用系统的嵌入,现场的可靠运行以及控制,所以单片机也是发展最快,品类最多,数量最大的嵌入式系统

MCS51系列单片机

MCS是Intel公司生产的单片机符号,后将此项专利转让后,衍生了许多与MCS-51指令系统兼容的单片机,这些兼容机指令系统与8051相同,,采用CMOS工艺,所以常用80C51系列来称呼所有的具有8051指令系统的单片机

基本型

基本型包括8031,88051,8751等

增强型

增强型即52系列,如8031,8052,8752等

其内部RAM增加到了256B,8052,8752的内部程序存储扩展到8KB,16位定时器/计数器增至三个,6个中断源,串行通信速率提高5倍

低功耗型

代表性的有80C31BH,87C51等,均采用CHMOS工艺,功耗很低

专用型

如Intel公司的8044/8744等,它们在8051的基础上又增加了一个串行接口部件,用于进行通信的总线分布式控制系统

超8位型

在8052的基础上,采用CHMOS工艺,并将MCS-96系列(16位单片机)中的一些IO部件移植进来构成新一代的MCS-51产品

片内闪烁存储

随着半导体存储器制造技术和大规模集成电路制造技术的发展,片内闪烁存储得到了广泛应用。闪烁存储器支持在线(+5V)电擦除,电写入或使用通用编程器对其重复编程,

🔖低功耗型单片机的掉电方式(即省电模式)有两种:

  1. 空闲模式——CPU停止工作,其他部分继续工作

空闲模式下,各寄存器保持原值不变,I/O口保持着空闲模式被激活前那一刻的逻辑状态,此时单片机所有的外围设备都能正常运行

当任何一个中断产生时,就可以将单片机唤醒,单片机被唤醒后,CPU将继续执行进入空闲模式语句的下一条指令

  1. 休眠模式——片内除RAM继续保持数据外,其他部分停止工作,又称掉电模式

外部晶振停振,CPU,定时器,串行口全部停止工作,只有内部终端继续工作,是单片机进入休眠模式的命令就是最后一条命令,芯片中涉及数据存储和特殊功能寄存器都将保持原值

可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机

使用中断唤醒单片机,程序将在中断处继续执行,使用硬件复位唤醒单片机则会在开头位置重新执行程序

PCON(电源管理寄存器):控制单片机进入空闲模式和掉电模式,此寄存器位于特殊功能寄存器中,字节地址为87H,不能位寻址
PCON用于管理电源部分,包括上电复位检测和掉电模式等,单片机复位时,PCON全部被清为0

寄存器中IDL和PD的值会单片机是否进入空闲模式和掉电模式

IDL(空闲模式设定位)

IDL=1,单片机进入空闲模式,IDL=0,单片机正常工作

PD(掉电模式设定位)

PD=1,单片机进入掉电模式,PD=0,单片机正常工作

晶振:单片机的晶振用于向系统提供基本的时钟信号
通常一个系统共用一个晶振,有些系统也会采用电子调频的方式调整多个不同基频和射频的晶振
单片机晶振的频率越高,其运行速度越快,单片机一切的指令都基于晶振提供的频率

🔖内部晶振和外部晶振

单片机外部晶振稳定,受温度,湿度影响较小,且能适时停止,以减少能耗;内部晶振准确度不高,但造价较低,如果不涉及串口通信和精准定时的话,使用内部晶振就可以

8031

8031包括一个8位CPU,128B的RAM,21个特殊寄存器(SFR),4个8位并行IO口,一个全双工串口,2个16位计数器,但片内无程序寄存器,需外扩EPROM芯片

8051

8051在8031的基础上集成了一个4KB的ROM,形成了一个程序不超过4KB字节的小系统

8751

8751在8031的基础上集成了一个4KB的EPROM,也构成了一个小系统,且程序可反复修改

AT89C51,AT89S51系列单片机

AT89 系列单片机是ATmel公司的8位Flash单片机,AT89完全兼容MCS-C51系列,MCS-C51的程序可直接在AT89系列上运行

由于AT89带有Flash ROM,故程序的烧录很方便,易于用电擦除,可以反复使用,方便修改

89S51系列除了具有89C51的所有功能外,片内还集成了“看门狗定时器”,既可以使用传统的编程方法,也支持ISP在线编程

其他系列单片机

PIC系列

PIC系列片内带EPROM,采用CMOS工艺,指令速度比同类单片机高5倍,程序存储器可节省一半,具有,可精简指令集,大大缩短开发周期

Motorola

世界上最大的单片机生产商,可生产4,8,16,32位单片机

其特点为时钟频率较低,故高频噪声较小,抗干扰能力强

MSP430

具有精简指令集,超低功耗的16位单片机,能力强,速度快,片内资源丰富,MSP430的速度是C51的100倍

STM32微处理器

STM32是ARM Cortex-M内核的32位微处理器,性能高,实时性强,功耗低

便于低电压操作,易于开发

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
数码管是一种常见的数字显示器件,可以用于显示各种数字、字母等字符。在单片机应用中,数码管通常用于显示计数器、计时器、温度、湿度等实时数据。 数码管的种类有很多,包括共阳数码管、共阴数码管、共阳共阴混合数码管等。其中,共阳数码管是最常见的一种,也是本文所涉及的数码管类型。 单片机控制数码管的原理是通过对数码管的各个管脚进行控制,使其显示相应的数字或字符。数码管的控制方式有两种,即静态显示和动态显示。 静态显示是指将要显示的数字或字符的每一位分别输出到数码管的每个管脚上,然后使其保持不变,从而实现显示效果。静态显示的缺点是需要使用大量的I/O口,且不能灵活地改变显示内容。 动态显示是指将要显示的数字或字符的每一位依次输出到数码管的每个管脚上,并在短时间内快速切换下一个数字或字符,从而形成连续的显示效果。动态显示的优点是可以使用较少的I/O口,且可以灵活地改变显示内容。 以下是一个简单的动态显示数码管的实现示例: 1. 定义数码管的引脚 ```c #define DIG_PORT P2 // 数码管位选端口 #define DIG_COM 0x00 // 数码管位选端口初始值 #define LED_PORT P0 // 数码管段选端口 ``` 2. 定义数码管显示的数字或字符 ```c unsigned char code ledChar[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; ``` 3. 实现数码管动态显示函数 ```c void display(unsigned char i) { unsigned char j, k; for (j = 0; j < 8; j++) { DIG_PORT = DIG_COM | (1 << j); // 选择数码管位(从左到右) for (k = 0; k < 100; k++); // 延时,视情况可调整 LED_PORT = ledChar[i]; // 显示数码管上的数字或字符 } } ``` 4. 调用数码管动态显示函数 ```c int main() { unsigned char i = 0; while (1) { display(i % 10); // 显示数字 i 的个位数 i++; } return 0; } ``` 以上就是一个简单的数码管动态显示的实现示例。需要注意的是,数码管的控制方式和具体实现方法可能因不同的硬件平台和编程语言而有所不同。因此,在具体应用中需要根据实际情况进行适当的调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nosery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值