Keil5新建51单片机demo工程模板

news2024/12/23 10:20:30

51单片机新建工程使用到的软件有keil5,首先安装好keil5软件,安装教程在:【Keil(C51)介绍、下载、安装、注册与2个补丁】Keil(C51)介绍、下载、安装与2个补丁_西晋的no1的博客-CSDN博客

一、新建一个空工程

1.创建一个新的文件夹存放工程

一个单片机工程中会有很多个文件,因此新建工程时首先在电脑的某个路径下新建一个文件夹,然后与此工程相关的所有文件都放在此文件夹下,是一个很好地习惯,也是一种默认的规范。我直接在桌面上新建一个文件夹,命名为Demo。

【注意】对单片机工程的文件及文件夹的命名时,最好不要出现非英文字符,这样可避免编程及调试中可能出现的奇怪的问题。

2.打开keil5,选择 Project】 -> New Vision Project】

3.出现如下对话框,选择刚建立的文件夹打开

4.为工程命名(如:Demo),保存类型保持默认(为:.uvproj),最后点击【保存】

5.选择单片机芯片类型

选择自己单片机芯片对应的型号,具体自己看自己单片机上芯片写的是什么型号,选好后点击【OK】。

下图是选择AT89C51芯片的步骤

下图是选择STC89C52芯片的步骤

6.自动弹出对话框,选择【是】或者【否】都可以,我这里选择的是【是】

7.进行完上面的操作后,最初的Demo文件夹下已经有如下的三个文件,且工程栏已有工程及启动文件(对照下图确认一下操作是否有误,文件名自己任意命名,文件数和文件类型要和下图标记一致):

一个空的工程就建立好了,但是它还缺少一些配置和文件

二、设置keil输出HEX文件

hex文件是我们需要下载到单片机的东西,但是keil默认不生成。

点击魔法棒,选择【Output】,勾选【Create HEX File】,点击【ok】。退出keil,重新编译一下程序,工程下就会出现HEX后缀的烧写文件。

三、添加文件

上述在一个空的工程中进行了一些配置,接下来增加文件。

我们发现它并没有一个c语言程序应该有的man.c文件,我们需要自己写一个。

1.点击下图标出的图标(或者快捷键Ctrl + N),新建一个文件

2.点击下图标出的图标(或者快捷键Ctrl + S),保存当前打开的文件

3.上一步操作后出现如下对话框,如图将文件名命名为【main.c】(文件名任意,后缀名必须是.c),最后单击保存。

4.将源代码文件【main.c】添加到工程中

keil中的文件不会自动添加到编译选项中,所以需要自行添加。

若新建了一个源代码文件,但是没有将源代码文件添加到工程中,此时这个源代码文件可以理解为是独立于项目而存在的,和项目还没有关系,下面我们需要将这个源代码文件添加到工程中,具体步骤如下:

1)在左侧工程栏【Target1】文件夹上单击右键,选择【Manage Project Items…】

2)出现如下图对话框,然后按照下图中标出的顺序进行操作

3)添加完成,左侧工程栏就有了源代码文件【main.c

四、源代码编写和编译

1.在源代码文件【main.c】中写入一个c程序,然后点击保存图标(或者快捷键Ctrl + S)

本文主要讲新建工程的步骤,这里就直接复制一段单片机最简单的一个实验—点亮LED的代码了,大家可以直接复制下面代码到源代码文件【main.c】中。

#include<reg51.h>
#define uint unsigned int
void main()
{
	uint n=5000;
	while(1)   
	{	
		P1=0xfe;
		while(n--);
		P1=0xff;
		while(n--);
	}
}

2.点击重新编译,编译整个工程

3.编译后,0错误0警告,编译成功,且生成了hex文件(十六进制文件,这个文件是用来往开发板中下载并让开发板运行的文件,因此这个文件是我们必须要生成的)

五、打开keil工程文件

用keil5软件打开后缀名为.uvproj的文件,即可打开工程文件

六、总结

不同的单片机型号的工程模板是不一样的,当然创建一个单片机工程模板后也,同一型号的单片机工程也就无需重新新建工程了。

本文仅叙述了新建一个简单的工程模板并生成hex文件;但是没有讲述如何使用hex文件,使用hex文件不是本文的重点,本文暂时忽略,后续文章再详细叙述。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/757945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【QT】——基础窗口类QMainWindow

目录 1.概念 2.菜单栏——QMenuBar 3.工具栏 添加QAction 工具栏属性设置 5.状态栏——QStatusBar 6 停靠窗口 属性设置 1.概念 QMainWindow 是标准基础窗口中结构最复杂的窗口&#xff0c;QMainWindow继承QWidget&#xff0c;他在QWidget的基础上提供了菜单栏&#…

网络编程 socket

目录 网络编程 套接字&#xff08;socket&#xff09;1. 认识端口号2. TCP协议3. UDP协议4. 网络字节序列5. 常见的套接字6. socket编程接口6.1 socket常见APIsocket函数recvfrom函数sendto函数read函数 从tcp socket中读取接收数据 6.2 sockaddr结构6.3 地址转换函数6.4 udp s…

input输入日期时间,自动格式化组件/工具

input输入日期时间&#xff0c;自动格式化组件/工具 组件/工具使用说明 只能输入日期时间&#xff0c;不能选择日期时间格式 yyyy-MM-dd HH:mm:ss基于VUE框架输入效果见下图 组件/工具解决的痛点 组件库日期时间组件&#xff0c;选日期时间很花时间 例如想快速得到 2021-1…

OJ练习第137题——有序链表转换二叉搜索树

有序链表转换二叉搜索树 力扣链接&#xff1a;109. 有序链表转换二叉搜索树 题目描述 给定一个单链表的头节点 head &#xff0c;其中的元素 按升序排序 &#xff0c;将其转换为高度平衡的二叉搜索树。 本题中&#xff0c;一个高度平衡二叉树是指一个二叉树每个节点 的左右…

[golang gin框架] 40.Gin商城项目-微服务实战之Captcha验证码微服务

本次内容需要 gin框架基础知识, golang微服务基础知识才能更好理解 一.Captcha验证码功能引入 在前面,讲解了微服务的架构等,这里,来讲解前面商城项目的 Captcha验证码 微服务 ,captcha验证码功能在前台,后端 都要用到 ,可以把它 抽离出来 ,做成微服务功能 编辑 编辑 这个验证码…

MySQL 第七天作业 nosql作业

作业一&#xff1a;string list hash结构中&#xff0c;每个至少完成5个命令&#xff0c;包含插入 修改 删除 查询&#xff0c;list 和hash还需要增加遍历的操作命令 1、 string类型数据的命令操作&#xff1a; &#xff08;1&#xff09; 设置键值&#xff1a; set key1 re…

C++基础与深度解析01——函数基本组成+函数传参的三种方法

0.前期准备 请安装Visual Studio 并学习基本的新建项目、新建CPP文件以及运行代码。 1.从Hello World 开始 1.1代码内容 函数功能&#xff1a;打印“Hello World” #include<iostream> int main() { std::cout << "Hello World" << std::endl…

学习babylon.js --- [1] 初次体验和安装

babylon.js是微软推出的Web3D库&#xff0c;本文写作时版本是6.x&#xff0c;官方介绍如下&#xff0c; 看这意思是6.x系列的版本大大提高了性能&#xff0c;并提供了很多新特性。其Github地址是https://github.com/BabylonJS/Babylon.js 本篇文章讲述使用babylon.js的初次体…

申请阿里云服务器并搭建公网可支持数据上传的HTTP服务器

1. 前言 拥有一台自己的云服务器可以做很多事情。阿里云服务器毫无疑问是国内最好的。 阿里云服务器可以用于各种互联网应用的搭建和运行&#xff0c;提供稳定、高性能的服务。 阿里云服务器的用途&#xff0c;包括但不限于以下几个方面&#xff1a; 网站托管&#xff1a;可以将…

常用adb命令整理

一、adb介绍 adb&#xff1a;Android Debug Bridge&#xff0c;Android 调试桥的缩写&#xff0c;adb 是一个 C/S 架构的命令行工具&#xff0c; 主要由 3 部分组成&#xff1a; 运行在 PC 端的 Client : 可以通过它对 Android 应用进行安装、卸载及调试运行在 PC 端的 Serv…

Python实现校园网自动连接

用过校园网的小伙伴可能深有体会&#xff0c;在连接上校园网之后&#xff0c;需要再进行一个用户认证&#xff0c;才算真正的连接成功。这就会带来一些问题&#xff0c;比如若在长时间内没有网络请求&#xff0c;用户认证就会失效&#xff0c;它会自动断开校园网&#xff0c;这…

Android 系统开发工具

Android 系统开发工具 1、SSH 服务与 Tabby Terminal1.1 配置 Ubuntu ssh 服务 2、Samba 服务器搭建3、Idegen Android Studio 查看源码3.1 修改android.iml文件 (可选) 4、AIdegen Android Studio 查看源码4.1 准备工作4.2 Android Studio 配置4.2.1 添加源码中的 jdk 和 sd…

两数之和

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出和为目标值 target 的那两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。…

arcgis实现影像监督分类

1、打开ArcMap,右击空白处打开影像分类工具栏&#xff0c;如下&#xff1a; 2、打开影像&#xff0c;如下&#xff1a; 打开的影像由于未经处理&#xff0c;颜色看起来很昏暗&#xff0c;这时候可以拉伸一下。具体操作&#xff0c;右击图层选择属性&#xff0c;如下&#xff1a…

python使用websockets进行数据传输

背景说明&#xff1a; 最近在研究一个智能监控系统&#xff0c;后台通过rtsp读取摄像头视频流&#xff0c;使用yolov算法进行目标检测&#xff0c;然后将检测的视频帧通过字符串的方式抛转到前台html页面显示&#xff0c;需要用到前后台数据交互技术&#xff0c;查询资料发现w…

ShareX设置快捷键、自定义保存路径、取消上传等设置

让ShareX变成顺手的形状 设置篇ShareX设置快捷键ShareX设置自定义保存路径ShareX取消自动上传和打开OCR 使用篇OCR 设置篇 ShareX设置快捷键 ShareX设置自定义保存路径 ShareX取消自动上传和打开OCR 为什么取消上传功能&#xff1a;因为不需要自动把本地截图自动上传到远程服务…

Vue3 使用存储库Pinia(getters)

一、store.js创建getters import { defineStore } from "pinia"; export const useStore defineStore(main, {state() { // state表示这个store里的状态&#xff0c;也就是存放数据的地方return {name: 张三,age:26 }},actions: { // 和vue中的methods一样updateA…

前端必会的三种DIV+CSS布局

要开发网页&#xff0c;必须要搞懂这三种divcss布局技术&#xff01;&#xff08;1&#xff09;左右两列布局&#xff1b;&#xff08;2&#xff09;1行3列&#xff1b;&#xff08;3&#xff09;1行多列或多行多列布局&#xff1b;只要你掌握了这三种布局方式&#xff0c;那搭…

2核4G服务器腾讯云或阿里云能安装几个网站?性能如何?

2核4G服务器能安装多少个网站&#xff1f;2核4g配置能承载多少个网站&#xff1f;一台2核4G服务器可以安装多少个网站&#xff1f;阿腾云2核4G5M带宽服务器目前安装了14个网站&#xff0c;从技术角度是没有限制的&#xff0c;只要云服务器性能够用&#xff0c;想安装几个网站就…

java之maven专题

1、idea配置maven https://blog.csdn.net/hanmingjun/article/details/129977880 2、阿里云补充缺少的jar包 到官方下载好jar包到这里上传 maven中配置跳过单元测试 https://maven.apache.org/surefire/maven-surefire-plugin/examples/skipping-tests.html