#include "5A16S2.h"
#include "intrins.h"
#define INT8U unsigned char
#define INT16U unsigned int
#define RELOAD_COUNT 0xfd /* fosc=11.0592,smod=0;12t,9600 */
sbit sci0 = P1^0; /* 4052A */
sbit sci1 = P1^1; /* 4052B */
//==============================================================
sbit CHH1 = P2^3; /* 串口1工作指示 */
sbit rxd_r = P1^2; /* 上位机发送RXD */
sbit txd_r = P1^3; /* 上位机发送TXD */
sbit EN485 = P3^7; /* 上位机发送485使能 */
//==============================================================
sbit CHH2 = P2^4; /* 串口2工作指示 */
sbit SDA = P3^0; /* 下位机接收RXD */
sbit SCL = P3^1; /* 下位机接收TXD */
sbit EN485_R = P3^6; /* 下位机接收485使能 */
//==============================================================
void en485();
//==============================================================
void s1_port_init(); /* 串口1初始化 */
void s1end_uart_one(INT8U s1data); /* 串口1发送数据 */
void UART_one_Interrupt_Receive(void); /* 串口1中断接收 */
//==============================================================
void s2_port_init(); /* 串口2初始化 */
void s2end_uart_two(INT8U s2data); /* 串口2发送数据 */
void UART_two_Interrupt_Receive(void); /* 串口2中断接收 */
//==============================================================
void delay(); /* 一秒延时 */
//==============================================================
void one_disp1(); /* 串口1接收数据显示 */
void two_disp2(); /* 串口2接收数据显示 */
main()
{
EN485 = 0; /* 485上位机发送使能 */
EN485_R= 0; /* 485下位机接收使能 */
s1_port_init(); /* 串口1初始化 */
CHH1=0;
delay();
CHH1=1;
s1end_uart_one(0x00); /* 串口1发送数据 */
delay();
CHH1=0;
delay();
CHH1=1;
//==============================================================
en485(); /* 串口2选择485通信 */
s2_port_init(); /* 串口2初始化 */
CHH2=0;
delay();
CHH2=1;
s2end_uart_two(0xff); /* 串口2发送数据 */
delay();
CHH2=0;
delay();
CHH2=1;
//==============================================================
while(1);
} /* 一秒延时 */
void delay()
{
INT16U j,g;
j=0;
g=0;
for(j=0;j<5;j++)
{
for(g=0;g<500;g++)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
void one_disp1() /* 串口1接收数据显示 */
{
CHH1=0;
CHH2=1;
}
void two_disp2() /* 串口2接收数据显示 */
{
CHH1=1;
CHH2=0;
}
void en485() /* 串口2选择485通信 */
{
sci1=1;
sci0=0;
}
void s1_port_init() /* 串口1初始化 */
{
SCON = 0x50 ;
BRT = RELOAD_COUNT ;
AUXR = 0x11 ;
ES = 1 ;
EA = 1 ;
}
void s2_port_init() /* 串口2初始化 */
{
SCON = 0x50 ;
BRT = RELOAD_COUNT ;
AUXR = 0x11 ;
IE2 = 0x01 ; //ES2 = 1 ;
EA = 1 ;
}
void s1end_uart_one(INT8U s1data) /* 串口1发送数据 */
{
one_disp1();
EN485_R = 1 ;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
ES = 0 ;
TI = 0 ;
SBUF = s1data ;
while(TI==0);
TI = 0 ;
ES = 1 ;
EN485_R = 0 ;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
void s2end_uart_two(INT8U s2data) /* 串口2发送数据 */
{
INT8U temp ;
two_disp2();
EN485= 1 ;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
IE2 = 0x00 ; //ES2 = 0 ;
S2CON= S2CON&0xfd ; //S2TI = 0 ;
S2BUF= s2data ;
do
{
temp = S2CON ;
temp = temp&0x02 ;
}
while(temp==0); //while(S2TI==0);
S2CON= S2CON&0xfd ; //S2TI = 0 ;
IE2 = 0x01 ; //ES2 = 1 ;
EN485= 0 ;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
void UART_one_Interrupt_Receive(void) interrupt 4
{
INT8U k = 0 ;
if(RI==1)
{
RI = 0 ;
k = SBUF ;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
s1end_uart_one(k+1);
}
else
{
TI = 0 ;
}
}
void UART_two_Interrupt_Receive(void) interrupt 8
{
INT8U k = 0 ;
k = S2CON ;
k = k&0x01; //if(S2RI==1)
if(k==1)
{
S2CON = S2CON&0xfe; //S2RI=0;
k = S2BUF ;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
s2end_uart_two(k+1);
}
else
{
S2CON = S2CON&0xfd; //S2TI=0;
}
}
fortune158
- 粉丝: 0
- 资源: 5
最新资源
- opc da 转opc ua 、opc 隧道软件 注意:这是两个软件,安装在同一个机器上,可以实现opc da转 opc ua 安装在两个计算机上就可以实现opc tunnel功能,不需要配置d
- java Springboot网上音乐商城(源码+sql+论文)-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 档案管理系统_g2p7x--论文-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- ffmpeg and EasyDarwin
- elk-demo 代码例子,123 45678
- 大学生创新创业训练项目管理系统设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 大健康养老公寓管理系统_to14d-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 大学新生报到系统的设计与实现-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 基于Hadoop的高校固定资产管理系统研究与实现_hot14-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 基于Java的大学生迎新系统-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- JavaSpringboot+vue图书购物商城管理系统(源码+sql+论文)-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- JavaSpringboot学生教务管理系统(源码+sql+文档)-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 个性化电影推荐系统-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- 儿童性教育网站-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.zip
- JavaSpringboot+vur前后端分离党员信息管理系统(源码+sql+论文)-springboot毕业项目,适合计算机毕-设、实训项目、大作业学习.rar
- 430大神asp.net基于三层商品进销存管理系统毕业课程源码设计
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页