keil仿真的时候,P口下面还有一行是什么?(有图)

[复制链接]
4202|17
 楼主| dqstar 发表于 2007-8-16 16:26 | 显示全部楼层 |阅读模式
P口下面还有一行^ins是什么东西?
有什么用的?
P0口的这一行有时候和上面不一样
其它的P口一般是上下两行一样的
473009 发表于 2007-8-16 16:27 | 显示全部楼层

晕,引脚呀

wjy1107 发表于 2007-8-16 16:32 | 显示全部楼层
ayl439 发表于 2007-8-16 17:24 | 显示全部楼层

Pins

......
 楼主| dqstar 发表于 2007-8-16 17:47 | 显示全部楼层

那上下两行有什么不同?

joson 发表于 2007-8-16 18:11 | 显示全部楼层

呵呵,晕倒了!

 楼主| dqstar 发表于 2007-8-16 18:23 | 显示全部楼层

别都晕倒啊,倒是说说看

ayl439 发表于 2007-8-16 18:24 | 显示全部楼层

这个。我也搞不清楚,也来顺便问下谁明白

我遇到的情况 上下两行都是一样的 没有遇到过不一样的
可能是我用的少把
有高手可以解释下吗?
zgl7903 发表于 2007-8-16 18:52 | 显示全部楼层

上面是寄存器;下面是引脚,比如要模拟一个外部中断输入

那就点一下下面的管脚信号,相当于物理连接的信号
ayl439 发表于 2007-8-16 19:12 | 显示全部楼层

51的寄存器的值和引脚的状态是否始终一致?

如题
maychang 发表于 2007-8-16 19:18 | 显示全部楼层

不是

51的寄存器的值和引脚的状态很可能不一致。

 
ayl439 发表于 2007-8-16 19:40 | 显示全部楼层

哦~maychang大侠可以详细点说吗?

哪种情况下会发生不一致的情况那?
maychang 发表于 2007-8-16 19:45 | 显示全部楼层

回楼上

当51的某端口作为输入时,datasheet里面告诉我们,先向端口写全1。如果引脚输入低电平,显然寄存器为1,引脚为0。
ayl439 发表于 2007-8-16 20:00 | 显示全部楼层

正中要害!

我对这个是有过疑惑的,但是一直没自己测试下。
引脚是低电平的时候在Debug里面看的很清楚的
汗自己一下--!
毅恒 发表于 2007-8-16 20:00 | 显示全部楼层

感谢

又学到一点,非常感谢!
 楼主| dqstar 发表于 2007-8-16 20:41 | 显示全部楼层

9楼正中要害!

谢谢zgl7903
 楼主| dqstar 发表于 2007-8-16 20:53 | 显示全部楼层

大家看一下下面的一个简单程序

#pragma
//#include<at89x51.h>
#include<reg51.h>
#include<stdio.h>
sbit v_input=P0^0;

unsigned char time,vol,n;
unsigned int total;
void int_t0(void) interrupt 1
{
    TL0=24;TH0=0xfb;
    if(v_input)
    {
        v_input=0;
        v_input=1;
        printf("OK");
    }
}

void main(void)
{
SCON=0X50;
TMOD|=0X20;
TH1=0XF3;
TR1=1;
TI=1;
TR0=1;
ET0=1;
EA=1;
while(1)
{
}
}



仿真表明定时器0的中断服务程序中,
    if(v_input)
    {
        v_input=0;
        v_input=1;
        printf("OK");
    }

if语句后面的复合语句只能在第一次进入中断时能执行
以后再进入中断,就不能执行了
查看P0口,上下两行不一致

谁分析下!
qingqiu647 发表于 2007-8-17 10:20 | 显示全部楼层

13楼maychang已经说了

在读P00时,先向端口写入1,再读状态
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

34

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部