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

news2025/1/24 14:31:49

         单片机要运行,就必须将程序代码下载到程序存储器内部,但是在写进单片机之前要先将你写 的程序转换成*.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博客

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

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

相关文章

嵌入式养成计划-53----ARM--串口通信

一百三十四、串口通信 134.1 串口的概念 串口&#xff08;UART&#xff09;&#xff1a;Universal asynchronous receiver transmitter (USART/UART)&#xff0c;通用异步接收发送器通过串口可以实现两个不同机器之间的信息交互串口通信属于总线通信的一种 134.2 总线的概念…

GZ038 物联网应用开发赛题第7套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 &#xff08;第7套卷&#xff09; 工位号&#xff1a;______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具&#xff0c;操作安全规范&#xff1b; 2、竞赛过程中如有异议&#xff0c;可向现场考评…

处理本地DNS劫持,导致域名解析失败

回顾情形 在公司内网&#xff0c;有同事反馈appstoreconnect.apple.com网站需要通过代理才能正常访问。 向我这边询问&#xff0c;否修改过路由策略&#xff1b; 检测域名 通过域名ping检测网址&#xff0c;https://ping.chinaz.com/astrill.com&#xff0c;来ping域名apps…

1688往微信小程序自营商城铺货商品采集API接口

一、背景介绍 随着移动互联网的快速发展&#xff0c;微信小程序作为一种新型的电商形态&#xff0c;正逐渐成为广大商家拓展销售渠道、提升品牌影响力的重要平台。然而&#xff0c;对于许多传统企业而言&#xff0c;如何将商品信息快速、准确地铺货到微信小程序自营商城是一个…

第五章ARM处理器的嵌入式硬件系统设计——课后习题

1ARM处理器的工作状态 ARM处理器有两种工作状态。具体而言&#xff0c;ARM处理器执行32位ARM指令集时&#xff0c;工作在ARM状态&#xff0c;当ARM处理器执行16位thumb指令集时候&#xff0c;工作在thumb状态。 1ARM指令特点 1一个大的&#xff0c;统一的寄存器文件。 2基于…

后端接口性能优化分析-数据库优化

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44d;三连支持&…

​如何解决SSD NAND Path冲突导致的性能问题?

1.引言 最近看到一篇关于SSD的NAND并发瓶颈相关的论文&#xff0c;思路非常好&#xff0c;这里分享给大家。本篇论文的解读&#xff0c;也是小编上周末在高铁上完成的。存储随笔的论文解读&#xff0c;不是直接翻译&#xff0c;是小编先研读一遍后&#xff0c;再结合自己的理解…

SoftwareTest6 - 用 Selenium 怎么点点点

用 Selenium 来点点点 一 . 什么是自动化 ?1.1 自动化测试的分类接口自动化测试UI 自动化测试 (界面测试) 1.2 实现自动化测试的工具 : selenium环境部署驱动 二 . selenium 的使用2.1 一个简单的示例 : 让谷歌浏览器在百度首页搜索蔡徐坤准备工作编写代码 2.2 打开谷歌浏览器…

世界互联网大会|美创科技新一代 灾备一体化平台(DRCC v3.0)重磅亮相

11月9日&#xff0c;在2023年世界互联网大会“互联网之光”博览会上&#xff0c;美创科技携2023年重磅新品——新一代 灾备一体化平台&#xff08;DRCC v3.0&#xff09;亮相&#xff01; ◼︎ 云计算、国产化浪潮下&#xff0c;各类信息基础设施的运行安全面临全新挑战&#…

性能测试 —— Jmeter分布式测试的注意事项和常见问题

Jmeter是一款开源的性能测试工具&#xff0c;使用Jmeter进行分布式测试时&#xff0c;也需要注意一些细节和问题&#xff0c;否则可能会影响测试结果的准确性和可靠性。 Jmeter分布式测试时需要特别注意的几个方面 1. 参数化文件的位置和内容 如果使用csv文件进行参数化&…

【Java 进阶篇】JQuery 案例:优雅的隔行换色

在前端的设计中&#xff0c;页面的美观性是至关重要的。而其中一个简单而实用的设计技巧就是隔行换色。通过巧妙地使用 JQuery&#xff0c;我们可以轻松地实现这一效果&#xff0c;为网页增添一份优雅。本篇博客将详细解析 JQuery 隔行换色的实现原理和应用场景&#xff0c;让我…

数据结构入门————栈和队列(C语言/零基础/小白/新手+模拟实现+例题讲解)

目录 1.栈的概念 ​编辑 2.栈的作用 1.函数递归 2.表达式求值 3.栈的模拟实现 Stack.h Stack.c 4.队列的概念 5.队列的模拟实现 Queue.h Queue.c 6.例题 1.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈&#xff0c;然后再依次出栈&#xff0c;…

如何把小米路由器刷入OpenWRT系统并通过内网穿透工具实现公网远程访问

小米路由器4A千兆版刷入OpenWRT并远程访问 文章目录 小米路由器4A千兆版刷入OpenWRT并远程访问前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理…

LeetCode | 225. 用队列实现栈

LeetCode | 225. 用队列实现栈 OJ链接 此题可以用两个队列去实现一个栈&#xff0c;每次始终保持一个队列为空&#xff0c; 入栈操作相当于给非空队列进行入队操作 入数据&#xff0c;把不为空的队列入 出数据&#xff0c;把不为空的队列数据导入为空&#xff0c;直到最后一…

如何将微软 Office 宏转换为 ONLYOFFICE 宏

想要将微软 Office VBA 宏转换为可在 ONLYOFFICE 中无缝使用的宏&#xff1f;嗯&#xff0c;虽然这种需求并没有直接的解决方案&#xff0c;不过我们也会在本文中介绍 VBA 宏的转换步骤——正好我们手上也有一个来自用户的实际案例可供参考。 VBA 宏 以下是原始的 VBA 宏代码&…

vscode+python开发之虚拟环境和解释器切换

需求情景&#xff1a; 现在我们要开发多个项目比如&#xff1a;项目A&#xff0c;项目B、项目C&#xff0c;他们每个项目需要依赖不同的库。每个项目依赖的解释器也不一样怎么办&#xff1f; 项目A&#xff1a;需要在python3.7环境运行 依赖aadd3.2库 项目B、需要在python3.11…

〖大前端 - 基础入门三大核心之JS篇㉟〗- JavaScript 的DOM简介

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;不渴望力量的哈士奇(哈哥)&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

No207.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

【Python】爬虫代理IP的使用+建立代理IP池

目录 前言 一、代理IP 1. 代理IP的获取 2. 代理IP的验证 3. 代理IP的使用 二、建立代理IP池 1. 代理IP池的建立 2. 动态维护代理IP池 三、完整代码 总结 前言 在进行网络爬虫开发时&#xff0c;我们很容易遭遇反爬虫机制的阻碍。为了规避反爬虫机制&#xff0c;我们…

R语言爬虫程序自动爬取图片并下载

R语言本身并不适合用来爬取数据&#xff0c;它更适合进行统计分析和数据可视化。而Python的requests&#xff0c;BeautifulSoup&#xff0c;Scrapy等库则更适合用来爬取网页数据。如果你想要在R中获取网页内容&#xff0c;你可以使用rvest包。 以下是一个简单的使用rvest包爬取…