这个纯粹是个人爱好。现在系统的UI的做得越来越好,但还是莫名的喜欢那个命令行,算是种怀旧吧。
再次声明:该举动仅为个人爱好而已
虽然是手动编译,但还是需要个keil安装后的环境。
详细步骤:
1.用记事本或者notepad++编写超简单的代码
例如:
#include
sbit L1 = P1^2;
void main()
{
L1 = 0;
while(1);
}
保存为test.c
这个源码最好建立到keilC51BIN目录下,避免敲过多的路径。
2.cmd 下进入keil 安装目录 keilC51BIN
执行如下命令:
c51x test.c
lx51 test.obj TO test.abs
ohx51 test.abs
注意“ohx51”是字母“o”。然后看看当前目录下有没有hex文件,呵呵
我用STC89C52测试的流水灯成功了。大的没试,不知道效果如何。
还有就是针对多个文件的操作。
源码是必须的。假设有两个源码文件 example.c sexample.c 。分别用c51x生成obj文件
操作为:
c51x example.c
c51x sexample.c
然后再用lx51.这里是个关键,因为有两个文件。网上也有因吐槽keil的代码编辑不方便,转而在VS2010写C51代码的,但是配置好后却发现只能对一个文件进行编译,无法对多个文件进行编译。这个地方就是关键。我在网上找到的配置方法,对lx51的参数是这么写的:
$(ItemDir)$(ItemFileName).obj TO $(ItemDir)$(ItemFileName).abs
看起来没问题,但估计是传递参数的时候,没有把所有的obj文件名传递,所以出问题了。这个可以手动试试。操作如下:
lx51 example.obj sexample.obj To hello.abs
最后一步自然是生成hex文件
ohx51 hello.abs
烧录试试吧:)
参考帖子:
在vs2010里面编辑keil代码的问题
http://bbs.csdn.net/topics/380233788?page=1
关键字:c51 hex文件
引用地址:
手动编译链接生成c51的hex文件
推荐阅读最新更新时间:2024-11-05 17:14
基于C51单片机的MP3播放器设计
0 引言 便携式MP3播放器作为一种集音频播放、数据存储为一身的数码产品,其功能结构为电子设计人员所津津乐道。MP3是MPEG一1音频III(1ayerIII)的简称。MPEG一1音频(ISO/IECll 172—3)是目前普遍应用的音频压缩标准,其中层III的算法最为复杂,但压缩比最大,效果也最好,在低码率的条件下基本能达到CD的音质效果。MP3标准用尽可能低的码流实现CD音质的声音而不会产生数据损失。如果对于一段声音不进行压缩的话,那么每存储一秒钟的立体声CD音质音乐必须用1.4Mbit,这是个十分大的开销。通过运用MPEG音频标准的压缩技术,我们可以把存储空间压缩到原来的1/12而不会降低声音的音质。即使使用1/24的压
[单片机]
C51 中data, idata, xdata, pdata, code的作用
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器。片内程序存储器还分为直接寻址区和间接寻址区。 data:将数据存储在0x00 - 0x7f的128B的RAM空间,可以用acc直接读写,速度最快,生成的代码也最少。 idata:将数据存储在0x00 - 0xff的256B的RAM空间,与data的区别在于访问方式不同,idata数据需要通过间接方式访问。 xdata:将数据存储在外部0x0000 - 0xffff RAM空间,用DPTR访问。 pdata:将数据存储在外部扩展RAM的低256字节空间。 code:将数据存储在ROM区域。 bdata:C51自定义语句,非标准
[单片机]
单片机c语言教程:C51常量
上一篇学习了 KEIL c 单片机c语言 编译器所支持的数据类型。而这些c51数据类型又是怎么用在常量和变量的定义中的呢?又有什么要注意的吗?常量就是在程序运行过程中不能改变值的量,而变量是能在程序运行过程中不断变化的量。变量的定义能使用所有c51编译器支持的数据类型,而常量的数据类型只有整型、浮点型、字符型、字符串型和位标量。这一篇学习常量定义和使用方法,而下一篇则学习单片机c语言的变量。 常量的数据类型说明是这样的 1. 整型常量能表示为十进制如 123,0,-89 等。十六进制则以 0x 开头如 0x34,-0x3B 等。长整型就在数字后面加字母 L,如 104L,034L,0xF340 等。 2. 浮点型常量可分为
[单片机]
c51单片机第一课笔记
1,串口 并口的区别 串行接口,简称串口,也就是COM接口,是采用串行通信协议的扩展接口。串口的出现是在1980年前后,数据传输率是115kbps~230kbps,串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备,目前部分新主板已开始取消该接口。 并行接口,简称并口,也就是LPT接口,是采用并行通信协议的扩展接口。并口的数据传输率比串口快8倍,标准并口的数据传输率为1Mbps,一般用来连接打印机、扫描仪等。所以并口又被称为打印口。 2什么是下拉电阻 什么是上拉电阻分别的作用。 3 ttl电平 5型号介绍 stc89c52 40c-pdip 0721cv4336 c 是指cmos 52 51 55 52 2x4k
[单片机]
一种基于C51的多任务机制及应用
摘要: 本文介绍了一种在MCS51单片机程序中实现多任务机制的简单方法,并给出了源代码和一个应用实例。通过中断进行实时任务切换,具有结构简单清晰、代码量少、不需使用汇编等优点。该方法亦可应用于其他单片机系统。 关键词 :多任务系统 单片机 C51 中断 安防系统 引言 传统的单片机程序一般采用单任务机制,单任务系统具有简单直观、易于控制的优点。然而由于程序只能按顺序依次执行,缺乏灵活性,只能使用中断函数实时地处理一些较短的任务,在较复杂的应用中使用极为不便。嵌入式多任务操作系统的出现解决了这个问题。在多任务系统中,可以同时执行多个并行任务,任务之间可以相互跳转。但是嵌入式操作系统在提供强大功能的同时,也带来了代码量大、结构复
[单片机]
《初学者C51自学笔记》之LED1602
上两图对应的; 如想要在00位置上显示,则指令码为(0x80+0x00或0x80) #include reg52.h #define uchar unsigned char #define uint unsigned int sbit rs=P2^4; sbit rw=P2^5; sbit e=P2^6; uchar table1 = www.csdn.net ; uchar table2 = LCD1602 test ok! ; //延时函数,在12MHz的晶振频率下 //大约50us的延时 void delay_50us(uint t) { uchar j; for(;t
[单片机]
Keil C51的代码效率
C51程序编译生成汇编代码的效率,是由许多因素共同决定的,对于Keil C51,主要受以下两种因素影响: 第一节 存储模式的影响 存储模式决定了缺省变量的存储空间,而访问各空间变量的汇编代码的繁简程度决定了代码率的高低。 例如:一个整形变量i,如放于内存18H、19H空间,则++i的操作编译成四条语句: INC 0x19 MOV A,0x19 JNZ 0x272D INC 0x18 0x272D: 而如果放于外存空间0000H、0001H则++i的操作编译成九条语句: MOV DPTR,0001 MOVX A,@ DPTR INC A MOVX @ DPTR,A JNz #5
[单片机]