单片机C8051F020的初始化设置

上传人:M****1 文档编号:508475058 上传时间:2024-02-15 格式:DOCX 页数:2 大小:10.84KB
返回 下载 相关 举报
单片机C8051F020的初始化设置_第1页
第1页 / 共2页
单片机C8051F020的初始化设置_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机C8051F020的初始化设置》由会员分享,可在线阅读,更多相关《单片机C8051F020的初始化设置(2页珍藏版)》请在金锄头文库上搜索。

1、单片机C8051F020的初始化设置在喧闹的世界中,能静下心来研究技术也是很有趣的事情。好多年没作些具 体的技术工作了,幸好领导给分配一个单片机任务。现在把研究的技术写下来, 与朋友们分享。研究C8051F020编程不能离开初始化设置。对于简单程序,读技术手册,将 用到的I/O 口,中断,串口,晶振等正确初试化后,已经成功一半了。晶振需要初始化, C8051F020 有内部晶振,精度不高,一般电路都使用外部 晶振。初始化晶振主要是OSCXCN和OSCICN两个寄存器的设置。具体初始化代码 可由Sil icon的配置程序自动生成: void Oscillator_Init()int i = 0;

2、OSCXCN = 0x67;for (i = 0; i 3000; i+); while (OSCXCN & 0x80) = 0);OSCICN = 0x08; 上面程序包括了晶振初始化的全部过程:1、使能外部振荡器: OSCXCN = 0x67;2、等待至少 1m 钟,等待外部振荡器起稳: for (i = 0; i 3000; i+);3、查询OSCXCN的第八位XTLVLD是否为1,1表明外部振荡器起稳:while (OSCXCN & 0x80) = 0);4、 关内部晶振,切换到外部晶振OSCICN = 0x08;而同事们的设置是OSCICN二0x88;应该是使用外部振荡器,但是内部振

3、荡 器也没关,这样 MCU 耗能高些。串口 0(UART0)也需要配置: void UART0_Init (void)SCON0= 0x50;/ SCON0: 模式1,可接收, 8位串口TMOD= 0x20;/ TMOD: 定时器1,模式2, 8位自动重载TH1= -(SYSCLK/BAUDRATE/16);/ 设置定时器 1TR1= 1;/ 开始定时CKCON|= 0x10;/ 定时器用 SYSCLK 作基准时间PCON|= 0x80;/禁止UART0波特率/2SCON0是UART0控制寄存器,用来选择传输模式。第7位SM00和第6位SM10 用来配置UART0的工作坊式,SC0N0=0x5

4、0即选择模式1,8位UART可变波特率 异步传输。PCON是电源控制寄存器:PCON的第7位SMOD0, 0表示使能UART0的波特率/2的功能,表示禁止UARTO的波特率/2功能,它主要用于计算一个合适的UARTO 波特率。第6位SSTAT0是UART0增强状态选择,0表示读/写SM20-SM00时即访 问UART0的SM20-SM00,如果SSTAT0为1,读写SM20-SM00时即是访问帧错误 (FE0)、RX 溢出(RX0V0), TX 冲突状态位(TXC0L0)。串口模式1的波特率时钟依靠定时器T1或者T2来产生。因此还需要对定时 器进行设置。定时器2控制寄存器T2CON中的RCLK

5、0和TCLK0用来选择T1还是 T2。发送和接收可以选择不同的定时器。T2CON复位值是00000000,因此默认串 口 0模式1的波特率依靠T1产生。TMOD是定时器方式寄存器,TMOD的第五位T1M1和第四位T1M0决定定时器 工作方式,T1M1和T1M0为10时,定时器工作在方式2,自动重装载的8位定时 器。CKCON是时钟控制寄存器,其中的T1M位决定T1的时钟选择,1表示T1使 用系统时钟,0表示T1使用系统时钟的12分频。SPI0是串口外设接口总线,其初始化主要由三个SPI0寄存器,SPI0CN, SPI0CFG, SPI0CKR。void SPI0_Init (void)SPI0CFG = 0x07;/SPI0 配置寄存器SPI0CN = 0x03;/SPI 主模式SPI0CKR = SYSCLK/2/2000000;/ SPI 时钟C8051F020的I/O,外部中断等都需要进行配置,此外,C8051F020内部还 具有数字交叉开关,可以将内部各种资源,中断、定时器等配置到不同I/O 口引 脚。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号