• 目前我们通常编写51程序使用的是keil4,而好多编写STM32等单片机程序的使用keil5。那么如何在keil5中兼容51和STM32程序编写,省去切换版本的繁琐呢? 很简单只需两步就可以完成。 下面这个方法针对已破解keil5的...

    目前我们通常编写51程序使用的是keil4,而好多编写STM32等单片机程序的使用keil5。那么如何在keil5中兼容51和STM32程序编写,省去切换版本的繁琐呢?
    很简单只需两步就可以完成。
    下面这个方法针对已破解keil5的stm32等一系列。这个肯定是最常见的,因为破解keil5然后编写32工程的教程一大把。

    1、首先下载编写51的相关东西。
    可以在官网上下载,例如百度keil官网。
    这里写图片描述

    点击右上角的DOWNLOADS进入相关的下载界面,下载你需要的安装包。MDK5、c51、c166等,这里只需要下载c51的。

    这里写图片描述

    当然也可以在下面这个百度网盘链接里下载:
    51相关: 链接:http://pan.baidu.com/s/1skMv2Nz 密码:9env
    破解机:链接:http://pan.baidu.com/s/1o8h0v5w 密码:tusa

    下载好然后直接双击安装
    这里写图片描述

    2、破解
    现在打开keil5,切记以管理员身份运行,关掉安全软件。
    点击file——license management
    这里写图片描述

    找到这个CID号,复制一下
    这里写图片描述

    双击打开破解机,第一步复制进来刚才的CID号,记得第二步要选C51,最后将生成的序列号复制出去

    这里写图片描述

    最后又回到kiel5,将刚才复制的序列号,放到下图位置,添加序列号。

    这里写图片描述

    配置成功界面

    这里写图片描述

    新建工程,点project——new project,记得切换
    这里写图片描述

    然后就可以找到51系列芯片了。

    展开全文
  • 在编定单片机程序的时候经常要用到keil uvision2 来编写程序,下面我们以AT89C51单片机为例,学习 如何使用keil uvision2 来编写程序。 keil uvision2 编写程序一般步骤如下:  1. 新建工程  2. 新建源程序文件...

    keil uvision2 教程 

    在编定单片机程序的时候经常要用到keil uvision2 来编写程序,下面我们以AT89C51单片机为例,学习 如何使用keil uvision2 来编写程序。 keil uvision2 编写程序一般步骤如下: 

    1. 新建工程 

    2. 新建源程序文件,可以是C语言或汇编语言等 

    3. 把源程序添加到工程中 

    4. 编译并生成Hex文件 

    下面开始我们的学习之旅吧!! 

    一、新建工程 打开keil uvision2 软件,在菜单栏上选择project菜单下的new project (新建一个工程) 选择工程存储存位置,我们新建一文件夹,然后把工程保存在这一文件夹里面,保存之前先输入文件名如:how138 点击保存之后会弹出选择芯片对话框,我们要用的是AT89C51单片机,所以选择ATMEL公司的AT89C51单片机即可,然后单击确定。 软件会弹出提示框:问你是否添加默认代码,我们不需要所以选择否。 这样一个工程框加就建立好了。 

    二、新建源程序文件(本例使用汇编语言) 选择菜单 File 下面的New (新建源程序文件) 在代码编辑框中输入代码如图所示,可以根据需要输入自已的代码 输入完成之后点击保存,并输入文件名:Text1.a (注意:要输入后缀名,因为是汇编所以使用a为后缀名),把文件保存在工程文件夹所在的目录里。 然后关才源程序编辑框,这一步完成。提示:如果用C语言编写则输入Text1.c后缀名为.c 

    三、 把源程序添加到工程中 在文件列表里选择 Source Group 1 然后单击右键,在弹出的菜单里选择Add file to Group (添加源程序) 弹出选择源程序对话框,我们选择择文件类型为 *.s *.src *.a 这一项 然后找到第二步建立的源程序Text1.a 选择之后单击ADD按钮一次 最选择择关闭。此时源程序已经添加到工程中 在文件列表中可以看到 

    四、 编译并生成Hex文件 接下来就是对源程序进行编译了,如果代码输入正确之后会提示编译成功。 程序写好并编译成功之后我们如何才能烧录到单片机里面呢??? 要把程序烧录到单片机里面,就必须先把它编译成Hex格式文件,所以下面我们学习如何建立HEX文件。 选单击按钮,在弹出的对话框中选择OUTPUT选项卡 在 Creat Hex 那一项前面打勾 (你还可以在NAME of executtable更改生成HEX的文件名) 其他选项按默认即可,最后单击确定 回到keil uvision2界面从新选择编译,就可以看到提示已经成功生成HEX文件。 到此为此已经成功的使用keil uvision2 来编写程序了,我们只要把HEX文件下载到单片机里面就可以完成了。

    展开全文
  • 最近使用keil5敲代码发现很多地方都不是很方便,比如将定义错的变量改名字,keil5的搜索并不是那么好用的,导致变量得一个个替换。而且当代码长了之后,需要在定义的地方和调用的地方频繁切换、反复横跳,查看变量...

    最近使用keil5敲代码发现很多地方都不是很方便,比如将定义错的变量改名字,keil5的搜索并不是那么好用的,导致变量得一个个替换。而且当代码长了之后,需要在定义的地方和调用的地方频繁切换、反复横跳,查看变量名字。。。
    然后听同学说,VS code好像很好用的亚子,今天决定倒腾一下。。

    1. 下载并安装VS code
      附上VS code下载链接:https://code.visualstudio.com/ 进去后直接下载就行
      顺便说一下VS 和VS code
      VS:Visual Studio是一个集成的开发环境,相对来说功能比较完整。
      VS code是轻量级代码编辑器。在这里插入图片描述
    2. 安装EIDE插件
      第一步已经安装好了VS code,但是此时的VS code只是一个空壳,我们得给他注入灵魂(插件)。
      首先点击红圈标注的地方,然后在黄圈标注的地方搜索“EIDE”下载然后安装就可以了。
      当然也可以根据需求,搜索其他插件安装。比如我还安装了python。然后英文不好也可以安装Chinese (Simplified) …这个,类似汉化的作用。

    在这里插入图片描述
    插件安装好之后,需要设置正确的 keil TOOLS.INI文件的路径,必须是Keil5才行,第一步,点击“设置Keil路径”,第二步,点击上方的C51,然后选择TOOLS.INI文件的路径,不知道的可以查看下图(我也弄了很久才明白TOOLS.INI文件)
    在这里插入图片描述

    TOOLS.INI文件路径
    3. 使用EIDE
    首先,将keil工程导入到VS code中!
    单击下图中的导入Keil项目,然后选择Keil程序的路径,再选择项目的保存位置,最后打开就可以了
    在这里插入图片描述
    这里可能会遇到一个问题,就是在EIDE中不管怎么打开,怎么保存,新建工程都没用的话。切换到最上面资源管理器中,点击打开文件夹,然后选择Keil的程序路径,搞定之后他会提示保存工作区,然后再去EIDE中就可以正常导入了。(能够正常导入Keil工程的就不用管这一步)
    在这里插入图片描述

    1. 设置LIB文件的位置
      上面已经将Keil程序导入到VS code了,但是会发现一个问题,这个项目的头文件路径还是之前的路径,我们需要将他改为新的路径。首先将之前Keil项目中的头文件复制一下,放入新的头文件夹中,然后点击下图中的叉叉,将之前的路径删除,然后点加号,添加新的头文件夹路径。这样头文件就弄好了。
      在这里插入图片描述

    2. 其他操作
      在这里插入图片描述
      这5个按钮分别是:
      1.添加源文件
      2.添加库
      3.编译
      4.快速编译(我不知道和编译有什么区别)
      5.下载程序

    3. VS code使用体验
      emmmmmm
      本来是想写的,但是想了下,还是自行体验吧,我就贴几张图大家感受下。(别看程序,挺烂的。。哈哈哈哈哈哈嗝)
      在这里插入图片描述
      在这里插入图片描述
      附一个大佬的教程:https://blog.csdn.net/qq_40833810/article/details/104114921

    展开全文
  • 当然用C来写单片机程序无可厚非,已经延续了一个传统,从大学时学的开始到工作岗位,好多人都是一直用C来做,但是既然Keil支持C++编译, 可以用C++来编写你的代码,可以利用高级语言来结构化,清晰化你的程序,为嘛...

      C++ 属于面向对象的编程语言,OOP的思想不必多说,特别对于复杂的软件工程来说,利用OOP绝对是事半功倍,相对于传统的C来说;

    当然用C来写单片机程序无可厚非,已经延续了一个传统,从大学时学的开始到工作岗位,好多人都是一直用C来做,但是既然Keil支持C++编译,

    可以用C++来编写你的代码,可以利用高级语言来结构化,清晰化你的程序,为嘛不用呢!哈哈,个人看法!下面进入正题:

     

      C++ 兼容C,所以STM32的库都是可以被C++使用的,既然这样,那就简单了!在建立好新的STM32工程时候,那就可以直接进行C++编程了;

    利用C++的方式,建立好文件,我写的一个Demo:

    .h文件--
    #ifndef __PLED__
    #define __PLED__
    
    #include "stm32f10x.h"
    
    class PLed
    {
        public:
            PLed();
            ~PLed();
        public:
            void LED_GPIO_Config(void);
            void TurnOn(uint16_t port,bool status);
          
        private:
    };
    #endif
    
    
    .cpp文件--
    #include "PLed.h"
    PLed::PLed(){LED_GPIO_Config();}
    PLed::~PLed(){}
    void PLed::LED_GPIO_Config()
    {
         GPIO_InitTypeDef GPIO_InitStructure;
    
    
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
    
                                                                   
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_5;    
    
    
           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
    
       
           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
    
         GPIO_Init(GPIOE, &GPIO_InitStructure);
         
    
         GPIO_SetBits(GPIOE,GPIO_Pin_5);   
           GPIO_SetBits(GPIOE,GPIO_Pin_6); 
    }
    
    void PLed::TurnOn(uint16_t port,bool status)
    {
      if(status)
            GPIO_SetBits(GPIOE,port);
        else
            GPIO_ResetBits(GPIOE,port);
    }

    main文件--
    #include "stm32f10x.h"
    #include "misc.h"
    #include "stdio.h"
    #include "PSysTick.h"
    #include "PLed.h"
    
    int main(void)
    {        
        
            PSysTick pst;
        pst.SysTick_Init();
    
        PLed pled;
        
        while (1)
        {
    
            pled.TurnOn(GPIO_Pin_5,true);
            pled.TurnOn(GPIO_Pin_6,false);
       
            pst.Delay(500);
            
    
            pled.TurnOn(GPIO_Pin_5,false);
            pled.TurnOn(GPIO_Pin_6,true);
            
            pst.Delay(500);
            
        }
    }
    Systick 文件
    #ifndef __PDELAY_H
    #define __PDELAY_H 
    #include "stm32f10x.h"
    
    class PSysTick
    {
    
        public:
            PSysTick();
          ~PSysTick();
        public:
            void Delay(u32 nTime);
        void SysTick_Init();
            static u32 TimingDelayx;
    };
    #endif
    
    #include "PsysTick.h"
    PSysTick::PSysTick()
    {}
    PSysTick::~PSysTick()
    {}
        
    void PSysTick::Delay(u32 nTime)
    {
        TimingDelayx = nTime;
      while(TimingDelayx != 0);
    }
    
    void PSysTick::SysTick_Init()
    {
    while(SysTick_Config( SystemCoreClock  / 1000));        
    }
    
    u32 PSysTick::TimingDelayx=0;
    中断函数:
    extern "C"
    {
    void SysTick_Handler(void)
    {
        if(PSysTick::TimingDelayx!=0x00)
        {
          PSysTick::TimingDelayx--;
        }
        else
            PUsart::SendData('E');
    }
    }

     

     

    整个工程C++代码如上,直接进行编译即可;当然如果你的main还是用.c,也可以不用修改后缀,直接在main.c的属性里修改为C++sourcefile 即可,用到了中断文件,那中断文件也同样要改为C++类型的,

    这样编译之后,和正常的C编写一样,下载文件到单片机即可;

     

    差不多就这样了!以后有问题,继续研究!

     

     

     

     



     

    转载于:https://www.cnblogs.com/yeshuimaowei/p/6949642.html

    展开全文
  • keil做的51单片机时钟代码,有万年历,秒表功能,按键控制
  • keil编写单片机程序要编译成目标文件。具体要看你用的芯片。一般编译成十六进制文件或二进制文件。烧写的的方法也和芯片有关。有的要烧写器,有的就是在线。在线烧写就是不用把芯片写下来直接烧写。一般用串行口...
    用keil编写的单片机程序要编译成目标文件。具体要看你用的芯片。一般编译成十六进制文件或二进制文件。烧写的的方法也和芯片有关。有的要烧写器,有的就是在线。在线烧写就是不用把芯片写下来直接烧写。一般用串行口或饼行口。具体要咨询芯片厂家。每家用到软件都不同。一般都是厂家提供的。 
    要使用STC-ISP软件。
    展开全文
  • 单片机仿真keil编写程序74HC595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在SCK的上升沿输入,在RCK的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器...
  • Keil uVersion 4.0(后文简称为Keil 4.0)是单片机程序开发的集成开发环境(IDE),集成了C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器。 本节以点亮一个LED为例,演示如何通过Keil新建工程、添加...
  • keil5分为两个版本,一个是普通的编辑C51单片机Keilc51版本,另一个是编辑stm32的KeilMDK,本次记录如何在一个编辑器内部同时实现,编辑stm32和普通的51单片机。 首先需要准备keil5MDK和Keil uVision5 C51版本的...
  • 使用KEIL下载文件到单片机外置存储器给单片机下载程序的原理实用性要解决的难点怎样编写bootloader使用KEIL下载文件 给单片机下载程序的原理 给单片机下载程序一般有两种方法: 1,使用厂家提供的bootloader,使用...
  • 写本篇文章的目的主要是因为在进行单片机开发的过程中,基本上都是使用的keil作为开发工具,因此这里主要针对我个人在进行单片机开发过程中遇到的问题和疑惑做一个总结,方便其他学习者参考。1、keil工具介绍 keil...
  • 安装KEIL5成功后,打开51单片机程序很多按钮都是灰色,或者编写51单片机程序的时候不能预编译,此时需要下载51单片机PACK包,要么去官网下载(但是要填写个人信息很烦),网上的答案几乎就是这个,要么就是要C币下载...
  • 此程序是在KEIL C 环境下编写的,适用单片机初学者,仅供参考
  • 关于如何使用keil的详细介绍!关于keil的操作和关于如何使用调试的一个文档!
  • 周六吃完晚饭,寻思着做点什么,想起前几天失败多次的单片机开发第一课,决定再试一次。 第一步:安装开发工具 之前照着书上,下载的是Keil 4(MDK),遇到各种问题,无法安装STC系列的产品。冷静下来想想,换了个...
  • 注:本文主要介绍利用protues和keil软件联合仿真51单片机进行的跑马灯实例。 软件:Proteus 8 ...1. keil编写源代码 1.1 建立工程  打开keil,建立名为test(也可为其它名)的工程,CPU选择Atmel的AT89C52
  • 该文章只有十几页,以图示的方式讲解了keil下51单片机烧写的软件设置。三分钟就可以学会。
  • 应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动 DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。...
  • 单片机电子琴keil代码

    2020-07-08 23:30:55
    单片机电子琴keil代码,有简单的流水灯还有天空之城的歌曲加上四乘四的矩阵按键发音。
1 2 3 4 5 ... 20
收藏数 4,618
精华内容 1,847