1月16日单片机入门学习笔记

背景知识:

1.1 单片机的发展过程
(1)第一阶段(1976一1978)
初级8位单片机
以Intel公司首先推出的MCS-48系列单片机为代表。它以体积小、功能全、价格低等特点,赢得了广泛的应用,成为单片机发展过程中的一个重要阶段。

(2)第二阶段(1978—1982)
高档8位单片机,Intel公司推出了完善、典型的MCS-51单片机系列。

MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。
CPU外围功能单元的集中管理模式。
体现工控特性的位地址空间及位操作方式。
指令系统趋于丰富和完善,增加了许多突出控制功能的指令。例如:位控,乘除等等。
Intel MCS-51系列:

51子系列:8031/8051/8751
52子系列:8032/8052/8752
低功耗型80C31高性能型80C252
廉价型89C2051/1051
(3)第三阶段(1982—1990)
16位单片机,也是单片机向微控制器发展的阶段。

16位单片机Intel MCS-96 系列8098/8096、80C198/80C196

(4)第四阶段(1990之后)
高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。

16位单片机凌阳系列
32位单片机ARM7 、ARM9、ARM10、80960、…….
​ 最具典型代表的应属Intel公司的MCS-51系列单片机。直到现在MCS-51仍不失为单片机中的主流机型。这主要由于在工业控制、智能仪表、家用电器、IC卡等诸多应用领域,8位单片机系列在性能、价格两方面都做到了较好的兼顾。

原文链接:https://blog.csdn.net/m0_52316372/article/details/126092490

入门知识:
1.1 电路
    物理课的电学知识,直流电,交流电,当电路,负载,构成一个回路形成电路
    基尔霍夫电压定律
    基尔霍夫电流定律
    欧姆定律
    功率,体积,功能
    趋势 : 功率越小(越来越省电),体积越小,功能越多,工作电压越低,待机时间长
    CPU : 电压1.2v, 1.1v ,  IO电压为 5V
    
1.2 微器件的出现
    电路的核心:开关控制(用电来控制一个开关开和关,三极管),
    倍率控制(2A的电流-> 200mA,电流控制电流源,电流控制电压源)
    电子管,晶体管,所有元器件的变小,导致集成电路的出现
    
1.3 集成电路的出现
    IC ( Intergrated circuit) 集成电路
    集成电路就是使用微器件为积木搭建具有一定功能的电路板
    加法器,一边输入2,一边输入4 得出结果 6
    然后有了微器件,集成电路的体积变小,一致变小,最后能小到 mm级别和 um级别。
    用炉料外壳封装起来,就行做成了IC芯片。
    芯片也叫(IC,也叫集成电路)其实就是:里边是塑料,外边是绝缘体壳(塑料,聚酯纤维)
    研究芯片,就是研究引脚,设计芯片在设计制造时就已经设计好的!
 

CPU 就是 一块超大规模的集成电路
CPU ( Central Processing Unit ) 中央处理器
CPU = 运算器(逻辑+-x /) + 控制器 (LED的点亮,蜂鸣器的高低电平使其工作)
CPU = ALU (逻辑控制单元) + Cache + BUS (总线)
CPU = 汇编指令+ 寄存器, C语言会变成汇编语言!

DSP: 偏向于运算的CPU , 控制弱
单片机: 控制强,运算弱

CPU的工作原理:CPU通过总线从存储器取出指令到内部,然后编译执行的过程
指令: 指令码 + 数据
对CPU的编程,就是对寄存器的编程!
对单片机变成,就是对CPU写指令序列!

计算机的三大组成部分:CPU , 内部存储器,IO(输入,输出)
触摸屏,鼠标,键盘就是输入,声卡,显示器为输出到设备上
内部存储器:计算机工作时的辅助器件
单片机属于计算机的一种
单片机的结构框图分析(类似下图)
 

画出来的示意图,从结构的角度来讲(Block background), 
方块是组成器件,箭头是表示总线
CPU 处于单片机系统的核心位置,别的模块都通过总线和CPU进行通信,别的模块之间一般
没有总线直接相连,有时候2个互相联系的模块也会有总线直接相连
内部存储器有很多种: SRAM , 闪存 ,DROM
IO 其实就是芯片上的引脚
不同的单片机,IO 的功能不同,IO的数量不同
单片机的这台计算机的所有零部件都做在了IC内部,并出厂的时候都定义好了

MCU(微控制单元),单片微型计算机, 也叫单片机
 

计算机中的存储器分为2种
1.内存:跟cpu接轨比较紧密,内存可以直接被cpu访问,内存可以按照字节的单位来随机访问,
程序运行离不开内存,程序中的变量定义都在内存中的: 容量小(速度快)
2.外存:跟CPU接轨比较远,外存不可以和cpu直接交互,外存一般以块来访问,
不能以字节单位随机访问。(容量大,速度慢)

ROM: Read Only Memory ( 只读存储器 )  ,只能读不能写,实际上世界上不存在只能读不能写的器件,
ROM的这里只读的意思是,程序运行时只能通过程序本身的操作去读而不能写!
单片机用来存储用户烧录的程序固话到单片机里,数据不会丢失
烧录的过程其实就是写ROM的,程序运行的时候不能写ROM
烧录程序通过烧录器实现
Storage: 存储器,用来仓库存储东西
ROM 就有点像外存,计算机有不同的设计
单片机:直接ROM 把程序直接功能CPU运行,不用经过内存

RAM : Read Access Memory ( 随机访问存储器 )
Memory : 也叫存储器,内存
Memory 的种类,SRAM(静态内存) 和 DRAM(动态内存) ,
单片机是:SARM , 嵌入式和PC 是DRAM 

单片机的ROM 是Flash 是闪存。Flash 是一种内存的制作工艺
单片机的RAM 是SRAM
这两个构成了单片机的存储器

ROM  用来存储,运行时从ROM 中读取一条一条的指令运行,指令运行过程中的临时数据放在RAM中
ROM 是放在程序的
RAM 是放数据的
 

CPU,存储器,IO 在工作的时候在干啥
CPU(运算和控制)干活怎么干,放在存储器中,ROM是存程序,RAM是放数据,IO 是输入输出的
统一时钟节拍
什么叫同步? 跑步1212121节拍,好多个独立的部分按照同一个节奏来工作,以此实现配合
什么叫异步?各自干各自的,
单片机的各个模块之间的工作,CPU和存储器和IO和单片机的其他东西这些模块之间,
是通过统一的节拍来同步工作,这个统一的节拍就叫做单片机的始终 
(例如:-_-_-_-_- 高低电平的方式,t1为低电平,t2为高电平 , t1=t2 = 1s 则始终节拍为1秒)
这个时钟节拍对单片机很重要,单片机内部在一个始终节拍中只能做1件事情。
.所以单片机要发现一些变化或者做一些事情,最小的时间单位就是1个时钟节拍。
单片机的时间单位都是时钟节拍的整数倍!
单片机的cpu,存储器,Io等都是以时钟节拍来工作的。 (晶体震荡器 和 晶振电路)就会产生时钟信号。
时钟周期的长短和时钟节拍快慢,影响了单片机的速度,所以这个时钟就叫做单片机的主频!
 

什么叫外设(英文:Peripheral)属于单片机中的模块。
单片机除了cpu,IO,储存器的设备例如:串口控制器
早期的单片机功能很弱小,不具备很多功能,譬如串口通信功能,只能外部扩展一些外部设备结合起来一起工作,这个结合的方式是做到一块电路板上用导线连接起来。
后期集成电路的发展,我们就把一些常用的外设直接集成到单片机内部了。称为内部外设
 

什么是电路板(PCB) printed ciruit borad, 基板的材质一般是FR4(玻璃纤维),
一定要考虑阻燃性,有一些韧性,同时不能导电。
电路是印刷在表面的,PCB版是多层的,一层一层粘起来的,单面板(只有一层),
双面板(2层、4层版,8层,12层),12层,16层已经特别高了!双层和4层多
印刷电路:在不导电的基板上印刷一层导电物质(铜),使用掩模(把电路部分盖住),
放到硫酸和铜就会发生反应,保留下电路部分,最终形成电路板,为了避免外部导电和氧化,
在外部在覆盖一层油墨,覆盖油墨的时候要漏出焊接点(焊接点有2种,一种插针式和贴片式)。
为了方便焊接一般是会做镀锡。
PCB 作用是:骨架和连接;
什么是芯片,里边是半导体电路,外面是塑料绝缘壳,里边的电路通过芯片的引脚接出来,进行通讯,.
和电路板是一样的,只是里边用的都是微器件。
我们总体对一个电子产品设计?芯片+电路板的方式,能做到芯片的尽量往芯片里放,功率大的不能往里放!

文章链接

http://t.csdnimg.cn/75d1E

51单片机

所属系列为8051,即51单片机。8051最开始指在80年代生产的8051内核的单片机。后延伸为只要是8051内核的单片机,都统称为51单片机。

51单片机结构

单片机编程总体原则

1、清晰第一 

清晰性是易于维护、易于重构的程序必需具备的特征。代码首先是给人读的,好的代码应当可以像文章一样发声朗诵出来。

目前软件维护期成本占整个生命周期成本的40%~90%。根据业界经验,维护期变更代码的成本,小型系统是开发期的5倍,大型系统(100万行代码以上)可以达到100倍。业界的调查指出,开发组平均大约一半的人力用于弥补过去的错误,而不是添加新的功能来帮助公司提高竞争力。(代码容易牵一发动全身,尤其是结构不好的代码)

一般情况下,代码的可阅读性高于性能,只有确定性能是瓶颈时,才应该主动优化。

2、简洁为美

简洁就是易于理解并且易于实现。代码越长越难以看懂,也就越容易在修改时引入错误。写的代码越多,意味着出错的地方越多,也就意味着代码的可靠性越低。因此,我们提倡大家通过编写简洁明了的代码来提升代码可靠性。

废弃的代码(没有被调用的函数和全局变量)要及时清除,重复代码应该尽可能提炼成函数。

3、选择合适的风格,与代码原有风格保持一致

产品所有人共同分享同一种风格所带来的好处,远远超出为了统一而付出的代价。在公司已有编码规范的指导下,审慎地编排代码以使代码尽可能清晰,是一项非常重要的技能。 如果重构/ / 修改其他风格的代码时,比较明智的做法是根据现有代码的现有风格继续编写代码,或者使用格式转换工具进行转换成公司内部风格。

原文链接:https://blog.csdn.net/qq_28576837/article/details/125732770

物联沃分享整理
物联沃-IOTWORD物联网 » 1月16日单片机入门学习笔记

发表评论