打印
[Actel FPGA]

关于Core8051的使用问题

[复制链接]
1641|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
天交|  楼主 | 2008-1-23 21:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Core8051与80C51单片机有很多区别,比4组输入输出端口,Core8051的输入和输出是分开的,但是80c51单片机确是公用的,这样再keil软件中进行端口定义如何处理??
    同样Core8051和80c51单片机还有其他很多东西的不同,这样我们再利用Core8051的时候如何设置这些与80C51不同的端口??
   再KEIL中如何去定义那些80C51没有的端口??再keil中选择器件的时候我们选择哪个器件??

相关帖子

沙发
金桥ACTEL| | 2008-1-24 11:42 | 只看该作者

输入输出口

仍然可以使用keil的,但是要做好管脚的分配,如果输入输出不在同一个I/O上,那没有什么问题的。如果将输入输出锁定在一个引脚上,那要加两个缓冲器,并在要输入时先送一个高电平出去。

使用特权

评论回复
板凳
zlgactel| | 2008-1-25 10:45 | 只看该作者

8051问题

问题1:Core8051的IO操作???
答:  读的时候执行x=P0后,实际是将port0i管脚的值赋给x,port0o的状态不会影响到x的值;写的时候执行P0=y后,实际上port0o等于y,port0i的状态不会影响到port0o的值.这个就是输入输出分开的原理.
问题2:KEIL中如何去定义那些80C51没有的端口??
答:  Core8051与标准的8051的端口的定义是一样的
     在通常的reg51.h文件里就有,比如
     sfr P0   = 0x80;
     sfr P1   = 0x90;
     sfr P2   = 0xA0;
     sfr P3   = 0xB0;
     至于所谓没有定义的端口是不需要定义的,比如外部存储器端口是专门接
    存储器的,不占用P0,P2口.
问题3:选用那种器件????
    其实选用那种器件是选用那种寄存器头文件和启动代码的问题.
    标准的51器件即可,比如AT89C51的头文件如下
#ifndef __REG51_H__
#define __REG51_H__

/*  BYTE Register  */
sfr P0   = 0x80;
sfr P1   = 0x90;
sfr P2   = 0xA0;
sfr P3   = 0xB0;
sfr PSW  = 0xD0;
sfr ACC  = 0xE0;
sfr B    = 0xF0;
sfr SP   = 0x81;
sfr DPL  = 0x82;
sfr DPH  = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0  = 0x8A;
sfr TL1  = 0x8B;
sfr TH0  = 0x8C;
sfr TH1  = 0x8D;
sfr IE   = 0xA8;
sfr IP   = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;


/*  BIT Register  */
/*  PSW   */
sbit CY   = 0xD7;
sbit AC   = 0xD6;
sbit F0   = 0xD5;
sbit RS1  = 0xD4;
sbit RS0  = 0xD3;
sbit OV   = 0xD2;
sbit P    = 0xD0;

/*  TCON  */
sbit TF1  = 0x8F;
sbit TR1  = 0x8E;
sbit TF0  = 0x8D;
sbit TR0  = 0x8C;
sbit IE1  = 0x8B;
sbit IT1  = 0x8A;
sbit IE0  = 0x89;
sbit IT0  = 0x88;

/*  IE   */
sbit EA   = 0xAF;
sbit ES   = 0xAC;
sbit ET1  = 0xAB;
sbit EX1  = 0xAA;
sbit ET0  = 0xA9;
sbit EX0  = 0xA8;

/*  IP   */ 
sbit PS   = 0xBC;
sbit PT1  = 0xBB;
sbit PX1  = 0xBA;
sbit PT0  = 0xB9;
sbit PX0  = 0xB8;

/*  P3  */
sbit RD   = 0xB7;
sbit WR   = 0xB6;
sbit T1   = 0xB5;
sbit T0   = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD  = 0xB1;
sbit RXD  = 0xB0;

/*  SCON  */
sbit SM0  = 0x9F;
sbit SM1  = 0x9E;
sbit SM2  = 0x9D;
sbit REN  = 0x9C;
sbit TB8  = 0x9B;
sbit RB8  = 0x9A;
sbit TI   = 0x99;
sbit RI   = 0x98;

#endif

使用特权

评论回复
地板
sbogwxf230| | 2008-2-17 15:05 | 只看该作者

8051的RAM可以想办法扩展是1K以上吗

8051的RAM可以想办法扩展是1K以上吗?不过我发现51只有8位内部RAM地址线,没有外部RAM扩展,

另外在corconsole中是否一样可以生成网表CORE8051,有的话,请问可以在里面做一块51单片机那样,有RAM,ROM,CPU
而不用,再用HDL语言写控制模块

使用特权

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

本版积分规则

31

主题

54

帖子

0

粉丝