详解 KEIL C51 软件的使用·建立工程

单片机要运行,就必须将程序代码下载到程序存储器内部,但是在写进单片机之前要先将你写 的程序转换成*.hex 或*.bin 的文件.不同系列的单片机都有不同的软件对其进行编绎,而 keil Cx51 是德国开发的一个专为 51 系列单片机提供的软件开发平台,基本上现在的所有 51 系列内核的单片 机都是使用 keil 来调试和编绎,在上面编写好程序后,将其编绎成*.hex 的十六进制烧写文件.然 后再烧写到单片机系统中去。
Keil Cx51 软件使用
下面以 keil Cx51 V7.04 版本为例,介绍如何使用 keil 的集成开发环境.
建立工程
一:双击桌面

启动 keil 如图 2-1 所示.

图 2-1
二:新建一个工程
(1)点击“Project”菜单,选择下拉菜单的“New Project”,会弹出如图 2-2 的窗口,在文件名 一栏中填入你的想要的工程文件名,文件名是任由你决定的,但是一般是取带有特定意义的为文件 名,这样比较容易管理和理解.在这里就取“text”,意为测试的意思.

图 2-2
然后点击保存.文件的扩展名为*.uv2,这是 keil 项目文件扩展名,以后我们直接双 击打开这个文件就可以了.
(2)点击保存之后会弹出如图 2-4 的窗口,要求选择芯片的型号,在这里我们选择“Atmel”内面 的 AT89S52 如图 2-5 所示.

图 2-4

图 2-5
(3)完成上一步之后点击确认.有可能会出现图 2-6 的对话框,其意思是把标准 8051 的启动代码复 制到本工程中去,你只需要“N(否)”就可以了.

图 2-6
(4)完成以上步骤之后我们就可以见到的 keil 界面如图 2-7

图 2-7
(5)我们现在来编写第一个程序.点击“File”的下拉菜单中选择“New”的选项如图 3-8 所示.

图 3-8
(6)这时光标会在新建的“Text1”这个文本框中闪烁.其实现在已经可以编写程序了,但是笔者建 义大家还是先将这个空白文件保存好之后再来编写.点击“File”的下拉菜单中的“Save As”此 时会弹出图 2-9 的对话框.在文件名中填入你想要的文件名,但是文件名最好是具有一定的代表意 义,这样比较容易管理和理解.这里特别要注意的就是,如果我们用 C 语言来写程序的话,那么文 件的扩展名一定要为.c,但是如果我们用的是汇编语言来写程序,那么文件的扩展名一定要为.asm, 由于我们现在用 C 语言来编写程序,所以这里就取“test.c”,单击“保存”.原来的那个“Text1” 的文件已经变成了我们刚才的那个“test.c”文件.见图 2-10 黑色箭头所指.
当你按上面的程序步骤完成之后,还是看见“Text1”没有变这“test.c”文件,那只是你的 keil 没有刷新,你把它最小化,然后再还原就可以了.

图 2-9

图 2-10
(7)完成上一步之后,回到了图 2-10 的编辑界面,单击“Target”前面的“+”号,然后在“Source Group 1”上右击一下,选中“Add Files to Group ,Source Group 1”就会弹出图 2-11 的对话框, 选择我们刚才建立的那个“test.c”的文件.

图 2-11
(8)选择完之后,我们已经发现那刚才在图 2-10 右边的“Source Group 1”下面多了一个“test.c”, 如图 2-12 所示.

图 2-12
(9)将文件加入“Source Group 1”之后,增加文件的对话框并没有消失.这时其对话框还在等待 添加其它的文件,如果你再单击“Add”,就会出现图 2-13 的对话框,其意思是提示用户所选的文 件已经在列表中.这时点击“确定”返回到增加对话框,然后点击“Close”返回主界面.再在 “Source Group 1”前面的“+”号中点击一下,你就会见到“test.c”这个文件已在工程当中.

图 2-13
到这里一个完整的项目工程就建立完成了,下面让我们来学习如何调试程序.
#include<reg52.h>//包含所用单片机对应的头文件
void delay_ms (unsigned int time)//延时 1 毫秒程序,n 是形式参数
{ unsigned int i,j; for (i=time;i>0;i--)//i 不断减 1,一直到 i>0 条件不成立为止for (j=112;j>0;j--)//j 不断减 1,一直到 j>0 条件不成立为止 {;}
}
void main (void){ while (1){ P1=0x00;// 点亮 P1 端口 delay_ms (500);//把实际参数 500 传给 n,延时 500 毫秒,也就是 0.5 秒 P1=0xff;// 息灭 P1 端口 delay_ms (500);//把实际参数 500 传给 n,延时 500 毫秒,也就是 0.5 秒 }
}
上面是一个简单的 C 语言程序(程序附光盘中),只要将该程序的代码烧写到图 2-14 的电路中去, 实验板就会实现“亮,延时 500 毫秒,灭,延时 500 毫秒”这样不断循环闪烁.2-14 是实验板的流 水灯的电路.对于上面的程序,如果我们是一个初学者,可能还有好多问题是不明白的,是吗?在 这里我们暂时不用去管它,在以后节章中我们会详细去研究它,在这里只是让大家有一个初步的认 识.

图 2-14
把程序装入 keil 之后的画面如图 2-15.

图 2-15
更多:
详解 KEIL C51 软件的使用·设置工程·编绎与连接程序-CSDN博客

相关文章:
详解 KEIL C51 软件的使用·建立工程
单片机要运行,就必须将程序代码下载到程序存储器内部,但是在写进单片机之前要先将你写 的程序转换成*.hex 或*.bin 的文件.不同系列的单片机都有不同的软件对其进行编绎,而 keil Cx51 是德国开发的一个专为 51 系列单片机提供的软件开发平台,基本上现在的所有 51 系列内核的单片…...
2023年03月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 已知一个列表lst = [2,3,4,5,6],lst.append(20),print(lst)的结果是?( )(2分) A.[10,2,3,4,5,6,20] B.[20,2,10,3,4,5,6] C.[2,3,4,5,6,20] D.[2,3,4,5,6,10,20] 答案:C 第2…...
nginx 代理服务时遇到的问题
一 nginx代理多个服务,且服务之间需要相互通信 多个服务运行在docker容器中,nginx同样在docker容器中 比如前端服务需要请求后端服务,用户请求服务器80或者443 ,nginx代理请求到前端服务,前端服务业务请求到后端服务…...
利用共享台球室小程序系统提升用户体验
随着移动互联网的普及,越来越多的用户倾向于使用手机应用来解决生活中的问题。共享台球室作为一个结合了传统与现代元素的项目,也需要借助移动小程序的力量来提升用户体验。本文将探讨如何利用共享台球室小程序系统提升用户体验。 一、提供便捷的服务 …...
U-Mail海外邮件中继帮您解决企业邮件退信难题
过去一年,国内外形势严峻复杂,但中国外贸顶住压力、爬坡过坎,进出口规模冲破40万亿元大关,高达42万亿元人民币,中国连续6年位居货物贸易第一大国。随着我国疫情防控措进入新阶段,“拼经济”正在成为各地的一…...
ImageJ灰度值量化分析 实用技巧——免疫组化分析(定量分析篇)
在临床病理诊断中, 免疫组织化学( Immunohistochemistry, IHC) 是一种很重要的技术和手段。 免疫组化标记时细胞阳性着色程度取决于抗原含量、分布密度和标记方法及其敏感性。 一般而言,抗原含量越多,分布密度越高,阳性结果显色…...
了解STM32看门狗定时器的工作原理和原则
STM32 系列微控制器的看门狗定时器 (Watchdog Timer,WWDG) 是一种重要的硬件资源,用于检测系统的异常状态,并在发生异常时执行特定的操作,以确保系统能够正常运行。在本文中,我将详细介绍 STM32 看门狗定时器的工作原理…...
【2014年数据结构真题】
41. (13分)二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和。 给定一棵二叉树T,采用二叉链表存储,结点结构如下: 其中叶结点的weight域保存该结点的非负权值。 设root为指向T的根结点的指针, 请设计求T 的WPL…...
PostgreSQL基本操作
目录 1.源码安装PostgreSQL 1.1.前置条件(root下操作) 1.1.1.卸载yum安装的postgresql 1.1.2.创建postgres用户 1.1.3.安装部分依赖 1.1.4.源码安装uuid 1.2.安装PostgreSQL 1.2.1.使用postgres用户管理PostgreSQL 1.2.2.下载解压postgres12源码…...
hadoop 大数据环境配置 ssh免密登录 centos配置免密登录 hadoop(四)
1. 找到.ssh文件夹 cd ~ # 在.ssh文件夹下生成 # cd .ssh 2. 生成私钥公钥命令: ssh-keygen -t rsa3. 发送到需要免密机器: # hadoop23 是我做了配置。在host配置得机器ip和名称得映射 ssh-copy-id hadoop23 4. 成功...
Django 的国际化与本地化详解
概要 随着全球化的发展,为 Web 应用提供多语言支持变得日益重要。Django 作为一个功能强大的 Web 框架,提供了一套完整的国际化(i18n)和本地化(l10n)工具,使得开发多语言应用变得简单。本文将详…...
Java19新增特性
前言 前面的文章,我们对Java9、Java10、Java11、Java12 、Java13、Java14、Java15、Java16、Java17、Java18 的特性进行了介绍,对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 Java13新增特性 Java14新增特性 Java15新增特…...
[文件读取]metinfo_6.0.0 任意文件读取漏洞复现
1.1漏洞描述 漏洞编号--漏洞类型文件读取漏洞等级⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐漏洞环境windows漏洞名称MetInfo 6.0.0 任意文件读取漏洞 MetInfo 是一套使用PHP 和MySQL 开发的内容管理系统。MetInfo 6.0.0 版本中的 /app/system/include/module/old_thumb.class.php 文件存在任意文件…...
[量化投资-学习笔记015]Python+TDengine从零开始搭建量化分析平台-量化知识点汇总
之前的章节介绍了多个技术分析指标,以下进行一个简单的总结。 看过之前章节的同学就可以不用打开了。 技术指标 MAEMAMACDCCIATRKDJ MA 最基础的技术指标,对一段周期内的收盘价进行简单平均,是一切指标的基础。 def calc_ma(period,ma):ma_…...
VSCode 好用的插件分享
文章目录 Introlistcode runner 【在文本编辑器中编辑好各类语言的源代码,然后一键运行】gitlens - 【git提交信息即时查看,类似IDEA中的 show annotation】还有更多,会日常补充。 Intro 大四毕业前,我只有一台dell latitude 455…...
C++虚基类详解
多继承(Multiple Inheritance) 是指从多个直接基类中产生派生类的能力,多继承的派生类继承了所有父类的成员。尽管概念上非常简单,但是多个基类的相互交织可能会带来错综复杂的设计问题,命名冲突就是不可回避的一个。…...
Mac M2/M3 芯片环境配置以及常用软件安装-前端
最近换了台新 Mac,所有的配置和软件就重新安装下,顺便写个文章。 一、环境配置 1. 安装 Homebrew 安装 Homebrew【Mac 安装 Homebrew】 通过国内镜像安装会比较快 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Ho…...
Karmada更高效地实现故障转移
随着云原生技术的发展,其应用场景不断扩大。越来越多的企业开始将应用程序部署在 Kubernetes 集群中,随着 Kubernetes 集群规模的不断扩大,也带来了许多管理挑战,例如多集群间负载均衡、资源调度、故障转移等问题。为了解决这些问…...
前端AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(四)
你可以的,去飞吧! 同步代码和异步代码 回调函数地狱和 Promise 链式调用 回调函数地狱 缔造“回调地狱”↓ 制造里层回调错误,却在最外层接收错误→无法捕获 axios源码抛出异常(未捕获) <!DOCTYPE html> <ht…...
TechSmith Camtasia 2024破解版功能介绍及使用教程
在现在的网络互联网时代,越来越多的人走上了自媒体的道路。有些自媒体人会自己在网络上录制精彩视频,也有一些人会将精彩、热门的电影剪辑出来再加上自己给它的配音,做成大家喜欢看的电影剪辑片段。相信不管大家是自己平时有独特的爱好也好、…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
