keil中如何让汇编语言生成hex文件
;********************遥控车控制程序 R_MAIN ******************
;程序名:遥控车控制程序 R_MAIN PM3_4_1.asm
;程序功能:初始化设置、等待中断
ORG 0000H
LJMP R_MAIN
ORG 0003H
LJMP INPUT0
R_MIAN: MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#00H
SETB EA ;允许外申请中断
SETB EX0
SETB IT0 ;下降沿申请中断有效
SJMP $
;********************中断服务子程序 INPUT0******************
;程序名:中断服务子程序INPUT0
;程序功能:接受遥控编码、解码、控制小车运行状态
;入口条件:P3.2
;出口参数:P3.4~P3.7
INPUT0: CLR EA
PUSH ACC
PUSH PSW
LCALL IR ;调用解码子程序
MOV A,33H ;取按键号
CJNE A,#11H,$ +9 ;与设定的功能键号比较
LCALL GO ;调用控制小车前进子程序
LJMP BACK
CJNE A,#19H,$ +9
LCALL STOP ;调用控制小车停止程序
LJMP BACK
CJNE A,#16H,$ +9 ;与设定功能键值比较
LCALL RZ ;调用控制小车右转子程序
LJMP BACK
CJNE A,#14H,$ +6
LCALL LZ ;调用控制小车左转子程序
BACK: MOV 30H,#00H ;清除遥控值单元,使连按失效
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#00H
POP PSW
POP ACC
SETB EA
RETI
GO: SETB P3.4 ;前进控制子程序
CLR P3.5
CLR P3.7
SETB P3.6
RET
STOP: CLR P3.4 ;停止控制子程序
CLR P3.5
CLR P3.7
CLR P3.6
RZ: SETB P3.4 ;右转控制子程序,停止右边的电机
CLR P3.5
CLR P3.7
CLR P3.6
RET
LZ: CLR P3.4 ;左转控制子程序,停止左边的电机
CLR P3.5
SETB P3.7
CLR P3.6
RET
;********************** 红外遥控解码子程序 IR *************************
;程序名:红外遥控解码子程序 IR
;程序功能:对接收编码进行解码,获取键号
;入口条件:P3.2
;出口参数:33H
IR: MOV R6,#10 ;9ms引导码低电平状态查询次数
IR_T9: LCALL DELAY882 ;调用882us延时子程序
JB P3.2,IR_ERROR
DJNZ R6,IR_T9
JNB P3.2,$
ACALL DELAY2400
JNB P3.2,IR_GOTO
LCALL DELAY2400
;******************* 读取数字信号 ***************************
MOV R1,#30H
MOV R2,#4
IR_32B: MOV R3,#8
IR_8B: JNB P3.2,$
LCALL DELAY882
MOV C,P3.2
JNC IR_0_1
LCALL DELAY1000
IR_0_1: MOV A.@R1
RRC A
MOV @R1,A
DJNZ R3,IR_8B
INC R1
DJNZ R2,IR_32B
;************************** 数字信号识别与判断 *****************
IR_GOTO:MOV A,30H
CJNE A,#BF00H,IR_ERROR
MOV A,31H
CJNE A,#BF00H,IR_ERROR
MOV A,32H
CPL A
CJNE A,33H,IR_ERROR
RET
IR_ERROR:MOV 33H,#0FFH
RET
;************************** 882us延时子程序 ***************************
DELAY882:MOV R7,#202
TIM0: NOP
NOP
DJNZ R7,TIM
RET
;************************** 1000us延时子程序 ***********************
DELAY1000:MOV R7,#229
TIM1: NOP
NOP
DJNZ R7,TIM1
RET
;************************** 2400us延时子程序 **************************
DELAY2400:MOV R7,#245
TIM2: NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,TIM2
RET
END
编译时出现这个错误:
*** FATAL ERROR L210: I/O ERROR NO INPUT FILE:
EXCEPTION 0021H: PATH OR FILE NOT FOUD
FILE: TEXT1.obj
Target not created 展开
1、首先需要打开keil,点击菜单栏上的project,选择open project。
2、打开想要生成hex文件的工程文件。
3、点击如下图所示的图标,会弹出一个设置窗口。
4、下图中的标注的位置是修改晶振的,如果你的晶振是12mhz,就把这里改成12。
5、点击设置界面上方的菜单栏,选择output,如下图标注。在勾选下图横线标注的地方点击确定。
6、依次点击下图红笔标注的三个按钮,分别是编译、构建、再次构建;一般只需要点击前两个按钮即可。
7、点击后,可以在下部的信息栏看到,create hex,已经创建了hex文件。
2023-08-23 广告
keil中让汇编语言生成hex文件,需要正确建立工程,在工程中设置,具体方法如下:
首先,在你的磁盘上新建工程文件目录(如test),在工程目录下创建Project、Source、Output、Listing和Readme 这5个文件夹,并在文件夹Readme下创建Readme.txt 文件。这样做的目的是为了增强工程文件的可读性及结构化,便于维护和管理。
Project存放工程文件
Source存放用户编写的c文件及h头文件
Output 存放各种输出文件,如hex文件
Listing存放编译过程中产生的各种中间文件
Readme存放工程项目的说明文件
然后进行以下步骤:
(1)启动软件Keil μVision,点击工具栏上的Project,选择NewμVision Project,新建test工程到目录Project下。
(2)选择目标器件,点击“OK”确认。
(3)出现是否添加启动文件到工程中对话框,选择否。
(4)目标选项设置,点击target option工具进入选项配置界面。
(5)选中Target项,根据实际情况设置晶振频率。
(6)选中output选项,点击“Select Folder for Objects…”选择工程目录下的Output文件夹,将“Create HEX File”勾选中。
(7)选中Listing选项,点击“Select Folder for Listings…”选择工程目录下的Listing文件夹。
(8)最后点击“OK”保存各选项的设置,至此完成Target Option的配置。
(9)新建1个文本文件在工程目录的Source文件下,并将你的程序代码复制粘贴到该文件中,命名为main.ASM存盘。右击“Source Group1”选择“Add Existing Flies to Group ‘Source Group1’”,将以上新建文件添加到工程中。
至此,就完成整个keil工程的创建。
工程 ---- 目标“target1"属性 --- 输出 ------ “生成 HEX文件”
这个我知道,但编译时出现这个错误:
*** FATAL ERROR L210: I/O ERROR NO INPUT FILE:
EXCEPTION 0021H: PATH OR FILE NOT FOUD
FILE: TEXT1.obj
Target not created
你可以试一试一个没问题的程序生成HEX文件看看,如果还有问题就重装keil试一试了