91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 50KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-07
  • 語(yǔ)言: 其他
  • 標(biāo)簽: modbus??RTU??C51??

資源簡(jiǎn)介

modbus RTU 的C51源程序,單片機(jī)89S52,編譯器keilC7.06

資源截圖

代碼片段和文件信息

#include?“main.h“

/******************************
微控電子?www.mcuc.cn
modbus?RTU?的C51程序?
單片機(jī)89S52
通信波特率?9600?8位數(shù)據(jù)?1位停止位?偶校驗(yàn)?485通位接口
單片機(jī)控制板地址?localAddr(變量)
通信可設(shè)置數(shù)據(jù)的地址:
字地址?0?-?255?(只取16位的低8位)
位地址?0?-?255?(只取16位的低8位)
*******************************/

uint32 dwTickCountdwIntTick; //時(shí)鐘
uint8 idata?sendBuf[16]receBuf[16];?//發(fā)送接收緩沖區(qū)
uint8 idata?checkoutError; //?==2?偶校驗(yàn)錯(cuò)??
uint8 idata?receTimeOut; //接收超時(shí)
uint8 idata?c10ms; //10ms?計(jì)時(shí)
bit b1msbt1msb10msbt10msb100msbt100ms; //定時(shí)標(biāo)志位

//?串行中斷程序
void?commIntProc()?interrupt?4
{
if(TI)
{
TI?=?0;?
if(sendPosi? {
sendPosi++;
ACC?=?sendBuf[sendPosi];
TB8?=?P; //加上校驗(yàn)位
SBUF?=?sendBuf[sendPosi];
}
else
{
b485Send?=?0;????//發(fā)送完后將485置于接收狀態(tài)
receCount?=?0;???//清接收地址偏移寄存器
checkoutError?=?0;
}
}
else?if(RI)
{
RI?=?0;
receTimeOut?=?10;????//通訊超時(shí)值
receBuf[receCount]?=?SBUF;
ACC?=?receBuf[receCount];
if(P?!=?RB8)
checkoutError?=?2; //偶校驗(yàn)出錯(cuò)
receCount++;??????????//接收地址偏移寄存器加1
receCount?&=?0x0f;????//最多一次只能接收16個(gè)字節(jié)
}

}???//?void?CommIntProc()

//定時(shí)器0?1ms?中斷
void?timer0IntProc()?interrupt?1
{
TL0?=?TIMER_LOW;?
????TH0?=?TIMER_HIGHT;
????dwIntTick++;
bt1ms?=?1;
????c10ms++;
????if(c10ms?>=?10)?
????{
????????c10ms?=?0;??????//10ms計(jì)時(shí)器清零
????????bt10ms?=?1;
????}
}???//?void?Timer0IntProc()

//外部中斷0
void?intEx0Proc(void)?interrupt?0
{

}

//計(jì)數(shù)器1中斷
void?counter1IntProc(void)?interrupt?3?using?1
{

}


//定時(shí)處理
void?timeProc(void)
{
static?uint8?c200ms;

????bWatchDog?=?~?bWatchDog;????//看門狗取反
b1ms?=?0;
b10ms?=?0;
b100ms?=?0;

ET0?=?0;
dwTickCount?=?dwIntTick;
ET0?=?1;

if(bt1ms)
{
bt1ms?=?0;
b1ms?=?1;

????????if(receTimeOut>0)
????????{
????????????receTimeOut--;
????????????if(receTimeOut==0?&&?receCount>0)???//判斷通訊接收是否超時(shí)
????????????{
????????????????b485Send?=?0;???????//將485置為接收狀態(tài)
????????????????receCount?=?0;??????//將接收地址偏移寄存器清零
checkoutError?=?0;
????????????}
????????}
}

if(bt100ms)
{
bt100ms?=?0;
b100ms?=?1;
}
????if(bt10ms)??????//判斷中斷10ms標(biāo)志位是否1
????{
????????bt10ms?=?0;?????//清中斷10ms標(biāo)志位
b10ms?=?1;

????????c200ms++;???????????????????//200ms計(jì)時(shí)器加1
????????if(c200ms?>=?20)????????????//判斷是否計(jì)時(shí)到200ms
????????{
????????????c200ms?=?0;?????????????//清200ms計(jì)時(shí)器
????????????bRunLED?=?~bRunLED;?????//取反運(yùn)行指示燈??????????
????????}
????}
}???//?void?TimerProc(void)

//初始化串口
void?initUart(void)
{
//T2?用于波特率?9600
T2CON?=?0x30;
RCAP2H?=?0xff;
RCAP2L?=?0xb8;
TR2?=?1;

//偶校驗(yàn)?
SCON?=?0xd0;
????PCON?=?0;
????ES?=?1;
}//void?initUart(void)

//初始化中斷
void?initInt(void)
{
TMOD?=?0x51;
TH0?=?TIMER_HIGHT;
TL0?=?TIMER_LOW;
TR0?=?1;
????ET0?=?1;
TH1?=?0; //9600
????TL1?=?0;
TR1?=?0; //定時(shí)器1用于計(jì)數(shù)定時(shí)器2用于波特
ET1?=?1;
//PT1?=?1;

IT0?=?1;
????IT1?=?1;
EX0?=?0;
PX0?=?1;
????EX1?=?0;

initUart();

EA?=?1;
}???//?void?initInt(void)

//初始化
void?in

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2005-03-16?16:35??modbus51\
?????文件????????3432??2005-03-16?16:41??modbus51\main.c
?????文件?????????485??2005-03-16?16:21??modbus51\main.h
?????文件????????8187??2005-03-16?16:48??modbus51\main.LST
?????文件???????10019??2005-03-16?16:48??modbus51\main.OBJ
?????文件?????????943??2005-03-16?16:48??modbus51\main.Opt
?????文件????????2069??2005-03-16?16:26??modbus51\main.Uv2
?????文件????????1685??2005-03-16?16:47??modbus51\main_Opt.Bak
?????文件???????12991??2005-03-16?16:31??modbus51\modbus.c
?????文件?????????523??2005-02-04?00:07??modbus51\modbus.h
?????文件???????32845??2005-03-16?16:48??modbus51\modbus.LST
?????文件???????20023??2005-03-16?16:48??modbus51\modbus.OBJ
?????文件???????25292??2005-03-16?16:48??modbus51\modbus51
?????文件????????6075??2005-03-16?16:48??modbus51\modbus51.hex
?????文件???????36909??2005-03-16?16:48??modbus51\modbus51.M51
?????文件?????????168??2005-03-16?16:48??modbus51\modbus51.plg
?????文件????????5116??2003-09-26?11:56??modbus51\STARTUP.A51
?????文件???????11666??2005-03-16?16:48??modbus51\Startup.LST
?????文件?????????749??2005-03-16?16:48??modbus51\Startup.OBJ

評(píng)論

共有 條評(píng)論