久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
為什么單片機(jī)串口二沒(méi)有通信還是串口一通信
[打印本頁(yè)]
作者:
1941864563
時(shí)間:
2022-5-24 16:41
標(biāo)題:
為什么單片機(jī)串口二沒(méi)有通信還是串口一通信
#include "stc12c5a60s2.h"
#include <intrins.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
typedef signed char int8;
typedef signed int int16;
typedef signed long int32;
sbit Red=P2^7;
sbit Green=P2^6;
sbit Yellow=P2^5;
sbit Sound=P2^4;
sbit RS485_DIR = P1^5;
sbit WDI=P0^7;
sbit receiveok=P2^0;
sbit sendok=P2^1;
// sbit RS485_RXD=P1^
// sbit RS485_TXD=P1^
uint8 M=0,R=0,Y=0,G=0,RY=0,RG=0,YG=0,RGY=0;S=0;
uint8 a=0,b=0,c=0,d=0,e=0;
uint16 t=0;
uint16 t1=0;
uint16 t2=0;
uint32 t3=0;
uint8 light;
uint8 flaglight;
uint8 flagboma;
bit flagframe = 0;
bit flagTxd = 0;
uint8 flag=0;
bit flag1=0;
uint8 T0RH;
uint8 T0RL;
uint8 code tab1[1] = {0x22};
uint8 code tab2[2] = {0x88,0x99};
uint8 res=0;
uint8 cntRxd = 0;
uint8 bufRxd[64];
uint8 pdata buf[40];
#define S2RI 0x01
#define S2TI 0x02
void UartRxdMonitor(uint8 ms);
void ConfigTimer0(uint16 ms);
void ConfigUart(uint16 baud);
//void UartDriver(
void Delays(uint16 xms);
void UartWrite(uint8 *ptr, uint8 len);
void ConfigUart2();
uint8 GetLightState()
{
if(t>=2000)
{
if(S>=1)
{
flaglight=0x05;
t=0;
}
else if(R>=1||RY>=1||RG>=1||RGY>=1)
{
flaglight =0x01;
t=0;
}
else if(((Y>=1)||(YG>=1))&&(R==0)&&(RY==0)&&(RG==0)&&(RGY==0))
{
flaglight=0x02;
t=0;
}
else if((G>=1)&&(R==0)&&(RY==0)&&(RG==0)&&(RGY==0)&&(Y==0)&&(YG==0))
{
flaglight=0x03;
t=0;
}
else if((M>=1)&&(G==0)&&(R==0)&&(RY==0)&&(RG==0)&&(RGY==0)&&(Y==0)&&(YG==0))
{
flaglight=0x04;
t=0;
}
R=0; Y=0; G=0; M=0; RY=0; RG=0; YG=0; RGY=0;S=0;
}
return flaglight;
}
void watchdog()
{
WDI=~WDI;
}
// void Delay1000ms()
//
// unsigned char i, j,
// i = 4
// j =
// k = 20
//
//
//
//
// while (--k
// } while (--j
// } while (--i
//
void Delay1000ms()
{
unsigned char i, j, k;
i = 22;
j = 3;
k = 227;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
EA = 1;
// IPH=0x1
// IP=0x0
PCON=0x00;
// IPH=0x0
// IP=0x0
// IP2H=0x01;
// IP2=0x0
ConfigTimer0(1);
// ConfigUart(9600);
ConfigUart2();
watchdog();
while(1)
{
// WDT_CONTR = 0X3
flagboma=(~P0)&0x0f;
// UartWrite(&flagboma,1
watchdog();
flag=GetLightState();
if(flag1==1)
{
flag1=0;
UartWrite(tab1,1);
UartWrite(&flag,1);
UartWrite(&flagboma,1);
UartWrite(tab2,2);
watchdog();
sendok=0;
Delay1000ms();
sendok=1;
}
// if(t2>210
if(t2>500)
{
t2=0;
if(flag==0x01)
{
if(a<1)
{
a++;
UartWrite(tab1,1);
UartWrite(&flag,1);
UartWrite(&flagboma,1);
UartWrite(tab2,2);
watchdog();
sendok=0;
Delay1000ms();
sendok=1;
b=0;
c=0;
d=0;
e=0;
t3=0;
}
}
if(flag==0x02)
{
if(b<1)
{
b++;
UartWrite(tab1,1);
UartWrite(&flag,1);
UartWrite(&flagboma,1);
UartWrite(tab2,2);
watchdog();
sendok=0;
Delay1000ms();
sendok=1;
a=0;
c=0;
d=0;
e=0;
t3=0;
}
}
if(flag==0x03)
{
if(c<1)
{
c++;
UartWrite(tab1,1);
UartWrite(&flag,1);
UartWrite(&flagboma,1);
UartWrite(tab2,2);
watchdog();
sendok=0;
Delay1000ms();
sendok=1;
a=0;
b=0;
d=0;
e=0;
t3=0;
}
}
if(flag==0x04)
{
if(d<1)
{
d++;
UartWrite(tab1,1);
UartWrite(&flag,1);
UartWrite(&flagboma,1);
UartWrite(tab2,2);
watchdog();
sendok=0;
Delay1000ms();
sendok=1;
a=0;
b=0;
c=0;
e=0;
t3=0;
}
}
if(flag==0x05)
{
if(e<1)
{
e++;
UartWrite(tab1,1);
UartWrite(&flag,1);
UartWrite(&flagboma,1);
UartWrite(tab2,2);
watchdog();
sendok=0;
Delay1000ms();
sendok=1;
a=0;
b=0;
c=0;
d=0;
t3=0;
}
}
}
}
}
void Delay10us(uint8 t)
do{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}while(t--);
}
void UartWrite(uint8 *ptr, uint8 len)
{
// uint8 cntTxd;
RS485_DIR = 1;
// cntTxd = 1
while(len--)
{
flagTxd = 0;
S2BUF = *ptr++;
while(!flagTxd);
}
Delay10us(5);
RS485_DIR = 0;
}
void ConfigTimer0(uint16 ms)
{
uint32 tmp;
tmp = 11059200 / 12;
tmp = (tmp*ms) / 1000;
tmp = 65536 - tmp + 32;
T0RH = (uint8) (tmp >> 8);
T0RL = (uint8) tmp;
TMOD &= 0XF0;
TMOD |= 0X01;
TH0 = T0RH;
TL0 = T0RL;
ET0 = 1;
TR0 = 1;
}
void UartRxdMonitor(uint8 ms)
{
static uint8 idletmr = 0;
static uint8 cntbkp = 0;
if(cntRxd>0)
{
if(cntbkp != cntRxd)
{
cntbkp = cntRxd;
idletmr = 0;
}
else
{
if(idletmr < 30)
{
idletmr += ms;
if(idletmr >= 30)
{
flagframe=1;
}
}
}
}
else
{
cntbkp = 0;
}
}
void Timer0() interrupt 1
{
uint8 state;
TH0 = T0RH;
TL0 = T0RL;
UartRxdMonitor(1);
t++;
t1++;
t2++;
t3++;
if(t1>200)
{
state=P2&0xF0;
switch(state)
{
case 0xF0: M++; break;
case 0x70: R++; break;
case 0xC0: Y++; break;
case 0xA0: G++; break;
case 0x20: RG++; break;
case 0x40: RY++; break;
case 0x80: YG++; break;
case 0x00: RGY++; break;
case 0x60: S++; break;
default: break;
}
t1=0;
}
if(t3>1000)
{
t3=0;
flag1=1;
}
}
void ConfigUart2(void)
{
RS485_DIR = 0;
AUXR&=0xf7;
S2CON = 0x50;
AUXR |=0x04;
AUXR|=0X10;
BRT=0xdc;
IE2 |= 0x01;
}
void UART2() interrupt 8
{
if(S2CON&S2RI)
{
// S2CON&=0XF
S2CON&=~S2RI;
if(cntRxd<sizeof(bufRxd))
{
bufRxd[cntRxd++] = S2BUF;
}
}
if(S2CON&S2TI)
{
// S2CON&=0XF
S2CON&=~S2TI;
flagTxd=1;
}
}
作者:
apple_01
時(shí)間:
2022-5-24 17:49
先把語(yǔ)文學(xué)好啊,實(shí)在不明白你想說(shuō)什么。
作者:
人人學(xué)會(huì)單片機(jī)
時(shí)間:
2022-5-25 10:51
單片機(jī)串口二波特率250000接收,轉(zhuǎn)串口-9600到電腦串口助手
http://www.zg4o1577.cn/bbs/dpj-220335-1.html
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日本中出视频
|
国产毛片视频
|
亚洲婷婷一区
|
日韩色综合
|
国产一区二区三区免费观看在线
|
免费人成激情视频在线观看冫
|
日本高清在线一区
|
久久久激情
|
视频一区在线观看
|
一区二区三区视频在线
|
在线日韩中文字幕
|
国产乱码精品1区2区3区
|
91精品国产综合久久久久久漫画
|
欧美日韩91
|
精品视频www
|
毛片的网址
|
国产精品久久久久久久三级
|
午夜视频在线免费观看
|
日韩精品在线看
|
色综合99
|
精品一区二区三区中文字幕
|
国产欧美一区二区三区久久人妖
|
国产一区免费
|
亚洲激情专区
|
亚洲一区中文字幕在线观看
|
av免费入口
|
久久精品一区二区视频
|
日韩一区不卡
|
久久九精品
|
欧美一区二区在线观看
|
久久综合影院
|
caoporn免费在线视频
|
亚洲天堂中文字幕
|
黄瓜av
|
久久久一区二区
|
欧美亚洲视频在线观看
|
日韩免费
|
国产99久久久国产精品
|
久久久久久免费看
|
国产一二三区免费视频
|
一二三在线视频
|