AT89S52单片机485通讯开发板原理图PCB图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 清零。