单片机程序,程序没问题,编译不出来怎么回事?

KEYEQU30HORG000HSJMPSTARTSTART:MOVP0,#00HJLXU:MOVP1,#0FFHCLRP1.4MOVA,P1ANLA,#0FHXRLA,... KEY EQU 30HORG 000HSJMP STARTSTART:MOV P0,#00HJLXU:MOV P1, #0FFHCLR P1.4MOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY0LCALL DELAY10MSMOV A,P1ANL A,#0FH XRL A,#0FHJZ NOKEY0MOV A,P1ANL A,#0FHCJNE A,#0EH,NEXT1MOV KEY,#0LJMP OK NEXT1:CJNE A,#0DH,NEXT2MOV KEY,#1LJMP OK NEXT2:CJNE A,#0BH,NEXT3MOV KEY,#2LJMP OK NEXT3:CJNE A,#07H,NOKEY0MOV KEY,#3LJMP OK NOKEY0:MOV P1,#0FFHCLR P1.5MOV A,P1ANL A,#0FH XRL A,#0FHJZ NOKEY1 LCALL DELAY10MS MOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY1MOV A,P1 ANL A,#0FH CJNE A,#0EH,NEXT5 MOV KEY,#4LJMP OK NEXT5:CJNE A,#0DH,NEXT6MOV KEY,#5LJMP OK NEXT6:CJNE A,#0BH,NEXT7MOV KEY,#6LJMP OK NEXT7:CJNE A,#07,NOKEY1MOV KEY,#7LJMP OK NOKEY1:MOV P1,#0FFHCLR P1.6MOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY2 LCALL DELAY10MSMOV A,P1ANL A,#0FHXRL A,#0FHJZ NOKEY2MOV A,P1ANL A,#0FH CJNE A,#0EH,NEXT9MOV KEY,#8SJMP OK NEXT9:CJNE A,#0DH,NEXT10MOV KEY,#9SJMP OK NEXT10:CJNE A,#0BH,NEXT11MOV KEY,#10SJMP OK NEXT11:CJNE A,#07,NOKEY2MOV KEY,#11SJMP OKNOKEY2:MOV P1,#0FFHCLR P1.7MOV A,#P1ANL A,#0FHXRL A,#0FHJZ NEXT16 LCALL DELAY10MSMOV A,P1ANL A,#0FHXRL A,#0FHJZ NEXT16MOV A,P1 ANL A,#0FH CJNE A,#0EH,NEXT13MOV KEY,#12SJMP OK NEXT13:CJNE A,#0DH,NEXT14MOV KEY,#13SJMP OKNEXT14:CJNE A,#0BH,NEXT15MOV KEY,#14SJMP OKNEXT15:CJNE A,#07H,NEXT16MOV KEY,#15SJMP OKNEXT16:LJMP JLXUOK:MOV A,KEY MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P0,ALJMP JLXUDELAY10MS:MOV R6,#10D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RET TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HEND 展开
 我来答
天焱玥夜日aa
2023-10-25 · 超过12用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:2.8万
展开全部
根据提供的单片机程序,无法准确判断编译不通过的具体原因,可能存在以下几种可能性:
1. 编译环境配置问题:请确认是否已经正确配置了单片机的编译环境,在编译前需要正确安装并配置相应的开发工具和编译器。
2. 语法错误:程序中可能存在语法错误,比如缺少分号、括号不匹配、变量命名错误等。请仔细检查所有语句和语法规则是否正确。
3. 指令集不匹配:不同型号的单片机可能存在指令集的差异,程序中的指令可能与目标平台的指令集不匹配,导致编译错误。请确保选择的编译器和单片机型号匹配。
4. 链接错误:程序中可能存在跳转目标未定义或者重复定义的问题,导致链接错误。请检查程序中的跳转语句和标签定义是否正确。
建议您逐行检查程序中的语法和指令,并仔细查看编译器的错误提示信息,以便更好地定位和解决问题。另外,如果可以提供更详细的错误信息和编译环境的相关信息,将能更好地帮助解决问题。
做而论道
高能答主

2022-02-07 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
单片机程序,程序没问题,编译不出来怎么回事?
----
那就是“程序有问题”。
你项目中,包含了 startup.a51,这也是一个汇编语言的程序。
你的程序,所储存的地址,与 startup.a51 用的地址,有冲突。
最简单的解决方法,就是从项目中,删除掉 startup.a51。
不删也行。只要把你的程序所用的地址,改一改,即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦落雨深
2019-06-29 · TA获得超过181个赞
知道小有建树答主
回答量:741
采纳率:63%
帮助的人:250万
展开全部
单片机的内存地址0003H是中断子程序入口,你从000H开始编辑程序,然后接了个SJMP跳转到START,但是你的START程序没有另起地址,假设SJMP是两个字节指令的话,那么你的START程序段的地址就是0003H,把中断子程序入口堵住了,所以你的程序就产生了警告。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2019-06-20 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
你的源程序是汇编,所以工程中的startup.a51要去掉。
好好学习天天向上
更多追问追答
追问
您看看我程序里有这个东西吗?
追答
工程中的
工程中的
工程中的
工程中的
搞明白什么叫做工程
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GUEL86
2019-08-21 · TA获得超过5855个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:2703万
展开全部
单片机程序,语法上设问题,你可以换个缟译器试试,用MedWin可以编译通过。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式