当前位置: 首页 > news >正文

51单片机入门

单片机:

微型计算机

单片机最小系统:电源,晶振,复位电路

操作单片机的思路:

1.硬件原理部分 
  //搞清楚,电路的基本链接  ---找到要控制的引脚   

//(1).要控制哪些引脚 
//(2).这些引脚控制成什么状态 

2.编程

实际上就是控制引脚的高低来操作CPU,进而控制各个部件

头文件(.h)写法

1.ifndef与define,头文件的名字一般为原文件的.c变.h,在头文件中说明是.变为_,名字大写,且开头和结尾再写一个_

2.写该头文件对应的源文件所包含的库

3.写该文件中供调用的函数,并加上extern

#ifndef _LED_H_
#define _LED_H_#include "reg51.h" //led.c 用的 //函数声明 -- 主要是给调用者来用的 
extern void ledOnAll(void); 
extern void ledOffAll(void);
extern void ledOnN(unsigned int n);
extern void ledOffN(unsigned int n);
#endif 

三极管作用

1.将微弱的电信号转化为幅值较大的电信号

2.开关

三极管如何判断(箭头方向代表导通后电流方向,p->positive,n->negative,用这个方法确定基级(集电极和发射级在导通后没有电势差,因此必为多的那个级,基级为中间,npn,基级为p))

中断:

中断概念:
  在执行一个任务的过程中,被另外一任务打断,
  处理玩这个中断后,返回来继续原先的任务

中断源,//引发中断原因,或者认为是发出中断请求信号的来源
中断服务程序,
中断点
中断优先级  //多个中断同时来了 
中断的嵌套  //arm中不使用,仅了解

注意:

1. 中断是cpu提供的一个功能部件 。//用的时候需要开启这项功能 

51单片机的3类信号源:

(1)外部中断
   外部中断0
   外部中断1 
(2)定时器中断
   定时器0
   定时器1 
(3)uart串口中断

操作思路:

//中断功能部件 

//1.通过芯片手册,了解该功能部件 
//2.最终搞清楚
     需要使用到哪些寄存器 
     以及寄存器中的哪些位 
     及这些位需要设置陈哥什么值 

中断号:

其中断函数的入口地址放在寄存器中,且是一块连续的空间,类似指针数组:

串口通信:

数据传输方式角度划分:

一位一位给数据 --- 串行通信
一次性多位数据给到 --- 并行通信

 串行特点:
   电路简单,节省硬件资源 
   效率低 

   传输距离可以很长

 并行特点:
   电路要复杂一些,硬件资源使用要多一些 
   效率高

   传输距离短

数据传输时工作模式角度划分:

--单工,半双工,全双工

单工:只能A给B发,应用:广播,GPS

半双工:某一时刻,只能有一端收,一端发,应用:对讲机

全双工:同时收发,应用:手机

注:

全双工必须要有两条线路,单工和半双工一条线路即可

根据使用是否使用同一时钟划分:

--异步,同步通信

同步通信:通过相同的时钟频率传输

异步通信:规定传输速率(比特率)进行传输

同步通信与异步通信的区别:

(1)同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。

(2)同步通信效率高;异步通信效率较低。

(3)同步通信较复杂,双方时钟的允许误差较小;异步通信简单,双方时钟可允许一定误差。

(4)同步通信可用于点对多点;异步通信只适用于点对点。


  

相关文章:

  • AWS无服务器 应用程序开发—第三章 后端服务(AWS AppSync)
  • 秋招突击——6/16——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}
  • 信用VS抵押:贷款的两面镜子
  • Linux(Centos7)OpenSSH漏洞修复,升级最新openssh-9.7p1
  • 英语恶补ing
  • MAP REDUCE
  • vue3的基本使用方法
  • “Jedis与Redis整合指南:实现高效的Java应用与Redis交互“
  • 示例:WPF中TreeView自定义TreeNode泛型绑定对象来实现级联勾选
  • 【PB案例学习笔记】-22制作一个语音朗读金额小应用
  • 持续学习的综述: 理论、方法与应用
  • ssldump一键分析网络流量(KALI工具系列二十二)
  • webClient + fastJSON2 获取json格式的数据,同时解析至java class 并 下划线转驼峰
  • 34.extern C的作用
  • 【读博日记】拓扑结构(待修正)
  • CentOS 7 修改主机名
  • Java知识点总结(JavaIO-打印流)
  • jquery ajax学习笔记
  • js写一个简单的选项卡
  • node.js
  • Selenium实战教程系列(二)---元素定位
  • ⭐ Unity + OpenCV 实现实时图像识别与叠加效果
  • Vue2 SSR 的优化之旅
  • 记一次删除Git记录中的大文件的过程
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 使用putty远程连接linux
  • 世界上最简单的无等待算法(getAndIncrement)
  • 一个SAP顾问在美国的这些年
  • 找一份好的前端工作,起点很重要
  • ​flutter 代码混淆
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (09)Hive——CTE 公共表达式
  • (12)Hive调优——count distinct去重优化
  • (23)Linux的软硬连接
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (剑指Offer)面试题34:丑数
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (学习日记)2024.01.09
  • (一)Docker基本介绍
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)Scala的“=”符号简介
  • (转)大型网站架构演变和知识体系
  • .Family_物联网
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET 8.0 发布到 IIS
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .Net多线程总结
  • .net反混淆脱壳工具de4dot的使用
  • /etc/fstab 只读无法修改的解决办法
  • [ C++ ] STL---string类的模拟实现
  • [20140403]查询是否产生日志