0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机Keil开发环境的搭建

CHANBAEK 来源:郎哥编程课堂 作者:郎宏林 2023-11-01 09:17 次阅读

欢迎大家来到C语言单片机编程课堂。前面一课我们了解了单片机编程嵌入式开发内容,这节课我们来学习单片机开发环境Keil,并使用keil完成单片机编程第一个实验任务。

Keil是由美国Keil Software公司研发的嵌入式开发工具,它支持使用汇编语言和C语言开发单片机嵌入式程序。Keil提供了不同的工具包用于支持不同指令架构的单片机,在课程中我们主要学习51单片机ARM指令架构的单片机嵌入式开发,Keil完全支持51和ARM指令架构的单片机开发。

Keil开发工具没有发布中文版,但绝大多数嵌入式开发工程师都在使用Keil开发工具,它内置了CC++编译器、汇编编译器、软件仿真硬件仿真。软件仿真在程序运行调试状态下,可以查看模拟单片机的寄存器、存储器、I/O口状态,也可以查看程序在单片机内部执行过程中内存的状态。有了软件仿真调试功能,开发者在没有单片机的情况下,也可以开发单片机程序,并查看程序运行结果。硬件仿真可以接入外部仿真器仿真实际运行的单片机。

图片

搭建Keil开发环境

安装Keil开发工具

搜索Keil官网,进入Keil官网网站,在Keil官网我们主要下载MDK-Arm和C51两个安装包,C51用于51系列单片机开发,MDK-Arm用于ARM指令架构的系列单片机开发。

图片

分别下载C51和MDK-Arm到本地,先安装C51开发工具,C51安装完成后,再安装MDK-Arm(安装路径选择C51的安装路径)。

安装STC51系列单片机仿真包

Keil安装完成后,并不支持STC51系列单片机的仿真调试,需要单独安装STC51系列单片机仿真包。进入STC(宏晶科技)官网,下载STC-ISP安装包,STC-ISP是宏晶公司提供的单片机下载烧录软件,是针对STC系列单片机而设计的,可下载程序到STC89、12C2052和12C5410等系列的STC单片机ROM内。

下载后解压缩包,运行stc-isp程序,选择“Keil仿真设置”标签页,单击“添加STC仿真器驱动到Keil中”按钮,在弹出的目录选择对话框选择keil的安装目录,单击确定即可完成STC仿真器驱动。

图片

第一个单片机实验

实验目的

使用keil创建单片机开发项目,添加C文件到项目,编写C代码控制单片机I/O口输出低电平,掌握代码的仿真调试,查看单片机I/O电平变化。

实验相关知识

TTL电平

实验用单片机为STC89C52RC,实验涉及到单片机I/O口的TTL电平检测。TTL电平信号规定+5V等价于逻辑“1”,0V等价于逻辑“0”,使用Keil进行仿真调试时,若I/O口某位输出“0”,则为低电平,输出“1”则为高电平。

单片机I/O口

单片机I/O口用于单片机与外部设备的连接并控制外部设备。STC89C52RC有4个8位的双向I/O口,即可用于外部设备输入数据到单片机,也可以用于单片机向外部设备输出数据或控制指令。

图片

上图的P0、P1、P2、P3为单片机的I/O口,每个I/O可以进行位控制,按位进行操作,每个位的初始逻辑状态为1(高电平),使用程序可以改变每个I/O为的逻辑状态,从而控制对应的外部设备。例如通过程序将P1.0位置为0(低电平)。

实验过程

创建单片机开发项目

启动keil开发工具,展开“Project”菜单,选择“New µVision Project ……”命令,在弹出的“Create New Project”对话框内,选择项目保存位置,输入项目名称。

图片

在弹出的“Select Device for target”对话框内,选择列表框内的“STC MCU Database”项,在单片机类型列表框内选择“STC89C52RC”单片机,然后单击“OK”按钮。

图片

添加C文件到项目

单片机项目创建成功后,需要添加C文件到项目,项目工作窗口如下图所示。

图片

选择项目文件窗口“Source Group 1”节点,单击鼠标右键,在弹出的菜单中选择“ADD New Item to Group ‘Source Group 1’……”命令,如下图所示。

图片

在弹出的“Add New Item to Group ‘Source Group 1’”对话框内,在文件类型列表框选择C文件类型,在Name输入域输入C文件名称,这里输入的是“controllio.c”,输入完成后,单击“Add”按钮。如下图所示。

图片

C文件“controllio.c”已添加到项目节点“Source Group 1”节。

图片

在“controllio.c”编辑窗口,输入下面的C代码:

#include
sbit led1 = P1^0;
void main()
{
       led1=0;
}

reg51.h是通用80C51和80C31单片机的头文件。头文件有两个keil定义的关键字sbit和sfr,sbit用来定义位变量,sfr用来定义地址变量。

sbit的用法:

sbit X = A^n

其中X是位变量,A是一个可进行位寻址的变量,n表示变量A的第n位,注意这里的^不是C语言的异或操作符,是keil定义的一个特殊符号,用于确定可进行位寻址变量的第几位。例如代码:

sbit led1 = P1^0;

sbit定义了led1变量,该变量指向P1口的第0位,若执行语句led1=0; 则P1口的第0位被置为低电平。

sfr的用法:

sfr X = 0x80

其中X是地址变量,0x80是一个地址。例如代码:

sfr P0 = 0x80;

sfr定义了P0变量,该变量指向0x80地址,该地址为单片机P0口的地址。

C程序仿真调试

Keil提供了仿真调试功能,即使在没有单片机硬件的情况下,我们也可以判断C程序在单片机内是否运行正常,并跟踪和调试C程序完整的执行过程。

设置仿真

在进行仿真调试之前,需要查看Keil是否已设置了仿真调试,展开Project菜单,选择“Options for Targets”命令,在弹出的对话框中,选择“Debug”标签页,确定“Use Simulator”被选中。

图片

仿真调试过程

展开“Debug”菜单,选择“Insert/Remove Breakpoint”命令,或者用鼠标双击语句左侧的灰色区域设置断点,如下图所示。

图片

展开“Debug”菜单,选择“Start/Stop Debug Session”命令,或按下Ctrl+F5键,或单击工具条上的启动调试图标,都可以启动程序的仿真调试。

程序启动后,执行到断点后暂停运行,仿真调试窗口如下图所示。

图片

通过寄存器窗口可以查看程序执行过程中寄存器状态的变化,关于单片机的寄存器,在后面的实验中会陆续讲解。汇编指令窗口显示了程序编译后的汇编指令,通过该窗口可以查看汇编指令。在代码窗口可以查看代码,也可以继续执行程序,或单步执行,或执行代码行,或执行到光标所在行。

本实验重点查看仿真单片机的I/O口状态,展开“peripherals”菜单,选择“I/O-Ports”菜单项,再弹出的子菜单中选择“Port 1”项。

图片

Keil弹出P1口状态对话框,如下图所示。

图片

从图中可以看到,当前P1口0~7位逻辑状态都为1,继续执行程序,再次查看P1口状态。

图片

P1口第0位的逻辑状态已经发生了变化,其逻辑状态为0。

实验小结

通过这次实验,掌握了Keil编写单片机程序的过程,以及如何仿真调试单片机程序。实际上,在没有硬件单片机的情况下,应用Keil仿真调试工具,完全可以监控程序在仿真单片机中的运行状态。

本次实验主要完成单片机I/O口单个位的控制。下次实验应用EDA仿真工具proteus,设计单片机第一个应用,使用单片机I/O口控制发光二极管

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620834
  • 嵌入式
    +关注

    关注

    4982

    文章

    18281

    浏览量

    288438
  • C语言
    +关注

    关注

    180

    文章

    7530

    浏览量

    128632
  • keil
    +关注

    关注

    68

    文章

    1196

    浏览量

    165311
  • 开发环境
    +关注

    关注

    1

    文章

    203

    浏览量

    16460
收藏 人收藏

    评论

    相关推荐

    C51单片机学习笔记(一)——搭建开发环境及烧写工具 精选资料分享

    C51单片机学习笔记(一)——搭建开发环境及烧写工具文章目录C51单片机学习笔记(一)——搭建
    发表于 07-14 07:53

    在VSCode上搭建类似Keil开发环境

    前言由于之前的学习过程中使用过了VSCode、Source Insight这类强大的代码编辑器,感觉实在是太好用了。但是最近自己要用到Keil进行STM32单片机开发,因为使用过了VSCode这类
    发表于 11-19 07:44

    51单片机开发环境怎么搭建

    入门51单片机(一):开发环境搭建这里以目前最流行的STC89C52RC为例来介绍51单片机开发
    发表于 11-22 06:43

    51单片机软硬件开发环境搭建方法

    摘要本文章主要介绍了51单片机软硬件开发环境搭建,包括51单片机最小系统,固件烧录电路,Keil
    发表于 11-22 06:17

    VScode + keil开发环境搭建

    GD32系列总结 - VScode + keil开发环境搭建写在前面Keil Assistant插件安装与使用遇见的问题include波浪线
    发表于 11-30 07:56

    C51单片机学习笔记(一)——搭建开发环境及烧写工具

    C51单片机学习笔记(一)——搭建开发环境及烧写工具文章目录C51单片机学习笔记(一)——搭建
    发表于 11-12 10:06 17次下载
    C51<b class='flag-5'>单片机</b>学习笔记(一)——<b class='flag-5'>搭建</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>及烧写工具

    mac 搭建单片机开发环境

    mac 搭建单片机开发环境
    发表于 11-13 11:21 1次下载
    mac <b class='flag-5'>搭建</b><b class='flag-5'>单片机</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>

    单片机优雅的开发Clion环境搭建

    单片机优雅的开发Clion环境搭建
    发表于 11-13 12:21 17次下载
    <b class='flag-5'>单片机</b>优雅的<b class='flag-5'>开发</b>Clion<b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    HT合泰单片机 入门 开发环境搭建(一)

    HT合泰单片机 入门 开发环境搭建(一)
    发表于 11-13 13:21 16次下载
    HT合泰<b class='flag-5'>单片机</b> 入门 <b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>(一)

    GD32单片机开发环境搭建Keil5安装)

    GD32单片机开发环境搭建Keil5安装)
    发表于 11-13 14:36 39次下载
    GD32<b class='flag-5'>单片机</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>(<b class='flag-5'>Keil</b>5安装)

    单片机集成开发环境Keil5的使用

    实验1 单片机集成开发环境Keil5的使用实验目的1、学会下载、安装Keil μVision集成开发
    发表于 11-13 15:06 24次下载
    <b class='flag-5'>单片机</b>集成<b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>Keil</b>5的使用

    GD单片机Keil环境搭建

    GD单片机Keil环境搭建
    发表于 11-13 16:21 8次下载
    GD<b class='flag-5'>单片机</b><b class='flag-5'>Keil</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>

    合泰单片机HT32之keil5开发环境搭建(一)

    也有keil5的支持包,也就是说可以从库函数进行开发,不用从寄存器进行开发,但我找了好久,并没有找到教程,后来实在没办法,打算自己动手搭建环境
    发表于 11-13 17:06 21次下载
    合泰<b class='flag-5'>单片机</b>HT32之<b class='flag-5'>keil</b>5<b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>(一)

    51单片机-开发环境搭建

    51单片机-开发环境搭建
    发表于 11-14 09:21 11次下载
    51<b class='flag-5'>单片机</b>-<b class='flag-5'>开发</b><b class='flag-5'>环境</b>的<b class='flag-5'>搭建</b>

    manjaro 开发51单片机环境搭建

    manjaro 开发51单片机环境搭建
    发表于 11-23 16:36 8次下载
    manjaro <b class='flag-5'>开发</b>51<b class='flag-5'>单片机</b><b class='flag-5'>环境</b><b class='flag-5'>搭建</b>