标题:
单片机RS485串行通信模拟仿真通讯Proteus工程+源代码
[打印本页]
作者:
明威
时间:
2018-11-26 22:51
标题:
单片机RS485串行通信模拟仿真通讯Proteus工程+源代码
RS485串行口模拟仿真通讯,课程设计
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(38.04 KB, 下载次数: 43)
下载附件
2018-11-27 03:00 上传
0.png
(13.83 KB, 下载次数: 48)
下载附件
2018-11-27 03:00 上传
单片机源程序如下:
#include<AT89X52.H>//AT89X52.h指的就是s或c都可以用。C和S在看门狗、定时器上面有一定的区别,因而实际应用该单片机时要包含对应的头文件
#define uchar unsigned char
#define uint unsigned int
bit FS_Bit = 0; //发送标志位
code uchar TEXT0[] = "next\r\n\n";
code uchar TEXT1[] = "祝老师身体健康\r\n\n";
void delay(uint i); //延时函数
void Uart_Char(uchar Value); //发送一个数据
void Prints(uchar *Value); //发送一组数据
void main(void)
{
TMOD = 0x20; //设置波特率为9600和定时器1工作方式
TL1 = 0xFD; //设置初始值
TH1 = 0xFD;
SCON = 0x50; //设置串行口工作方式
PCON = 0x00;
TR1 = 1; //允许发送
ET0 = 1; //启动定时器
ES = 1; //串行中断允许
EA = 1;
//发送数据
Prints(TEXT0);
Prints(TEXT1);
delay(60000); //延时
while(1);
}
void INIT_Uart(void) interrupt 4
{
if(RI) //如果收到数据
{
RI = 0;
}
else
{
TI = 0; //发送完一个数据
FS_Bit = 0; //清标志位
}
}
//发送一个数据
void Uart_Char(uchar Value)
{
SBUF = Value; //发送数据
FS_Bit = 1; //设置发送标志位
while(FS_Bit);
}
//发送一组数据
void Prints(uchar *Value)
{
while((*Value) != '\0') //如果没有发送完毕
{
Uart_Char(*Value); //发送一位数据
Value++; //指针指向下一位数据
}
}
//延时函数
void delay(uint i)
{
while(--i );
}
复制代码
所有资料51hei提供下载:
串行口模拟仿真通讯.zip
(70.22 KB, 下载次数: 87)
2018-11-26 22:51 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
hf6
时间:
2018-12-1 14:59
图片与内容不相符,差评
作者:
littlejia
时间:
2019-10-21 19:14
不符就是没有参考价值了呗
作者:
lcw996
时间:
2019-10-30 08:16
参考一下,感谢楼主
作者:
fontex
时间:
2019-12-20 08:20
正在学习RS485,谢谢!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1