Ⅰ 简述51单片机程序加载步骤
但编辑程序在加载的时候,它的步骤其实非常简单,这个你可以直接按一下它的加载按钮。
Ⅱ 单片机上电时内部各个存储器状态
首先单片机复位也分别几种:掉电再通电,按复位按钮,程序复位,通过外部接口复位。
各芯片的复位电路大同小异,这里以51系列单片机为例,上电后,保持RST一段高电平时间,就能达到上电复位的操作目的。
常见的复位电路如下:
1.掉电再通电,这里就视为冷启动吧
这种情况下单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,特殊功能寄存器复位后的状态为确定值,具体可参考相应单片机的说明书。
2.按复位按钮
这种情况下单片机的复位操作也会使程序计数器PC=0000H,程序重新从 0000H 地址执行,但是与第1种情况不同的是,片内RAM为复位前的状态值,也就是说,运行中的复位操作不改变片内RAM区中的内容。而特殊功能寄存器复位后的状态为确定值,具体可参考相应单片机的说明书。
51单片机复位后特殊功能寄存器的初始值
特殊功能寄存器 初始值 特殊功能寄存器 初始值
ACC 00H TCON 00H
B 00H TMOD 00H
PSW 00H TL0 00H
SP 07H TH0 00H
DPTR 0000H TL1 00H
P0~P3 FFH TH1 00H
PCON 0XXX 0000B T2CON 00H
AUXR XXX0 0XX0B T2MOD XXXX XX00B
AUXR1 XXXX XXX0B RCAP2L 00H
IE 0X00 0000B RCAP2H 00H
IP XX00 0000B TL2 00H
SCON 00H TH2 00H
SBUF XXXX XXXXXB WDTRST XXXX XXXXB
表中部分符号的含义如下:
PSW=00H:表明复位后自动选择第0组工作寄存器组为当前工作寄存器组
SP=07H:表明堆栈指针指向片内RAM07H单元,堆栈的压入操作为先加后压,所以第一个被压入的数据存放在08H单元中
P0~P3=FFH:表明各端口写入1,此时各端口既可作输入口,也可以作输出口
AUXR=XXX0 0XX0:表明ALE引脚在CPU不访问外部存储器期间有脉冲信号输出
AUXR1=XXXX XXX0:表明选择DPTR0作数据指针
IE=00H:表明各中断均关闭
TCON=00H:表明T0,T1 均被停止
SCON=00H:表明串口处于方式0,允许发送,不允许接收
PCON=00H:表明SMOD=0,波特率不加倍。PD=0,IDL=0,单片机处于正常工作方式。
3.程序复位
这种情况下单片机的复位操作由程序内部控制,功能要视乎程序的编写。例如我们可以操作使程序计数器PC=0000H,同时
添加RAM初始化程序,清0或置1,同时设置某些特殊寄存器的值,或者其他操作,总之这是一种软件操控的复位,功能可灵活控制。
4.外部接口复位待研究。
P.S.
1.什么是冷启动?热启动呢?
冷启动就是在不加电的情况下启动系统,热启动就是在加电的情况下重启系统!
例子:
冷启动是之直接按下电源开关启动计算机。
热启动是之在已开机的状态下在开始菜单中选择重新启动计算机,这叫做热启动。
Ⅲ 单片机程序加载不进去什么原因
1:软件没有设置好!具体怎么设置,请提供单片机类型和下载软件
2:硬件电路问题,比如跳帽的连接,或者一些故障!
Ⅳ c51单片机复位电路的工作原理
如S22复位键按下时:RST经1k电阻接VCC,获得10k电阻上所分得电压,形成高电平,进入“复位状态”
当S22复位键断开时:RST经10k电阻接地,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作
(4)单片机加载态扩展阅读:
复位电路是一种用来使电路恢复到起始状态的电路设备,它的操作原理与计算器有着异曲同工之妙,只是启动原理和手段有所不同。复位电路,就是利用它把电路恢复到起始状态。就像计算器的清零按钮的作用一样,以便回到原始状态,重新进行计算。
和计算器清零按钮有所不同的是,复位电路启动的手段有所不同。一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行。复位电路都是比较简单的大都是只有电阻和电容组合就可以办到了,再复杂点就有三极管等配合程序来进行了。
单片机复位电路主要有四种类型:
(1)微分型复位电路:
(2)积分型复位电路:
(3)比较器型复位电路:
比较器型复位电路的基本原理。上电复位时,由于组成了一个RC低通网络,所以比较器的正相输入端的电压比负相端输入电压延迟一定时间.而比较器的负相端网络的时间常数远远小于正相端RC网络的时间常数。
因此在正端电压还没有超过负端电压时,比较器输出低电平,经反相器后产生高电平.复位脉冲的宽度主要取决于正常电压上升的速度.由于负端电压放电回路时间常数较大,因此对电源电压的波动不敏感.但是容易产生以下二种不利现象:
(1)电源二次开关间隔太短时,复位不可靠:
(2)当电源电压中有浪涌现象时,可能在浪涌消失后不能产生复位脉冲。
为此,将改进比较器重定电路,如图9所示.这个改进电路可以消除第一种现象,并减少第二种现象的产生.为了彻底消除这二种现象,可以利用数字逻辑的方法和比较器配合,设计的比较器重定电路。此电路稍加改进即可作为上电复位和看门狗复位电路共同复位的电路,大大提高了复位的可靠性。
Ⅳ 单片机有哪几种工作状态
单片机有哪几种?
好多好多种。
Ⅵ 单片机有几种输出状态是非高即低吗
单片机输出口有三种状态:高,低,高阻。可以使用两个输出口完成这个功能。
Ⅶ 51单片机状态字寄存器如何使用
在单片机中状态寄存器PSW是一个用了比较多的寄存器,除了D1位空着外,其它的7位都要使用,其中D7位Cy,是进(借)位位,当做加法或减法时,进位标志和借位标志都是由它来表示.当位和位之间相互传送时也不能少了它,必须要经它中转.
D6位Ac位是辅助进位标志,当做加法或减法时由第四位向第五位进位或借位时,它会被置1.它也用于十进制调整(DA
A).
D5位是用户标志位,当程序因某种原因"跑偏"后,用户可以用它来标志程序该从哪儿开始执行.不重复已经执行过的指令.
D4、D3位合在一块儿,指明工作寄存器的组别,这主要用于比较复杂一些的程序,R0组寄存器不够用的情况下用到R1、R2、R3组的寄存器时要用到这二位。
D2位OV是溢出标志,当运算的结果超出-127~+128时它会置1,表示运算出错。
D0位是奇偶标志位,它随时随地都在检测A累加器中“1”的奇偶。当奇数时置“1”反之,清零。这一功能主要用与发送数据时,作奇偶校验,可以防止传输出错。
一般编程中用的最多的是Cy位,对应的指令是JC,JNC
Ⅷ 什么是引导程序加载器为什么单片机上会有有什么用
实际上就是Bootloader,
1,自启动模式:在这种模式下,bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。
2,交互模式:在这种模式下,目标机上的bootloader将通过串口或网络等通行手段从开发主机(Host)上下载内核映像等到RAM中。可以被bootloader写到目标机上的固态存储煤质中,或者直接进入系统的引导。也可以通过串口接收用户的命令。
Ⅸ 单片机中如何使用状态寄存器STATUS
很少直接读取、判断,一般都通过间隔的方式在用,而且用的很频繁。
加法、进位是最典型的。大于一个字长的加法指令,低位字加法直接加,之后的字,都需要用带进位的加法,这个进位,就是存在状态寄存器中,用户不需要判断这个进位标志。由加法指令直接产生,带进位加法指令使用。同样,减法、乘法、除法,以及各种运算指令都会根据设定的规则去影响不同的标志位,这些标志位都存在状态寄存器。
另外,条件跳转的跳转条件判断,实际上就是判断各种状态位的状态,比如如果a大于b则跳转,实际上就是先执行a-b,根据结果设置进位,然后根据进位是否置位来跳转。一般,进位标志置位,说明有借位,即a小于b,如果无进位标志,则说明 a大于等于b。
其他还有一些标志,表示CPU当前状态的,需要具体的芯片具体的分析了。
结论,如果不使用汇编语言编程,状态寄存器了解一下就可以,大部分的细节都是在自动运转的,用户不需要很明白。如果用汇编,那要看每条指令的时候,一定要看清楚,它是怎么根据结果设置状态寄存器的,指令手册里面都会列出来的。