⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 www.ourhc.cn.c

📁 KZS1212-102Y_stc60s2双485单片机开发板
💻 C
字号:
/********************************************************************
                            汇诚科技

实现功能:STC12C5A60S2单片机之串口二应用
使用芯片:STC12C5A60S2
晶振:11.0592MHZ
波特率:9600
编译环境:Keil
作者:zhangxinchun
网站:www.ourhc.cn
淘宝店:
汇诚科技 http://ourhc.taobao.com
郑兴电子直销部 http://shop68451856.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
功能    :串口二收发8位数据。(采用中断方式,波特率发生器产生波特率)
其他    :采用查询方式发送稳定,但是接收数据极不稳定由于
官方资料使用的是中断方式,所以建议使用中断方式收发数据。
注意    :下载完程序后请复位系统后运行!(切记!!)
*********************************************************************/
#include "STC12C5A60S2.h"  //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
/********************************************************************
                            初始定义
*********************************************************************/

uchar tab[]={"www.ourhc.cn"};  //程序下载完毕后,连接串口,波特率9600 单片机复位后会自动收到数据
uchar dat=0;
/********************************************************************
                            延时函数
*********************************************************************/
void delay ( uchar t )
{
	uchar i,j;
	for( i=0; i<t; i++)
	for( j=0; j<250; j++);
}

/********************************************************************
                            串口初始化
*********************************************************************/

void init(void)
{
	S2CON = 0x50;				      //方式1,八位数据,可变波特率
	AUXR1 = 0x00;	 				 //1T工作方式
 	PCON  = 0x00;					 //不倍增波特率
 	IP2   = 0x00;					 //优先级默认
 	BRT   = 0XFD; 					 //设置波特率9600
 	AUXR  = 0x10;					 //启动波特率发生器
 	EA    = 1; 					 //开总中断
	IE2   = 0x01;					 //开串口2中断
}

/********************************************************************
                            发送一个字符
*********************************************************************/

void  txd_c(uchar x)
{
	S2BUF = x;
}
        
/********************************************************************
                            发送接收中断函数
*********************************************************************/
void uart2_isr()  interrupt 8
{
	if( S2CON & 0x01 )
	{
		S2CON &= ~0x01;
		dat    = S2BUF;
	 }
	if( S2CON & 0x02 )
	{
		S2CON &= ~0x02;
    }
}

/********************************************************************
                            主函数
*********************************************************************/
void main()
{
	uchar *p;
	uchar x;
	init();
	p=tab;
	for( x=0;x<14;x++ )
	{
		txd_c(p[x]);
		delay(200);
    }
	while(1) P0 = dat;	

}
/********************************************************************
                              结束
*********************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -