📄 stc12le5404ad.txt
字号:
/*STC单片机串行口测试程序*/
/*波特率2400,1个起始位,1个停止位,8个数据位,无奇偶校验*/
/*在计算机的串行口调试助手上发送十六制的AA,则在串行口调试助手中会收到十六进制的BB*/
#include <reg51.h>
sbit EN=P3^7;
/*串口初始化函数*/
void init_seril()
{
TMOD=0x20; /*定时器采用方式2*/
TH1=0xE8; /*定时器的初始值*/
TL1=0xE8;
TR1=1; /*开定时器1*/
PCON=0x80; /*SMOD=1*/
SCON=0x50; /*串口工作于工作方式1,波特率2400,充许接收*/
}
void main()
{
RI=0; /*接收中断清0*/
EA=1; /*开中断*/
ES=1; /*开串行中断*/
init_seril();/*初始化串口*/
while(1)
{
EN=0; /*485处于接收数据的状态*/
RI=0; /*清接收中断标志位*/
}
}
/*串口接收中断函数,当接收到的是AA时,发送BB,都为十六进制*/
serial() interrupt 4 using 1
{
EA=0; /*关总中断*/
if((SBUF==0xAA)&&(RI==1))
{ RI=0;
TI=0;
EN=1; /*充许485发数据*/
SBUF=0xBB;
while(TI==0); /*等待发数据完毕*/
TI=0;
}
EA=1;
}
/*取地址号的程序*/
unsigned char getDevNO(void)
{
unsigned char a, aH,aL;
aH=P3;
aL=P1;
a=((aH<<2)&(0xF0))|((aL>>2)&(0x0F));
return ~a;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -