clear_zcl
驱动牛犊
驱动牛犊
  • 注册日期2002-05-30
  • 最后登录2002-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1567回复:9

新手初到,望各位大侠多多提携。有几个关于51单片机的问题请教各位:

楼主#
更多 发布于:2002-06-05 10:43
我现在要用PD12做为USB芯片,在我的开发板上将三星FLASH实现成USB的移动硬盘。为此,我到philips网站上去载了一个D12的开发包固件程序做参考,可是那个程序中的环境是D12->51单片机,我不懂51环境,因此里面的很多牵涉到51寄存器的部分代码看不懂,在此想请教各位大虾们:
// 8051 I/O map
#define MCU_P0          P0
#define MCU_P1          P1
#define MCU_P2          P2
#define MCU_P3          P3
这里的P0、P1、P2、P3是51里的内部寄存器吗?表示什么意思?当它们作为I/O口使用时,分别与D12的哪些管脚连接了?
还有:
// 8051 REG Map
#define D12INT_EDGE        IT0
#define D12INT_PRIORITY    PX0
#define D12INT_ENABLE    EX0

#define TIMER0_MODE        TMOD
#define TIMER0_LOW          TL0
#define TIMER0_HIGH         TH0
#define TIMER0_PRIORITY    PT0
#define TIMER0_IRQ_ENABLE ET0
#define TIMER0_START     TR0
这里面的这些寄存器又表示什么意思?
请斑竹及各位大侠指教!
clear_zcl
驱动牛犊
驱动牛犊
  • 注册日期2002-05-30
  • 最后登录2002-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-05 10:46
我想还是要先看看51单片机的资料才能有点底,可是我在网上没找到这些资料,请问各位有没有?有的话,帮忙发一份给我,谢谢!我邮箱:zcl_3418@hotmail.com
apmusb
游客
游客
板凳#
发布于:2002-06-05 11:34
P0、P1、P2、P3是51的端口,你看具体的51手册时应该看的到。
#define D12INT_EDGE IT0
#define D12INT_PRIORITY PX0
#define D12INT_ENABLE EX0

#define TIMER0_MODE TMOD
#define TIMER0_LOW TL0
#define TIMER0_HIGH TH0
#define TIMER0_PRIORITY PT0
#define TIMER0_IRQ_ENABLE ET0
#define TIMER0_START TR0
分别是中断优先级、使能等,和TIMER0相关的内容是计数器/定时器初始化时用到的内容,找一本51的书,可以看到的。
liuxf66
驱动中牛
驱动中牛
  • 注册日期2001-08-15
  • 最后登录2003-04-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-05 11:38
传上来一份51的芯片资料,自己D下来看看。
附件名称/大小 下载次数 最后更新
2002-06-05_AT89C51.pdf (486KB)  0
liuxf66
dinolos
驱动小牛
驱动小牛
  • 注册日期2002-03-04
  • 最后登录2004-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-05 12:57
要是用D12肯定要用到单片机,所以建议你还是好好看看51方面的书,要不即使暂时吧电路连上了,以后碰到问题都不知道怎么解决。这本书不错《单片机原理及其接口技术》,清华的书,北航也有类似的,也不错。请教别人解决不了根本问题,也不是一句两句说得清的。
菜鸟不怕大虾! 菜鸟也要做大虾!
kangfu
驱动牛犊
驱动牛犊
  • 注册日期2002-05-17
  • 最后登录2004-05-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-06-06 12:14
首先关于51的内部结构一定要自己研究一下才可以。
另外你用的flash是多大的呀,32M的吗。我是用三星的32M的flash。
不过我也是刚起步。共同进步呀。
clear_zcl
驱动牛犊
驱动牛犊
  • 注册日期2002-05-30
  • 最后登录2002-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-06-12 16:58
P0、P1、P2、P3是51的端口,你看具体的51手册时应该看的到。
 

我总觉得P0、P1、P2、P3更象是52的内部寄存器。因为代码里有这样的语句:
if(D12SUSPD == 1)
{   //  In suspend state
    P0 = 0xFF;
    P1 = 0xFF;
    P2 = 0xFF;
    P3 = 0xFF;
    PCON |= 0x02; //Powerdown bit set
    while (1);
}
显然如果P0等是I/O口的话,是不可能这么赋值的。最后说一句,我看了程序后,发现是52和D12的连接环境。多谢各位大虾解答,散分。
501lsc
驱动牛犊
驱动牛犊
  • 注册日期2001-10-04
  • 最后登录2005-05-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-06-12 19:37
北京航天大学出过无数本51机有关的好书,看看吧?但现在51机已经用处不大了。那段c51是说51机内不中断和外部i/o口的。
dinolos
驱动小牛
驱动小牛
  • 注册日期2002-03-04
  • 最后登录2004-05-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-06-12 19:38
P0~P3不是52内部的寄存器,是4个8位的并行接口,P0 = 0xFF;
P1 = 0xFF; P2 = 0xFF; P3 = 0xFF; 这四句是对端口做的初始化,就是把端口全置成了一,这些端口内部有锁存器,所以可以保存你的设置。老兄,以你现在对51的了解真得看看书才下得了手啊。
 :D
菜鸟不怕大虾! 菜鸟也要做大虾!
clear_zcl
驱动牛犊
驱动牛犊
  • 注册日期2002-05-30
  • 最后登录2002-07-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-06-13 09:17
多谢dinolos指教!我终于明白了一点,可惜分已经加完了,没法给你加分了。
游客

返回顶部