AT89S52单片机485通讯开发板原理图PCB图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AT89S52单片机485通讯开发板使用手册

【简要说明】

一、尺寸:长72mmX宽72mmX高12mm

二、主要芯片:AT89S52,MAX485

三、工作电压:6V至40V,功耗小于1W

四、特点:1、具有稳压电路,输入电压广,具有电源指示灯。

2、具有485通信。

3、单片机标准十针下载接口。(可使用并口下载线和USB下载线下载)

4、支持波特率 2400 4800 9600 19200

5、采用的按键,机械寿命长。

6、单片机编程,客户可以自己更改,提供参考程序

7、所以I/O口以引出。

8、具有系统复位按键

9、P2口四位按键输入

10、P1口四位信号灯指示

11、通过编程可以实现与485设备之间直接通信

12、板子静态功耗小于1W

13、具有续流保护

14、具有电磁抗干扰能力

15、板子稳定工作可靠

16、板子可安装在DIN导轨上面

17、标准的11.0592M晶振(晶振在单片机下面)。

18、端子采用螺旋压接端子

19、工作温度-40度至 +70度

20、工作湿度 40% ~ 80%RH

使用说明:

【标注说明】

【功能描述】

【原理图】

【PCB图】

【元件清单】

【应用举例】

【源代码程序】

/********************************************************************

汇诚科技

实现功能:此版配套测试程序

使用芯片:AT89S52

晶振:11.0592MHZ

波特率:9600

编译环境:Keil

作者:zhangxinchunleo

【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!

/********************************************************************

程序说明:

1、所有IO口流水灯3次。

2、所有IO口闪烁输出5次。

3、按下P2.0按键点亮P1.0灯,按下P2.1按键点亮P1.1灯,按下P2.2按键点亮P1.2灯,按下P2.3按键点亮P1.3灯,

4、接收串口发送的数据再返回原值。

********************************************************************/

#include //库文件

#define uchar unsigned char//宏定义无符号字符型

#define uint unsigned int //宏定义无符号整型

sbit P10=P1^0;

sbit P11=P1^1;

sbit P12=P1^2;

sbit P13=P1^3;

sbit P20=P2^0;

sbit P21=P2^1;

sbit P22=P2^2;

sbit P23=P2^3;

/********************************************************************

初始定义

*********************************************************************/ uchar dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容

/********************************************************************

延时函数

*********************************************************************/ void delay()//延时程序0.2秒

{

uchar m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

/******************************************************************** 功能:串口初始化,波特率9600,方式1

*********************************************************************/ void Init_Com(void)

{

TMOD = 0x20;

PCON = 0x00;

SCON = 0x50;

TH1 = 0xFd;

TL1 = 0xFd;

TR1 = 1;

}

/********************************************************************

闪烁函数

*********************************************************************/ void shanshuo(uchar j)

{

uchar i;

for(i=0;i

{

P0=0X00;P1=0X00;P2=0X00;P3=0X00;

delay();

P0=0XFF;P1=0XFF;P2=0XFF;P3=0XFF;

delay();

}

}

/********************************************************************

流水灯函数

*********************************************************************/ void liushuideng(uchar j)

{

uchar i,temp,a,k;

for(i=0;i

{

temp=0xfe; //11111110定义每次一个灯亮

P3=P2=P0=P1=temp;//直接对1/0口赋值,使批输出低电平。

delay();//延时

for(k=1;k<8;k++)//实现广告灯的从右到左移动

{

a=temp<

P3=P2=P0=P1=a;//相与求值

delay();

}

}

}

/********************************************************************

主函数

*********************************************************************/ void main()

{

Init_Com();//串口初始化

liushuideng(3);//所有IO口流水灯3次

shanshuo(5);//所有IO口闪烁输出5次

while(1)

{

if(P20==0){P10=0;} //如果P2.0按键按下,P1.0口输出低电平,指示灯亮。

if(P21==0){P11=0;} //如果P2.1按键按下,P1.1口输出低电平,指示灯亮。

if(P22==0){P12=0;} //如果P2.2按键按下,P1.2口输出低电平,指示灯亮。

if(P23==0){P13=0;} //如果P2.3按键按下,P1.3口输出低电平,指示灯亮。

if(RI) //扫描判断是否接收到数据,

{

dat=SBUF; //接收数据SBUF赋与dat

RI=0; //RI 清零。

相关文档
最新文档