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

📄 www.ourhc.cn.c

📁 KZS1212-102Y_stc60s2双485单片机开发板
💻 C
字号:
/********************************************************************
                        汇诚科技
实现功能:STC12C5A60S2单片机开发板之整板测试
使用芯片:STC12CA60S2
晶振:11.0592MHZ
编译环境:Keil
硬件环境:STC12C5A60S2双485单片机开发板
作者:yang
QQ:790244909
网站:www.ourhc.cn
物联网测试网站:
日期:2013-04-02
淘宝店:
      华龙电子直销:http://hlelectrony.taobao.com 
      电子开发直销:http://shop63233873.taobao.com 
	  汇诚科技网路购物:http://shop36330473.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
功能    :串口一发送tab数据,串口二接收,接收后数据显示在P0口的led灯上
          串口二发送tab数据,串口一接收,接收后数据显示在p0口的led灯上
		  按key1,P0口显示0xAA
		  按key2,P0口显示0x55
		  按key3,P0口显示0xf0
		  按key4,P0口显示0x0f
其他    :采用查询方式发送稳定,但是接收数据极不稳定由于
官方资料使用的是中断方式,所以建议使用中断方式收发数据。
注意    :下载完程序后请复位系统后运行!(切记!!)
*********************************************************************/
#include "STC12C5A60S2.h"  //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
/********************************************************************
                            初始定义
*********************************************************************/
uchar dat1=0,dat2=0;
uchar tab[8]={0xfe,0xfd,0xfB,0xf7,0xef,0xdf,0xBf,0x7f};
sbit key1=P2^0;
sbit key2=P2^1;
sbit key3=P2^2;
sbit key4=P2^3;
/********************************************************************
                            串口初始化
*********************************************************************/
void init ()
{
	TMOD = 0x20;	 		  //定时器1产生波特率
	SCON = 0x50;			  //方式1,8位数据,波特率可变
	TH1= TL1 = 0xfd;		 //波特率 9600
	S2CON= 0x50;		     //方式1,八位数据,可变波特率
	BRT= 0XFD; 				 //设置波特率9600
	TR1= 1;				 	 //启动定时器产生波特率	
	AUXR= 0x10;				 //启动波特率发生器
	IP= 0x00;				 //优先级默认
	EA = 1; 				 //开总中断
	ES= 1;					 //开串口1中断
	IE2=0x01;				 //开串口2中断
}
/********************************************************************
                            串口一 发送一个字符
*********************************************************************/
void  uart1_txd(uchar x)
{
	SBUF = x;
}
/********************************************************************
                            串口二   发送一个字符
*********************************************************************/
void  uart2_txd(uchar x)
{
	S2BUF = x;
}
/********************************************************************
                             延时函数
*********************************************************************/
void delay ( uint t )
{
	uint i,j;
	for( i=0; i<t; i++)
	for( j=0; j<250; j++);
}
/********************************************************************
                              主函数
*********************************************************************/
void main()
{
    uchar i;
	init();

	 for(i=0;i<8;i++)
	   {
	     uart1_txd(tab[i]);//串口一发送数据
	     delay(500);	  
		 P0=dat2;		  //串口二接收数据在led灯显示
		 delay(500);

		 uart2_txd(tab[7-i]); //串口二发送数据
	     delay(500);	  
		 P0=dat1;	         //串口一接收数据在led灯显示
		 delay(500);
	   }
	while(1)
	{
	  if(key1==0){delay(20);while(!key1){P0=0xAA;} }
	  if(key2==0){delay(20);while(!key2){P0=0x55;} }
	  if(key3==0){delay(20);while(!key3){P0=0xf0;} }
	  if(key4==0){delay(20);while(!key4){P0=0x0f;} }

	}
}
/********************************************************************
                            串口二    发送接收中断函数
*********************************************************************/
void uart2_isr()  interrupt 8
{
	if( S2CON & 0x01 )
	{
		S2CON &= ~0x01;
		dat2= S2BUF;
	}
	if( S2CON & 0x02 )
	{
		S2CON &= ~0x02;
	}
}
 /********************************************************************
                            串口一 发送接收中断函数
*********************************************************************/
void uart_isr()  interrupt 4 
{
	if( RI )
	   RI = 0;
	    dat1 = SBUF;
	if( TI ) 
	    TI = 0;
}
/********************************************************************
                              结束
*********************************************************************/

⌨️ 快捷键说明

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