234彩票代理

  • <tt class='tlJykMlA'></tt>
  • <thead class='94K7Lauipx'><option class='9cNvbSu7LJ'></option></thead>

    <em class='jepytdnyfeW3'><b class='oR1Ys12nk'><td class='6rzzLTN'></td></b></em>

  • <dl class='Td0EmkF'><b class='qoWhaibfJ9'></b></dl>

  • <span class='lS1G'></span>

    (玩电子) 电子技术学习与研究
    当前位置:单片机教程网 >> 基础教程 >> 浏览文章

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

    作者:佚名   来源:本站原创   点击数:x  更新时间: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 语言中有一个特殊的一表达式语句,称为空语句,它仅仅是由一个分号“;”组成 。 有时候为了使语法正确,那么就要求有一个语句,但这个语句又●没有实际的一运行效果那么这 时就要有一个空语句 。说起来就像大家在晚自修的一时候用书包占位一样,呵呵 。

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

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

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

    的一位置 。这会用在 goto 语句中 。

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

    先在我们的一实验ζ板上    加一个按钮 。电路图如图 10-1 。


     


     

    程序如下:

    #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 串行口电路,只要稍微改变一下,就能变为具有仿真功能的一 实验ζ电路 。这个改变的一关键就是把芯片改用  SST89C58,并在芯片中烧入仿真监控程序 。 SST89C58 同样也是一种 51 架构的一单片机,它具有 24K+8K 的一两个程序存储区,能选择其 一做为程序的一启动区 。只要把一个叫 SOFTICE.HEX 的一监控程序用支持 SST89C58 的一编程器烧 录到芯片中(使用编程器或用 CA 版的一 SST89C58 烧录 SOFTICE 的一具体方法№和文件能参考 ),就 能把上     面 的一电路升级为

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

    图 10-2    项目设置菜单


     

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

    5 的一画面 。如连接不 成功就出现图 10-6 的一图,这个时候能先复位电路再按"Try Again",还不 成功连接的一话则 应检查软件设置№和硬件电路 。图 10-5 中 1 是指示仿真器的一固件版本为 F-MON51V3.4 版 。点击 3 中小红 点位置时为设置№和取▓消断点,点击 2 则运行到下一个断点 。图 10-7 则是变量№和存储器的一查看 。仿真器在

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

    图 10-4    仿真器设置


     

    图 10-5    仿真器连接成功

    图 10-6    连接不 成功提示

    图 10-7    变量及内存查看

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

    文章评论

    相关文章