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

news2024/12/23 18:04:45

 🌈个人主页:羽晨同学 

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

单片机基础知识入门

常用的单片机封装

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系统中,有单周期指令,双周期指令,四周期指令

位运算左移和右移

x<<n;

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

x>>n;

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

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

#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库函数用法

crol 循环左移,cror 循环右移 
irol int类型,
iror int类型 .
lror long类型
lrol long类型

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

51单片机的io口结构

 

上电默认状态:

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

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

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

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

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

调用百度翻译API遇到的跨域问题解决方案

&#x1f389; 前言 这几天在学习前端的时候需要写一个实例&#xff0c;是关于翻译功能的。于是便想着在网上找一些API看能不能调用。这里遇到一个很坑的问题&#xff0c;就是我在暑假学习的时候曾经调用过心知天气的API、QQ音乐的API和今日头条的API&#xff0c;都未曾遇到过…

RT-DETR改进策略:BackBone改进|Swin Transformer,最强主干改进RT-DETR

摘要 在深度学习与计算机视觉领域,Swin Transformer作为一种强大的视觉Transformer架构,以其卓越的特征提取能力和自注意力机制,正逐步引领着图像识别与检测技术的革新。近期,我们成功地将Swin Transformer引入并深度整合至RT-DERT(一种高效的实时目标检测与识别框架)中…

BSV区块链上的覆盖网络服务现已开放公测

​​发表时间&#xff1a;2024年8月30日 BSV区块链的覆盖网络服务现已正式开放公测。对于BSV区块链生态系统内的特定交易类型和数据管理及访问&#xff0c;覆盖网络服务都可以为它们提供强大、可扩展、并且合规的解决方案。覆盖网络以及其它即将推出的BSV服务将赋予开发者、企业…

文件误删除?助你一键恢复

文件误删除之痛 在日常的数字生活中&#xff0c;文件误删除是许多用户不时会遭遇的“小确丧”。无论是手滑点击了“删除”键&#xff0c;还是系统崩溃导致的文件丢失&#xff0c;这些意外事件总能让人心急如焚。文件误删除不仅可能意味着重要资料的永久消失&#xff0c;还可能…

Linux驱动编程 - platform平台设备驱动总线

目录 简介&#xff1a; 一、初识platform平台设备驱动 1、platform_driver驱动代码框架 2、platform_device设备代码框架 3、测试结果 3.1 Makefile编译 3.2 加载驱动 二、platform框架分析 1、注册platform总线 1.1 创建platform平台总线函数调用流程 1.2 platform_b…

鸿蒙开发之ArkTS 基础三 数组

数组可以存储多个数据 语法为: let 数组名字:数组类型[] [数据一,数据二 ,数据三 ,数据四 ,数据5⃣️] 例如:学生类数组 let students:string[] [小美,小红,小张,小西] console.log("students",students) 输出 小美,小红,小张,小西 这里不需要遍历就能输出内容…

C Primer Plus 第5章习题

你该逆袭了 红色标注的是&#xff1a;错误的答案 蓝色标注的是&#xff1a;正确的答案 绿色标注的是&#xff1a;做题时有疑问的地方 橙色标注的是&#xff1a;答案中需要着重注意的地方 练习题 一、复习题1、2、3、4、错误答案&#xff1a;正确答案&#xff1a; 5、我的答案&a…

十三,Spring Boot 中注入 Servlet,Filter,Listener

十三&#xff0c;Spring Boot 中注入 Servlet&#xff0c;Filter&#xff0c;Listener 文章目录 十三&#xff0c;Spring Boot 中注入 Servlet&#xff0c;Filter&#xff0c;Listener1. 基本介绍2. 第一种方式&#xff1a;使用注解方式注入&#xff1a;Servlet&#xff0c;Fil…

Cobbler 搭建方法

统信服务器操作系统行业版V20-1000c【Cobbler 搭建】手册 统信服务器操作系统行业版 V20版本上Cobbler 搭建方法 文章目录 功能概述一、使用范围二、cobbler工作流程1. Server 端2. Client 端三、 环境准备1. 测试环境告知,以提供配置时参考:2. 关闭防火墙、selinux:3. 注意…

C#学习笔记(三)Visual Studio安装与使用

博主刚开始接触C#&#xff0c;本系列为学习记录&#xff0c;如有错误欢迎各位大佬指正&#xff01;期待互相交流&#xff01; 上一篇文章中安装了Visual Studio Code来编写调试C#程序&#xff0c;但是博主的目标是编写带窗口的应用程序&#xff0c;了解之后发现需要安装Visual …

python-素数对

题目描述 定义两个相差为 2 的素数称为素数对&#xff0c;如 5 和 7,17 和 19 等&#xff0c;要求找出所有两个数均不大于 n 的素数对。输入 一个正整数 n。1≤n≤10000。输出 所有小于等于 n 的素数对。每对素数对输出一行&#xff0c;中间用单个空格隔开。若没有找到任何素数…

VS2019配置TIFF

1.下载 Index of /libtiff/ (osgeo.org) 2.配置 3.使用 4.测试程序 #include <iostream> #include <cstdint> // 包含 stdint.h 头文件 #include "tiffio.h"int main() {std::cout << "Hello World!\n";// 打开一个 TIFF 文件const ch…

06_Python数据类型_元组

Python的基础数据类型 数值类型&#xff1a;整数、浮点数、复数、布尔字符串容器类型&#xff1a;列表、元祖、字典、集合 元组 元组&#xff08;Tuple&#xff09;是一种不可变的序列类型&#xff0c;与列表类似&#xff0c;但有一些关键的区别。本质&#xff1a;只读的列表…

java程序崩了不会看怎么办,那就用jconsole试试

性能监控工具 jconsole JConsole工具是JDK自带的图形化性能监控工具。并通过JConsole工具&#xff0c; 可以查看Java应用程序的运行概况&#xff0c; 监控堆信息、 元空间使用情况及类的加载情况等。 JConsole程序在%JAVA_HOM E%/bin目录下 或者你可以直接在命令行对他进行…

排序算法-交换排序

目录 基本思想 一、冒泡排序 二、快速排序分析 1. hoare版本 2. 挖坑法 3. 前后指针版本 4. 快速排序的优化 三、代码示例 1. hoare版本 2. 挖坑法 3. 前后指针版本 四、快速排序&#xff08;三路划分) 五、总结 基本思想 基本思想&#xff1a;所谓交换&#xff0…

VS Code终端命令执行后老是出现 __vsc_prompt_cmd_original: command not found

VS Code终端命令执行后老是出现 __vsc_prompt_cmd_original: command not found。 如下图&#xff08;vscode终端中&#xff09;&#xff1a; 解决方案&#xff1a; 1、vim ~/.bashrc 2、在~/.bashrc里面加入命令&#xff1a;unset PROMPT_COMMAND 3、source ~/.bashrc

【AI大模型】Kimi API大模型接口实现

一、Kimi大模型概述 Kimi&#xff0c;月之暗面旗下国产大模型。是北京月之暗面科技有限公司&#xff08;Moonshot AI&#xff09;于2023年10月9日推出的一款智能助手&#xff0c;主要应用场景为专业学术论文的翻译和理解、辅助分析法律问题、快速理解API开发文档等&#xff0c…

关于http的206状态码和416状态码的意义、断点续传以及CORS使用Access-Control-Allow-Origin来允许跨域请求

一、关于http的206状态码和416状态码的意义及断点续传 HTTP 2xx范围内的状态码表明客户端发送的请求已经被服务器接受并且被成功处理了,HTTP/1.1 206状态码表示客户端通过发送范围请求头Range抓取到了资源的部分数据&#xff0c;一般用来解决大文件下载问题&#xff0c;一般CDN…

直接的强化学习与间接的强化学习

强化学习是一种机器学习方法&#xff0c;用于让智能体在与环境的交互中学习最优策略&#xff0c;以获得最大的奖励。根据强化学习的方式&#xff0c;可以分为直接强化学习和间接强化学习。直接强化学习注重直接从奖励信号中学习最优策略&#xff0c;而间接强化学习则通过学习环…

【吊打面试官系列-MySQL面试题】MySQL 中有哪几种锁?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL 中有哪几种锁&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; MySQL 中有哪几种锁&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 1、表级锁&#xff1a;开销小&#xff0c;加锁快&…