论文多功能无线电通信控制的设计与实现Word下载.docx

上传人:b****6 文档编号:21589580 上传时间:2023-01-31 格式:DOCX 页数:17 大小:382.48KB
下载 相关 举报
论文多功能无线电通信控制的设计与实现Word下载.docx_第1页
第1页 / 共17页
论文多功能无线电通信控制的设计与实现Word下载.docx_第2页
第2页 / 共17页
论文多功能无线电通信控制的设计与实现Word下载.docx_第3页
第3页 / 共17页
论文多功能无线电通信控制的设计与实现Word下载.docx_第4页
第4页 / 共17页
论文多功能无线电通信控制的设计与实现Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

论文多功能无线电通信控制的设计与实现Word下载.docx

《论文多功能无线电通信控制的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《论文多功能无线电通信控制的设计与实现Word下载.docx(17页珍藏版)》请在冰豆网上搜索。

论文多功能无线电通信控制的设计与实现Word下载.docx

第三章:

无线遥控原理及方案

无线遥控,有基于电磁波和红外线两种。

红外遥控距离短,只能直线方向遥控。

电磁波的遥控具有衍射作用,能跨越一定的屏障,遥控时也不需要直线。

电磁波无线遥控,就是在发射端发射一定频率的电磁波,接收端只提取出相同频率的电磁波信号,并经过解码得到发射端的数据。

3.1发射电路原理

遥控器发射电路,有振荡电路、高频放大器,调制方式一般采用ASK和FSK。

振荡电路可以采用电容、电感的振荡特性来设计,也可加入晶振来简单获得载波信号。

一般载波信号的频率在315MHZ-433MHZ,也可实现更高的频率。

通过高频放大器,高频信号获得更高的发射能量,提高发射距离。

图2-1

3.2接收电路原理

接收电路里面主要有:

天线,滤波电路,解调电路等几部分组成。

图2-2

3.3接收方案:

采用PT2262和PT2272的编码解码芯片。

PT2262和PT2272最多支持6位数据编码,一般支持4位数据编码。

PT2262和PT2272有三态地址编码功能,只有地址匹配时才能传输数据。

3.3.1PT2262/PT2272芯片原理简介:

PT2262/2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。

编码芯片PT2262发出的编码信号由:

地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。

当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。

3.3.2:

PT2262及PT2272外观及引脚功能

名称

管脚

说明

A0-A11

1-8、10-13

地址管脚,用于进行地址编码,可置为“0”,“1”,“f”(悬空),

D0-D5

7-8、10-13

数据输入端,有一个为“1”即有编码发出,内部下拉

Vcc

18

电源正端(+)

Vss

9

电源负端(-)

TE

14

编码启动端,用于多数据的编码发射,低电平有效;

OSC1

16

振荡电阻输入端,与OSC2所接电阻决定振荡频率;

OSC2

15

振荡电阻振荡器输出端;

Dout

17

编码输出端(正常时为低电平)

地址管脚,用于进行地址编码,可置为“0”,“1”,“f”(悬空),必须与2262一致,否则不解码

地址或数据管脚,当做为数据管脚时,只有在地址码与2262一致,数据管脚才能输出与2262数据端对应的高电平,否则输出为低电平,锁存型只有在接收到下一数据才能转换

DIN

数据信号输入端,来自接收模块输出端

VT

解码有效确认输出端(常低)解码有效变成高电平(瞬态)

第四章:

硬件电路系统:

4.1复位电路:

4.2时钟电路:

4.3显示模块1602液晶显示电路:

4.4键盘电路

因为系统的控制指令比较少,故采用独立键盘控制,也可用中断方式控制,这样占用系统的资源比较少。

4.5执行器ULN2003

ULN2003有八个输入端,对应八个输出端,当输入引脚为高电平时,对应达林管导通。

电路中为避免电机中的电流过大,因此串入一个5欧的电阻。

输入低电平时对应的引脚不导通。

单机的转速控制是通过PWM控制的,只要改变电机两端电压的占空比就可以实现调速。

4.6AT89C52单片机

AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适合于常规编程器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89C52具有一下功能:

8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时、计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护模式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

第五章:

整机电路

(1):

发射电路部分

(2):

接收控制部分

第六章:

程序代码

6.1发射部分

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitE=P0^7;

//1602使能引脚

sbitRW=P0^6;

//1602读写引脚

sbitRS=P0^5;

//1602数据/命令选择引脚

sbitKEY1=P1^5;

sbitKEY2=P1^4;

sbitKEY3=P1^3;

voiddelay()//延时,延时时间大概为140US。

{

inti,j;

for(i=0;

i<

=10;

i++)

for(j=0;

j<

=2;

j++)

;

}

voidDelay(uintdel)//延时,延时时间为10ms*del

uinti,j;

del;

1827;

j++)

;

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

因为电路设计时,为使得PCB布线简化,故将1602的D0-D7于P27-P20相接

所以设计该函数,以将数据发送对

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

ucharConvert(ucharIn_Date)

uchari,Out_Date=0,temp=0;

8;

{

temp=(In_Date>

>

i)&

0x01;

Out_Date|=(temp<

<

(7-i));

}

returnOut_Date;

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

1602命令函数

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

voidenable(uchardel)

P2=Convert(del);

RS=0;

RW=0;

E=0;

delay();

E=1;

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

1602写数据函数

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

voidwrite(uchardel)

RS=1;

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

1602初始化,请参考1602的资料

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

voidL1602_init(void)

enable(0x01);

enable(0x38);

enable(0x0c);

enable(0x06);

enable(0xd0);

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

从1602第几行,第几个字符处开始写入一串字符串

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

voidL1602_string(ucharhang,ucharlie,uchar*p)

uchara;

if(hang==1)a=0x80;

if(hang==2)a=0xc0;

a=a+lie-1;

enable(a);

while

(1)

if(*p=='

\0'

)break;

write(*p);

p++;

/*键盘扫描*/

voidKEY()

if(KEY1==1||KEY2==1||KEY3==1)

Delay

(2);

//20毫秒软件防抖

if(KEY1==1||KEY2==1||KEY3==1)

{

if(KEY1==1)

{

enable(0x01);

L1602_string(1,1,"

Velocity:

High"

);

L1602_string(2,1,"

State:

Run"

P0=0x0c;

Delay(5);

}

elseif(KEY2==1)

0"

Stop"

P0=0x03;

elseif(KEY3==1)

Low"

P0=0x0a;

}

Delay(50);

//延时0.5秒再进行下次按键的检测

}

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

主函数

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

voidMain()

L1602_init();

L1602_string(1,1,"

"

L1602_string(2,1,"

KEY();

6.2接收部分

#include<

intrins.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharm;

sbitK=P0^0;

//电机控制

sbitp10=P1^0;

sbitp11=P1^1;

sbitled0=P0^4;

//高速指示

sbitled1=P0^5;

//停止指示

sbitled2=P0^6;

//低速指示

voiddelay(uintdel)//延时10ms

/***定时程序产生占空比50%的方波,方波的占空比开改变以实现不同速度,

中断的使用要注意,否则可能进不了中断,也可能跳不出***/

voidtime0(void)interrupt1using2

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;

//定时1mS

K=~K;

/**外部中断0服务程序****/

voidServise_int0(void)interrupt0using1

EX0=0;

//关外部中断0,防止干扰

m=P2&

0x0f;

//屏蔽P2口高4位数据,并读其低4位数据

if(m==0x01)

{

K=1;

//高速控制指令

led0=1;

//开高速指示灯

led1=0;

//关停止灯

led2=0;

//关低速灯

elseif(m==0x02)

{

K=0;

//停止控制指令

led1=1;

led0=0;

elseif(m==0x04)//低速控制指令

ET0=1;

TR0=1;

led2=1;

else//可不用此else

ET0=0;

_nop_();

EX0=1;

//开外部中断0

voidMain(void)

K=0;

//电机停止

led0=0;

//关高速灯

led1=0;

led2=0;

PX0=1;

//外部中断0优先级高

PT0=0;

//定时器0优先级低

TMOD=0x01;

//定时器设置

//赋初值定时

ET0=1;

/****因PT2272VT为上升沿故需将其取反后给外部中断

VT先由P10输入,然后P11输出到外部中断0***///

p11=~p10;

EA=1;

//开总中断

EX0=1;

IT0=1;

//设置外部中断0为下降沿触发

while(!

p11)

{p11=~p10;

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

当前位置:首页 > 解决方案 > 学习计划

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

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