keil连接单片机_keil4连接单片机 - CSDN
  • Keil uVersion 4.0(后文简称为Keil 4.0)是单片机程序开发的集成开发环境(IDE),集成了C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器。 本节以点亮一个LED为例,演示如何通过Keil新建工程、添加...
    Keil基本操作 
        文/阿丘  2018/3/28


    一、概述
        工欲善其事必先利其器。Keil uVersion 4.0(后文简称为Keil 4.0)是单片机程序开发的集成开发环境(IDE),集成了C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器。
         本节以点亮一个LED为例,演示如何通过Keil新建工程、添加源文件、编译等基本操作。

    二、Keil基本操作——以点亮一个LED项目为例
         本项目通过8051单片机的P2.0管脚控制一个红色LED, 支持两种控制模式:长亮模式和闪烁模式。电路图如下图所示,由图可知,P3.0输出低电平时,LED点亮;输出低电平时,LED熄灭。
          项目程序由一个.c和一个.h组成,其中,LedCtrl.c为主程序,演示LED的两种控制模式;led.h为LED控制实现,定义了长亮函数LED_lit(bit flag)、闪烁函数LED_flash(unsigned int interval)和软件延时函数LED_delayMS(unsigned int ms)。
          下面演示基于Keil完成本项目的开发过程。
            1. 新建工程。
            (1) 运行Keil uVision4。
            (2)选择菜单【Project>New μVersion Project】,打开Create New Project对话框。
              

             (3)设置工程保存路径和工程名称。注意,建议一个工程对应一个文件夹,方便管理。 
              
        (4)设置单片机型号。 在Select a CPU Data Base File对话框选择Generic Data Base,然后弹出的对话框中选择ATMEL>AT89C51,单击【OK】按钮。
          (5)单击【否 】按钮,选择不复制8051启动代码到工作文件。
        
     
       到此,空白工程已经建好,如下图所示。

    1.  编写代码
       (1)选择菜单【File>New】(快捷键Ctrl+N)新建一个空白文件,则进入文件编辑状态。
       (2)选择菜单【File>Save As】(快捷键Ctrl+S)将新建文件存储到工程目录LEDCtrl下,命名为led.h。
       (3)重复步骤(1)~(2),新建文件LedCtrl .c,存储路径为工程目录LEDCtrl 下。
       (4)编写led.h,代码如下:
        
    #include <reg51.h>   //导入8051特殊功能寄存器定义及其可寻址位定义
    sbit led_red = P3^0; //定义led_red变量控制P3.0引脚:
                         //输出0时(低电平),LED亮,输出1时,LED灭。

    /******************************
    *函数:LED_lit
    *功能:点亮/熄灭led_red
    *参数:bit flag: flag = 1, 点亮;flag = 0,熄灭
    *返回:无
    *****************************/
    void LED_lit(bit flag)
    {
       led_red = ~flag;  //不用if语句,控制输出与flag为相反,直接取反操作即可。
    }

    /******************************
    *函数:delayMS
    *功能:ms级延时函数@12MHz晶振
    *参数:unsigned int: 延时时间,单位ms
    *返回:无
    *****************************/
    void LED_delayMS(unsigned int ms)
    {
       unsigned int i,j;
       for(i=0;i<ms;i++)
         for(j=0;j<150;j++);
    }


    /******************************
    *函数:LED_flash
    *功能:led_red闪烁:亮->灭>亮>灭...
    *参数:unsigned int: 闪烁间隔,单位ms
    *返回:无
    *****************************/
    void LED_flash(unsigned int interval)
    {
       lit(1);
       delayMS(interval);
       lit(0);
       delayMS(interval);
    }


        (5)编写LEDCtrl.c,代码如下:
         
    #include "led.h"
    /******************************
    *函数:main
    *功能:程序入口,演示:1. LED长亮10s; 2. LED闪烁10次.
    *参数:无
    *返回:无
    *****************************/
    void main()
    {
      unsigned char flash_times = 10;
      unsigned char i;
      while(1)
        {
          LED_lit(1);
          LED_delayMS(10000);
          for(i=0;i<flash_times;i++)
            {
              LED_flash(1000);
            }
        }  
    }

     (6)添加LEDCtrl.c和led.h到当前工程。
       a. 在工程浏览区双击Target 1下的Source Group1,打开添加对话框。 
      
    b. 再添加对话框中先选择文件类型(.h或.c),再双击要添加的文件即可。
    添加的文件会出现在工程资源浏览区下,如下图所示。

    1. 编译程序。 
       (1)设置输出.hex选项,输出目录默认为工程路径的根目录。
          选择菜单【Project>Options for Target 'Target1'...】(快捷键ALT+F7或快捷图标),在弹出的对话框的Output页签中勾选Create Hex File选项,单击【OK 】按钮。。

       (2)单击工具栏的快捷图标或按快捷键F7,编译程序。
    在编译信息输出区域显示编译结果,如下图所示。
        若有错误(error),双击错误提示即可。
        如将LEDCtrl.c里的LED_lit函数调用改为lit,则错误提示如下,表示lit函数缺少原型,即没有定义ing。
        
    至此,整个工程从创建到编译已经介绍完成,以上就是Keil最基本的操作。
    至于程序调试功能,属于高级功能,不作介绍。

    本文PDF版本及源程序(包括Proteus仿真文件)获取路径:github: mcu8051
    https://github.com/happyicefish/mcu8051.git
    https://github.com/happyicefish/mcu8051.git










    展开全文
  • 使用keil连接proteus(单片机C51) 1.保存为.c文件 2.生成hex文件,为了仿真模拟时加载程序 3.用来连接仿真软件 4.找到这个选项为了连接 5.编译整个项目 6.可以看到项目下有.hex的文件 7.双击处理器找到文件夹...

    使用keil连接proteus(单片机C51)

    1.保存为.c文件

    在这里插入图片描述

    2.生成hex文件,为了仿真模拟时加载程序

    在这里插入图片描述

    3.用来连接仿真软件

    在这里插入图片描述

    4.找到这个选项为了连接

    在这里插入图片描述

    5.编译整个项目

    在这里插入图片描述

    6.可以看到项目下有.hex的文件
    在这里插入图片描述

    7.双击处理器找到文件夹,加载.hex

    在这里插入图片描述

    8.开始执行和停止

    在这里插入图片描述

    我的电脑没有办法在keil里面debug(调试),一般我平时不debug

    大致的流程就是这样,从创建C语言文件到链接proteus就是这样

    展开全文
  • 该文章只有十几页,以图示的方式讲解了keil下51单片机烧写的软件设置。三分钟就可以学会。
  • (学习笔记) 出现电压抖动无法解决,...单片机的带负载能力不足以驱动数码管,因此需要锁存器进行驱动。 3、8051单片机 P0用于位选和段选 P2.7wela(位) P2.6dula(段 4、总线(非必须) (1)画出总线。...

    (学习笔记)

    锁存器无法锁存,不知道解决,失败。

    在这里插入图片描述

    1、数码管
    相关知识:com_a是共阳极,com_k是共阴极,选择的时候注意,这里用的字段码是共阴极的接法,使用供阳极可以在相同接法下使用按位取反~。
    在这里插入图片描述
    2、D锁存器
    单片机的带负载能力不足以驱动数码管,因此需要锁存器进行驱动。
    在这里插入图片描述
    3、8051单片机
    P0用于位选和段选
    P2.7wela(位)
    P2.6dula(段
    4、总线(非必须)
    (1)画出总线。
    (2)将单片机P0口接到总线,背景有很多小点,从单片机引脚单击划线,到总线附近一个点的地方就会自动连接到总线,再次单击后出现总线设置窗口,这时总线没被使用,“确定”即可,接下来还有7个引脚一样。完成后总线便有8个号,以后再接入时,选择已有的号就是与之相连,最下面的号是即将创建的号。
    在这里插入图片描述
    在这里插入图片描述
    可以看到相同的号的线是连在一起的。
    5、排阻(上拉电阻)
    公共端接VCC,其他接P0(通过总线)。

    6、连线图。
    在这里插入图片描述

    无关

    multisim仿真时,LED与电阻串联时,LED的阻值约为电阻的一半,且与电阻在LED的哪一端无关。
    这里LED导通电流为3mA。
    在这里插入图片描述

    在这里插入图片描述

    展开全文
  • (新人学习笔记) 目标图。 1、找排阻,需要一线作为公共电位(接VCC电源),八线作为8位输入(分别接8个LED灯),所以选择8Line。 ...proteus软件仿真的图给...Q端(输出端)分别连接LED灯,D端(输入端)分别连...

    (学习笔记)
    目标图。
    在这里插入图片描述
    1、找排阻,需要一线作为公共电位(接VCC电源),八线作为8位输入(分别接8个LED灯),所以选择8Line。
    在这里插入图片描述
    2、找8位D型锁存器。
    proteus软件仿真的图给的是74HC573,当时没找到,用了74273。(后来找到,叫74F573PC。)
    Q端(输出端)分别连接LED灯,D端(输入端)分别连接单片机P1的8个管脚(跟代码对应,可选)。
    11号端口需要接VCC电源保持工作状态,CLK时钟端口接到了单片机的P2.5端口(跟代码对应,可选)。
    在这里插入图片描述

    3、接下来就是51单片机了,虽然这里用了52芯片不过不影响。
    在这里插入图片描述

    放置元件后会弹出设置向导,第一步设置名字和路径,根据个人情况。第二步,如果使用 Multisim里的51头文件,是8051.h ,不是 reg51.h,这里选择外部HEX文件,用KEIL软件编译生成,具体使用参照郭天祥的单片机教学。(单片机,10天征服你)
    在这里插入图片描述

    4、还有LED灯(任选)
    在这里插入图片描述

    5、电源和地。
    VCC和GROUND。
    6、连线吧。(毫无美感哭)
    在这里插入图片描述
    7、程序。
    双击51芯片,选择“代码”,“属性”,选择“项目一”(个人起的名字)
    在这里插入图片描述
    在这里插入图片描述

    右边选择HEX文件。
    一路确定,开始仿真。

    #include<reg52.h>
    #include <intrins.h>
    #define uint unsigned int 
    #define uchar unsigned char 
    uchar temp,num;
    sbit p2=P2^5;	
    void delay(uint);
    void check();//用于启动时检查灯的好坏,仿真就没用处。
    void clock();//74273上升沿触发,此函数用来锁存。
    
    void main()
    {
    	check();
    	temp=0xfe;
    	while(1)
    	{	
    		
    		for(num=0;num<8;num++)
    			{
    				
    				P1=temp;
    				clock();
    				delay(10);
    				temp=_crol_(temp,1);
    				P1=0xff;
    				clock();
    				delay(10);	
    			}
    
    			temp=0x7f;
    		for(num=0;num<8;num++)
    			{
    				P1=temp;
    				clock();
    				delay(10);
    				temp=_cror_(temp,1);
    				P1=0xff;
    				clock();
    				delay(10);	
    			}
    		}
    }
    
    void delay(uint z)
    {
    	uint x,y;
    	for(x=z/4;x>0;x--)
    		for(y=z/2;y>0;y--);	
    }
    
    void check()
    {
    	uchar t=0x00;
    	P1=t;
    	p2=0;
    	clock();
    	delay(50);
    }
    
    void clock()
    { 
    	p2=1;
    	delay(10);
    	p2=0;
    }
    	
    
    展开全文
  • 本人修改的STC89C52单片机RC522读卡程序,Keil打开后直接运行,无错误,代码释义一看就懂,单片机是STC89C52的,其他单片机可能不好用,RC522直接和单片机连接,端口定义如下:(RC522还有一个电源端口,一个接地端...
  • Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和...
  • 实验1 单片机集成开发环境Keil5的使用 实验目的 1、学会下载、安装Keil μVision集成开发环境; 2、了解Keil μVision软件开发流程; 3、学会使用Keil μVision集成开发环境进行软件开发,包括程序的编辑、编译、...
  • STM32单片机Keil5下仿真 DUG却出现*** error 65: access violation at 0x40021000 : no ‘read’ permission. Options for target -> Debug 选择 [User simulator] Dialog DLL默认是DCM3.DLL Parameter...
  • 我们今天所做的一切都是为了在单片机编程上做的更好。 在谈论今天的主题之前,先说下我以前的一些经历。在刚开始接触到C语言程序的时候,由于学习内容所限,写的程序都不是很大,一般也就几百行而矣。所以所有的...
  • 作者:iamlaosong keil除了可以编写、编译和仿真执行来调试用户...2、修改KEIL安装点keil/c51/FlashMon目录下与单片机型号一致的配置文件config.inc,主要是根据实际情况修改cpu_clock和code_start两个参数值,我改为
  • 后来经过查找资料,发现合泰单片机也有keil5的支持包,也就是说可以从库函数进行开发,不用从寄存器进行开发,但我找了好久,并没有找到教程,后来实在没办法,打算自己动手搭建环境,经过了大概两天的挣扎后,终于...
  • 使用KEIL5开发stm32比较方便,在程序编译、连接等中间过程中会产生很多无用文件。比如一个STM32项目正常编译通过后整个项目大小为: 使用正点原子提供的keilkill.bat执行无用文件删除后文件大小为: 可以看出体积...
  • 单片机控制交通灯的keil工程源文件
  • STLINK,ST-LINK Utility无法连接单片机 keil,ST-LINK Utility尝试连接最小系统板,但是无法连接。网上搜了很多教程,偶然看到一位道友说他连接空板子可以,有程序的不行,不知道为什么,因为我的板子之前也下载过...
  • 单片机Keil C251 V5.5.4

    2020-07-30 23:30:36
    单片机模拟编程开发工具 C251: 适用于251 Microcontroller微处理机系列 C251是为MCS 251系列单片机所设计的开发工具,支持所有的251系列衍生产品,方便你编写和测试c代码与251汇编代码。 开发工具包括... l µ...
  • C语言在8051单片机上的扩展(interrupt、using关键字的用法)直接访问寄存器和端口 定义sfr P0 0x80 sfr P1 0x81 sfr ADCON; 0xDEsbit EA 0x9F 操作ADCON = 0x08;  P1 = 0xFF; io_status = P0 ; EA = 1; 在...
  • keil3是基于C语言开发的单片机仿真软件。本文将介绍keil3的基本操作。案例:使用keil3模拟AT89C51进行“Hello World”输出。建立工程部分:图1打开keil3,建...
  • 1、对工程进行配置操作:使用KEIL C51编译器打开工程文件并将仿真工具OCD II连接到电脑端的USB口,点击编译器中的魔术棒,在Debug选项卡中选择ABOV OCD-1/2 dongle,如下图所示: 2、在Utilit...
  • 1基本原则  质量是关键。没有人会对很差的工作感到满足。当完成高质量的工作时,你会为此而感到骄傲。不管你是否知道,你都会因为你的高质量工作而得到信誉。...1.1 了解单片机的能力  【规则1】设计满
1 2 3 4 5 ... 20
收藏数 3,743
精华内容 1,497
关键字:

keil连接单片机