keil编译无错误但 生不成hex

DARPOLE EQU 60H
DARSTART EQU 61H
DAREND EQU 67H
INTNUM EQU 68H
BEGIN EQU 6BH
ADSTART BIT P0.0
RS BIT P0.1
RW BIT P0.2
E BIT P0.3
ORG 0000H
SJMP START
ORG 0003H
LJMP INTUSE
START: SETB ADSTART
MOV INTNUM,#00H
MOV IE,#10000001B
MOV SP,#70H
MOV BEGIN,#00H
MOV P2,#01H
CALL ENABLE
MOV P2,#38H
CALL ENABLE
MOV P2,#00001100B
CALL ENABLE
MOV P2,#06H
CALL ENABLE
S1 : MOV P2,#80H
CALL ENABLE
JNB P1.6,S2
MOV DPTR,#TABLE0
CPL P1.4
AJMP S3
S2 : MOV DPTR,#TABLE1
S3 : CALL WRITE1
MOV A,BEGIN
CJNE A,#01H,S1
MOV P2,#0C0H
CALL ENABLE
CALL WRITE2
AJMP S1
ENABLE:CLR RS
CLR RW
SETB E
CALL DELAY
CLR E
RET
WRITE1:MOV R1,#00H
A1: MOV A,R1
MOVC A,@A+DPTR
CJNE A,#00H,A2
RET
A2: CALL WRITE3 ;写到LCD ROM的子程序
INC R1
AJMP A1
WRITE2:MOV R0,#60H ;输出数据的子程序,数据区地址
A3: MOV A,@R0
CALL WRITE3 ;写到LCD ROM的子程序
INC R0
CJNE R0,#DAREND,A3
MOV R0,#60H
RET
WRITE3:MOV P2,A ;写到LCD ROM的子程序
SETB RS
CLR RW
SETB E
CALL DELAY ;延时2.5ms
CLR E
RET
DELAY:MOV R4,#05H ;延时2.5ms子程序
D1: MOV R5,#0FFH
DJNZ R5,$
DJNZ R4,D1
RET

INTUSE: ;中断子程序
CLR EA
PUSH ACC
PUSH PSW
SETB PSW.3 ;切换寄存器组1
MOV A,#00H ;#00H,判断是否首次!
CJNE A,INTNUM,NEXT ;是首次中断吗?非则转NEXT
MOV R0,#DARSTART ;数据区首地址
JB P1.5 ,POL
MOV DARPOLE,#2DH
AJMP K2
POL: MOV DARPOLE,#20H
K2: MOV A,P0
ANL A,#0F0H
SWAP A
ADD A,#30H
MOV @R0,A
INC R0
MOV @R0,#2EH
AJMP RETN
NEXT: MOV A,P0
ANL A,#0F0H
SWAP A
ADD #30H
MOV @R0,A
RETN: INC RO
INC INTNUM
CJNE A,#INTNUM,NEXT1
RETN1: POP PSW
POP ACC
SETB EA
RETI
NEXT1: MOV INTNUM,#00H
MOV BEGIN,#01H
SJMP RETN1
TABLE0:DB 'Over!!!:',00H ;显示字符,00H结束位
TABLE1:DB 'Voltage:',00H ;显示字符,00H结束位
END

是不是没有设置啊!keil默认是不生成HEX文件的

 设置方法:

1、右击Target 1,在出现的下拉选项中,选择“Options for Target 'Target 1'。如图1所示。

2、点选Output选项,从图二中可看到,Create HEX File项前的选框并没选中,因默认情况下编译的时候不生成.HEX烧写文件。

3、选种 Create HEX File,如图3所示。选种后再进行编译,则可生成.HEX烧写文件。

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-22
选择新建工程,然后再左边右键点击目标-->为目标设置选项-->输出-->生成HEX文件 在前面打钩

楼主是不是没有选啊
第2个回答  2010-04-22
有错误,
ss.asm(99): error A38: NUMBER OF OPERANDS DOES NOT MATCH INSTRUCTION
ss.asm(101): error A45: UNDEFINED SYMBOL (PASS-2)

没有错误的程序为什么不能在keil里生成hex文件呢?
你这个问题就是软件没有注册或者破解license。有代码大小限制,一般限定为2K,“LIMIT: 0800H BYTES”,就是跟你讲你的keil限制了代码2K,而“Program Size: data=33.2 xdata=0 code=3187"告诉你的代码有3187字节。所以没有hex。另外注意要勾选Project--Optins for Target--Output--Create HEX File...

请问为什么keil软件中没有错误,但不能编译生成hex文件,当时你是怎么...
这时候就只有一个可能,是你下载到单片机的可执行文件不是最新生成的,可以尝试在下载时重新定位你的可执行文件。比如宏晶单片机在使用串口下载程序时,每次都要重新定位新生成的可执行文件。

keil C 调试程序不能生成.hex文件,编译没有问题,create HEX File已...
没有产生hex文件说明还是有错误 提示写的很清楚 FATAL ERROR L256:致命错误 L256: 模块包含重复的断名 A module contains duplicate segment names. This occurs when the C source contains two identical function names, that differ only in lower\/uppercase letters.这是keil里面帮助文件对这个...

keil编译之后没有错误但是有警告,生成不了hex文件是怎么回事啊_百度知 ...
keil编译要是只有警告是可以生成HEX代码的,可是有错误,最后的一项是错误的。你的keil 安装完了没有破解,所以有2K代码限制,而你程序代码超过2K了。所以不能生成HEX代码。下图画圈一项就是这个错误提示。

请问为什么keil4无法生成HEX文件,编译没出错,勾选了生成设置
亲,你的软件有错误(没有发现那个文件),当然不能生成hex了。http:\/\/www.stmcu.org\/module\/forum\/thread-606003-1-1.html

KEIL生成不了HEX文件。
一、操作系统都会将文件的扩展名隐藏起来,如果没有设置显示扩展名就看不到FUYTF.hex,但一定有FUYTF文件,看有木有。二、如下图,编译时要点右边画红色圈的按钮,才能编译出HEX文件,要点左边的蓝圈的按钮就不生成HEX文件。三、上面两项都试了,还没有,就将Create HEX file的勾打掉,关闭对话框...

keil 不能生成hex
提示已经是一个成员组,表示这个文件已经被包含进去了。你重复操作了。不能生产hex的话可能是别的问题。

keil编译没错,但生成不了HEX文件?
打开注册机 在CID栏填你找到的那个CID 用keil编51 target就选C51,(里面还有ARM。。。) 点generate 就在最下面那个框里生成了一串license id code 把它复制到 点fiel 点license mana~~的new license id code里面去 点add lic 重新打开keil就可以了 ...

请问我用KEIL写了汇编的程序但是编译后只出现了没有错误,没有出现creat...
有个店方需要设置一下:在keil的Project(项目工程)中对其进行如下设置,便能产生hex文件:点击菜单“Option for Tagret '...'” ---> 选择“Output”页--->钩选“Create HEX File”--->重编译就行了

keil编译无错误但 生不成hex
是不是没有设置啊!keil默认是不生成HEX文件的 设置方法:1、右击Target 1,在出现的下拉选项中,选择“Options for Target 'Target 1'。如图1所示。2、点选Output选项,从图二中可看到,Create HEX File项前的选框并没选中,因默认情况下编译的时候不生成.HEX烧写文件。3、选种 Create HEX File,...

相似回答
大家正在搜