標題:
STC12C60S2單片機雙485通訊開發(fā)雙485通訊控制程序
[打印本頁]
作者:
zhangxinchun
時間:
2019-11-13 00:35
標題:
STC12C60S2單片機雙485通訊開發(fā)雙485通訊控制程序
電路原理圖如下:
ALIM0001.JPG
(156.17 KB, 下載次數(shù): 38)
下載附件
2019-11-13 00:35 上傳
ALIM0012.JPG
(2 MB, 下載次數(shù): 38)
下載附件
2019-11-13 00:35 上傳
程序說明
接線 :MAX485-1 D+ 鏈接 MAX485-2 D+ ;MAX485-1 D- 鏈接 MAX485-2 D-
功能 :串口一 自動發(fā)送一個tab數(shù)據(jù),串口二接收,接收后數(shù)據(jù)顯示在P0口的led燈上
串口二 自動發(fā)送一個tab數(shù)據(jù),串口一接收,接收后數(shù)據(jù)顯示在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位數(shù)據(jù),波特率可變
TH1= TL1 = 0xfd; //波特率 9600
S2CON= 0x50; //方式1,八位數(shù)據(jù),可變波特率
BRT= 0XFD; //設置波特率9600
TR1= 1; //啟動定時器產生波特率
AUXR= 0x10; //啟動波特率發(fā)生器
IP= 0x00; //優(yōu)先級默認
EA = 1; //開總中斷
ES= 1; //開串口1中斷
IE2=0x01; //開串口2中斷
}
/********************************************************************
串口一 發(fā)送一個字符
*********************************************************************/
void uart1_txd(uchar x)
{
SBUF = x;
}
/********************************************************************
串口二 發(fā)送一個字符
*********************************************************************/
void uart2_txd(uchar x)
{
S2BUF = x;
}
/********************************************************************
延時函數(shù)
*********************************************************************/
void delay ( uint t )
{
uint i,j;
for( i=0; i<t; i++)
for( j=0; j<250; j++);
}
/********************************************************************
主函數(shù)
*********************************************************************/
void main()
{
uchar i;
init();
for(i=0;i<8;i++)
{
uart1_txd(tab[i]);//串口一發(fā)送數(shù)據(jù)
delay(500);
P0=dat2; //串口二接收數(shù)據(jù)在led燈顯示
delay(500);
uart2_txd(tab[7-i]); //串口二發(fā)送數(shù)據(jù)
delay(500);
P0=dat1; //串口一接收數(shù)據(jù)在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;} }
}
}
/********************************************************************
串口二 發(fā)送接收中斷函數(shù)
*********************************************************************/
void uart2_isr() interrupt 8
{
if( S2CON & 0x01 )
{
S2CON &= ~0x01;
dat2= S2BUF;
}
if( S2CON & 0x02 )
{
S2CON &= ~0x02;
}
}
/********************************************************************
串口一 發(fā)送接收中斷函數(shù)
*********************************************************************/
void uart_isr() interrupt 4
{
if( RI )
RI = 0;
dat1 = SBUF;
if( TI )
TI = 0;
}
/********************************************************************
結束
*********************************************************************/
復制代碼
全部資料51hei下載地址:
雙485互相自動通訊能自動檢測485線是否斷開.rar
(195.03 KB, 下載次數(shù): 32)
2019-11-13 00:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
keil.rar
(22.84 KB, 下載次數(shù): 28)
2019-11-13 00:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
aking991
時間:
2019-11-13 09:17
這樣的程序只能作為測試用用看是可以,但要作為項目用,還要很多修改修改才行
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1