1. <em id="3qmea"><ol id="3qmea"></ol></em>
    2. <em id="3qmea"></em>
      中国领先的单片机及嵌入式资讯教程开发工具提供者!
      当前位置单片机教程网 >> 基础教程 >> 浏览文章

      第十课 C51表达式语句及仿真器

      作者:佚名   来源:本站原创   点击数:  更新时间2007年07月15日   字体

      前面学习了大部分的基本语法以下所要学习的各种基本语句的语法能说是组成程序的灵魂在前面的课程中的例子里也简单理解过一些语句的使用方法能看出C语言是一种结构化的程序设计语言C 语言供给了相当丰富的程序控制语句学习掌握这些语句的使用方法也是单片机C语言学习中的重点

      表达式语句是最基本的一种语句不一样的程序设计语言都会有不一样的表达式语句如VB就是在表达式后面加入回车就构成了VB 的表达式语句而在51单片机的C语言中则是加入分号“;”构成表达式语句举例如下

      b  =  b  *  10; Count++;

      X  =  A;Y  =  B;

      Page  =  (a+b)/a-1;

      以上的都是合法的表达式语句在我收到的一些网友的 Email 中发现很多开始学习的朋友一般在编写调试程序时忽略了分号“;”造成程序不能被正常的编译我本人的经验是在遇 到编译错误时先语法是否有误这在开始学习时一般会因在程序中加入了全角符号运算符打错 漏掉或没有在后面加“;”

      在 C 语言中有一个特殊的表达式语句称为空语句它仅仅是由一个分号“;”组成 有时候为了使语法正确那么就要求有一个语句但这个语句?#32622;?#26377;?#23548;?#30340;运行效果那么这 ?#26412;?#35201;有一个空语句说起来就像大家在晚自修的时候用书包占位一样呵呵

      空语句通常用会以下两种使用方法

      (1)while,for 构成的循环语句后面加一个分号形成一个不执行其它操作的空循环体 我会会常常用它来写等待事件发生的程序大家要注意的是“;”号作为空语句使用时要 与语句中?#34892;?#32452;成部分的分号相区别如       for  (;a<50000;a++);第一个分号也应该算是 空语句它会使 a 赋值为 0(但要注意的是如程序前有 a 值则 a 的初值为 a 的当前值)最后一个分号则使整个语句行成一个空循环若此时 a=0那么 for  (;a<50000;a++);就相当

      于 for  (a=0;a<50000;a++);我本人习惯是写后面的写法这样能使人更不?#35759;?#26126;白 (2)在程序中为有关语句供给标号标记程序执行的位置使相关语句能跳转到要执行

      的位置这会用在 goto 语句中

      下面的示例程序是简单说明 while 空语句的使用方法硬件的功能很简单就是在 P3.7 上 接一个开关当开关按下时 P1 上的灯会全亮起?#30784;?#24403;然?#23548;?#24212;用中按钮的功能实现并没有 这么的简单一般还要进行防抖动处理等

      先在我们的实验板上加一个按钮电路图如图 101


       


       

      程序如下

      #include  <AT89x51.h>

      void  main(void)

      {

      图 10-1  加了按钮的实验电路图

      unsigned  int  a;

      do

      {

      P1  =  0xFF;  //关闭 P1 上的 LED

      while(P3_7);  //空语句等待 P3_7 按下为低电平低电平时执行下面的语句 P1  =  0;  //点亮 LED

      for(;a<60000;a++);  //这也是空语句的使用方法,注意 a 的初值为当前值

      }  //这样第一次按下时会有一延时点亮一段时间以后按多久就亮多久

      while(1);  //点亮一段时间后关闭再次判断 P3_7,如此循环

      }


       

      上面的实验电路已加入了 RS232 串行口电路只要稍微改变一下就能变为具有仿真功能的 实验电路这个改变的关键就?#21069;?#33455;片改用  SST89C58并在芯片中烧入仿真监控程序 SST89C58 同样也是一种 51 架构的单片机它具有 24K8K 的两个程序存储区能选择其 一做为程序的启动区只要把一个叫 SOFTICE.HEX 的监控程序用支持 SST89C58 的编程器烧 录到芯片中使用编程器或用 CA 版的 SST89C58 ?#31456;?SOFTICE 的具体方法和文件能参考 就 能把上 面 的电?#39134;?#32423;为

      MON51 仿真实验器那么怎么用它和 KEIL 实现联机仿真呢

      图 102    项目设置菜单


       

      图 103    项目设置 首先要在你要仿真的程序项目设置仿真器所使用的驱动在 Debug 页中选择对应本仿真器的 KeilMon51 驱 动如图 10 中 1 所示图 10-3 的 3 是选择在仿真时能使用的工具窗口如内存显示?#31995;?#31561;等按 2 进 行图 10-4 中的仿真器设置设置?#20040;?#34892;口号波特率晶体震荡器为 11.0592M 时选 38400Cache  Options 为仿真 缓选取后会加快仿真的运行的速?#21462;?#35774;好后编译运行程序就能连接仿真器了连接成功会出现如图 10

      5 的画面如连接不成功?#32479;?#29616;图 106 的图这个时候能先复位电路再按"Try Again"?#20849;?#25104;功连接的话则 应检查软件设置和硬件电路图 105 中 1 是指示仿真器的固件版本为 F-MON51V3.4 版点击 3 中小红 点位置时为设置和取消?#31995;?#28857;击 2 则运行到下一个?#31995;?#22270; 107 则是变量和存储器的查?#30784;?#20223;真器在

      软件大概的使用方法和软件仿真相差不多

      图 104    仿真器设置


       

      图 105    仿真器连接成功

      图 106    连接不成功提示

      图 107    变量及内存查看

      发表评论告诉好友收藏此文关闭窗口

      文章评论

      相关文章

      ຣ11ѡ5app

        
        
        1. <em id="3qmea"><ol id="3qmea"></ol></em>
        2. <em id="3qmea"></em>

            
            
            1. <em id="3qmea"><ol id="3qmea"></ol></em>
            2. <em id="3qmea"></em>