打印

请教关于51仿真器全速执行时的问题

[复制链接]
2702|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
初学单片机,我使用的是仿真芯片是SST89E516RD+,写的一个流水灯的程序,为何同样的程序在89C52上显示的实际效果,和仿真器上全速执行的效果果不一样(全速时所有灯全亮,但单步执行时显示顺序又是正确的)。

#include <reg52.h>

void delay_ms(unsigned int time) //延时1毫秒程序
{
      unsigned int i,j;
      for(i=time;i>0;i--)
      for(j=112;j>0;j--){;}
}

void main(void)
{
      unsigned char move;
      unsigned char loop;
      while(1)
      {
          move=0x01;
          P1=~move;   //点亮P1.0口
          delay_ms(100);
          for(loop=0;loop<7;loop++)
          {
              move<<=1;
              P1=~move;
              delay_ms(100);
          }
      }
}

相关帖子

沙发
baiyunfei.k.f| | 2010-8-23 11:33 | 只看该作者
1ms的延时你能看到效果么?时间太短了吧

使用特权

评论回复
板凳
hsav| | 2010-8-23 11:46 | 只看该作者
我们推荐一款CPLD学习板,套件由SM101及SM130学习板组成。板上带有电源、用于输入的轻触开关、晶振时钟及用于输出的LED。其中SM101学习板包含XC9572XL CPLD、下载接口及2个双排20位间距2.54的插座,将所有输入输出端口引出板外,可以配合SMB130学习板组成完整的系统,或者直接应用到用户的产品之中。该学习板套件价格便宜、简单易懂。包含硬件的全部原理图及PCB,有配套的Verilog HDL语言例子。套件虽然简单,但已包含了一个最小系统所需的部分。

    采用学习板套件后,配套ST-990XIL下载线一条,可以开发多种XILINX公司的FPGA及CPLD器件。在www.cnstl.com上可以下载配套的实用工具,用于烧录串行FLASH芯片25VF002系列、93C46系列及24C01系列储存**体。也可以烧录带ISP功能的单片机,如AT89S51系列等。一次投资永远保值,是电子工程师必备的工具之一。提供Verilog HDL源程序包括时钟、复位、计数器、输出等。实现方式有判断,分支等方法,可以改写程序得到不同的效果。可以从插座引出的扩展I/O端口直接连接到系统。开发初期可以安装万能板之中,即刻搭出系统,投入整个系统的设计,大大提高开发效率。

    SM101学习板使用的核心器件是XILINX公司CPLD产品 XC9572XL,为新推出的XC9500XL系列CPLD的成员之一,提供了一个高性能非易失性可编程逻辑解决方案,先进的管脚锁定技术,无需改变电路板布局即可重新设计。在系统编程(ISP)具有出色的调试和反复设计的性能,提供36至288个宏单元密度,并具有多种封装选项和I/O性能,能够很轻松地实现不同密度的器件间的移植。

    XC9572XL包括72宏单元、1,600 可用门电路,系统时钟最高为178MHz、电源部分、输入/输出口(I/O)和程序下载电路。XC9572XL采用VQFP44的小封装,采用3.3V的低电压供电。有34位输入输出I/O端口,所有I/O口都可以交换使用。有2个全局时钟端,如果是有边沿触发的信号,请尽量使用全局时钟引脚。有全局复位端及全局清除端,全局输出允许端等,这几个特殊端口,如不使用,可以当普通I/O使用。设计工具采用ISE TM WebPACK TM 软件。可在 www.xilinx-china.com 免费下载软件。

    本项目使用硬件描述语言(Hardware Description Language)中广泛使用的Verilog HDL语言和Xilinx ISE、ModelSim XE这两种软件进行开发的。其中Xilinx ISE用来综合Verilog HDL语言并产生下载程序,用ModelSim XE软件逻辑仿真。
开发FPGA及CPLD一般可分为原理图输入及硬件设计语言两种,采用硬件设计语言具有可移植及可重用性,设计可以独立于半导件制造工艺之外。主要是依靠综合工具将代码分析为与、非门等组成的基本门电路。也可以生成相应的电路图。高级的应用中也可以修改中间生成的电路图达到最佳的效果。
设计语言一般有VHDL及Verilog HDL两种,Vviloyg HDL简称V语言,在实现相同功能的情况下,V语言仅需几乎VHDL语言一半的长度,而且V语言与C语言的语法近似,对于已经学习,或使用C语言的人而言,应该可以较快地掌握V语言。

( XC9572 CPLD学习套件 ,出处: www.cnstl.com )。

QQ:812487000

使用特权

评论回复
地板
maxwellpin|  楼主 | 2010-8-23 11:49 | 只看该作者
2# baiyunfei.k.f

是0.1秒

使用特权

评论回复
5
calor| | 2010-8-23 14:29 | 只看该作者
调整下延迟时间看看。

使用特权

评论回复
6
maxwellpin|  楼主 | 2010-8-23 15:21 | 只看该作者
5# calor

好像和改延时没多大关系,改到10000ms都是全亮。难道89E516RD仿真器的延时功能不起作用?还是仿真器坏了?因为我用ISP烧写不进去。这些程序烧写在89C52上没发现有什么问题啊,延时都是对的。

使用特权

评论回复
7
calor| | 2010-8-23 20:08 | 只看该作者
程序是没什么问题的,仿真器的说明好好看下。
仿真器要占用一部分资源,不要和程序中有冲突。

使用特权

评论回复
8
xupeng05083124| | 2010-8-24 09:20 | 只看该作者
顶一下

使用特权

评论回复
9
xupeng05083124| | 2010-8-24 09:20 | 只看该作者
学习学习,不错的例子

使用特权

评论回复
10
seabada| | 2010-8-24 12:39 | 只看该作者
for(j=112;j>0;j--){;}
后面的大括号要他干嘛?
数码管共阴还是共阳的看清楚?

使用特权

评论回复
11
maxwellpin|  楼主 | 2010-8-24 15:12 | 只看该作者
10# seabada


for语句没有{}编译通不过的。

使用特权

评论回复
12
calor| | 2010-8-24 21:28 | 只看该作者
11# maxwellpin
加个“;”即可,呵呵

使用特权

评论回复
13
xcs101| | 2014-3-29 10:38 | 只看该作者
如果程序没问题,跟我一样设置仿真就跟实际一样。C:\Users\超汕\AppData\Roaming\Tencent\QQ\Temp\8MQOV%~BH@A9JCMVMY67)%9.jpg

使用特权

评论回复
14
xcs101| | 2014-3-29 10:40 | 只看该作者
刚刚图片没发上来

8MQOV%~BH@A9JCMVMY67)%9.jpg (222.59 KB )

8MQOV%~BH@A9JCMVMY67)%9.jpg

使用特权

评论回复
15
nickyamw| | 2014-3-29 10:52 | 只看该作者
全速时灯亮,说不定就是你延时的时间短了,或者说你在仿真的时候的晶振频率太高了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

182

帖子

0

粉丝