打印

再,请教keil仿真问题???

[复制链接]
2067|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xqhe|  楼主 | 2007-11-25 20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   我用硬件单步运行程序的时候,当运行到TCON=0x40的时候,keil软件监控timer 1情况是:TCON值为0xc0;而当把TCON读到P0口,执行P0=TCON,软件监测P0口为0x40,万用表读P0电压,是0x40;难道软件监测TCON错误了??
   当使用纯软件仿真的时候,一切都是那么可爱的正常???
   不解,,,,,,,,,,,,请指教

相关帖子

沙发
xqhe|  楼主 | 2007-11-25 21:12 | 只看该作者

dd

随便说说呀

使用特权

评论回复
板凳
computer00| | 2007-11-25 22:30 | 只看该作者

可能是有bug吧。

使用特权

评论回复
地板
xqhe|  楼主 | 2007-11-25 22:40 | 只看该作者

为什么人人都没,就我有呢,太幸运了吧

BUG为何你对我情有独钟

使用特权

评论回复
5
ayb_ice| | 2007-11-26 08:34 | 只看该作者

51有引脚和端口锁器的区别

使用特权

评论回复
6
xqhe|  楼主 | 2007-11-26 08:48 | 只看该作者

不存在

写端口是写锁存器的,我P0口接了上拉电阻,应该不存在这个问题。

使用特权

评论回复
7
lenglx| | 2007-11-26 10:30 | 只看该作者

听你的意思,

是用仿真器,单步,然后测量引脚.

但你的仿真器是否能确实仿真象89C52这样的芯片?
一般的仿真器,都是利用一个外部的存储器,存放程序的.
当你单步停下,测量P0口的时候,是没法反应真实的情况的.

你应当将程序烧录到你的芯片,输出你要的信号到P0口,然后用一条死循环指令.

这个时候,你再测量你的P0口看下是否正确

使用特权

评论回复
8
xqhe|  楼主 | 2007-11-26 13:26 | 只看该作者

anyway,thanks

我用的芯片是P89V51RD2,使用softICE模式单步的,听了lenglx说法后,用Flash Magic下载,测量P0口,还是0x40,低电平为0.37V,高电平为4.93V。
看来这个不是普遍问题,还好,定时器在硬件正常工作,要它定时10S,他就10S,这已是最大安慰了,谢谢老天~~~~~~~

使用特权

评论回复
9
lenglx| | 2007-11-26 13:47 | 只看该作者

哦.

你怎么就知道那个时候,P0口不是输出的0X40(TCON值);你不妨在你的程序里面直接输出一个固定的值到P0口看看.

另外,如果要测试P0口作为输出口的真实状态,你应当确保PO口外部能有适当的上拉电阻.

使用特权

评论回复
10
ayb_ice| | 2007-11-26 13:59 | 只看该作者

00说的对,有BUG

使用特权

评论回复
11
xqhe|  楼主 | 2007-11-26 15:16 | 只看该作者

试了下

#include <REGX52.H>

void main()
{
   
  P0=0x40;//0xc0
  while(1);
}

测得还是0x40,P0口正常。

或许真有BUG吧。

使用特权

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

本版积分规则

15

主题

46

帖子

0

粉丝