在测试c语言单片机程序的时候,发现在main函数的执行之前,有很长的一段时间的延时,单片机在这段时间在做什么?进行了一下分析,得到结论如下:
C程序
#include
sbit p1_7=P1^7;
void interrupt0() interrupt 0 using 2
{
p1_7=!p1_7;
}
void main()
{
EA=1;
IT0=1;
EX0=1;
p1_7=0;
do{}while(1);
}
生成的机器码:
:03000300020006F2 中断入口
:03000600B297327C 中断程序
:0B000900D2AFD288D2A8C29780FE229E main函数
:03000000020014E7 程序的起始
:0C001400787FE4F6D8FD75810702000932
:00000001FF
下面分析一下,机器码:0B000900D2AFD288D2A8C29780FE229E这一段就是main()内部的内容,我们发现还有一段代码,这段代码的执行是在main函数的前面,而在main函数执行之前,又执行了什么操作呢?
对:0C001400787FE4F6D8FD75810702000932这段代码进行反汇编
MOV R0,7FH
CLR A
LOOP: MOV @R0,A
DJNZ R0,LOOP
MOV 81H,07H
LJMP 0009H
就会发现这段代码的作用实际上在main()函数执行前,把256B的ram区全清空,根据这个可以判断单片机是硬起动还是软件复位。
关键字:单片机 C程序 main函数
引用地址:
单片机C程序main函数之前做了什么
推荐阅读最新更新时间:2024-03-16 15:32
一种高精度超声波测距系统研究
0 引言 随着科学技术的快速发展,超声波在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,超声波测距还是一个正在蓬勃发展而又有无限前景的技术及产业领域。为了能顺利地完成汽车的停放,应用测距电路能更准确、即时地得到汽车与障碍物的距离。 智能机器人进入人们的家庭不再是科幻片里面的情节,现在已经有很多机器人开始普及,如智能清洁机器人、智能防盗机器人等。而这些机器人是需要感觉周围的环境来做出判断的,测距系统就能发挥很大的作用。因此,设计高稳定性、高精度的超声波测距仪就显得特别重要。 1 超声波测距原理 和蝙蝠探测障碍物的方法一样,用超声波测距时,先由超声波测距仪向前方发射超声波,超声
[单片机]
具有DSP功能的16位微控制器80296SA
摘要: 80296SA是INTEL公司推出的带有DSP功能的16位微控制器,很适合于应用在需要进行数字信号处理的场合。文中介绍了80296SA的特性以及它特有的DSP功能。并给出80296SA在有关测控系统的CPU板上的应用实例。
关键词: DSP 微控制器 测控系统 80296SA
X86改变了处理器的设计。现在INTEL又将这一技术应用于16位微控制器80196系列之中,并开发了新一代的单片机80296SA.它结合了80196的基本结果以及一个具有指令流水线的RISC技术,并经过重新设计和产生而成。该器件在许多方面有重大改进,因而使它在性能上更加适合于嵌入式测控系统的应用。
1 性
[嵌入式]
stm32单片机oled显示程序 带浮点数显示
单片机源程序如下: // 文 件 名 : OLED // 版 本 号 : 2017521 // 功能描述 :在OLED上显示信息 // 接法说明: // ---------------------------------------------------------------- // OLED接法 // // GND 电源地 // VCC 接5V或3.3v电源 // CLK 接PD9(SCL) // MOSI 接PD7(SDA) // RES 接PD4 // DC 接PD5
[单片机]
少走弯路,PIC单片机中断总结
PIC单片机有多个中断源,16系列只有一个中断入口,18系列有两个中断入口,不同编译器下书写格式又不大一样。网上资源千篇一律,也不够系统,只是简单的罗列程序,代码生存的环境不一样也少有说明。在此做个简单的总结,因为又走了弯路... 1.先说18系列(MCC18编译器下): MPLAB C18不自动把中断服务程序放在中端向量处。通常将GOTO指令放在中断向量处,从而把控制权转交给相应中断服务程序。 void low_isr(void); void high_isr(void); *****************************低级中断入口及服务子程序***************************
[单片机]
基于单片机的倒车防撞预警系统设计和实现
0 引 言 汽车倒车防撞预警系统即是俗称的倒车雷达,是汽车泊车辅助装置。在汽车倒车时,倒车雷达采用超声波测距原理探测汽车尾部离障碍物的距离,当汽车尾部离障碍物的距离达到探测范围时,倒车雷达通过数码管实时动态显示距离。当汽车尾部离障碍物的距离达到设定的安全警告值时,倒车雷达发出报警声,以警示驾驶员,辅助驾驶员安全倒车。现在生产的中高档小轿车大多数都配置有倒车雷达,而出于节省成本等方面的考虑,经济型小轿车、大客车等其他车辆都没有配置倒车雷达。有市场需求的产品,必然会带动产品的开发设计。倒车雷达电路种类较多,本文介绍基于单片机控制的倒车雷达系统,该系统采用通用型单片机作为控制电路,方便系统功能扩展。系统电路主要采用集成器件构成,外围
[单片机]
AT89S52单片机对太阳能发电系统参数测试仪的设计
引 言 为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使用,又能安装在发电系统中,具有较高的实用价值。 1 硬件电路设计 1.1 总体结构 该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过RS485总线与PC机进行通信,将参数值传送
[单片机]
80C51单片机的引脚功能基础详解
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图 P0.0 ~ P0.7: P0口8位双向口线。 P1.0 ~ P1.7 :P1口8位双向口线。 P2.0 ~ P2.7 :P2口8位双向口线。 P3.0 ~ P3.7 :P3口8位双向口线。 ALE:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 PSEN:外部程序存储器读选通信号。在读外部ROM时,PSEN有效(低电平),以实现外部ROM单元的读操
[单片机]
51单片机控制P2口8位LED灯左移C语言程序
此 程序控制 P2.0~P2.7口8个LED(P2.0~P2.7)灯逐个依次点这,又从(P2.7~P2.0)这样的顺序一直到全部被点亮。 #include reg52.h //头文件 void delay(unsigned int x)//延时函数 { while(x--); } void main(void) { unsigned char i;//定义一个无符号字型局部变量i取值范围0~255 delay(50000); P2=0xfe; for(i=0;i 8;i++)//加入for循环,表明for循环大括号中程序循环执行8次 { delay(50000);//调用延时函数,更
[单片机]