ycz_yanzone 发表于 2012-7-27 16:37:16

请问哪位大侠用过STC12C5A60S2单片机?

现在想实现STC12C5A60S2单片机与PC机的串口通信,有哪位大侠做过这个,想看看程序学习一下,对这个单片机的配置也不是很了解,所以哪位大侠有关于这个单片机的手册发给我看看,非常感谢~

zhugean 发表于 2012-7-27 16:55:12

http://www.stcmcu.com/

lcw_swust 发表于 2012-7-27 17:02:13

你可以上宏晶的网站去下载资料以及例程,也可以按普通的51单片机来配置
http://www.mcu-memory.com/

zuu0 发表于 2012-7-27 17:07:03

你以为它和传统的51有区别?

ycz_yanzone 发表于 2012-7-27 17:17:12

zuu0 发表于 2012-7-27 17:07 static/image/common/back.gif
你以为它和传统的51有区别?

因为看了开发板附带的一个Demo程序,里面写的串口初始化程序和51不一样,没用过这个,所以不知道是不是有不一样的配置

zuu0 发表于 2012-7-27 17:22:27

#define Fclk      11059200UL               //使用11.0592M晶体
#define BitRate   9600UL                     //波特率定义为9600

/********************************************************************
函数功能:串口初始化。
入口参数:无。
返    回:无。
备    注:无。
********************************************************************/
void UartInit(void)
{
       EA=0; //暂时关闭中断
       TMOD&=0x0F;//定时器1模式控制在高4位
       TMOD|=0x20;    //定时器1工作在模式2,自动重装模式
//       PCON|=0x80;           //串口波特率加倍   SMOD=1
       SCON=0x50;   //串口工作在模式1
       TH1=256-Fclk/(BitRate*12*32);//计算定时器重装值
       TL1=256-Fclk/(BitRate*12*32);       
       ES=1;         //串行中断允许
       TR1=1;      //启动定时器1
       REN=1;      //允许接收
       EA=1;         //允许中断
}

void Uart_ISR(void) interrupt 4
{
if(RI)    //收到数据
{
           RI=0;   //清中断请求
        if(flg == 0) //没有解密
                RChar = SBUF;
}
else      //发送完一字节数据
{
           TI=0;
           Sending=0;//清正在发送标志
}
}

#endif

/********************************************************************
函数功能:往串口发送一字节数据。
入口参数:d: 要发送的字节数据。
返    回:无。
备    注:无。
*******************************************************************
void UartPutChar(uint8 d)
{
       SBUF=d; //将数据写入到串口缓冲
       Sending=1;       //设置发送标志
       while(Sending); //等待发送完毕
}
*/
/********************************************************************
函数功能:发送一个字符串。
入口参数:pd:要发送的字符串指针。
返    回:无。
备    注:无。
*******************************************************************
void Prints(uint8 * pd)
{
while((*pd)!='\0') //发送字符串,直到遇到0才结束
{
   UartPutChar(*pd); //发送一个字符
   pd++;//移动到下一个字符
}
}       

mii 发表于 2012-7-27 17:24:50

其他设置方法与51基本一致,STC这款是双串口单片机,如有用第二串口需要查看相关寄存器设置。

ycz_yanzone 发表于 2012-7-29 20:50:58

zuu0 发表于 2012-7-27 17:22 static/image/common/back.gif
#define Fclk      11059200UL               //使用11.0592M晶体
#define BitRate   9600UL                     //波特率定义为9600
...

谢谢~STC12C5A60S2是双串口的,我想实现串口1接受数据,通过串口2发送给其他设备A,这里面的逻辑不是太清楚,先通过串口2给其他设备A发指令,然后串口1有接受,启动串口1的接收中断,然后想把串口1接受到的数据通过串口2再发给设备A。对这个双串口不是很理解,大侠有没有类似用到两个串口的程序啊,能发给我看看吗?
页: [1]
查看完整版本: 请问哪位大侠用过STC12C5A60S2单片机?