C8051F与80C51系列单片机的初始化比较
2.2 系统时钟源本文引用地址:https://www.eepw.com.cn/article/171186.htm
C8051F12X的系统时钟可以取自内部振荡电路、外部振荡电路(包括晶振,RC振荡,陶瓷谐振电路)和锁相环PLL电路,锁相环PLL电路的输入源可选择来自内部振荡电路,也可以选择外部振荡电路,通过PLL的倍频作用可以提高时钟频率。C8051F12X系统内的振荡电路如图3所示。要产生所需的系统时钟,通常要设置8个寄存器:OSCXIN、OSCICN、OSCICL、CLKSEL、PLLOCN、PLLOFLT、PLL0DIV、PLL0MUL,其中后4个是有关PLL的寄存器。
2.3 特殊功能寄存器SFR结构
与MCS—51的SFR不同的是,C8051F12X的SFR由图4所示的多页组成,共有5页,页号为0、1、2、3、15。各个SFR分布在不同的页里,像XBR0、XBR1、XBR2、OSCXIN、OSCICN、LLOCN、PLLOFLT等定位在15页里,定时器有关的寄存器TCON、TMOD、TH、TL等定位在0页里。在读写各个SFR之前,必须先切换到相应的页,可使用“MOV SFRPAGE,#页号”指令来进行切换。各个SFR所在哪些页,请查看相关的资料。
3 应用举例
该例中要用的引出脚有一个串行异步通信UART和一个外中断INT0。按照系统默认的优先顺序,P0口被内部资源引出而占用,其中P0.0为UART通信的RX端, P0.1为UART通信的TX端,P0.3为外中断INT0输入引脚,其它端口为通用I/O口。P1口为具有上拉电阻的输入口,P2口为通用推挽的输出口,P3口也是通用推挽输出口。具体如下:
$include(c8051f120.inc)
ORG 00H
JMP RESET ;程序入口
ORG 03H
JMP EX_INT ;外中断INT0入口
ORG 0BH
JMP TIME_0 ;定时器0中断入口
ORG 100H
RESET?MOV, WDTCN,#0DEH ?禁止看门狗
MOV WDTCN,#0ADH
MOV SFRPAGE, #0FH ;取特殊功能寄存器的15页
MOV OSCXCN,#01100111B ;外用时钟源选择晶体,频率范围在30MHz以下
ORL PLL0CN,#00000111B ;用外部晶振作为PLL的源
MOV PLL0DIV,#00000001B ;PLL的输入除系数1(复位后默认)
MOV PLL0MUL,#00000010B ;PLL的倍频系数为2(25MHz晶振)
MOV PLL0FLT,#00010001B ;PLL的滤波参数(复位后默认为00110001B)
MOV R4,#0 ;延迟一会儿,使晶振稳定
NNOP1:MOV R5,#0
DJNZ R5,$
评论