小康芯片数据存储器。该单晶片为8K字节块可以解决在整个第64 K外部数据存储器
地址范围(重叠为8K的界限) 。外部数据存储器地址空间可以映射到
采用片上存储器只,场外晶片记忆体,或两者的结合(地址,最多为8K指示onchip ,
以上为8K指示emif ) 。该emif也可配置为复用或非复用
地址/数据线。
关于c8051f12x和c8051f130 /一日起,在单片机的程序存储器的128 k字节库
快闪记忆体。在1024字节,从地址0x1fc00到0x1ffff均予以保留。关于c8051f132 / 3
该单片机的程序存储器的64 k字节的快闪记忆体。这记忆,可重组成
在系统1024字节部门,并不需要特别的小康芯片编程电压。
对所有设备,也有两个128字节部门地址0x20000以0x200ff ,它可用于
通过软件,为数据存储。见图1.8 ,为单片机系统中的内存映射。
1.3 。 JTAG调试和边界扫描
JTAG边界扫描和调试电路,其中包括提供非侵入性,全速,在电路
调试使用的生产部分安装在终端应用,途经四个引脚JTAG界面。该
JTAG端口,它完全符合的IEEE 1149.1 ,提供全面的边界扫描测试和制造的目的。
Silicon Labs的调试系统支持检查和修改内存和寄存器,断点,
watchpoints ,一叠显示器,并单步。没有额外目标的RAM ,程序存储器,定时器,
或通信渠道。所有的数字和模拟外围设备的功能和
工作的同时,正确调试。所有周边设备(除香港艺术发展局和SMBus )是停滞的时候
MCU是停产后,在单步,或在断点为了保持对它们的同步。
该c8051f120dk开发套件提供了所有的硬件和软件,并要发展应用
代码和履行在电路调试与c8051f12x或c8051f13x微控制器。
该套件包括一个Windows ( 95或以上版本)的开发环境,一个串行适配器用于连接到
JTAG端口,和一个目标应用板与c8051f120单片机安装。一切必要的沟通
电缆和一个壁挂式电源供应,也提供了开发工具包。利用Silicon Labs
调试环境是一个很大的优势配置,为开发和调试嵌入式应用
相比标准单片机仿真器,它利用机载"冰晶片" ,并针对电缆,并要求该
单片机在应用委员会,以嵌。利用Silicon Labs调试环境不但增加易用性
并保留了高性能的精度,片上模拟外设。
关于外部FLASH擦写程序,应该确认当前段所属块是否是坏块,如果是,就要跳过;如果不是,再继续执行擦除 *** 作;如果以上两步都OK,没有写入数据,那么,请确认下,写入函数的时序是否正确,然后再确认读取,读取时序也必须正确。
#include <c8051f020.h>//------------------------------------------------------------------------------------
// 常量定义
//-----------------------------------------------------------------------------------
#define SYSCLK 2000000//系统工作频率
#define PORTA 0x8000 //c8051f020 A口地址
#define PORTB 0x8001 //c8051f020 B口地址
#define PORTC 0x8002 // c8051f020 C口地址
#define PORTCON 0x8003 // c8051f020 控制口地址
//------------------------------------------------------------------------------------
// 函数定义
//------------------------------------------------------------------------------------
void PORT_Init (void)
//------------------------------------------------------------------------------------
// 主程序
//------------------------------------------------------------------------------------
void main (void)
{
unsigned int i
unsigned char j,k
unsigned char xdata * Pointm
WDTCN = 0xde //禁止看门狗定时器
WDTCN = 0xad
PORT_Init ()
Pointm=PORTCON
*Pointm=0x80 //B口输出,C口输出 A口不用
while(1) //循环显示
{
for(j=0j<11j++)
{ if( j==0x00)
k=0x06
else if(j==0x01)
k=0x5b
else if(j==0x02)
k=0x4f
else if (j==0x03)
k=0x66
else if(j==0x04)
k=0x6d
else if ( 0x05)
k=0x7d
else if(j==0x06)
k=0x07
else if(j==0x07)
k=0x7f
else if(j==0x08)
k=0x6f
else if(j==0x09)
k=0x3f
else
k=0x80//显示dp(即。)
}
Pointm=PORTB// B口存放字位码
*Pointm=0x01//从左边第一位数码管开始显示数字
Pointm=PORTC//C口存放字形码
*Pointm=k //显示K中存放的字形码
for(i=0i<=36000i++) //延时
Pointm=PORTB
*Pointm=0x02 //左边第二位数码管开始显示数字
for(i=0i<=36000i++)
Pointm=PORTB
*Pointm=0x04//左边第三位数码管开始显示数字
for(i=0i<=36000i++)
Pointm=PORTB
*Pointm=0x08 //左边第四位数码管开始显示数字
for(i=0i<=36000i++)
Pointm=PORTB
*Pointm=0x10 //左边第五位数码管开始显示数字
for(i=0i<=36000i++)
Pointm=PORTB
*Pointm=0x20 //左边第六位数码管开始显示数字
for(i=0i<=36000i++)
}
}
//------------------------------------------------------------------------------------
//函数名称: PORT_Init ()
//函数功能: 通用I/O口及交叉开关初始化
//入口参数: 无
//出口参数: 无
//全局变量引用: 无
//调用模块: 无
//------------------------------------------------------------------------------------
void PORT_Init (void)
{
XBR2= 0x40 // 使能交叉开关
P74OUT |= 0xff // P5、P6、P7设为推挽输出
EMI0CF |= 0x2c /*EMIF工作在地址/数据复用方式,只用外部存储器,ALE高/低脉宽占1个SYSCLK周期*/
EMI0TC |= 0x6c /*地址建立/保持时间占0个SYSCLK周期,/WR和/RD占12个SYSCLK周期*/
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)