[Actel FPGA] 关于Core8051的使用问题

[复制链接]
2619|3
 楼主| 天交 发表于 2008-1-23 21:12 | 显示全部楼层 |阅读模式
Core8051与80C51单片机有很多区别,比4组输入输出端口,Core8051的输入和输出是分开的,但是80c51单片机确是公用的,这样再keil软件中进行端口定义如何处理??<br />&nbsp;&nbsp;&nbsp;&nbsp;同样Core8051和80c51单片机还有其他很多东西的不同,这样我们再利用Core8051的时候如何设置这些与80C51不同的端口??<br />&nbsp;&nbsp;&nbsp;再KEIL中如何去定义那些80C51没有的端口??再keil中选择器件的时候我们选择哪个器件??
金桥ACTEL 发表于 2008-1-24 11:42 | 显示全部楼层

输入输出口

仍然可以使用keil的,但是要做好管脚的分配,如果输入输出不在同一个I/O上,那没有什么问题的。如果将输入输出锁定在一个引脚上,那要加两个缓冲器,并在要输入时先送一个高电平出去。
zlgactel 发表于 2008-1-25 10:45 | 显示全部楼层

8051问题

问题1:Core8051的IO操作???<br />答:&nbsp;&nbsp;读的时候执行x=P0后,实际是将port0i管脚的值赋给x,port0o的状态不会影响到x的值;写的时候执行P0=y后,实际上port0o等于y,port0i的状态不会影响到port0o的值.这个就是输入输出分开的原理.<br />问题2:KEIL中如何去定义那些80C51没有的端口??<br />答:&nbsp;&nbsp;Core8051与标准的8051的端口的定义是一样的<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在通常的reg51.h文件里就有,比如<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sfr&nbsp;P0&nbsp;&nbsp;&nbsp;=&nbsp;0x80;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sfr&nbsp;P1&nbsp;&nbsp;&nbsp;=&nbsp;0x90;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sfr&nbsp;P2&nbsp;&nbsp;&nbsp;=&nbsp;0xA0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sfr&nbsp;P3&nbsp;&nbsp;&nbsp;=&nbsp;0xB0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;至于所谓没有定义的端口是不需要定义的,比如外部存储器端口是专门接<br />&nbsp;&nbsp;&nbsp;&nbsp;存储器的,不占用P0,P2口.<br />问题3:选用那种器件????<br />&nbsp;&nbsp;&nbsp;&nbsp;其实选用那种器件是选用那种寄存器头文件和启动代码的问题.<br />&nbsp;&nbsp;&nbsp;&nbsp;标准的51器件即可,比如AT89C51的头文件如下<br />#ifndef&nbsp;__REG51_H__<br />#define&nbsp;__REG51_H__<br /><br />/*&nbsp;&nbsp;BYTE&nbsp;Register&nbsp;&nbsp;*/<br />sfr&nbsp;P0&nbsp;&nbsp;&nbsp;=&nbsp;0x80;<br />sfr&nbsp;P1&nbsp;&nbsp;&nbsp;=&nbsp;0x90;<br />sfr&nbsp;P2&nbsp;&nbsp;&nbsp;=&nbsp;0xA0;<br />sfr&nbsp;P3&nbsp;&nbsp;&nbsp;=&nbsp;0xB0;<br />sfr&nbsp;PSW&nbsp;&nbsp;=&nbsp;0xD0;<br />sfr&nbsp;ACC&nbsp;&nbsp;=&nbsp;0xE0;<br />sfr&nbsp;B&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0xF0;<br />sfr&nbsp;SP&nbsp;&nbsp;&nbsp;=&nbsp;0x81;<br />sfr&nbsp;DPL&nbsp;&nbsp;=&nbsp;0x82;<br />sfr&nbsp;DPH&nbsp;&nbsp;=&nbsp;0x83;<br />sfr&nbsp;PCON&nbsp;=&nbsp;0x87;<br />sfr&nbsp;TCON&nbsp;=&nbsp;0x88;<br />sfr&nbsp;TMOD&nbsp;=&nbsp;0x89;<br />sfr&nbsp;TL0&nbsp;&nbsp;=&nbsp;0x8A;<br />sfr&nbsp;TL1&nbsp;&nbsp;=&nbsp;0x8B;<br />sfr&nbsp;TH0&nbsp;&nbsp;=&nbsp;0x8C;<br />sfr&nbsp;TH1&nbsp;&nbsp;=&nbsp;0x8D;<br />sfr&nbsp;IE&nbsp;&nbsp;&nbsp;=&nbsp;0xA8;<br />sfr&nbsp;IP&nbsp;&nbsp;&nbsp;=&nbsp;0xB8;<br />sfr&nbsp;SCON&nbsp;=&nbsp;0x98;<br />sfr&nbsp;SBUF&nbsp;=&nbsp;0x99;<br /><br /><br />/*&nbsp;&nbsp;BIT&nbsp;Register&nbsp;&nbsp;*/<br />/*&nbsp;&nbsp;PSW&nbsp;&nbsp;&nbsp;*/<br />sbit&nbsp;CY&nbsp;&nbsp;&nbsp;=&nbsp;0xD7;<br />sbit&nbsp;AC&nbsp;&nbsp;&nbsp;=&nbsp;0xD6;<br />sbit&nbsp;F0&nbsp;&nbsp;&nbsp;=&nbsp;0xD5;<br />sbit&nbsp;RS1&nbsp;&nbsp;=&nbsp;0xD4;<br />sbit&nbsp;RS0&nbsp;&nbsp;=&nbsp;0xD3;<br />sbit&nbsp;OV&nbsp;&nbsp;&nbsp;=&nbsp;0xD2;<br />sbit&nbsp;P&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;0xD0;<br /><br />/*&nbsp;&nbsp;TCON&nbsp;&nbsp;*/<br />sbit&nbsp;TF1&nbsp;&nbsp;=&nbsp;0x8F;<br />sbit&nbsp;TR1&nbsp;&nbsp;=&nbsp;0x8E;<br />sbit&nbsp;TF0&nbsp;&nbsp;=&nbsp;0x8D;<br />sbit&nbsp;TR0&nbsp;&nbsp;=&nbsp;0x8C;<br />sbit&nbsp;IE1&nbsp;&nbsp;=&nbsp;0x8B;<br />sbit&nbsp;IT1&nbsp;&nbsp;=&nbsp;0x8A;<br />sbit&nbsp;IE0&nbsp;&nbsp;=&nbsp;0x89;<br />sbit&nbsp;IT0&nbsp;&nbsp;=&nbsp;0x88;<br /><br />/*&nbsp;&nbsp;IE&nbsp;&nbsp;&nbsp;*/<br />sbit&nbsp;EA&nbsp;&nbsp;&nbsp;=&nbsp;0xAF;<br />sbit&nbsp;ES&nbsp;&nbsp;&nbsp;=&nbsp;0xAC;<br />sbit&nbsp;ET1&nbsp;&nbsp;=&nbsp;0xAB;<br />sbit&nbsp;EX1&nbsp;&nbsp;=&nbsp;0xAA;<br />sbit&nbsp;ET0&nbsp;&nbsp;=&nbsp;0xA9;<br />sbit&nbsp;EX0&nbsp;&nbsp;=&nbsp;0xA8;<br /><br />/*&nbsp;&nbsp;IP&nbsp;&nbsp;&nbsp;*/&nbsp;<br />sbit&nbsp;PS&nbsp;&nbsp;&nbsp;=&nbsp;0xBC;<br />sbit&nbsp;PT1&nbsp;&nbsp;=&nbsp;0xBB;<br />sbit&nbsp;PX1&nbsp;&nbsp;=&nbsp;0xBA;<br />sbit&nbsp;PT0&nbsp;&nbsp;=&nbsp;0xB9;<br />sbit&nbsp;PX0&nbsp;&nbsp;=&nbsp;0xB8;<br /><br />/*&nbsp;&nbsp;P3&nbsp;&nbsp;*/<br />sbit&nbsp;RD&nbsp;&nbsp;&nbsp;=&nbsp;0xB7;<br />sbit&nbsp;WR&nbsp;&nbsp;&nbsp;=&nbsp;0xB6;<br />sbit&nbsp;T1&nbsp;&nbsp;&nbsp;=&nbsp;0xB5;<br />sbit&nbsp;T0&nbsp;&nbsp;&nbsp;=&nbsp;0xB4;<br />sbit&nbsp;INT1&nbsp;=&nbsp;0xB3;<br />sbit&nbsp;INT0&nbsp;=&nbsp;0xB2;<br />sbit&nbsp;TXD&nbsp;&nbsp;=&nbsp;0xB1;<br />sbit&nbsp;RXD&nbsp;&nbsp;=&nbsp;0xB0;<br /><br />/*&nbsp;&nbsp;SCON&nbsp;&nbsp;*/<br />sbit&nbsp;SM0&nbsp;&nbsp;=&nbsp;0x9F;<br />sbit&nbsp;SM1&nbsp;&nbsp;=&nbsp;0x9E;<br />sbit&nbsp;SM2&nbsp;&nbsp;=&nbsp;0x9D;<br />sbit&nbsp;REN&nbsp;&nbsp;=&nbsp;0x9C;<br />sbit&nbsp;TB8&nbsp;&nbsp;=&nbsp;0x9B;<br />sbit&nbsp;RB8&nbsp;&nbsp;=&nbsp;0x9A;<br />sbit&nbsp;TI&nbsp;&nbsp;&nbsp;=&nbsp;0x99;<br />sbit&nbsp;RI&nbsp;&nbsp;&nbsp;=&nbsp;0x98;<br /><br />#endif<br />
sbogwxf230 发表于 2008-2-17 15:05 | 显示全部楼层

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

8051的RAM可以想办法扩展是1K以上吗?不过我发现51只有8位内部RAM地址线,没有外部RAM扩展,<br /><br />另外在corconsole中是否一样可以生成网表CORE8051,有的话,请问可以在里面做一块51单片机那样,有RAM,ROM,CPU<br />而不用,再用HDL语言写控制模块
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

54

帖子

0

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