登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

同样的程序,在不同的芯片上有不同的效果

作者:isoar 栏目:单片机
同样的程序,在不同的芯片上有不同的效果
while(1)P0=0x00;

注:P0口都接了5.6K的上拉
就是循环向P0口写0,可是同样的程序在STC的芯片和PHILIPSP89V51RD2上执行的结果却不一样

STC芯片的执行时P0口始终是低电平,
P89C51RD2则只有一个指令周期的低电平,然后就被上拉电阻拉到高电平去了

按我的理解P89V51RD2的执行结果是对的,不知各位还有什么高见?

2楼: >>参与讨论
isoar
自己顶一下,等高手来上班
 
3楼: >>参与讨论
hotpower
估计被狗叼去了
 
4楼: >>参与讨论
yewuyi
不是“骨头”啊,为什么被叨走?
难道HOTPOWER在上面抹了点“猪油”?

5楼: >>参与讨论
computer00
一直是低电平的结果正确。
检查另一个,也许真的是被狗叼走了。

又或者根本跑不起来。

6楼: >>参与讨论
isoar
我觉得一直是低电平不对,因为……
while(1)
{
    P0^0=0;
    P0^1=0;
    P0^2=0;
    P0^3=0;
    P0^4=0;
    P0^5=0;
    P0^6=0;
    P0^7=0;
}

这样的程序执行后结果就都一样了,始终都是0;

PHILIPS的芯片没必要非得把
while(1) P0=0x00;
和上面的程序做得不一样吧?

感觉是STC,少做了在“MOV P0,ACC”指令操作后使PO口置成高阻的功能。

我觉得关键问题是:
“MOV P0,ACC”指令执行一个指令周期以后(一个周期内,肯定是数据),P0口应该使高阻呢还是应该继续保持数据呢?

7楼: >>参与讨论
kenand
re
#include "reg52.h"

void main()
{
    int i;
    for(i=0;i<0x7000;i++);
    P0=0xFF;

    while(1)
    P0=0x00;

    while(1);
}

P0口均已接有10K上拉.
上面的程序,在P89V51RD2上运行以后,运行以后首先被拉高,然后被永久拉低.
编译环境 : keil 7.09
编译级别 : level 8

to isoar:
如果方便能否写个小小的测试工程,
并把您的工程发过来交流一下!
email:80c51mcu@zlgmcu.com




参与讨论
昵称:
讨论内容:
 
 
相关帖子
电流互感器驱动负载的能力是什么意思?
用金鹏的OCMJ2×4C液晶的对比度怎么接啊?
做单片机的该如何发展
单片机电路的电源设计 问题,请高手指点 一下(图)
单片机开发文档的问题
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号