A. 什么是单片机
单片机的几部份
一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中 ,连连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很 多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各 器件之间的工作必须相互协调?所以就需要的连线就很多了,如果仍如同模拟电路一样 ,在各微处理器和各器件间单独连线线,则线的数量将多得惊人,所以在微处理机中引 入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线 上,即相当于各个器件并联起来,但仅这样还不行,如果有两?器件同时送出数据,一 个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是是不允许的,所以 要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有 多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称 控制 总线。
在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配 地址,才能 用,分配地址当?也是以电信号的形?给出的,由于存储单元比较多,所以 ,用于地址分的线也较多,这些线被称为地址总线。
二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的—数字,或者说都是?串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据 。指令由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的 一一对应关,不可以由 单片机的开发者更改。地址:是寻找单片机内部、外部的存储 单元、输入输出口的依据,内 单元的地址值已由芯?设计者规定好,不可更改,外部的 单元可以由单片机开发者自行决,但有一些地址单元是一定要有的(详见程序的执行过 程)。数据:这是由微处理机处理的 象,在各种 不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:
1地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。
2方式字或控制字(如MOV TMOD,#3),3即是控制字。
3常数(如MOV TH0,#10H)10H即定时常数。
4实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗, 则执 兄 令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实 际?出的值。 理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指 令来 行了。
三、P0口、P2口和P3的第二功能用法 初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间 要有个切换的过程,或者说要有一条指令,事实?,各端口的第二功能完全是自动?,不需要?指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口 时,它们挥作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从 P3. 或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能?而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条S ETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会 这么做,因为这通常这会导致系统当溃(即死机)。
四、程序的执行过程 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000?,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’?个单元,并且在‘0000’单元中存放的一定是一条指令。
五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的 一?份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且 堆栈有特 的数据传输指令,即‘PUSH’和甈OP’,有一个特殊的专为其服务的单元,即堆栈指 针SP 每当执一次 PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原 来值基础上)?动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP值,就可以把堆栈设置在规定的内存单元中,如在程序开始时?用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这 么?条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元 开始往后?8H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成 数?的浑乱。不? 作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问 题。当设置好堆栈区?,并不意味着该区域成为一种专用内存,它还是可以象普通内存 区域一样使用,只是一般情 下编程者不会把它当成?通内存用了。
六、单片机的开发过程 这里所说的开发过程并不是一般书中所说的从任务分析开始,我们假设已设计并制作好 硬件下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实?这些 常?、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其 地址也就确定了,当 器件的功能被确定下来后,其控制字也就被确定了。然后用文本编缉器(如EDIT、CCED 等)写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简 单?程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后, 就可以写(将程序固 化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够 识别种格式的文件,只要将此文件调入即可写片。在此,为使大家对整个过程有个认识,举 一?说明: ORG 0000H LJMP START ORG 040H START: MOV SP,#5FH ;设堆栈 LOOP: NOP LJMP LOOP ;循环 END
B. 单片机的开关检测电路
外信号通过P2连接器引入OPEN1信号,从OP端有个上拉电阻R8来看,OPEN1信号有两种状态,一是低电平状态,一是开路(或者高阻)状态;
当输入低电平时,OP就是低电平,当输入高阻态时,因为有上拉电阻R8的作用,使得OP得到高电平(接近Vdd);
单片机就可以通过OP的电平状态来判断OPEN1的姿态了;
C. 单片机说明中 OTP ROM = 1KW (KW是什么单位) OP/CP 是什么
K是千的意思.
W是字长word的意思. word是存储单位, 单片机不同,word可能不同,一般是10~16bit
1KW合起来就了1000字长
D. 什么叫单片机
单片机的名词解析我就不多说了,我说说它的结构吧
目前市面上单片机分几种51系列(8位,最早被开发的系列)、AVR、PIC、ARM系列
51系列的典型实例就是80C51了,不过由于它不具备在线编程能力,已经淘汰,取而代之的是89S51,它内部集成了运算器、存储器、输入输出单元,具有典型的冯诺依曼结构,简单的说,它就是一台微型计算机,我们常称之为微处理器(MCU)。
AVR单片机是ATmega公司推出的,具有哈佛结构的单片机,它具有预取值的功能,教传统单片机来说,各个性能上都有所提升。
ARM则是新时代的产物,由于人们生活对处理器要求越来越高,对速度以及存储容量还有片上外设要求越来越高,51等8位单片机已经远不能满足了,ARM公司推出的处理器核心,ARM系列处理器,被众多的芯片制造商认可,并在ARM核心的基础上加上了诸如AD转换器,DMA控制器,串口,USB,网口,SD卡读取接口,摄像头接口等外设,设计并制造了许多优秀的ARM处理芯片,被广泛应用与军事航天等领域。我们生活中用的手机,里面的主控CPU就是单片机,U盘里面有单片机,数码相机等,几乎无处不在。
硬件设计工程师通过编写单片机程序,对单片机的各种外设和寄存器进行操作,实现对单片机的控制,一般说来,单片机是可以烧写程序的,也存在一次性烧写的单片机。
差不多了吧,我想你应该了解了
E. 单片机OP I/T O/T分别表示什么意思
通过配置选项或者寄存器选项来配置。在规格书的下方有标识。望采纳
F. 单片机里面的OP_OSC是什么啊。在程序里面怎么去改动。
这个应该是类似其它MCU的熔丝位(fuse), 不是在程序代码里面的, 而是在烧写程序的时候设置的一些选项. 你看看你的烧写(下载)程序的界面里面有没有相关的内容让你设定.
G. 51单片机是指什么
单片机又称MCU,微处理器,可以以用户编写的代码实现高稳定运行而不需要人为监控,多用于控制,显示,数字模拟信号处理!
创客学院介绍51是单片机的一种,51说的是单片机的内核,例如8051、STC都是51内核的不同系列单片机!当然除了51内核的还有其他的比如:arm,avr、PIC等!
while(--time);
指的是:time按指令周期递减,直到time递减到0,然后跳出while循环往下运行后面的指令,while(--time);也可用于延时,延时时间为 t=time*机器周期!
H. 单片机中 #define OP10(bit) if (bit) {P10=1;} else {P10=0;} 是什么意思
意思是:如果编程时写了“OP10(bit)”,那么就等于在这里写了“if (bit) {P10=1;} else {P10=0;}”,这是为了方便编写程序的方法。例如,我写“#define long 10”,而在程序中写:
if(a==long){....}else{...}
if(b==long){....}else{...}
if(c==long){....}else{...}
if(d==long){....}else{...}
if(e==long){....}else{...}
如果这个程序有问题,long应该等于8,那么我将”#define long 10“改为“#define long 8”,只用改一个地方,是不是很方便?
还是不懂你试试改下面的程序:
if(a==10){....}else{...}
if(b==10){....}else{...}
if(c==10){....}else{...}
if(d==10){....}else{...}
if(e==10){....}else{...}
I. PID调整中 P i D 各代表什么(详细) P值设大后, OP输出是增大还是减小啊
PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。
P值设大后, OP输出是增大的。
1、比例P控制
比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。
2、积分I控制
为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。
这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
3、微分D控制
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。
解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。
所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
(9)单片机OP扩展阅读:
PID的用途:
PID用途广泛、使用灵活,已有系列化产品,使用中只需设定三个参数(Kp,Ti和Td)即可。在很多情况下,并不一定需要全部三个单元,可以取其中的一到两个单元,但比例控制单元是必不可少的。
首先,PID应用范围广。虽然很多工业过程是非线性或时变的,但通过对其简化可以变成基本线性和动态特性不随时间变化的系统,这样PID就可控制了。
其次,PID参数较易整定。也就是,PID参数Kp,Ti和Td可以根据过程的动态特性及时整定。如果过程的动态特性变化,例如可能由负载的变化引起系统动态特性变化,PID参数就可以重新整定。
第三,PID控制器在实践中也不断的得到改进
PID在控制非线性、时变、耦合及参数和结构不确定的复杂过程时,工作得不是太好。最重要的是,如果PID控制器不能控制复杂过程,无论怎么调参数都没用。
虽然有这些缺点,但简单的PID控制器有时却是最好的控制器。