c51单片机串行通信展示代码单片机--单片机通信附带proteus线路图
-
//这个发送端代码
-
-
-
-
long int sleep_i=0;
-
long int main_i=0;
-
void main()
-
{
-
uchar sendx[6]={2,0,2,3,8,1};
-
sleep(2000);
-
TMOD=0x20;
-
TH1=0XF4;//根据波特率计算公式这里需要设置为这么多才能够在串行数据传输模式1的状况下实现波特率2400B/S
-
TL1=0XF4;
-
TR1=1;
-
SCON=0X40;
-
while(1)
-
{
-
for(main_i=0;main_i<6;main_i )
-
{
-
SBUF=sendx[main_i];
-
while(TI==0);//这个是清除发送的中断,不是清除闹钟中断
-
TI=0;
-
}
-
}
-
}
-
-
void sleep(long int a)
-
{
-
for(sleep_i=0;sleep_i<a;sleep_i )
-
{
-
;
-
}
-
}
后面这个是接收端代码
-
-
-
-
int szc[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
-
int bufferc[6]={0};
-
int sza[6]={0x01,0x02,0x04,0x08,0x10,0x20};
-
void display()
-
{
-
uchar i=0;
-
uchar num=0;
-
for(i=0;i<6;i )
-
{
-
num=bufferc[i];
-
P2=szc[num];
-
P1=sza[i];
-
sleep(50);
-
P2=0xff;
-
}
-
}
-
-
void main()
-
{
-
uchar i=0;
-
TMOD=0x20;
-
TH1=0XF4;//根据波特率计算公式这里需要设置为这么多才能够在串行数据传输模式1的状况下实现波特率2400B/S
-
TL1=0XF4;
-
TR1=1;
-
SCON=0x40;//串口工作与方式1,定义了传送数据的格式
-
REN=1;
-
for(i=0;i<6;i )
-
{
-
while(RI==0)
-
{
-
;
-
}
-
bufferc[i]=SBUF;
-
RI=0;
-
}
-
while(1)
-
{
-
display();
-
}
-
}
-
-
void sleep(long int a)
-
{
-
uchar i=0;
-
for(i=0;i<a;i )
-
{
-
;
-
}
-
}
另外发现一个奇怪的现象:如果把T1口改为T0口没有办法正常模拟
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhigfhec
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
微信人名旁边有个图标有什么用
PHP中文网 03-11