step 1:新建一个工程
step 2:选择芯片类型(因为不同芯片包含的函数不一样)
step 3:新建空白文件,然后加入到工程里边
step 4:在空白软件中编写程序
PS:其实也可以先编写再添加,但为了防止忘了保存或者数据丢失,建议新建空文件时就加到工程里去。
首先我们需要在电脑上安装Keil软件,安装好后双击它的快捷方式打开这个软件!
打开软件后,会出现这个页面,这时候就需要我们点击窗口上面的project,然后点击New uvision project新建一个工程文件,在里面需要我们选择芯片,51单片机我们是选择的Atmel里面的AT89c51,这个是很好找的!
选择好芯片后,我们需要保存文件,接着就是写程序了,我们新建一个空白文档,这个是点File下面那个按钮。
在Text中编写自己的程序,我们需要把51单片机的头文件添加上去,这个是#include<reg51h>,写好之后把它保存再添加到工程里,这里需要我们注意,是点project的source group里面的Add Files to…… 这样才不会出错!
接下来检查程序有无问题,如果没有问题,我们可以编译,链接,调试了,这个需要我们生成Hex文件,这样才能放到protues软件中仿真,也可以不用生成Hex文件,而是生成bin文件下载到开发板中
如果程序在编译过程中出现问题,这就说明我们的程序有问题,我们可以去点它的错误提示找到错误语句的位置,然后再去修改,还有我们需要注意程序编译通过,有时候在单片机上运行也不能实现我们希望的结果,所以在编写的过程中我们要认真!
0FFH是8位1啊,就是P3口全为1。因为P3口接8个按钮,要读按纽的状态,即P3口为输入口,所以,要求读之前要全为1。
你是要问这结果是与教程序说的结果相反吗?
这么短的程序也看不懂啊
MAIN: MOV P3,#0FFH ;P3口全为1
LOOP: MOV A,P3 ;读P3口了,并送到A中
MOV P1,A ;把A中的按纽状态送到P1口,控制8个LED灯,对应位的LED就亮了
LJMP LOOP
模块化编程是指将一个庞大的程序划分为若干个功能独立的模块,对各个模块进行独立开发,然后再将这些模块统一合并为一个完整的程序。这是C语言面向过程的编程方法,可以缩短开发周期,提高程序的可读性和可维护性。
在单片机程序里,程序比较小或者功能比较简单的时候,我们不需要采用模块化编程,但是,当程序功能复杂、涉及的资源较多的时候,模块化编程就能体现它的优越性了。如前面我们写过的HT1380驱动程序、独立按键扫描程序和12864程序,每一个程序都是只用一个源文件编写就能完成,但是,当您制作一个12864液晶日历的时候,需要用到HT1380驱动程序、独立按键扫描程序和12864显示程序,如果把这三个程序全部集中在一个源文件里,将导致主体程序臃肿且杂乱,这样做并非不可取,只是降低了程序可读性、可维护性和代码的重用率。如果把这三个程序当做三个独立的模块放到你的主体工程进行模块化编程,效果就不一样了。
实际上,模块化编程就是模块合并的过程,就是建立每个模块的头文件和源文件并将其加入到主体程序的过程。主体程序调用模块的函数是通过包含模块的头文件来实现,模块的头文件和源文件是模块密不可分的两个部分,缺一不可。所以,模块化编程必须提供每个模块的头文件和源文件。下面我们以一个简单的例子(主体程序实现指示灯闪烁,延时模块实现延时功能)来演示模块化编程。
有些程序员为了省事,只建立模块的源文件,不建立头文件,在主体工程里直接将源文件包含进来,建议大家不要采取这样的做法,这是一种不符合C语言标准的做法,是一种冒险方法。只包含一个源文件可能没事,同时包含多个源文件的时候问题就会出现。
要运行Keil编写的程序,首先应该将程序编译,然后下载到单片机中,最后通过烧录器将程序烧录到单片机中,即可运行程序。
拓展:Keil的编译器支持C、C++以及汇编语言,用户可以通过编译器将程序编译成目标文件,并下载到单片机中,最后通过烧录器将目标文件烧录到单片机中,从而实现程序的运行。
首先说明一下KEIL只能编译程序,生成hex文件,它可以检查你的程序是否有语法错误,关于能不能实现你想实现的功能就不能测试了,那样只有把hex文件导入到protel里面的电路仿真中,才能检测你的程序是否跟你想的一样。
KEIL测试你可以先打开keil软件,先新建一个工程,在新建一个文件,把程序写入文件,这时候注意要将文件导入到工程中,要生成hex文件的话,就右键点击工程。选择属性,在里面勾选上生成hex文件
以上就是关于简述用Keil uVision2编写单片机程序步骤全部的内容,包括:简述用Keil uVision2编写单片机程序步骤、keil怎样运行程序、keil程序看不懂等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)