第一范文网 - 专业文章范例文档资料分享平台

毕业设计-单片机的主从控制系统

来源:用户分享 时间:2025/5/31 16:23:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

附录2 从机1程序

//***********从机1代码*******

#include #include \

#include \

char TTemp;

unsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int ss=2; int num=1; sbit c1=P3^6;

void delay_50ms() {

int s=5000; while(--s); }

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

void Serial_Init(void) //串口初始化 { SCON = 0x50; // 设定串行口工作方式 TMOD=0x20; TH1 = 0xfD; // 11.0952MHZ 波特率9600 TL1 = 0xfD; TR1=1; ES=1; }

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

void Interrupt_Init(void) //中断初始化 { EA=1; EX0=1; }

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

void interrupt4(void) interrupt 4 using 2 //串口中断触发 { EA=0;

28

if(TI) TI=0; if(RI) { RI=0; if(SBUF==STD1) //如果接收到主机的地址码 { SBUF=Address_Respond1; //发送地址响应码 while(!TI); //必须 TI=0; SCON=0xd0; //并且把SCON中的SM2置0,允许响应数据中断 } if(SBUF==Clicent_Command1) //如果接收到主机的启动的命令 { SBUF=Command_Respond1; //发送响应码返回给主机 while(!TI); //必须 TI=0; } if(SBUF==Clicent_Data_Command1) //如果接受到主机的发送转化结果的命令 { SBUF=Data_Command_Respond1;//发送响应码 while(!TI); //必须 TI=0; } if(SBUF==Clicent_Receive_Data1) { SBUF=Data_Receive_Respone1; while(!TI); //必须 TI=0; while(!RI); //接收数据 测试 RI=0; TTemp=SBUF; P1=SEG7[TTemp];c1=0; SCON=0xf0; //并且把SCON中的SM2置1 } if(SBUF==Clicent_Send_Data1) //发送数据 {

29

SBUF=DS18B20_Data[0]; //发送温度数据 while(!TI); TI=0; SBUF=DS18B20_Data[1]; while(!TI); TI=0; SCON=0xf0; } } EA=1; }

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

void DS18B20_Run(void) {

DS18B20_Read_Temperature(); }

//***************/ void main(void) { P1=0; Interrupt_Init(); Serial_Init(); while(1) { delay_50ms(); //延时50ms左右读一次温度,读得太多太快可能会出现乱数 DS18B20_Run(); delay_50ms(); //延时50ms左右读一次温度,读得太多太快可能会出现乱数 } }

附录3 从机2程序

//***********从机2代码******

#include

#include \

30

#include \

extern char DS18B20_Data[2];

unsigned char code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; char TTemp; int num=0; sbit c1=P3^6;

void delay_50ms() {

int s=5000; while(--s); }

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

void Serial_Init(void) //串口初始化 { SCON = 0x50; // 设定串行口工作方式 TMOD=0x20; TH1 = 0xfD; // 11.0952MHZ 波特率9600 TL1 = 0xfD; TR1=1; ES=1; }

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

void Interrupt_Init(void) //中断初始化 { EA=1; EX0=1; }

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

void interrupt4(void) interrupt 4 using 2 //串口中断触发 { EA=0; if(TI) TI=0; if(RI) { RI=0; if(SBUF==STD2) //0x8f) //如果接收到主机的地址码 { SBUF=Address_Respond2; //发送地址响应码

31

搜索更多关于: 毕业设计-单片机的主从控制系统 的文档
毕业设计-单片机的主从控制系统.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9hcuc5ut890weks4q3de_11.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top