stccas无线串口称重装置程序及电路原理图

上传人:xins****2008 文档编号:103940911 上传时间:2019-10-08 格式:DOCX 页数:16 大小:893.96KB
返回 下载 相关 举报
stccas无线串口称重装置程序及电路原理图_第1页
第1页 / 共16页
stccas无线串口称重装置程序及电路原理图_第2页
第2页 / 共16页
stccas无线串口称重装置程序及电路原理图_第3页
第3页 / 共16页
stccas无线串口称重装置程序及电路原理图_第4页
第4页 / 共16页
stccas无线串口称重装置程序及电路原理图_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《stccas无线串口称重装置程序及电路原理图》由会员分享,可在线阅读,更多相关《stccas无线串口称重装置程序及电路原理图(16页珍藏版)》请在金锄头文库上搜索。

1、STC12C5A60S2无线称重收发装置电路原理图及单片机程序本程序分两部分,称重发射端采用STC12C5A60S2单片机,称重A/D转换芯片采用TM7711,无线模块采用无线串口E30-TTL-100。称重发射端电路原理图如下:称重发射端程序如下:#include#includetypedef unsigned char uchar;typedef unsigned int uint;sbit U8S=P15;sbit U9S=P16;sbit RELAY=P17;sbit AUX=P14;sbit M1=P11;sbit M0=P10;sbit SCLK=P00;sbit MISO=P01

2、;sbit MOSI=P02;sbit A1=P03;sbit B1=P04;sbit C1=P05;sbit INH=P06;sbit U6S=P07;sbit U7S=P27;sbit RADIO=P26;sbit RT=P25;uchar RFaddr=0;/定义全局变量RFaddr,含义是模块通讯地址bit reset=0;/定义全局变量reset,用于重新初始化uint xdata dat8;/定义全局数组dat8,用于缓存DAC值void Delay5us() /12.000MHz,5us延时unsigned char i;i = 12;while (-i);void Delay3

3、ms()/12.000MHz,3ms延时TL0 = 0x48;/设置定时初值TH0 = 0xF4;/设置定时初值 TR0 = 1;/定时器0开始计时while(!TF0);TR0 = 0; /停止定时器0TF0 = 0;/清除TF0标志void Delay300ms()/12.000MHzunsigned char i, j, k;i = 14;j = 174;k = 224;dodowhile (-k); while (-j); while (-i);void Timer0Init()/3毫秒12.000MHzAUXR &= 0x7F;/定时器时钟12T模式TMOD &= 0xF0;/设置定

4、时器模式TMOD |= 0x01;/设置定时器模式TL0 = 0x48;/设置定时初值TH0 = 0xF4;/设置定时初值void Uart2Init()/9600bps12.000MHzAUXR &= 0xF7;/波特率不倍速S2CON = 0x50;/8位数据,可变波特率AUXR |= 0x04;/独立波特率发生器时钟为Fosc,即1TBRT = 0xD9;/设定独立波特率发生器重装值AUXR |= 0x10;/启动独立波特率发生器EA=1; /开总中断void Uart2SEND(uchar dat) /串口2发送子程序(查询模式)S2BUF=dat; while(S2CON&0X02)

5、=0); S2CON&=0XFD;uint Read_TM7711() /TM7711读DAC值子程序 uchar i = 0; unsigned long dat; for(i = 0;i 24;i+) SCLK=1; /置 SCLK 脚输出高电平 dat=65535) /判断是否超界 dat=65535;return (uint)dat); /返回从 TM7711 中读出的数据void ADC(uint ad8) /8通道TM7711模数转换子程序SCLK=0;/SCLK置0 Delay5us(); INH=0;/CD4051片选打开,开启TM7711数据总线通讯 Delay5us();

6、C1=0;B1=0;A1=0;ad0=Read_TM7711(); C1=0;B1=0;A1=1;ad1=Read_TM7711(); C1=0;B1=1;A1=0;ad2=Read_TM7711(); C1=0;B1=1;A1=1;ad3=Read_TM7711(); C1=1;B1=0;A1=0;ad4=Read_TM7711(); C1=1;B1=0;A1=1;ad5=Read_TM7711(); C1=1;B1=1;A1=0;ad6=Read_TM7711(); C1=1;B1=1;A1=1;ad7=Read_TM7711(); Delay5us(); INH=1; Delay3ms(

7、);void RFUartinit() /无线串口模块初始化设置,RFaddr为模块地址。M1=1;M0=1;/将模块切换为休眠模式进行参数设置。 while(!AUX); Delay3ms(); Uart2SEND(0xc2); Uart2SEND(0x00); Uart2SEND(0x1F&P2)*7); Uart2SEND(0x18); Uart2SEND(0x1F&P2)*7); Uart2SEND(0x80); M1=0;M0=0;/将无线串口模块设置为模式0。 while(!AUX); Delay3ms();void RFUartSEND(uint CH8) /无线串口模块发送DA

8、数据子程序uchar xdata CHL8,CHH8,i;for(i=0;i8)&0x00ff; while(!AUX); Uart2SEND(0X00);/传唤指定地址和信道的接收机 Uart2SEND(0x1F&P2)*7); Uart2SEND(0x1F&P2)*7); Uart2SEND(s); for(i=0;i8;i+)/发送DAC转换数据 Uart2SEND(CHLi); Uart2SEND(CHHi); Delay3ms();Delay3ms();void Uart2() interrupt 8 RELAY=1;/导通继电器,显示正在通讯 WDT_CONTR=0X36;/清零看

9、门狗 while(!AUX);/等待无线模块就绪 S2CON&=0XFC;/清除接收及发送中断标志位 void main() SP=0X80;/定义堆栈起始地址 RELAY=0;/断开继电器 P1M0=0X88;P1M1=0X1C;/将P17设置为强推挽模式,P14设为仅输入,RXD2为仅输入,TXD2为开漏输出。 WDT_CONTR=0X36;/启动看门狗 Delay300ms();Delay300ms();/等待无线模块上电稳定 Timer0Init();/定时器0初始化 Uart2Init();/串口2初始化 RFUartinit();/无线串口初始化 RFaddr=P2&0X1F; r

10、eset=1; while(reset) if(RFaddr=(P2&0X1F)/通讯地址未改变 if(!RT)/发送机模式 IE2&=0xfe; /关串口2中断 ADC(dat); RFUartSEND(dat); IE2|=0X01; /开串口2中断 Delay300ms(); Delay300ms(); Delay300ms();else /关闭无线发射IE2&=0xfe; /关串口2中断 else reset=0;/通讯地址改变,重新初始化 称重接收端同样采用STC12C5A60S2单片机,称重数据输出以模拟电压输出,D/A转换芯片为DAC8552,无线模块采用无线串口E30-TTL-

11、100。称重接收端电路原理图如下:称重接收端程序如下:#include#includetypedef unsigned char uchar;typedef unsigned int uint;sbit U8S=P15;sbit U9S=P16;sbit RELAY=P17;sbit AUX=P14;sbit M1=P11;sbit M0=P10;sbit SCLK=P00;sbit MISO=P01;sbit MOSI=P02;sbit A1=P03;sbit B1=P04;sbit C1=P05;sbit INH=P06;sbit U6S=P07;sbit U7S=P27;sbit RADIO=P26;sbit RT=P25;uchar RFaddr=0;/定义全局变量RFaddr,含义是模块通讯地址bit reset=0;/定义全局变量reset,用于重新初始化uint xdata dat8;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号