51单片机-系列-单片机基础知识入门&&流水灯

🌈个人主页:羽晨同学

💫个人格言:"成为自己未来的主人~"

单片机基础知识入门

常用的单片机封装

DIP直插

在DIP直插中,我们根据引脚数量的不同分为8P,14P,16P,18P,20P,这些是窄体,除了窄体之外,还有宽体,包括,24P,28P,32P,40P

PLCC

常用单片机的标识解读

我们在这里主要就是讲解一下STC89C51RC/RD+系列单片机的命名规则

需要补充的是 汽车级的工作温度范围是-40℃-125℃,军工级的工作温度范围是-55℃-150℃。

在这个单片中的1325H4W378.90C

中的1325表示的是生产批次号,年/周,用于追溯

90C表示的是版本号

数字电路只有0和1,TTL电平特性

模拟电路中的电压是连续的:0、0.3、1.2、4.5等

数字电路只有两种电平状态,高电平【1】和低电平【0】

在后面的一系列讲解中,我们定义单片机的电源和IO口为TTL电平

高电平【1】+5v,低电平【0】还是0v

RS232电平:计算机的串口,采用负逻辑

高电平【1】 -12V,低电平【0】 +12V

所以计算机和单片机之间的通讯需要加电平转换芯片Max232(开发板上串口旁)

其实,TTL电平是有一定的变化范围的,并不是严格的5V和0V

其实,这张图片可以很好的对这个进行阐释,在TTL特性中,VOH表示的是对外输出高电平的最低值,BIH表述的是输入高电平的最低值,VIL表示输入低电平的最高值,VOL表示输出低电平的最高值。

因为单片机中只有两种电平0和1,所以内部存储,运算都是二进制方式。

单片机中存储数据的最小结构(寄存器)是字节,一个字节等于8个比特

单片机的内部结构和工作原理

  • 内核通过总线从FLASH中读取指令并响应
  • 内核从ram中读取待赋值的值
  • 内核将数据赋值给外设的寄存器
  • 外设根据寄存器的数值转换成高低电平

流水灯

C51中的数据类型

为什么要有数据类型,单片机内部存放临时数据的空间是有限的,而且非常宝贵,用完就没有了,只有512字节

单片机需要提前知道某一个数的大小范围,以方便它提前准备好能足够存放数据的空间,此空间刚好合适,足够放得下是最好的选择,大了浪费,小了不够

流水灯,单片机的机器周期和指令周期

  • 振荡周期: 也称时钟周期,是指为单片机提供时钟脉冲信号的震荡源的周期,学习板上是11.0592MHZ,这个频率的大小和串口通信有关
  • 状态周期,每个状态周期是时钟周期的两倍,是振荡周期经二分频后得到的
  • 机器周期,一个机器周期包含6的状态周期S1-S6,也就是12个时钟周期,在一个机器周期内,CPU可以完成一个独立的操作
  • 指令周期,它是指CPU完成一条指令操作所需的全部时间,每条指令执行时间都是有一个或几个机器周期组成,MC5-51系统中,有单周期指令,双周期指令,四周期指令

位运算左移和右移

cpp 复制代码
x<<n;

把X中的每一位向左平移n位,右位空位补0,左边的移出的数字丢弃。

cpp 复制代码
x>>n;

把x中的每一位向右平移n位,当x为有符号数的时候,左边空位补符号上的值,称为算术移位,当x为无符号数时,左边空位补0,称为逻辑补位,右边移出的数丢弃。

接下来,我们展示一下用位移的形式实现流水灯

cpp 复制代码
#include<stc89c5xrc.h>
#define uint unsigned char
uint a,b,j;
void delay_ms(uint);
void main()
{
	while(1)
	{
		for(j=0;j<8;j++)
		{
			// 00000001
			P2=~(0x01<<j);
			delay_ms(400);
		}
	}
}

void delay_ms(uint c)
{
	for(a=c;a>0;a--)
		for(b=115;b>0;b--);
}

C51库函数用法

cpp 复制代码
crol 循环左移,cror 循环右移 
irol int类型,
iror int类型 .
lror long类型
lrol long类型

循环右移和右移的区别是不一样的,在循环右移当中,移出的会放到后面,而右移会直接删除

51单片机的io口结构

上电默认状态:

O0:开漏输出,需加上上拉电阻才可正常使用

P1-3:标准输入输出模式,弱上拉模式

IO口一般只有三种状态,高电平,低电平,高阻态,高电平是1,低电平是0,高阻态是不知道什么状态,没有办法使用。

锁存,LE分为0和1,1是全通,0是锁存上次的信号

好了,本次的文章就到这里了,我们下次再见。

相关推荐
Zhao1368245539122 分钟前
DP4330A 与DP4363 测试对比
嵌入式硬件
辛迪聊物业数字化27 分钟前
智慧社区小程序落地避坑指南:3类物业方案选型+成本测算,线上服务零翻车
大数据·嵌入式硬件·百度·系统架构
电子科技圈1 小时前
Arm电机控制开发工具哪家强?
arm开发·单片机·嵌入式硬件·设计模式·软件构建
JasmineX-11 小时前
下位机直接控制57步进电机匀速转动
stm32·单片机·嵌入式硬件
聆思科技AI芯片2 小时前
【AI硬件开发上手教程】怎么使用AI编程实现小聆AI语音控制舵机
人工智能·嵌入式硬件·开源·ai编程·智能硬件
abc light2 小时前
ARM 裸机开发(6)——时钟树与定时器
arm开发·单片机·fpga开发
吠品12 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
Chery114013 小时前
高速ADC与精密DAC怎么选?DP9230D与DP8532D应用解析
嵌入式硬件·物联网·射频工程
小李不想当小白16 小时前
SPI通信外设与W25Q64 (硬件SPI)(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
LCG米16 小时前
STM32驱动W5500以太网模块实测:TCP吞吐瓶颈定位、TX指针回绕陷阱与断线重连保活落地
stm32·单片机·嵌入式硬件·tcp/ip