CrazyBingo

14:USB68013 Firmware开发指南之8051 SFR寄存器说明

0
阅读(3832)
1.1.1. 8051 SFR寄存器说明

clip_image002

clip_image004

(1) CPU时候分配:

clip_image006

C语言代码如下:

CPUCS = 0x02; //12MHZ CLKOUT ENALBE

CPUCS = 0x0a; //24MHZ CLKOUT ENALBE

CPUCS = 0x12; //48MHZ CLKOUT ENALBE

(2) IO方向寄存器:如OEx

clip_image008

clip_image010

clip_image012

在fx2regs.h中有如下define:

clip_image013

比如,设置下面1个脚为输出:

OED |=(1<<4); //PD4 output

(3) FX2 Interrupt

中断有这么多,如下所示:

clip_image015

同时有这么多中断使能:

clip_image017

CB主要用到了外部中断INT0、INT1,外部中断地址如下:

clip_image019

外部中断0/1为IE0与IE1

中断方式配置如下:

clip_image021

PA0、PA1中断复用功能开启:

clip_image023

Fx2regs.h中给出了如下:

clip_image024

最后给出INT0的初始化例子,如下,实现PA0的中断0打开,上升沿捕获:

//Configure INT0

OEA &= ~(1<<0); //PA0-INT0 0:Input

PORTACFG |= (1<<0); //Configure PA0 as INT0#

IT0 = 1; //When ITx = 1, posedge edge Sample; When ITx = 0, low-level Sample.

IE |= (1<<0); //Enable INT0

(4) 未完待续

有个严重的问题。上述INT0初始化中,明明IE寄存器的Bit0 就是IE0,那为啥IE0=1就是无法打开INT0 ,而必须得IE |= (1<<0);为什么为什么为什么,蛋疼啊?》??!!!!!!