基于msp430的数据传输程序Word下载.docx

上传人:b****5 文档编号:21657647 上传时间:2023-01-31 格式:DOCX 页数:16 大小:18.12KB
下载 相关 举报
基于msp430的数据传输程序Word下载.docx_第1页
第1页 / 共16页
基于msp430的数据传输程序Word下载.docx_第2页
第2页 / 共16页
基于msp430的数据传输程序Word下载.docx_第3页
第3页 / 共16页
基于msp430的数据传输程序Word下载.docx_第4页
第4页 / 共16页
基于msp430的数据传输程序Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于msp430的数据传输程序Word下载.docx

《基于msp430的数据传输程序Word下载.docx》由会员分享,可在线阅读,更多相关《基于msp430的数据传输程序Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

基于msp430的数据传输程序Word下载.docx

j--);

}

voiddelay_10us()

{

unsignedchari;

for(i=0;

i<

40;

i++);

voidwrite_com(unsignedcharcom)

{//写液晶命令函数

P3DIR=0x03;

P3OUT&

=~BIT0;

//rs=0

=~BIT1;

//lcden=0

P2DIR=0xff;

P2OUT=com;

//P0=com

delay(10);

P3OUT|=BIT1;

//lcden=1

//lcden=0

voidwrite_date(unsignedchardate)

{//写液晶数据函数

P3OUT|=BIT0;

//rs=1

P2OUT=date;

//P0=date

//lcden=0

voidinit_1602()

{//初始化函数

unsignedcharnum;

//rs=0

write_com(0x38);

//1602液晶初始化

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

for(num=0;

num<

15;

num++)//写入液晶固定部分显示

{

write_date(table[num]);

delay(10);

}

write_com(0x80+0x40);

num++)

write_date(table1[num]);

voidwrite_shuzi(unsignedcharadd,chardate)

charshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+add);

write_date(0x30+shi);

write_date(0x30+ge);

voidwrite_shuzi1(unsignedcharadd,chardate)

write_com(0x80+0x40+add);

voidint_clk()

BCSCTL1&

=~XT2OFF;

//打开xt振荡器

BCSCTL2|=SELM1+SELS;

//MCLK为8MHZ,SMCLK为1MHZ

do

{

IFG1&

=~OFIFG;

//清除震荡错误标志

for(i=0;

i<

100;

i++)

_NOP();

//延时

}

while((IFG1&

OFIFG)!

=0);

//如果标志为1,则继续循环等待

voidint_usart()

U0CTL|=SWRST;

//复位串口

U0CTL|=CHAR;

//8位数据

U0TCTL|=SSEL1;

//时钟设置

U0BR0=0x00;

U0BR1=0x0d;

UMCTL0=0x00;

//波特率2400

ME1|=UTXE0+URXE0;

//使能接收和发送

U0CTL&

=~SWRST;

//清除串口复位信号

P3SEL|=BIT4;

P3SEL|=BIT5;

//使用扩展功能

P3DIR|=BIT4;

sent_byte(unsignedchardata)

UTXIFG0)==0);

//判断发送缓存区是否结束

U0TXBUF=data;

voidint_pwm()

P1SEL|=BIT2;

//P1.2作为pwm输出

P1DIR|=BIT2;

TACCR0=26;

//pwm频率为10k.8000k/800=10k

TACCR1=13;

//占空比1:

1

TACCTL1=OUTMOD0+OUTMOD1+OUTMOD2;

//输出模式选择

TACTL|=TASSEL1+MC0;

voidCOM(void)//数据01确认

8;

i++)

{

FLAG=2;

while((!

(P1IN&

BIT7))&

&

FLAG++);

//1bit是否结束

delay_10us();

temp=0;

//26us~28us表示为0

if((P1IN&

BIT7))

temp=1;

//超过28us依然为高电平表示为1

while((P1IN&

BIT7)&

if(FLAG==1)

break;

//FLAG溢出超时则跳出for循环

//判断数据位是0还是1

//如果高电平高过预定0高电平值则数据位为1

comdata<

<

=1;

comdata|=temp;

}

voidinit_DHT11()

P1DIR|=BIT7;

P1OUT|=BIT7;

delay(400);

voidRH(void)//-----湿温度读取子程序------------

P1OUT&

=~BIT7;

delay(300);

//主机拉低高于18ms

//总线由上拉电阻拉高主机延时20us

P1DIR&

//主机设为输入判断从机响应信号

if(!

BIT7))//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行

FLAG=2;

while((!

//判断从机是否发出80us的低电平响应信号是否结束

while((P1IN&

//判断从机是否发出80us的高电平,如发出则进入数据接收状态

COM();

//数据接收状态

RH_data_H_temp=comdata;

//湿度整数8位

RH_data_L_temp=comdata;

//湿度小数8位

T_data_H_temp=comdata;

//温度整数8位

T_data_L_temp=comdata;

//温度小数8位

checkdata_temp=comdata;

//校验位

temp=(T_data_H_temp+T_data_L_temp+RH_data_H_temp+RH_data_L_temp);

if(temp==checkdata_temp)//数据校验正确执行

{

RH_data_H=RH_data_H_temp;

RH_data_L=RH_data_L_temp;

T_data_H=T_data_H_temp;

T_data_L=T_data_L_temp;

checkdata=checkdata_temp;

voidmain(void)

WDTCTL=WDTPW+WDTHOLD;

//关看门狗

int_clk();

//初始化时钟

init_1602();

int_usart();

init_DHT11();

int_pwm();

P4DIR&

while

(1)

RH();

delay(1500);

write_shuzi(2,RH_data_H);

delay(50);

write_shuzi(11,T_data_H);

if((P4IN&

BIT0)==0)

{a=0;

BIT0)==1)

{a=1;

write_shuzi1(6,a);

RH_DATA=((RH_data_H<

2)|0);

//湿度

TH_DATA=((T_data_H<

2)|1);

//温度

ADD=((a<

2)|2);

//地址

sent_byte(RH_DATA);

delay(1000);

sent_byte(TH_DATA);

sent_byte(ADD);

//data=U0RXBUF;

//write_shuzi1(8,data);

接收:

unsignedintm1,m2,data,data1,data2,data3,add;

Add:

"

voiddelay1ms()

unsignedintk;

for(k=0;

k<

1333;

k++)

voiddelayms(unsignedintz)

unsignedinth;

for(h=z;

h>

h--)

delay1ms();

P6DIR=0x03;

P6OUT&

delay(15);

P6OUT|=BIT1;

P6OUT|=BIT0;

P4DIR=0x03;

P4OUT&

delay(15);

//波特率2400

voidMusic(z)//语音播放函数

P3DIR|=BIT2;

P3OUT|=BIT2;

//RST=1;

delayms

(2);

=~BIT2;

//RST=0;

while(z>

0)

P3DIR|=BIT1;

//SCK=1;

delayms

(1);

//SCK=0;

z--;

}

voidinit_yuyin()

P3DIR|=BIT0;

//NOW=1;

voidadd_yuyin(unsignedchara)

Music(a);

delayms(50);

P3DIR&

while((P3IN&

BIT0)==0);

//P6DIR|=BIT3;

voidyuyin_wendu(unsignedchartem)

unsignedcharge,shi;

shi=tem/10;

ge=tem%10;

add_yuyin(0);

add_yuyin(23);

add_yuyin(shi+1);

add_yuyin(11);

add_yuyin(ge+1);

add_yuyin(20);

voidyuyin_shidu(unsignedcharshidu)

shi=shidu/10;

ge=shidu%10;

add_yuyin(24);

add_yuyin(21);

init_yuyin();

write_shuzi1(13,1);

data=U0RXBUF;

//读取接收到的数据

URXIFG0)==0);

add=data&

0x03;

switch(add)

case0:

data1=((data>

>

2)&

0x3f);

write_shuzi(2,data1);

m1++;

if(m1==100)

yuyin_shidu(data1);

m1=0;

case1:

data2=((data>

write_shuzi(11,data2);

m2++;

if(m2==100)

yuyin_wendu(data2);

m2=0;

case2:

data3=((data>

write_shuzi1(6,data3);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1