问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

求一段单片机的启动程序,我想看看是什么格式的?

发布网友 发布时间:2022-11-27 08:29

我来回答

2个回答

热心网友 时间:2023-10-15 14:03

如需要STM32的请说明,以下是51单片机的启动程序:
$NOMOD51
;------------------------------------------------------------------------------
; This file is part of the C51 Compiler package
; Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
;------------------------------------------------------------------------------
; STARTUP.A51: This code is executed after processor reset.
;
; To translate this file use A51 with the following invocation:
;
; A51 STARTUP.A51
;
; To link the modified STARTUP.OBJ file to your application use the following
; BL51 invocation:
;
; BL51 <your object file list>, STARTUP.OBJ <controls>
;
;------------------------------------------------------------------------------
;
; User-defined Power-On Initialization of Memory
;
; With the following EQU statements the initialization of memory
; at processor reset can be defined:
;
; ; the absolute start-address of IDATA memory is always 0
IDATALEN EQU 80H ; the length of IDATA memory in bytes.
;
XDATASTART EQU 0H ; the absolute start-address of XDATA memory
XDATALEN EQU 0H ; the length of XDATA memory in bytes.
;
PDATASTART EQU 0H ; the absolute start-address of PDATA memory
PDATALEN EQU 0H ; the length of PDATA memory in bytes.
;
; Notes: The IDATA space overlaps physically the DATA and BIT areas of the
; 8051 CPU. At minimum the memory space occupied from the C51
; run-time routines must be set to zero.
;------------------------------------------------------------------------------
;
; Reentrant Stack Initilization
;
; The following EQU statements define the stack pointer for reentrant
; functions and initialized it:
;
; Stack Space for reentrant functions in the SMALL model.
IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
IBPSTACKTOP EQU 0FFH+1 ; set top of stack to highest location+1.
;
; Stack Space for reentrant functions in the LARGE model.
XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
XBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.
;
; Stack Space for reentrant functions in the COMPACT model.
PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
PBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.
;
;------------------------------------------------------------------------------
;
; Page Definition for Using the Compact Model with 64 KByte xdata RAM
;
; The following EQU statements define the xdata page used for pdata
; variables. The EQU PPAGE must conform with the PPAGE control used
; in the linker invocation.
;
PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
;
PPAGE EQU 0 ; define PPAGE number.
;
PPAGE_SFR DATA 0A0H ; SFR that supplies uppermost address byte
; (most 8051 variants use P2 as uppermost address byte)
;
;------------------------------------------------------------------------------

; Standard SFR Symbols
ACC DATA 0E0H
B DATA 0F0H
SP DATA 81H
DPL DATA 82H
DPH DATA 83H

NAME ?C_STARTUP

?C_C51STARTUP SEGMENT CODE
?STACK SEGMENT IDATA

RSEG ?STACK
DS 1

EXTRN CODE (?C_START)
PUBLIC ?C_STARTUP

CSEG AT 0
?C_STARTUP: LJMP STARTUP1

RSEG ?C_C51STARTUP

STARTUP1:

IF IDATALEN <> 0
MOV R0,#IDATALEN - 1
CLR A
IDATALOOP: MOV @R0,A
DJNZ R0,IDATALOOP
ENDIF

IF XDATALEN <> 0
MOV DPTR,#XDATASTART
MOV R7,#LOW (XDATALEN)
IF (LOW (XDATALEN)) <> 0
MOV R6,#(HIGH (XDATALEN)) +1
ELSE
MOV R6,#HIGH (XDATALEN)
ENDIF
CLR A
XDATALOOP: MOVX @DPTR,A
INC DPTR
DJNZ R7,XDATALOOP
DJNZ R6,XDATALOOP
ENDIF

IF PPAGEENABLE <> 0
MOV PPAGE_SFR,#PPAGE
ENDIF

IF PDATALEN <> 0
MOV R0,#LOW (PDATASTART)
MOV R7,#LOW (PDATALEN)
CLR A
PDATALOOP: MOVX @R0,A
INC R0
DJNZ R7,PDATALOOP
ENDIF

IF IBPSTACK <> 0
EXTRN DATA (?C_IBP)

MOV ?C_IBP,#LOW IBPSTACKTOP
ENDIF

IF XBPSTACK <> 0
EXTRN DATA (?C_XBP)

MOV ?C_XBP,#HIGH XBPSTACKTOP
MOV ?C_XBP+1,#LOW XBPSTACKTOP
ENDIF

IF PBPSTACK <> 0
EXTRN DATA (?C_PBP)
MOV ?C_PBP,#LOW PBPSTACKTOP
ENDIF

MOV SP,#?STACK-1
; This code is required if you use L51_BANK.A51 with Banking Mode 4
; EXTRN CODE (?B_SWITCH0)
; CALL ?B_SWITCH0 ; init bank mechanism to code bank 0
LJMP ?C_START

END

热心网友 时间:2023-10-15 14:04

什么叫启动程序?指的是给单片机上电后,单片机能运转的程序吗?如果是的话,这是一段51单片机流水灯的程序。

#include<reg51.h>
void delay(long int t)
{
 long int i,j,k;
 for(i=0;i<t;i++)
 {
  for(j=0;j<10;j++)
  {
   for(k=0;k<100;k++)
   {
    ;
   }
  }
  }
}
void main()  //假设低电平有效
{
 int i=0,temp;
 while(1)
 {
  temp=0xFF;
  for(i=0;i<9;i++)
  {
   delay(50);  //延时500ms
   P0=temp;
   temp<<=1;
  }
 }
}

追问嗯

单片机程序的大小是看是什么文件的大小?后缀是什么?

烧到单片机里的程序后缀是 .hex 其实不用担心写的程序过大,用Keil来写单片机程序,先选定单片机种类,写的程序如果大了,编译的时候会有警告的。

别人已经在单片机内写好程序,我该如何去看呢?需要用什么软件呢?

一般单片机程序都是加密的,需要读出来必须先解密,有专门解密的厂家。读出来之后也是16进制的机器码。虽然现在反汇编软件很多。但是把机器码反汇编之后,内容很乱,不容易读懂。如果你想抄袭别人的产品,破解完直接写进去就算了。如果想学习,还是自己查查资料,按照他的功能,自己写 ...

单片机程序大小是看生成的HEX文件的大小还是看KEIL编译结束后显示的CO...

是看CODE的大小,而且这个大小是十进制的,也是烧进单片机内占用内存多少的数据。

这个单片机程序是什么意思?说的不具体的话就不用说了,程序每一步我能...

TAB:DB 3FH,06H,5BH,4FH,5BH,6DH,7DH ; 显示 段码表 为共阴码 0 - 6 MIMS:MOV R4,#250 ; 延时程序 DJNZ R4,RET DISP:MOV R0,#40H ; R0 指向显示 数据 存储器 MOV R2,#01H ; 从第一位开始 显示 DIS:MOV DPTR,#8002H ; 显示器位码地址 MOV A,...

求高手帮忙看一段单片机的C程序

void adc_isr() interrupt 5 using 1 { ADC_CONTR &amp;= !ADC_FLAG;switch(ADC_RES/25) //10 路开关分成10分 // 低两位可以不要 ADC_LOW2 这里不涉及精度只需要判断在那个范围内即可 { case 1:P3=0x03;P2=0xff;led1=0;break;case 2: P3=0x03;P2=0xff;led2=0;break;case 3:P3...

求看单片机程序,运行的时候只能运行数码管,波形产生不了。求帮忙!程序...

求看单片机程序,运行的时候只能运行数码管,波形产生不了。求帮忙!程序如下: 10 #include&lt;reg52.h&gt;#include&lt;intrins.h&gt;#defineucharunsignedchar#defineuintunsignedint/*波形产生部分*/sbitfup=P2^0;sbitfdown=P2^1;sbitfb=P2^2;sbitsinb=P2^3;sbitjcb=P2^4;sbitt... #include&lt;reg52.h&gt; #include&lt;...

看到一段AVR单片机的程序,那个什么|=(1&lt;&lt;1),(1&lt;&lt;0),(1&lt;&lt;2)是什么意思...

设置某一位而已,1&lt;&lt;1,就是bit1,1&lt;&lt;0,就是bit0~

单片机的启动代码start.s,汇编写的,并没有说地址是在什么位置,怎么可以...

他是你设置的一个定时时间,时间到了就去执行,第二种情况:是你疑惑中断代码,启动代码在整个程序中的位置问题,关于这个我想说在程序开始之前,汇编语言一般都会有 0X00H是程序起始地址,0X08H是中断向量.我不能很理解你的意思,所以,只能说这些,希望对你有帮助!

单片机,C语言写的一小段程序,高手帮看看

这是一个简单的流水灯实验,前面的void delay(uint)是一个函数申明,你这一段里面没有给delay函数,给的程序不够清晰。如果是延迟100ms的话,delay函数应该是这样的:void delay(unsigned int x){ unsigned int i,j;for( i =0;i &lt; x;i++ ){ for( j =0;j&lt;3;j++ );} } 给定delay(...

单片机hex文件怎样读出程序

hex文件是不能直接读出程序的。这是ASCII码形式的二进制代码文件,是看不懂的。但可以用反汇编软件,反汇编出来汇编程序来。就可以修改了。如果你不懂汇编程序就更看不明白了。也只能做到这些了。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
“天地存肝胆,江山阅鬓华”出自什么作品中 天地存肝胆,江山阅鬓华这两句表达了作者怎样的思想感情??速度 我的qq空间使用代码后,原来的东西找不到了,现在怎么样才可以和恢复呀/... 装扮qq空间的时候,为什么大图的代码会跳到另一个网站上,请具体说明,再... ...现在在浏览器中输入代码后就转成网页了,现在怎么换皮肤啊?_百度知 ... ...一复制免费的播放器代码 页面就跳转到别的网站了 在QQ空间的地址栏上黏贴上导航代码后,怎么网页变成了?? QQ空间里的植物花匠代码输进去按回车键后跳到另外一个网址上了... QQ空间免费播放器代码输入以后跳到另一个网址。不能保存了。怎么弄 ...将代码放入地址栏里的时候摁回车键的时候却跳到了另外一个网站... 32寸统帅液晶电视色彩不正 统帅32寸智能电视怎么连网 统帅32寸电视指时灯亮红蓝黑屏 统帅32寸液晶电视有声音.灰屏 统帅32寸液晶电视二次开机时而能开时而不能开 下载酷狗音乐怎么成了今日头条 酷狗音乐能下载信息吗 最漂亮的拳法 李小龙武术实力到底有多强?1967年实战视频流出,出拳快到模糊 为什么一打开百度视频就是中国功夫视频怎么调回 中国功夫以一敌百虐韩棒子跆拳道这个视频是哪部电影?那部电影叫什么名字? 屠洪刚的中国功夫mtv视频里面练的是那个套路是什么拳? 【可复制的沟通力:樊登的10堂表达课】全书复盘及星级推荐 樊登读书会训练营复盘总结 劳动者违反保密义务会承担什么责任? chanel鹅卵石护手霜测评 格调颜值都在线的护手霜 护手霜什么好用 好用不贵的护手霜 哪种护手霜比较香?香气四溢的小众护手霜盘点 女士护手霜什么牌子好 好用滋润的护手霜推荐 失恋的句子有哪些 A股仿制药企业 能做仿制药的都有很大潜力 上海徐家汇的太平洋有一家女装店那,是GO打头的,貌似有4个字母,是什么品牌??? go开头的自行车品牌 本兮的音乐品牌 GO!GO!是什么意思?为什么叫品牌? 三查三评个人自查报告 党建中的三述一会内容是什么 长城m2有水箱导流板怎样安装 牛角扣大衣配什么裤子?教你穿出最美学院风 双面呢大衣会掉毛吗?双面呢大衣掉毛怎么办? 三个骆驼的标志是真的吗 有人吃过楠火锅吗? 有人知道楠火锅吗?好吃吗 蓝色大衣怎么搭配衣服 这6种穿搭非常适合冬天穿 通信与信息系统(移动通信方向), 微电子与固体电子(ic设计) 哪个就业前景好??谢谢 笛奴羊绒大衣是品牌吗 适马(SIGMA)微距全画幅镜头怎么样 什么是全程微距 海尔42寸4k智能有语音的电视多少钱 谁知道海尔智能电视LD58H9000现在大概多少钱? 海尔智能阿里云3代电视多少钱
  • 焦点

最新推荐

猜你喜欢

热门推荐