最近找一些资料,发现关于STC12C5A60S2的资料很少,STC12C5A60S2是新一代的8051,是属于1T的单片机,我们先说一下12T的单片机和1T的单片机的区别,首先就是速度上,1T的单片机是12T单片机的10~12倍左右,我们在用软件延时的时候,都是死循环,同样的软件延时,但是延时的时间就不一样,就是为1T的单片机比12T的快12倍,还有就是功能上,也有很多地方很好用,刚开始使用STC12C5A60S2,有些地方我也是不太懂,大家可以一起交流,
这是官网上给出的关于stc12C5a60s2的数据手册,我也会把源代码和数据手册放到最后,有需要的可以自行下载,我们的stc12c5a60s2和89c52的引脚是完全一样的,我们可以直接插到89c52的开发板上,以下是引脚图
还有我们使用的晶振是11.0592MHz的(这个非常重要)
还有我们使用的LED的原理图
当P1^4引脚位低电平时,LED灯会亮,但是我们采用的是取反。
剩下的就是控制相关的寄存器了
第一个我们设置电源控制寄存器,当SMOD=1,波特率加倍
第二个就是串行控制寄存器我们用的是方式2 9位UART,SCON=0x50;
剩下的一个就是总中断了
ES表示定时器中断,EA表示总中断;这些具体的参数都在STC官网的数据手里面有,第八章串口通信,
设置好TH1和TL1的初值就算弄好了。
我们调试的过程
成功点亮LED灯,证明串口通信成功~!~
单片机源程序如下:- #include "stc15f2k60s2.h"
- #include "intrins.h"
- sbit LED=P1^5;
- typedef unsigned char u8;
- typedef unsigned int u16;
- u16 receiveData;
- void SendByte(unsigned char dat);
- void UART_Send_Str(char *pStr);
- /*******************************************
- 函数名称:void main()
- 函数功能:主函数
- 输入参数:无
- 输出参数:无
- *******************************************/
- void main()
- {
- SCON=0x50;
- PCON=0X80; //波特率加倍
- TMOD|=0x20;
- TH1=0xfA; //定时器1方式2 8位数据加一位检验位
- TL1=0xfA;
- TR1=1;
- EA=1; //总中断
- ES=1; //定时器中断允许位
- while(1)
- {
- //UART_Send_Str("中国!!\r\n"); //发送字符串
- }
- }
- /*******************************************
- 函数名称:void SendByte(unsigned char dat)
- 函数功能:发送单个字节
- 输入参数:dat
- 输出参数:无
- *******************************************/
- void SendByte(unsigned char dat)
- {
- SBUF=dat;
- while(!TI);
- TI=0;
- }
- /*******************************************
- 函数名称:void UART_Send_Str(char *pStr)
- 函数功能:发送字符串
- 输入参数:*pStr
- 输出参数:无
- *******************************************/
- void UART_Send_Str(char *pStr)
- {
-
- while(*pStr != '\0')
- {
- SendByte(*pStr++);
- }
- }
- /*******************************************
- 函数名称:void Uart1() interrupt 4
- 函数功能:串口中断函数
- 输入参数:无
- 输出参数:无
- *******************************************/
- void Uart1() interrupt 4
- {receiveData=SBUF; //接收数据
- RI=0; //关闭计时器
- SBUF=receiveData; //发送数据
- while(!TI);
- TI=0; //发送完成标志位
- if(receiveData=='2')
- {
- LED=~LED;//LED取反
-
- }
- }
复制代码 程序:
程序.7z
(179.45 KB, 下载次数: 27)
|