c8051f MCU调试适配器 如何使用

c8051f MCU调试适配器 如何使用,第1张

该装置包括一个片上为8K字节的RAM块和一个外部存储器接口( emif )进入

小康芯片数据存储器。该单晶片为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周期*/

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8004552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存