当前位置:首页 » 编程软件 » 单片机多项子程序编译

单片机多项子程序编译

发布时间: 2022-12-14 22:35:23

① 关于C语言编译C51单片机程序的一点疑问

问题1)你所谓的同时工作是指led亮的同时数码管也在显示,是这样的吗?单片机跑的程序都是单线程的,所以函数可能会受到中断的影响
问题2)理论上,位选和段选是不要求顺序的,如果交换顺序会出现不一样的效果,说明你的程序写的有问题,根据你说的现象,我认为你段选和位选没设置好

② 写单片机程序,变量太多了,无法编译,但是使用的单片机,RAM是很大的,怎么办

加入ABSACC.H头文件,使用XBYTE关键字将部分变量定义到1024字节的XRAM中。
这样你就有1024字节的RAM空间使用了。

③ 单片机:在keil里从新建工程——书写程序——编译——生成HEX文件,步骤是这样的越详细越好!拜托了各位大

第1步:打开Keil uVision2/3

第2步:新建工程
project->new project
将弹出 creat new project框,写入工程名称,例如 test。为了便于集中管理建议新建一个文件夹(上面第二个图标)。
点击确定后 弹出一个芯片选择项,你可以选一个。例如选atmel AT89C51。很多单片机,上面可能没有列举,我们任意选一个即可,51单片机选AT89C51代表即可。
然后 弹出一个框,选择“否”

第3步:新建文件。
file--new
将弹出一个文本框,你可以写入程序。例如
#include <reg51.h>
main()
{
P1=0XAA;
}

然后保存这个文件
file--save
弹出框save as 填写你要保存的文件名。例如main.c。注意一定要带上后缀.c。切记

第4步:加载程序。把我们编写的c文件加载进入
看到左边 source group1,点击右键,选择倒数第四项 “add files....”进入add框,选择你刚才保存的main.c文件,然后add
看到 左边source group1下面是不是加载上main.c了

第5步:编译。
编译前要进行一个重要的操作。生成HEX文件。
右边 target 1 右键弹出框,找到output,再找到creat hex fi:前面复选框选中 OK
开始编译了,
project--build target或者按F7或者看到上面图标(一个图标有两个方向向下的箭头)

编译的时候,你会发现最先面编译结果,0 Errors

恭喜你,你已经成功编译了程序。

打开你先前建立的test文件夹,你会发现有个test.hex文件

记住步骤,慢慢就很熟练了,用快捷方式或图标更方便
祝好

④ 单片机C51程序如何分成好几个.c和.h文件

.c文件是整个程序中的一个或几个函数组成,在别的.C文件里可以调用它,不只是在主函数中。这样做可以增强程序的模块化,提高程序的可读性。当编制好一个模块时你可以保存在一个工程下,文件名改为**.C。这样在另一个.C文件中的文件头处只要你对它进行说明就可以调用它。比如#include
string.c
那么你就可以在你说明了的.C文件中调用它,这样一个模块可以在很多处调用,使得编程复杂度降低。程序编译时把你所说明的文件复制到你调用处程序就可以运行了。
.H文件是对单片机一些端口及一些常用的程序的库说明,
比如我们在程序中用到端口一即P1,我们能够用它是因为在库中已对它进行了说明,对P1赋予了一个端口地址,这样程序编译是才不会出错,不然会提示你UNDIFINED
.C文件一般是自己创建的。而.H文件是系统自带,不过自己也可以创建.H文件,主要对用到的一些标号进行说明,其中也可以包括一些常用的函数
用户自己创建的.C文件是放在工程目录下,.H文件一般放在编译器的某个目录下,程序编译的时候从默认目录中搜索,如果找到则复制到程序开头处。

⑤ 单片机程序是用哪种语言编译的

你要看是哪种呀,我们一般的支持C和汇编,一般我们常见是都是这种。有少数的几个支持C++。
你想知道多一点的话,找几个论坛看看。
目前用于单片机开发的语言有:C,汇编,Basic,其他很少。
作为低级语言,汇编毫无疑问是最适合开发硬件的语言,因为利用生产单片机的厂家提供的指令系统和开发工具能开发出性能最佳的产品。
但是用汇编语言有个前提,你必须是非常熟悉指令系统,但目前来看达到这个程度的人少之又少,所以,一般人都直接采用高级语言开发单片机,这样可以降低开发难度,减少软件失误造成的损失。
C语言移植性非常好,基本上所有单片机都有C语言接口,而一般人只要有C语言基础就能很快上手,开发效率明显高于用汇编语言。所以,如果你是初学者,建议你打好C语言基础。
C++是C的超集,在一定环境下可以代替C语言。由于采用面向对象的设计方法,程序员可以集中精力于单片机的性能而不是单片机的指令流程。这里不是说C语言不如C++,而是说这两种语言不是对立的关系,而是递进的关系。你如果有过开发单片机系统的经验的话,会有很深的感触的。据我所知,AVR单片机的开发环境WINAVR支持C++语言。其他好像有Basic开发的,不过我没用过,不太了解。

⑥ 51单片机程序错误,无法编译怎么搞好STC15F

#include <intrins.h>
添加这个头文件就可以了。因为你用到了
_nop_();
_nop_();这个叫内嵌汇编

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

单片机的内存地址0003H是中断子程序入口,你从000H开始编辑程序,然后接了个SJMP跳转到START,但是你的START程序没有另起地址,假设SJMP是两个字节指令的话,那么你的START程序段的地址就是0003H,把中断子程序入口堵住了,所以你的程序就产生了警告。

热点内容
oracle测试sql 发布:2025-07-08 03:16:54 浏览:973
php壁纸源码 发布:2025-07-08 03:04:26 浏览:320
android应用层 发布:2025-07-08 02:42:32 浏览:301
大唐存储销量 发布:2025-07-08 02:41:11 浏览:582
脚本怎么打开 发布:2025-07-08 02:41:06 浏览:822
贵州电信iPtv升级服务器地址 发布:2025-07-08 02:38:48 浏览:412
电脑怎么链接本地服务器 发布:2025-07-08 02:34:22 浏览:147
android调试webview 发布:2025-07-08 02:26:28 浏览:358
压缩袋鞋子 发布:2025-07-08 02:21:30 浏览:752
为什么安卓打吃鸡感觉有延迟 发布:2025-07-08 02:09:32 浏览:168