单片机怎样写程序_单片机烧写程序正在检测目标单片机 - CSDN
  • 学习单片机很重要的一步就是为单片机烧写程序,烧写程序是初学者体验单片机并快速入门的第一步,51单片机由于比较简单,并且为了节省学习成本,一般很少使用调试器,而是直接用单片机的串口烧写程序。下图是我使用的...

            学习单片机很重要的一步就是为单片机烧写程序,烧写程序是初学者体验单片机并快速入门的第一步,51单片机由于比较简单,并且为了节省学习成本,一般很少使用调试器,而是直接用单片机的串口烧写程序。下图是我使用的开发板,这个开发板上已经集成了USB转串口芯片。

            要为单片机烧写程序首先要安装USB转串口芯片的驱动,不同的芯片的驱动程序也不一样,我这里的USB转串口芯片为PL2303,安装了驱动程序之后,用USB线将板子与计算机连接起来,则在计算机上的设备管理器中可以找到模拟出的串口,如下图所示。

     串口对应的串口号为COM3。

             安装好串口驱动之后,接下需要用到的是烧写软件,可以从相应的网站下载到。软件名称为STC_ISP,如下图所示。

            双击上图中的绿色框中的图标。需要注意的是,这个软件是非安装版的,有的电脑系统可能不兼容。如果系统在使用非安装版时出现缺少插件现象,请使用安装版。安装版下载地址:http://www.mcu-memory.com,网站中包含了STC的各种官方资料。

            打开软件后,如下图所示。

    接下来进行的操作是:

        1、选择单片机型号为STC89C516RD+,如下图所示。

        2、打开HEX文件,点击如下图所示的“OpenFile/打开文件”按钮,在跳出的窗口内选择需要打开的HEX文件。在一个工程的目录下可以找到。

        3、设置串口的编号。将下图中的COM选择为我们之前在设备管理器中看到的串口编号。我这里是“COM3”。

        4、下载,点击软件窗口中的“Download/下载”按钮,如下图所示。

    点击之后,烧写软件的提示窗口如下图所示。

            这是51单片机下载必须的一个步骤:冷启动。这是需要关闭开发板上的电源开关,稍等一会之后再打开电源开关。程序下载成功之后提示窗口中的内容如下图所示。

     

     

     

    展开全文
  •  以c语言单片机程序为例,程序总是从main程序开始,然后顺序执行到main结束。由此可知,程序必须包含而且只能包含一个main程序,也就是常说的主程序。  main()  {4 i D" o: u. N  主程序
    学习单片机最主要的是学习写程序的方法,程序的功能千变万化,是学不完的,只有掌握了一定方法,才能用这种方法去写新的程序。7 i4 f( `; b. s
       以c语言写的单片机程序为例,程序总是从main程序开始,然后顺序执行到main结束。由此可知,程序必须包含而且只能包含一个main程序,也就是常说的主程序
       main()
       {4 i  D" o: u. N
        主程序的内容。。。。。。$ ]3 E, {. y9 a/ V
        }
    % Q2 v. @  n# E, a7 k+ ]; f/ }5 ^
    实际使用中还需要在main程序中建立一个主循环体while 或者do while,主循环体可以是死循环,也可以是条件循环,如下:
        main()2 I- l5 q. e, B" t4 i) ~9 H: U
       {" r  h7 F) J5 G$ C5 C
        
          while(1)
             {
                 死循环体内的程序会循环执行* E& K) T7 c7 a7 u
                   }
        }
    /////////////////////////////////////////////////////////
        main()
       {
        2 e  p# y- J! V/ O
          while(Flag)
             {$ Z8 Y6 y' }$ m5 z( k
                 条件循环体内的程序会根据Flag的值的变化循环执行或者跳出循环
                   }" J% @0 q* p0 ?: s& C
        }4 Z2 E. ^* K2 [  u+ @. {
    /////////////////////////////////////////////////////////. u" D6 h! E( m
        main()& ?6 l7 i! x# q+ W/ u
       {
            程序会顺序执行
          while(1); //在此处停止
             
        }
    ////////////////////////////////////////////////////////
    一般第一种用的最多,所有的需要循环执行的程序都放在主循环体内,然后内部有可以再增加多个条件循环体。
    main程序的开始一般要做哪些工作呢?再单片机中,c语言再进入main程序的入口时会自动添加一些单片机的初始化工作,使单片机处在准备工作的状态。但仅仅单片机内部做的并不一定似乎我们需要的,所以main程序的开始我们还需要些一些自己初始化的代码,比如开机时候的各个端口的状态,声明的一些变量的初始化数值,定时器或者其他外设的初始化等,凡是需要在第一时间就需要设置的部分都再这个部分完成,然后到了主循环while部分,既然是循环,就说明循环体内的程序是顺序并循环执行的,什么语句需要放在这个里面呢?那就是需要随时变化的端口量,数值等,比方说,时钟,时钟是不停变化的,就需要循环的读取时钟的数值,然后更新数据到显示器件上(数码管或液晶或者电脑端),再比方按键,因为我们不知道什么时候会按下按键,所有最简单的方法就是不停的检测按键端口的变化,这个也必须放在主循环体内,以保证检测按键的时效性。! @) ?$ V& d1 Q0 o
    / e: w$ ^# Q5 ~7 C. g% y
        举例说明:开机后P1.1连接的LED点亮,然后随这按键的按下LED熄灭,释放按键在点亮,设置P3.4端口按键3 S/ n) t4 m/ n1 I2 n8 Y8 k) p
    sbit LED=P1^1;* k/ ]- L( H. w: `1 B
    sbit KEY=P3^4; //定义按键端口,可以根据硬件连接不同更改到其他端口) i* C; r* m" O- x! ~3 }
    9 b9 Z, w* j3 ]
    main()
    {. ]! d& v6 [1 E7 z4 h& o
    LED=0;//这里以低电平点亮LED为例子,这个语句是初始化端口8 p+ h* Q4 B- m! @

    while(1)/ e. a: u( Q1 O. @6 |8 _
          {* w; W# F6 E+ \; r8 R  P: I
          if(KEY) //检测按键端口是否为1,如果为1表示没有按下,如果为0表示按键按下% Q% G4 e$ X* ]3 e% `  L
            LED=0;//没有按下则LED点亮: [' b8 ~) k& Q3 h' C  r
          else
            LED=1;//按下则LED熄灭+ ]# L& U' D/ _) K' Y4 J
          }% d) D6 g8 \9 a2 s5 K1 |$ _* P! o
    }
    展开全文
  • 总体就是单片机开发板+编译器+下载程序(下载工具) 首先,你需要一个单片机开发板.     上图就是一种比较典型的简单的单片机开发板,抑或你也可以称为学习板. 一般上面的这种开发板不算很贵. ...

    总体就是单片机开发板+编译器+下载程序(下载工具)

    首先,你需要一个单片机开发板.

     

     

    上图就是一种比较典型的简单的单片机开发板,抑或你也可以称为学习板.

    一般上面的这种开发板不算很贵.

    我们学校的老师自己设计并印刷的这种板(资源相差不多)要100元就能买一块,不过一些电源线或数据线还得自己买.总共也有150左右吧.

    你会发现有好多的不同的开发板,价格不等,资源不一.不过我个人的建议是除非你有非常浓厚的兴趣且决心很深入的研究,就没有必要买非常高级的板子,一般买了也没有用.初学者使用上面的这种就可以了,哈哈,合适即可.

     

    下一步就是编译器和下载程序了.

    编译器推荐使用KEIL 51 吧.非常好用的.

     

    你可以用C语言写程序也可以用汇编语言.

    关于KEIL 51的使用,你自己上网查查吧,有很多以时间讲不清的.

     

    我的单片机是STC ;就用STC-ISP把刚才的程序下载到单片机吧.

     

    下面就简单了.按照步骤

    1,先选好单片机的型号:STC89C52RC.

    2,选择要下载到单片机的程序文件.

    3,选择COM口,这很重要哦.看看你电脑是哪个口就选哪个口吧.

    其他的就没有必要选择了.

     

    OK!点击Downlod/下载 ;

     

     

    好了,显示下载成功!

     

    这两个工具网上都有,自己有迅雷搜索一下吧..

     

     

    追问:

    问个很白痴的问题。 是不是要把 单片机接到那个学习板上然后在与PC连接啊?

     

    就是:单片机怎么和PC连上的啊?

    回答:

    是这样的.

    板上有电源接线,数据接线.

    插上电源线,数据线和电脑相连,即可通过上面步骤把写好的程序下载到单片机当中.

    追问:

    还是不太明白。麻烦您说下:

     

    单片机、开发板、PC 直接的关系。哪个连哪个。

     

    貌似还有一个实验板,总之很混乱

    回答:

    上图就是单片机.可以看到它有好多引脚,各个引脚都有自己的定义(用途),这个书上都有.

     

    可见,只有单片机而不需要其他的外围器件设备,要向单片机里写程序是不实际的.

    这时我们需要一个开发板.开发板,学习板,实验板其实都是一样的,就是名称不一样罢了.

     

    上图就是开发板,有了开发板,你可以进行各种实验.比如你可以写个程序告诉单片机,让单片机控制蜂鸣器发声,或写个程序让单片机控制数码管工作等等.实验板在单片机学习中必不可少.

    如上图你也会发现,板上有个USB程序下载的接口,用USB数据线把开发板和电脑相连接,就可以实现把程序下载到单片机中了.

     

    你就这么理解吧:单片机附在开发板上,开发板上的外围电路是连接单片机本身和电脑的桥梁,使我们对单片机的操作成为可能.



    常规下载方式:

    一般的可以用ISP方式下载,也有支持IAP的,可以进行在应用的自编程

    当然如果支持JTAG,也可以通过JTAG进行下载【同时可以用来仿真】

    如果有专用的下载器的话,可以通过高压并行的方式进行写入。

    软件编写:

    单片机按类型,开发软件也有所不同

    但主流的是KEIL,IAR,GCC

    KEIL支持arm和51等,IAR支持的就多了【不过软仿功能似乎没有KEIL的好】,GCC支持arm和avr等【感觉对avr的维护更好些】

    编写好程序,编译后基本上都能生成hex文件,将该文件烧录至单片机就行了【通过配套的软件】

    keil的方针用文件好像是elf的,iar的是d90的,不过新的版本好像也支持elf了,

    不过感觉proteus对d90的支持反倒好些


    出处:http://wenwen.soso.com/z/q145054752.htm



    展开全文
  • 单片机独立按键使用程序 (51单片机) 独立按键是单片机中很重要的一个器件,在这篇文章里,通过这个用独立按键控制LED灯的小程序来介绍独立按键开关的使用。 ...

    单片机独立按键使用程序 (51单片机)

    独立按键是单片机中很重要的一个器件,在这篇文章里,通过这个用独立按键控制LED灯的小程序来介绍独立按键开关的使用。

    #include<reg52.h>
    typedef unsigned int u16;
    typedef unsigned char u8;
    sbit key=P3^1; 
    sbit led=P2^0;  
    
    void delay(u16 num)//延时函数
    {
     u16 x,y;
     for(x=num;x>0;x--)
      for(y=110;y>0;y--)
     {
      ;
     }
    }
    void main(void)
    {
     led=1;
     while(1)
    {
     if(key==0)
     {
      
      delay(10);//消抖程序
      if(key==0)
      {
      led=~led;//取反
      }
      while(!key);//使灯在开关下一次按下之前不发生变化,不跳出大循环
     }
    }
    }
    

    两次按下按键的结果图
    1

    在这里插入图片描述

    运行视频
    在这里插入图片描述
    关注公众号,了解更多。

    在这里插入图片描述

    展开全文
  • 单片机程序流程图,看看还是不错 单片机程序流程图,看看还是不错 单片机程序流程图,看看还是不错
  • 51单片机作为主站的MODBUS通信协议,可实现读写从站寄存器的值
  • 51单片机无法烧录程序的N种解决办法 有没有掉电!!!如果没有自动掉电的电路时,需要手动掉电; 单片机的晶振有没有安装好,是否有缺失,晶振的负载电容是否合适; CH340的TXD,RXD要与单片机的TXD,RXD反接,CH...
  • 下午自学了一下单片机的前几章的知识,理解了数码管的显示原理以及静态显示和动态扫描的编程方法。其中,比较重要的几个概念有:数码管公共端类型(共阴极、共阳极)、位选(决定多位数码管中哪一位显示)、段选(决定...
  • 大家都知道单片机的运行需要执行好的程序,但是单片机的指令数据都被在了哪里?在哪读取指令?单片机达人给你解答技术难题。  让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为上...
  • 单片机是没有上操作系统的东西,在keil中编写的代码都是裸机代码,深入编写裸机代码有助于了解硬件的特性。 若不是硬件特性已定的情况之下的其它流程都是代码作祟。忽然想到来探探51单片机的执行流程。这个念头起源...
  • 好久没碰单片机了,有些生疏了。到现在还依稀记得自己独自坐在电脑屏幕前自学单片机,硬生生的去看了单片机的基础,现在想想还是挺有趣的。附上当初一点初学的单片机程序,请大家勿怪! 用P1口作为输出口,接8...
  • 51单片机超声波测距程序
  • 由于用C语言写程序,容易上手,开发效率高,所以之前一直用C写程序。在C程序的时候,我习惯使用模块化编程,这极大地方便了代码的管理。又因为大二学习了8086汇编系统,在实验指导书上也使用了模块化编程,于是我...
  • 一直就很想学学C++,想等等以后调智能车的时候写写上位机玩玩。只是很可惜了一直没时间学,C++没学多少倒是在写单片机的时候C语言精通了… 今天没事看了看C++ primer 顺便搞搞C++的单片机编程,只知道可以用C/C++编...
  • 在学习单片机之前,要先清楚单片机程序是如何烧写到单片机内部的,在烧写的过程中需要用到什么工具?因为不通用的烧写工具可能价格较贵,比如说Micorchip单片机使用的ICD系列编程器,单台价格在60...
  • LCD1602 工业字符型液晶。1602是指LCD显示的内容为16X2,即可以显示两行,每行16个字符.特殊接口说明 RS:寄存器选择输入端 RS=1:指向数据寄存器 RS=0:指向指令寄存器RW:读写控制输入端 ...程序编写:#include #inc
  • 基于Unique ID的单片机程序加密系统 单片机唯一ID程序加密 单片机一般作为一个产品的逻辑中心,工作时一直在进行着逻辑判断与执行操作,相当于人类的大脑。单片机可以通过修改程序来控制外围电路的工作状态,从而...
  • 单片机控制步进电机-单片机程序(avr) 硬件线路连接图见上一篇文章 软件: ICCV7 FOR AVR-程序 Progisp-烧程序 速度S曲线生成器(后续后单独讲解)-生成S曲线数组代码 硬件: Atmega16 ASP下载线 杜邦...
  • 对于单片机程序占了多少字节?单片机还剩多少存储空间?想必你看到这篇文章时对这两个问题也很迷糊吧,  接下来我就把自己所了解到的关于单片机程序占用空间大小的问题做一个整理,方便自己也方便他人。  转载请...
  • 不能用keil作下载,它应该只是一个程序编辑和调试用的吧,用keil生成hex文件。下载时用专门的下载软件找到生成的那个hex文件就可以下载 了。,有专门的单片机烧写软件的。那个软件的名字叫STC-ISP V391(你可以下载...
1 2 3 4 5 ... 20
收藏数 86,196
精华内容 34,478
关键字:

单片机怎样写程序