/************************************************************
Copyright (C), 2009-2019, eway Tech. Co., Ltd.
FileName: urat.c
Author: Roger Version : 1.0 Date: 2013.05.20
Description:
Version:
Function List:
1. -------
History:
<author> <time> <version > <desc>
Roger 2013/05/20 1.0 build this moudle
***********************************************************/
#include ".\..\include\REG_MA86L104.h"
#include ".\..\include\type.h"
#include "urat.h"
extern u8 u8UratTimer;
#define MAX_REV_BUF 0x10
#define MAX_SEND_BUF 0x10
u8 urat_char;
idata BYTE rev_buf[MAX_REV_BUF];
idata BYTE send_buf[MAX_SEND_BUF];
BYTE send_point;
BYTE rev_point;
BYTE send_num;
BYTE rev_num;
void urat_init(void)
{
AUXR2 |= 0x08;
SCON = 0x50; //8-bit variable UART
PCON0 |= 0x80;
TMOD &= 0x0F;
TMOD |= 0x20; //Set Timer1 as 8-bit auto reload mode
if(P33)
{
TH1 = TL1 = 0xfa; //0x100 -(22118400/32/115200); //Set auto-reload vaule
}
else
{
TH1 = TL1 = 0xb8; //0x100 -(22118400/32/9600); //Set auto-reload vaule
}
TR1 = 1; //Timer1 start run
ES = 1; //Enable UART interrupt
EA = 1; //Open master interrupt switch
send_num = 0;
rev_num = 0;
send_point = 0;
rev_point = 0;
}
/*----------------------------
UART interrupt service routine
----------------------------*/
void Uart_Isr() interrupt 4 using 1
{
if (RI)
{
RI = 0; //Clear receive interrupt flag
if(rev_num>=MAX_REV_BUF)
{
return;
}
rev_buf[rev_num++] = SBUF;
}
if (TI)
{
TI = 0; //Clear transmit interrupt flag
send_num--;
if(send_num)
{
SBUF = send_buf[send_point++];
}
else
{
send_point = 0;
}
}
}
/*----------------------------
Send a byte data to UART
Input: dat (data to be sent)
Output:None
----------------------------*/
void SendData(BYTE dat)
{
SBUF = dat; //Send data to UART buffer
send_num = 1;
}
void SendDatas(BYTE code *Dat, BYTE Cnt)
{
while(send_num);
if(Cnt>MAX_SEND_BUF)
{
Cnt = MAX_SEND_BUF;
}
send_num = 0;
while(Cnt--)
{
send_buf[send_num++]= *Dat++;
}
SBUF = send_buf[0];
send_num;
send_point = 1;
}
void clear_rev_buf(void)
{
rev_point = 0;
rev_num = 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
RS485_Test.zip_RS485代码_RS485简单例句
共28个文件
h:5个
lst:4个
obj:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 181 浏览量
2022-09-14
23:21:58
上传
评论
收藏 45KB ZIP 举报
温馨提示
RS485按键发送通讯代码,分享给大家学习。
资源详情
资源评论
资源推荐
收起资源包目录
RS485_Test.zip (28个子文件)
driver
urat.c 2KB
urat.h 1KB
timer.c 1KB
timer.h 931B
RS485_TEST.Uv2.bak 2KB
RS485_TEST_Uv2.Bak 0B
boot
STARTUP.A51 6KB
RS485_TEST.uvgui.Administrator 85KB
include
REG_MA86L104.H 3KB
type.h 1KB
app
main.c 2KB
main.h 625B
RS485_TEST.uvopt 8KB
out
RS485_TEST.hex 1KB
timer.lst 3KB
RS485_TEST 15KB
urat.obj 7KB
main.lst 7KB
RS485_TEST.m51 15KB
main.obj 7KB
RS485_TEST.plg 154B
STARTUP.obj 816B
urat.lst 6KB
STARTUP.lst 14KB
RS485_TEST.lnp 149B
timer.obj 3KB
device
RS485_TEST.opt.bak 1KB
RS485_TEST.uvproj 14KB
共 28 条
- 1
weixin_42651887
- 粉丝: 75
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0