51单片机工程模板创建方法

前言
本教程将向大家介绍如何使用keil c51 软件以及如何创建51 单片机工程。通过本教程的学习,让大家创建属于自己的51 单片机工程模板,为后面学习51 单片机编程做好铺垫。
一、51 单片机工程模板创建
1.新建工程
首先在电脑任意位置新建一个文件夹,命名为“51 单片机工程模板创建”。
打开keil c51 软件,新建一个工程,工程名根据喜好命名,但是要注意使用英文,如果使用中文名可能会出现一些奇怪的错误,这里我们命名为template,直接保存在刚才创建的“51 单片机工程模板创建”文件夹下。具体
步骤如下:
2.选择cpu 型号
这个根据开发板使用的cpu 具体的型号来选择,我们开发板使用的是stc89c52 或stc89c516 芯片。在keil c51 软件内找不到这种型号的单片机,因为51 内核单片机具有通用性,所以在这里可以任选一款89c52 就行,keil 软件的关键是程序代码的编写,而非用户选择什么硬件,在这里我们选择ateml 的89c52 来说明。具体操作如下:
该对话框内容是提示我们是否要将8051 启动文件添加到工程中,这里我们选择“否”,原因是keil c51 内已经帮我们完成了启动,所以只需要编写应用程序即可。选择“否”后界面如下:
3.给工程添加文件
选择file/new...或者使用工具栏的图标来新建一个文件后点击保存,系统会自动定位到我们工程目录,只需要在文件名栏输入新建的文件名即可,一个51 单片机工程必须含有且仅有一个main 函数,因此将新建的文件命名为main.c(当然也可以根据个人习惯自定义命名,但必须是英文),点击保存。具体操作步骤如下:
然后将新建的main.c 文件添加到工程中,选择工程组“source group 1”,
鼠标右键选择“add files to group ‘source group 1’...”,然后选择对应的xxx.c 文件,点击add 键后在点击close 关闭。这时工程中就显示已加入的文件。具体操作如下:
4.配置魔术棒选项卡
这一步的配置工作非常重要,很多人自己编写程序编译后发现找不到.hex 文件,或者使用我们51 仿真器的时候出现仿真失败,这些问题都是在这个地方没有配置好导致的。
1,选择魔术棒工具的output 选项卡,勾选红色框3,即程序编译成功后会产生hex 文件。具体操作如下:
2,51 仿真器配置,当购买了51 仿真器且你的仿真器安装好驱动并且连接了电脑和板子,那么就可以开始配置。如果使用我们公司的51 仿真器的朋友,相关驱动的安装请查看“1--用户必看4--普中51 仿真器使用说明”教程。
最后点击ok 按钮即可。然后双击工程组中的main.c 文件, 我们输入如下内容:
上图红色标记1 中三个按钮都可以对代码编译,但其功能不同:
第一个:它是编译当前界面所在的一个c 文件。
第二个:联合编译整个工程,发生修改的文件重新编译,并生成可执行文件。
第三个:联合编译整个工程,所有文件都重新编译,并生成可执行文件。
从上面说明可以看出,一般情况下,我们不使用第三个编译按钮,第二个最常用。因为第三个每次都把所有的文件都重新编译,需要消耗大量的时间。当工程比较小的时候,感觉不到,但是工程较大的时候就不行了。
二、reg52.h 头文件介绍
1.头文件作用
在代码中引用头文件,其实际意义就是将这个头文件中的全部内容放到引用头文件的位置处,免去我们每次编写同类程序都要将头文件中的语句重复编写。在代码中加入头文件有两种书写方法,分别为#include 和#includereg52.h,包含头文件时都不需要在后面加分号。两种写法的区别如下:
①当使用包含头文件时,编译器先进入到软件安装文件夹处开始搜索这个头文件,也就是keilc51/c51/inc 这个文件夹下,如果这个文件夹没有引用的头文件,编译器将会报错。
②当使用包含头文件时,编译器先进入到当前工程所在文件夹处开始搜索该头文件,如果当前工程所在文件夹下没有该头文件,编译器将继续回到软件安装文件夹处搜索这个头文件,若找不到该头文件,编译器将报错。
2.头文件内容
打开该头文件查看其内容,将鼠标移动到reg52.h 上,单击右键,选择“open document ”,即可打开该头文件,如下:
以后若需打开工程中的其他头文件,也可采用这种方式,或者将工程编译后,通过右边工程组“+”下拉找到对应头文件,双击打开。如下:
从头文件代码中可以看到,该头文件中定义了52 系列单片机内部所有的功能寄存器,用到了前面讲到的sfr 和sbit 这两个关键字,“sfr p0=0x80;”语句的意义是,把单片机内部地址0x80 处的这个寄存器重新起名叫p0,以后我们在程序中可直接操作p0,就相当于直接对单片机内部的0x80 地址处的寄存器进行操作。通俗点讲就是通过sfr 这个关键字,让keil 编译器在单片机与人之间搭建一条可以进行沟通的桥梁,我们操作的是p0 口,而单片机本身并不知道什么是p0 口,但是它知道它内部地址0x80 是什么东西。说道这我想大家应该明白了,以后凡是编写51 内核单片机程序时,我们再源代码的第一行就可以直接包含该头文件。在上面我们还看到,“sbit cy=psw^7;”语句的意思是,将psw 这个寄存器的最高位重新命名为cy,以后我们要单独操作psw 寄存器的最高位时,便可直接操作cy,其他雷同。

煲仔饭机器人助力抗疫 可无接触全天候供应
智慧工厂谁来做脏活累活
红米Note4x高配版怎么样?看了红米Note4x和红米note4颜值、配置、性能、拍照、续航的不同你就知道
单片机的基本原理及内部构成
“量子点”视觉很玄幻?原来它和你如此贴近
51单片机工程模板创建方法
“生而破界,进击不止”——金泰克品牌全面升级,进击存储新时代
双摄算什么?诺基亚10将配备五个摄像头
通过大数据对AI技术优化并获得成功的关键是什么?
单纤光模块与双纤光模块的区别是什么
谐振电容与滤波电容的区别
新能源汽车的发展方向是纯电动还是氢能源
利用ADS Momentum设计微带天线(Patch Antenna)
智能工厂,造车新势力的终极梦想
路灯节电器 动态节能照明调控装置 节能稳压调压装置 设备选型
vivo Y9s美图鉴赏:独特的外观设计将再次引领行业潮流走向
测评 | 国产“芯” · 瑞芯微 RK3568 性能解析
常用集成电路型号和功能资料
陶瓷管壳:高端半导体元器件内部芯片与外部电路连接的重要桥梁
荣耀路由2S怎么样 值不值得买