搜档网
当前位置:搜档网 › 基于单片机的红外无线控制

基于单片机的红外无线控制

基于单片机的红外无线控制
基于单片机的红外无线控制

中国矿业大学徐海学院

技能考核培训

姓名:陈思彤学号: 22110838 专业:信息11-2班

题目:基于单片机的红外无线控制

专题:音乐播放器

指导教师:有鹏老师翟晓东老师

设计地点:电工电子实验室

时间: 2014 年 4 月

通信系统综合设计训练任务书

学生姓名陈思彤专业年级信息11-2班学号22110838

设计日期:2014年4 月5日至2014 年4 月10 日

设计题目:

基于单片机的红外无线控制

设计专题题目:

音乐播放器

设计主要内容和要求:

1. 主要内容:

单片机内部结构

红外遥控解码

C语言程序设

2. 功能扩展要求

实现音乐播放器的功能

指导教师签字:

摘要:近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入。红外线技术也被广泛应用于各个电子领域,先设计一种基于单片机的红外遥控的简易音乐播放器。通信蜂鸣器来发声,来完成音乐播放器的功能。该系统可实现对音乐播放的远距离遥控,且结构简单,速度快,抗干扰能力强。通过本次课程设计,我对单片机中断系统等知识有了进一步的了解,对单片机的相关知识做到理论联系实际。

关键词:单片机,中断系统,红外遥控,音乐播放

目录

1 绪论 (4)

1.1概述 (4)

1.2功能 (4)

2 硬件电路 (5)

2.1总体设计方 (5)

2.2单片机最小系统 (5)

2.3红外遥控收发电路 (5)

2.3.1 红外遥控发射电路 (6)

2.3.2 红外遥控接收电路 (7)

2.4蜂鸣器电路 (7)

2.5 LED指示灯电路 (8)

3软件编程 (9)

3.1 C语言实现系统设计 (9)

3.2乐谱的改编 (10)

参考文献 (11)

附录 (12)

1 绪论

1.1概述

本设计采用红外线来遥控蜂鸣器使其播放音乐,红外遥控是如今广泛使用的一种通信和遥控手段;红外线遥控利用红外线来传输数据,这种情况下不需要实体连线,体积小,成本低,功能强;因此红外遥控设备已经广泛的应用在如今的电气设备的数据交互和设备控制中。

利用单片机演奏时音乐爱好者的兴趣之一,应用的范围也比较广泛。所谓音乐播放器由单片机进行信息处理,再经过信号放大,由蜂鸣器发出乐曲声。详细说来,演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。

这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。众所周知,周期为频率的倒数,可以通过音符的频率计算出周期;因此演奏时,要根据音符的不同,把对应的、半个周期的定时时间初始值,送入定时器,再由定时器按时输出高低电平。本文比较详细地介绍了音乐播放器的工作原理、设计思路、硬件的选择及相关作用、软件的实现方法以及详细的程序清单。

1.2功能

本设计以单片机为核心实现红外遥控音乐播放器功能,主要完成功能为四首歌曲的选择播放、暂停、暂停后断点播放,播放下一曲,播放上一曲以及流水灯显示音符等功能。本设计中使用常见的红外遥控器进行控制,使用其中的1、2、3、4四个数字键(对应功能选择1、2、3、4四首歌曲),频道加、减两个按键(对应功能上一曲、下一曲),静音键(对应功能暂停),以及确定键(对应功能播放歌曲)

2 硬件电路

2.1总体设计方

图1系统组成框图

本系统以AT89S52单片机为控制核心,以遥控器作为控制元件,以蜂鸣器作为执行器件。通过按下遥控器相应按键向单片机发送控制信息(红外信号),单片机红外接收器收到该红外信号后进行解码然后通过P3.2口将解码后的控制信息送入单片机,单片机通过P2.5口控制蜂鸣器播放音乐

2.2单片机最小系统

2.3红外遥控收发电路

红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工

遥控器

AT89S52 单片机

音乐播放

业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。

常用的红外遥控系统一般分发射和接收两个部分。应用编/解码专用集成电路芯片来进行控制操作,如下图所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

图2红外线遥控系统框图

2.3.1 红外遥控发射电路

发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940nm左右。

遥控器的基本组成如图所示。它主要由形成遥控信号的微处理器芯片、晶体振荡器、放大晶体管、红外发光二极管以及键盘矩阵组成。

图4遥控器电路图

工作原理:微处理器芯片IC1内部的振荡器通过2、3脚与外部的振荡晶体X 组成一个高频振荡器,产生高频振荡信号。此信号送入定时信号发生器后进行分频产生正弦信号和定时脉冲信号。正弦信号送入编码调制器作为载波信号;定时脉冲

信号送致扫描信号发生器、键控输入编码器和指令编码器作为这些电路的时间标准信号。IC1内部的扫描信号发生器产生五种不同时间的扫描脉冲信号,由5~9脚输出送至键盘矩阵电路。当按下某一键时,相应于该功能按键的控制信号分别由10~14脚输入到键控编码器,输出相应功能的数码信号。然后由指编码器输出指令码信号,经过调制器调制在载波信号上,形成包含有功能信息的高频脉冲串,由17脚输出经过晶体管BG放大,推动红外线发光二极管D发射出脉冲调制信号

2.3.2 红外遥控接收电路

红外线遥控接收器的作用是将接收到的红外线遥控信号,经过放大、解调和整形后输出功能指令信号,送至微处理器进行识别和处理。

2.4蜂鸣器电路

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。

2.5 LED指示灯电路

3软件编程

3.1 C语言实现系统设计

单片机应用系统的程序设计有两种方法:一种是基于汇编语言的,另一种是基于C语言的。

汇编语言程序的机器代码生成效率高,但可读性较差,而C语言程序的可读性和可移植性远超过汇编语言。

用C语言编写单片机应用程序,不用具体组织、分配存储器资源和处理端口数据,但对数据类型与变量的定义,必须要与单片机的存储结构相关联,否则编译器不能正确地映射定位。

C语言具有以下主要特点:

①语言简洁,使用方便灵活。

它是程序设计语言中规模最小的语言之一。ANSI标准C语言只有32个关键字,9种流程控制语句。

②程序可移植性好。

③表达能力强。

具有丰富的数据结构类型和多种运算符。用户可灵活采用多种数据类型和使用各种运算符,实现复杂运算。

④表达方式灵活。

利用C语言的多种运算符可组成各种表达式,还可采用多种方法来获得表达式的值,使程序设计具有更大的灵活性。

⑤可进行结构化程序设计。

C语言以函数作为程序设计的基本单位,非常适合结构化程序设计。

⑥可直接操作计算机硬件。

C语言具有直接访问机器物理地址的能力,C51的编译器都可直接对单片机内部的SFR和I/O端口进行操作,可以直接访问片内、片外存储器,还可以进行各种为操作。

⑦生成的目标代码质量较高。

3.2乐谱的改编

单片机演奏一个音符,是通过引脚,周期性的输出一个特定频率的方波。这就需要单片机,在半个周期内输出低电平、另外半个周期输出高电平,周而复始。

众所周知,周期为频率的倒数,可以通过音符的频率计算出周期;演奏时,要根据音符的不同,把对应的、半个周期的定时时间初始值,送入定时器,再由定时器按时输出高低电平。在此程序中,通过两个数据表存放了事先算好的、各种音符频率所对应的、半周期的定时时间初始值。低音、中音、高音和超高音,四个八度共28个音符。演奏乐曲时,就根据音符的不同数值,从表中找到定时时间初始值,送入定时器即可控制音调。

参考文献

[1] 华成英.童诗白.模拟电子技术基础[M] 北京:高等教育出版社,2006 :12-3

[2] 赵亮.单片机C语言编程与实例[M]. 北京:人民邮电出版社, 2003:3-432

[3] 瞿贵荣.15通道红外遥控电路[J].实用电子制作,2005,(7):10.

[4] 陈燕春. 学习型14路红外遥控开关[J]. 单片机开发与应用, 2005, (6): 22-25

[5]胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,2006:3:1-12

附录

附录1:程序

#include

#include

#include "delay.h"

#include "decode.h"

#define uchar unsigned char

#define uint unsigned int

#define Font_code P0 //字符码写地址

#define reg_code P2 //字位码写地址

sbit speaker=P2^5;

#define LED P1

code unsigned char shuzu[]={0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F};

unsigned char timer0h,timer0l,time;

//世上只有妈妈好数据表6,2,3,

code unsigned char sszymmh[]={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1,

6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1,

6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2,

5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,

2,2,1, 1,2,1, 6,1,1, 1,2,1, 5,1,6, 0,0,0

};

code unsigned char sszymmh1[] = {

5, 2, 2, 3, 2, 1, 5, 2, 1, 1, 3, 4,

6, 2, 2, 1, 3, 1, 6, 2, 1, 5, 2, 4,

5,2,2, 1,2,1,2,2,1,3,2,2,2,2,1,1,2,1,2,2,4,

5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,6,2,2,1,3,2,5,2,4,

5,2,2,2,2,1,3,2,1,4,2,3,7,1,1,1,2,4,

6,2,2,1,3,2,1,3,4,7,2,2,6,2,1,7,2,1,1,3,4,

6,2,1,7,2,1,1,3,1,6,2,1,6,2,1,5,2,1,3,2,1,1,2,1,2,2,4,

5,2,2,3,2,1,5,2,1,1,3,3,7,2,1,6,2,2,1,3,2,5,2,4,

5,2,2,2,2,1,3,2,1,4,2,3,7,1,1,1,2,4,

0, 0, 0};

code unsigned char sszymmh2[]={

6,2,1,7,2,1,1,3,3,7,2,1,1,3,2,3,3,2,7,2,6,3,2,1,6,2,3,5,2,1,6,2,2,1,3,2,5,2,6,3,2,2,4,2,3,3,2,1,4,2,2,1,3,2,3,2, 4,

1,3,1,7,2,1,6,2,1,5,3,2,

6,2,1,7,2,2,5,2,2,6,2,6,1,3,1,2,3,1,3,3,3,2,3,1,3,3,2,

2,3,6,5,2,1,5,2,1,1,3,3,7,2,1,1,3,2,3,3,2,3,3,8,

6,2,1,7,2,1,1,3,2,7,2,2,2,3,1,2,3,1,1,3,3,5,2,1,5,2,4,4,3,2,3,3,2,2,3,2,

};

code unsigned char sszymmh3[]={

6,2,2,1,3,2,2,3,2,1,3,1,7,2,1,6,2,2,1,3,2,2,3,3,1,3,1/2,6,2,1/2,6,2,2,1,3,2,1,3,2,7,2,2,6,2,4,

6,2,2,1,3,2,2,3,2,1,3,1,6,2,1,5,2,2,6,2,1,5,2,1,4,2,2,5,2,2,6,2,2,1,3,2,4,2,2,5,2,2,6,2,2,5,2,1,4,2,1,2,2,6, 6,2,2,1,3,2,2,3,2,1,3,1,7,2,1,6,2,2,1,3,2,2,3,3,1,3,1/2,6,2,1/2,6,2,2,1,3,2,1,3,2,7,2,2,6,2,4,

6,2,2,1,3,2,2,3,2,1,3,1,6,2,1,5,2,2,6,2,1,5,2,1,4,2,2,5,2,2,6,2,2,1,3,2,4,2,2,5,2,2,6,2,2,5,2,1,4,2,1,2,2,6, 0,0,0

};

// 音阶频率表高八位

code unsigned char FREQH[]={

0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,

0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,

//1,2,3,4,5,6,7,8,i

0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,

0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,

} ;

// 音阶频率表低八位

code unsigned char FREQL[]={

0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,

0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i

0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,

0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,

};

code uchar Show_Tab[]={

0xC0,/*0*/

0xF9,/*1*/

0xA4,/*2*/

0xB0,/*3*/

0x99,/*4*/

0x92,/*5*/

0x82,/*6*/

0xF8,/*7*/

0x80,/*8*/

0x90,/*9*/

0x88,/*A*/

0x83,/*b*/

0xC6,/*C*/

0x86,/*E*/

0x8E /*F*/

};

code uchar S_Tab[8]={

0xfe,

0xfd,

0xfb,

0xf7,

0xef,

0xdf,

0xbf,

0x7f

};

unsigned char Display_Buffer[8]; //显示缓冲区uchar bit_con; //字位码扫描计数器

extern unsigned char key_value; //键值extern bit key_flg; //按钮按下标志

extern bit cycle_flg; //循环标志

void delay(unsigned char t)

{

unsigned char t1;

unsigned long t2;

for(t1=0;t1

{

for(t2=0;t2<8000;t2++)

{

;

}

}

TR1=0;

}

void t0int() interrupt 3

{

TR1=0;

speaker=!speaker;

TH1=timer0h;

TL1=timer0l;

TR1=1;

void song()

{

TH1=timer0h;

TL1=timer0l;

TR1=1;

delay(time);

}

void main()

{

unsigned char k,i,j,z;

TMOD=0x10; //置CT0定时工作方式1

EA=1;

ET1=1;//IE=0x82 //CPU开中断,CT0开中断

delay_nus(1);

delay_nms(1);

reg_code = 0xff; //关闭显示

for(bit_con=0;bit_con<8;bit_con++) Display_Buffer[bit_con] = Show_Tab[0]; bit_con = 0;

Timer0init();//定时器0初始化

EX0init(); //外部中断初始化

while(1)

{

j=0;

if(key_flg) //解码生效,把遥控码值转移到显示区,数据码两位显示

{

key_flg = 0;

Display_Buffer[0] = Show_Tab[(key_value & 0xf0) >> 4];

Display_Buffer[1] = Show_Tab[key_value & 0x0f];

switch(z)

{

case 0:

{

lop: i=0;

while(i<10000)

{ //音乐数组长度,唱完从头再来

if (i%3==0)

{

j=sszymmh[i];

LED=shuzu[j-1];

}

if (key_value==0x47) {

while(1)

{

if (key_value==0x44)

break;

}

}

if (key_value==0x19)

{

goto lop;

break;

}

timer0h=FREQH[k];

timer0l=FREQL[k];

time=sszymmh[i+2];

i=i+3;

song();

if (key_value==0x0c)

{ key_value=0;

z=0;break;

}

if (key_value==0x18)

{ key_value=0;

z=1;break;

}

if (key_value==0x5e) { key_value=0;

z=2;break;

}

if (key_value==0x08)

{ key_value=0;

z=3;break;

if (key_value==0x40)

{ key_value=0;

z=3; break;

}

if (key_value==0x43)

{ key_value=0;

z=1; break;

}

}

}

;break;

case 1:

{

lop1: i=0;

while(i<1000)

{ //音乐数组长度,唱完从头再来

k=sszymmh1[i]+7*sszymmh1[i+1]-1;

if (i%3==0)

{

j=sszymmh[i];

LED=shuzu[j-1];

}

if (key_value==0x47)

{

while(1)

{

if (key_value==0x44)

break;

}

}

if (key_value==0x19)

{

goto lop1;

break;

}

timer0h=FREQH[k];

time=sszymmh1[i+2];

i=i+3;

song();

if (key_value==0x0c)

{ key_value=0;

z=0;break;

}

if (key_value==0x18)

{ key_value=0;

z=1;break;

}

if (key_value==0x5e)

{ key_value=0;

z=2;break;

}

if (key_value==0x08)

{ key_value=0;

z=3;break;

}

if (key_value==0x40)

{ key_value=0;

z=0; break;

}

if (key_value==0x43)

{ key_value=0;

z=2; break;

}

}

}

;break;

case 2:

{

lop2: i=0;

while(i<1000)

{ //音乐数组长度,唱完从头再来

k=sszymmh2[i]+7*sszymmh2[i+1]-1;

{

j=sszymmh2[i];

LED=shuzu[j-1];

}

if (key_value==0x47)

{

while(1)

{

if (key_value==0x44)

break;

}

}

if (key_value==0x19)

{

goto lop2;

break;

}

timer0h=FREQH[k];

timer0l=FREQL[k];

time=sszymmh2[i+2];

i=i+3;

song();

if (key_value==0x0c)

{ key_value=0;

z=0;break;

}

if (key_value==0x18)

{ key_value=0;

z=1;break;

}

if (key_value==0x5e)

{ key_value=0;

z=2;break;

}

if (key_value==0x08)

{ key_value=0;

z=3;break;

}

if (key_value==0x40)

基于51单片机的红外遥控

基于51单片机的红外遥控 红外遥控是无线遥控的一种方式,本文讲述的红外遥控,采用STC89C52单片机,1838红外接收头和38k红外遥控器。 1838红外接收头: 红外遥控器: 原理: 红外接收的原理我不赘述,百度文库上不少,我推荐个网址,这篇文章写得比较清楚,也比较全面,https://www.sodocs.net/doc/2e7563732.html,/view/c353e8360b4c2e3f57276349.html 我主要讲下程序的具体意思,在了解原理的基础上,我们知道,当我们在遥控器上每按下一个键,遥控器上的红外发射头都会发出一个32位的编码(32位编码分成4组8位二进制编码,前16位为用户码和用户反码,后16位为数据码和数据反码,用户码表示遥控器类型,数据码表示按键编码),不同的键对应不同的编码,红外接收头接收到这个编码后,发送给单片机,再进行相关操作。 源程序1:(这个程序的功能是将用户码和用户反码,数据码和数据反码显示在1602液晶上,因为遥控器买回来是不会说明按键对应什么码值,所以先自己测试,确定每个 按键的码值) #include #include #include #define uint unsigned int #define uchar unsigned char #define _Nop() _nop_() #define TURE 1 #define FALSE 0

/*端口定义*/ sbit lcd_rs_port = P3^5; /*定义LCD控制端口*/ sbit lcd_rw_port = P3^6; sbit lcd_en_port = P3^4; #define lcd_data_port P0 /////////////////////////////////// void delay1 (void)//关闭数码管延时程序 { int k; for (k=0; k<1000; k++); } //////////////////////////////////// uchar code line0[16]={" user: "}; uchar code line1[16]={" data: "}; uchar code lcd_mun_to_char[16]={"0123456789ABCDEF"}; unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4];//用来存放用户码、用户反码、数据码、数据反码unsigned char irdata[33];//用来存放32位码值 void ShowString (unsigned char line,char *ptr); ////////////////////////////////////////////// void Delay(unsigned char mS); void Ir_work(void); void Ircordpro(void); void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数 { irtime++; } void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数 { static unsigned char i; static bit startflag; if(startflag){ if(irtime<63&&irtime>=33)//引导码TC9012的头码 i=0; irdata[i]=irtime; irtime=0; i++; if(i==33){ irok=1; i=0; }

基于单片机的机器人用红外测距仪系统设计 (1)

第37卷第4期应用科技 V o.l 37, .4 2010年4月 Appli ed Sc i ence and T echno l ogy A pr .2010 do :i 10.3969/.j issn .1009-671X.2010.04.003 基于单片机的机器人用红外测距仪系统设计 唐秦崴,瞿哲奕,朱熀秋 (江苏大学电气信息工程学院,江苏镇江212013) 摘 要:针对机器人智能倒车防护的问题,提出了以单片机AT 89S52为控制核心,采用红外测距技术设计机器人用红外测距仪系统,由单片机处理环境信息,红外测距仪发出停车提示或直接执行停车,不需要驾驶员亲自根据信息作判断,具有显著的智能化.论文采用红外管和AT 89S52单片机,设计和制作了红外测距仪系统硬件电路,并且开发了相关软件.试验表明:研制的基于单片机的红外测距仪,机器人停车时距预期位置最大误差不超过4c m,工作可靠,性能良好,确保机器人倒车的智能性和稳定性.关键词:单片机;机器人;红外测距仪;系统设计 中图分类号:TP273.4 文献标识码:A 文章编号:1009-671X (2010)04-0011-04 Desi gn of i nfrared range fi nder syste m for a robot based on a si ngle chip m icroco mputer TANG Q in w e,i QU Zhe y,i Z HU Huang qiu (Schoo l of E lectrica l and In f o r m ati on Eng i neer i ng ,Jiangsu U niversit y ,Zhenjiang 212000,Ch i na) A bstract :A i m i n g at the proble m of r obot inte lligent par k i n g pr o tecti o n ,an i n frared range fi n der is designed by u sing the i n frared rang i n g techno logy for par k i n g syste m based on a si n g le ch ip m icr oco mputer AT89S52.The i n fra red range finder can send out par k i n g si g na lpro m ptly or execute parking directly .The driver does not need to j u dge infor m ati o n by h i m se l;f t h e i n for m ati o n is processed by a sing le ch i p m icroco m puter AT89S52,and t h e infrared range fi n der has disti n ct i n telli g ent f u nction.This paper i n troduces t h e soft w are and har dw are c ircuits o f an infrared range finder parking syste m ,w hich are designed and deve l o ped w it h an infrared tube and a si n g le ch i p m i c roco m puter .The experi m ental resu lts have shown that the i n frared range based on a si n g le chip m icroco m puter operates reliab l y and m easures exactl y ,having good perfor m ance w ith the m ax i m um error of no tm ore than 4c m,thus the robo ts 'i n telli g ence and stab ility are i n sured.K eywords :si n g l e ch i p m icroco m puter ;robo ;t i n frared range finder ;syste m desi g n 收稿日期:2009 12 03. 项目基金:国家高技术研究发展计划基金资助项目(2007AA04Z213);江苏省高等学校大学生实践创新训练计划基金资助项目(2008 297).作者简介:唐秦崴(1986 ),男,大学本科,主要研究方向:机器人编程及硬件制作,E m ai:l tqw86107@yahoo .co https://www.sodocs.net/doc/2e7563732.html, . 机器人智能倒车防护有利于机器人安全可靠运行.目前投入应用的机器人智能倒车防护技术主要有2种:一种是车载雷达(超声波技术)测距倒车防护 [1-4] ;一种是摄像头视觉防护 [5-6] .车载雷达测距 十分精确,智能化程度较高,但造价较为昂贵;摄像头视觉防护虽然可以让驾驶员实时获取身后的环境信息,但对距离的测量则仍需要外加其他设备的辅助,驾驶员仍然需要亲自通过肉眼判断身后的情况,智能化有所不足.基于红外管以及单片机技术的机器人用测距仪采用单片机独立处理环境信息并发出 停车提示或直接执行停车,不需要驾驶员亲自根据信息作判断,能够实现智能化防护提示或停车.采用的红外技术虽然在精准度上不及超声波技术,但对于机器人已经足够,并且对突然出现的行人的敏感度不亚于超声波技术,所以拥有同超声波技术同等的安全性.同时由于红外发射、接受装置以及使用的AT89S52单片机芯片成本低廉,本系统较雷达测距仪更易于商业推广.

基于51单片机的超声波测距毕业设计(论文)

一设计题目基于51单片机的超声波测距 二设计者 姓名班级学号组号 三、设计思路及框图、原理图 任务:以单片机为核心,设计并制作一超声波测距系统基本要求: 利用时间差测距,不考虑温度变化 用数码管显示测试结果 工作频率:450kHz 测距范围:0.5~10米 测试精度: 10% 发挥部分尽量增大测控范围,提高测试精度 1.系统的硬件结构设计 1.1. 超声波发生电路 发射电路主要由反相器74LS04和超声波发射换能器T构成,单片机P1.0端口输出的450kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。上位电阻R1O、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡时间。 1.2超声波检测接收电路 采用集成电路CX20106A为超声波接收芯片。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很好的灵敏度和较强的抗干扰能力。适当更改电

容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。 1.3 显示电路 显示电路主要由74ls273芯片驱动,用PNPC8550三级管进行位选,七段共阳极数码管显示。 2.系统的软件结构设计 设计思路 主程序中包括温度补偿子程序,计算子程序,显示子程序。采用汇编编程。首先进行系统初始化。其次利用循环产生4个40KHZ的方波,由输出口进行输出,并开始计时。第三等待中断,若超声波被接收探头捕捉到,那么通过中断可测得

基于51单片机的红外遥控器设计

天津职业大学 二○一五~二○一六学年第1学期 电子信息工程学院 通信系统综合实训报告书 课程名称:通信系统综合实训 班级:通信技术(5)班 学号:1304045640 1304045641 1304045646姓名:韩美红季圆圆陈真真指导教师:崔雁松 2015年11月17日

一、任务要求 利用C51单片机设计开发一套红外线收发、显示系统。 具体要求: ●编写相关程序(汇编、C语言均可); ●用Proteus绘制电路图并仿真实现基本功能; ●制作出实物 二、需求分析(系统的应用场景、环境条件、参数等) 现在各种红外线技术已经源源不断进入我们的生活中,在很多场合发挥着作用。 机场、宾馆、商场等的自动门,会在人进出时自动地开启和关闭。原来,在自动门的一侧有一个红外线光源,发射的红外线照射到另一侧的光电管上,红外线是人体察觉不到的。当人走到大门口,身体挡住红外线,电管接收不到红外线了。根据设计好的指令,触发相应开关,就把门打开了。等人进去后,光电管又可以接到红外线,恢复原来的线路,门又会自动关闭。因此这种光电管被称为“电眼”,在许多自动控制设备中大显身手。 在家庭中,许多电子设备如彩色电视、空调、冰箱和音响等,都使用了各种“红外线遥控器”。利用它我们可以非常方便的转换电视频道或设定空调的温度档次。 三、概要设计(系统结构框图/系统工作说明流程图) 红外线收发、显示系统硬件由以下几部分组成:红外遥控器,51单片机最小系统,接收放大器一体集成红外接收头,LED灯显示电路。 红外线接收是把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。这些工作通常由一体化的接收头来完成,输出TTL兼容电平。最后通过解码把脉冲信号转换成数据,从而实现数据的传输。 红外遥控系统电路框图

基于单片机的超声波测距

测控技术与仪器专业课程设计报告 班级姓名学号起始时间 课程设计题目: 测控技术与仪器专业课程设计报告 摘 要:本文介绍了一种基于单片机的超声波测距仪的设计。详细给出了超声波测距仪的工作原理、超 声波发射电路和接受电路、测温电路、显示电路等硬件设计,以及相应的软件设计。设计中采用升压电路,提高了超声换能器的输出能力;采用红外接收芯片,减少了电路间相互干扰,提高了灵敏度;同时,考虑了环境温度对超声波测距的影响,采用温度传感器,提高了测量精度。该设计试验运行良好,系统结构简单、操作方便、价格低廉,具有广阔的推广前景。 关键字:超声波测距仪;超声波换能器;单片机;温度传感器 1 对题目的认识和理解 目前,常用的测距方法主要有毫米波测距、激光测距和超声波测距三种。超声波测距较前两种测距方法而言,具有指向性强、能耗缓慢、受环境因素影响较小等特点,广泛应用于如井深、液位、管道长度、倒车等短距离测量。 超声波测距适用于高精度中长距离测量。因为超声波在标准空气中传播速度为331.45m/s ,由单片机负责计时,单片机使用12.0M 晶振,所以此系统测量精度理论上可以达到毫米级。 目前比较普遍的测距的原理是:通过发射具有特征频率的超声波对被摄目标的探测,通过发射出特征频率的超声波和反射回接受到特征频率的超声波所用的时间,换算出距离,如超声波液位物位传感器,超声波探头,适合需要非接触测量场合,超声波测厚,超声波汽车测距告警装置等。 本设计选用频率为40kHZ 左右的超声波,它在空气中传播的效率最佳。由于超声波测距主要受温度影响较大,所以本设计增加了温度补偿电路。本设计具有电路简单、操作简便工作稳定可靠、测距精确和能耗小、成本低等特点,可实现无接触式测量,应用广泛。 1.1 超声波测距原理 超声波测距是通过超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即反射回来,超声波接收器收到回波就立即停止计时。根据计时器测出发射和接收回波的时间差t ,可以计算出发射点距障碍物的距离s :2 = t c s ,其中t c 为超声波在空气中的传 播速度,它随温度的变化而变化,其变化关系如下:331.50.6=+t c T 式中T 为环境摄氏温度,可由温 度传感器获取。

基于单片机的红外线遥控器设计

毕业设计 姓名: 专业: 班级: 指导教师:

课程设计任务书 姓名:钟思 专业:自动化 班级:1301班 设计课题:基于单片机的红外线遥控器设计指导教师: 电子信息工程系印制 二○一五年十二月 目录

第一章红外发射部分 (1) 1、设计要求与指标 (1) 2、红外遥感发射系统的设计 (1) 3、红外发射电路的设计 (2) 4、调试结果及其分析 (3) 第二章红外接受部分 (4) 1、红外遥控系统的设计 (4) 2、系统的功能实现方法 (9) 3、红外接受电路图 (10) 4、软件设计: (10) 5、调试结果及分析: (10) 6、结论: (11) 参考文献 (11)

第一章红外发射部分 1.设计要求与指标 红外遥控是目前使用较多的一种遥控手段。功能强、成本低等特点。系统。设计要求利用红外传输控制指令及智能控制系统,借助微处理器强大灵活的控制功能发出脉冲编码,组成的一个遥控系统。本设计的主要技术指标如下: (1) 遥控范围:0 —1 米 (2) 显示可控制的通道 (3) 灵敏可靠,抗干扰能力强 (4) 控制用电器电流最高为2 A 红外遥控的特点是不影响周边环境的、不干扰其他电器设备。由于其无法穿透墙壁,故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰;多路遥控。 红外遥控系统由发射和接收两大部分组成,系统采用编/ 解码专用集成电路和单片机芯片来进行控制操作。设计的电路由几个基本模块组成:直流稳压电源,红外发射电路,红外接收电路及控制部分。发射电路,利用遥控发射利用键盘,这种代码指令信号调制在40KH z 的载波上,激励红外光二极管产生具有脉冲串的红外波,通过空间的传送到受控机的遥控接收器。 2.红外遥感发射系统的设计 红外遥控系统由发射和接收两大部分组成,系统采用编/解码专用集成电路和单片机芯片来进行控制操作。发射系统设计的电路由如下的几个基本模块组成:直流稳压电源,红外发射电路。 系统框图如图所示。

单片机红外遥控原理

红外遥控原理 人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76um;紫光的波长范围为0.38~0.46。比紫光的波长还要短的光叫紫外线,比红光的波长还要长的光叫红外线。红外线遥控技术就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样:用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉距法来粗略判定。接收部分的红外接收管是一种光敏二极管。 在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率都较小,所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。 前些年常用μPC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正、电源负和数据输出(VO或OUT)。红外接收

基于单片机的红外测距系统设计-开题报告

武汉大学珞珈学院本科生毕业论文(设计)开题报告 论文题目:基于单片机的红外测距系统设计 系:电子信息科学系学号: 20100802041 姓名:钱源 一、论文选题的目的和意义 红外线是不可见光,是电磁波的一种形式,可以用来进行距离的测量,其应用历史可以追溯到上世纪60年代。现代科学技术的发展进入了许多新领域,而在测距方面先后出现了激光测距、微波雷达测距、超声波测距及红外线测距。其中激光测距是靠激光束照射在物体上反射回来的激光束探测物体的距离。由于受恶劣的天气、污染等因素影响,使反射的激光束在一定功率上探测距离比可能探测的最大距离减少一半左右,损失很大,影响探测的精确度;微波雷达测距技术为军事和某些工业开发采用的装备和振荡器等电路部分价格昂贵,现在几乎还没有开拓民用市场;超声波测距在国内外已有人做过研究,由于采用特殊专用组件使其价格高,难以推广;红外线作为一种特殊的光波,具有光波的基本物理传输特性—反射、折射、散射等,且由于其技术难度相对不太大,构成的测距系统成本低廉,性能优良,便于民用推广。另外红外测距的应用越来越普遍。在很多领域都可以用到红外测距仪。红外测距一般具有精确度和分辨率高、抗干扰能力强、体积小、重量轻等优点,因而应用领域广、行业需求众多,市场需求空间大。 红外测距的研究就非常有意义了。红外线测距仪指的就是激光红外线测距仪,红外测距仪----用调制的红外光进行精密测距的仪器,测程一般为1-5公里。在100米以内则超声波测距更有优势,但是超声波测距的距离一般无法测量1米以内,而红外测距则可以这一段距离的不足,而且有着不错的精度,在本课题中研究的就是这一类情况的红外线测距。 二、国内外关于该论题的研究现状和发展趋势 (1)国内: 根据《国内近年来红外光电测距仪的发展情况》,随着国家对外开放政策的实施和测量工作的需要,近年来国内一些光学仪器厂和电子仪器厂分别从瑞典、瑞士和日本等国引进几种红外测距仪组装线,组装测距仪,我国有关工厂和院校近年来也研制出一些产品。由于微处理机在国产测距仪上的应用,大大缩小了仪器的体积,同时也减少了出故障的几率,使得国产测距仪的性能和质量都较过去有很大的提高。在国家“六·五”计划攻关中,常州第二电子仪器厂研制的DCHZ 型多功能红外测距仪就是一个很好的例证。该产品经国家测绘局测绘科学研究所光电测距仪检测巾心进行全面质量鉴定后认为:该仪器外型美观、体积小、重量

基于单片机的红外遥控系统设计

单片机红外遥控系统设计 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。 本设计主要应用了AT89C51单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点,设计了一个红外线遥控系统。本系统包含发射和接收两大部分,利用编码/解码芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED 红外线发射器;接收部分包括红外线接收芯片、光电转换器、调解电路。其优点硬件电路 简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。 关键词:单片机AT89C51;LED红外线发射器

目录 目录 (2) 1 绪论 (2) 1.1研究背景 (2) 1.2国内外研究现状 (3) 1.3研究目的与意义 (3) 2系统方案设计论证 (5) 2.1单片机红外遥控发射器设计原理 (5) 2.2单片机红外遥控接收器设计原理 (5) 2.3方案选择和论证 (6) 3红外解码硬件电路设计 (8) 3.1红外解码系统设计 (8) 3.2单片机及其硬件电路设计 (8) 3.3红外发射电路设计 (10) 3.4红外接收电路设计 (11) 3.5本章小结 (13) 4红外解码程序设计 (14) 4.1红外接收电路主程序流程图 (14) 4.2红外接收电路子程序流程图 (14) 4.3本章小结 (15) 5 联机与调试 (16) 结论和展望 (23) 附录A:系统原理图 (24) 附录B:系统PCB图 (25) 附录C:系统仿真图 (26) 附录D:系统源程序 (27) 1 绪论 1.1研究背景 目前市场上采用的一般是遥控编码及解码集成的电路。此方案的特点是制作简单、容

基于单片机的红外测距系统设计

武汉大学珞珈学院毕业论文 基于单片机的红外测距系统设计

摘要 现代科学技术的发展,进入了很多新领域,而在测距方面先后出现了激光测距、微波雷达测距、超声波测距及红外光测距。为了实现物体近距离、高精度的无线测量而采用了红外发射接收模块作为距离传感器,单片机作为处理器,编写A/D转换和显示程序,完成了一套便推式的红外距离测量系统,系统可以高精度的实时显示所测的距离,本系统结构简单可靠、体积小、测量精度高、方便使用。 红外测距的探测距离较短,一般在几十厘米之内,本文介绍的一种基于AT89C52单片机设计的红外测距仪,可以测量距离。 首先,在绪论中,介绍了红外线及红外传感器的分类和应用、AT89C52单片机的应用与说明以及MCP3001芯片的简介。其次,阐述了与红外测距的工作原理基本结构,对红外测距传感器也做了详细说明。再次,介绍了红外测距的硬件设计和软件设计。 在硬件设计中,介绍了红外测距实现的构想,给出红外测距硬件电路原理图,并说明了红外测距传感器、键盘、A/D转换电路、LCD显示电路工作原理及AT89C52单片机的管脚分配。在软件设计中,说明了整个程序流程及各程序设计的函数。最后,是对整个设计的结论,说明了红外测距实现的可行性。 关键词:红外测距 A/D转换实时显示红外线单片机

目录 第1章绪论 (1) 1.1 课题研究的背景和意义 (1) 1.2 本课题研究的热点及发展现状 (2) 1.3 本课题研究的目的 (2) 1.4 本课题研究的内容 (3) 第2章红外测距的工作原理与基本结构 (4) 2.1.方案及设计思想: (4) 2.2 红外测距系统的基本结构 (5) 第3章红外测距的硬件设计 (6) 3.1红外收发模块 (6) 3.2 A/D转换模块 (7) 3.3 LCD显示模块 (10) 3.4 AT89C52单片机概述 (11) 3.5整个红外测距系统显示 (13) 第4章红外测距的软件设计 (15) 4.1 程序流程图 (15) 第5章系统软硬件调试 (17) 5.1 硬件调试 (17) 5.2 软件调试 (17) 5.3测试结果绘图 (17) 5.4 调试中遇到的问题 (19) 结论 (20) 参考文献 (21) 附录 (1) 后记 (29)

51单片机红外控制

/****************************************************************************** * 单片机与红外接收模块的接线说明: P32-->J11 注意事项: 根据自己使用的LCD1602是否带有转接板,如果带有转接板的即为4位,需在LCD.H头文件中 将宏#define LCD1602_4PINS打开,我们这里使用的LCD1602是8位,所以默认将该宏注释。 实验现象: 按下红外遥控器键,在LCD1602上即可显示对应的键值码(注意:需要将红外遥控器的电池绝缘片抽下) ******************************************************************************* / #include #include"lcd.h" sbit IRIN=P3^2; unsigned char code CDIS1[13]={" Red Control "}; unsigned char code CDIS2[13]={" IR-CODE:--H "}; unsigned char IrValue[6]; unsigned char Time; void IrInit(); void DelayMs(unsigned int ); /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main() { unsigned char i; IrInit(); LcdInit(); LcdWriteCom(0x80); for(i=0;i<13;i++) { LcdWriteData(CDIS1[i]);

基于单片机的红外无线控制

中国矿业大学徐海学院 技能考核培训 姓名:陈思彤学号: 22110838 专业:信息11-2班 题目:基于单片机的红外无线控制 专题:音乐播放器 指导教师:有鹏老师翟晓东老师 设计地点:电工电子实验室 时间: 2014 年 4 月

通信系统综合设计训练任务书 学生姓名陈思彤专业年级信息11-2班学号22110838 设计日期:2014年4 月5日至2014 年4 月10 日 设计题目: 基于单片机的红外无线控制 设计专题题目: 音乐播放器 设计主要内容和要求: 1. 主要内容: 单片机内部结构 红外遥控解码 C语言程序设 2. 功能扩展要求 实现音乐播放器的功能 指导教师签字:

摘要:近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入。红外线技术也被广泛应用于各个电子领域,先设计一种基于单片机的红外遥控的简易音乐播放器。通信蜂鸣器来发声,来完成音乐播放器的功能。该系统可实现对音乐播放的远距离遥控,且结构简单,速度快,抗干扰能力强。通过本次课程设计,我对单片机中断系统等知识有了进一步的了解,对单片机的相关知识做到理论联系实际。 关键词:单片机,中断系统,红外遥控,音乐播放

目录 1 绪论 (4) 1.1概述 (4) 1.2功能 (4) 2 硬件电路 (5) 2.1总体设计方 (5) 2.2单片机最小系统 (5) 2.3红外遥控收发电路 (5) 2.3.1 红外遥控发射电路 (6) 2.3.2 红外遥控接收电路 (7) 2.4蜂鸣器电路 (7) 2.5 LED指示灯电路 (8) 3软件编程 (9) 3.1 C语言实现系统设计 (9) 3.2乐谱的改编 (10) 参考文献 (11) 附录 (12)

基于单片机的超声波测距仪设计

基于单片机的超声波测距仪设计

基于单片机的超声波测距仪设计 1总体设计方案介绍 1.1超声波测距原理 发射器发出的超声波以速度υ在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离。由于超声波也是一种声波,其声速v 与温度有关,下表列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。 表1-1 超声波波速与温度的关系表 表1-1 1.2超声波测距仪原理框图如下图 单片机发出40kHZ的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送LED

显示。 图1-1 超声波测距仪原理框图 2 系统的硬件结构设计 硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。单片机用P1.0端口输出超声波换能器所需的40kHz的方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管8550驱动。 2.1 51系列单片机的功能特点及测距原理 2.1.1 51系列单片机的功能特点 5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256 B的RAM,2个16b的定时/计数器TO和T1,4个8 b的工/O端I:IP0,

单片机控制红外线防盗报警器电路设计

单片机控制红外线防盗报警器 一、硬件电路 电路原理图如图1所示。可将该电路分为以下三个部分。 用当今最流行的A T89C2051单片机控制,体积小,成本低;用红外线收发管进行检测,安装隐蔽,不易被发现;探测信号采用脉冲信号,节能且抗干扰;当有人试图闯入室内时,能自动进行声光报警。现将该报警器原理介绍如下,供广大单片机爱好者参考。 1、单片机系统。U1为A T89C2051单片机。C1,R0,R1和复位按钮RESET组成手动电平复位和上电自动复位电路;C2,C3以及晶振JT1组成时钟电路;C4,C5为+5V电源滤波电容。U2为CMOS6反相器CC4069,起驱动作用。VD1~VD6为红外发射管,其负极端接与P1口,P1口设置为输出状态,当P1口为“0”时,VD1~VD6发红外光。VD7~VD12为红外接收管,当接收到红外光时导通,+5V电源通过VD7~VD12加到反相器CC4069的输入端,经反相为低电平,这时P3.0~P3.5为低电平。发射管和接收管分别安装在门和窗口的适当位置,当有人闯入时遮挡了红外线,接收管截止,反相器输入端为低电平,这时U1的P3.0~P3.5为高电平。当在一定时间内检测到位于不同位置的光束被遮挡时,则由P3.7口输出报警信号(高低电平间隔1S的脉冲信号)。驱动声光报警电路,进行声光报警,直至按复位按钮RESET或电源开关S1。由于红外收发管之间没有遮挡时为正常,有遮挡时为异常,则当P1口输出00H时,P3口的正常状态数据为00H。 2、电源电路。220V交流市电经变压器T降压,桥式整流器D1整流,电解电容C7滤波,三端稳压器78L05稳压,最后得到整机要求的+5V稳定直流电源。 3、声光报警电路。555定时器U4,扬声器BY,普通红色发光二极管VD13等组成声光报警电路。其中555定时器接成了一个低频多谐振荡器,其控制电压输入端5脚与单片机A T89C2051的P3.7脚相连,受P3.7脚输出的高低电平间隔1S的脉冲信号控制。当P3.7为

基于51单片机的红外遥控

基于51单片机的红外遥控 红外遥控就是无线遥控的一种方式,本文讲述的红外遥控,采用STC89C52单片机,1838红外接收头与38k红外遥控器。 1838红外接收头: 红外遥控器: 原理: 红外接收的原理我不赘述,百度文库上不少,我推荐个网址,这篇文章写得比较清楚,也比较全面, 我主要讲下程序的具体意思,在了解原理的基础上,我们知道,当我们在遥控器上每按下一个键,遥控器上的红外发射头都会发出一个32位的编码(32位编码分成4组8位二进制编码,前16位为用户码与用户反码,后16位为数据码与数据反码,用户码表示遥控器类型,数据码表示按键编码),不同的键对应不同的编码,红外接收头接收到这个编码后,发送给单片机,再进行相关操作。 源程序1:(这个程序的功能就是将用户码与用户反码,数据码与数据反码显示在1602液晶上,因为遥控器买回来就是不会说明按键对应什么码值,所以先自己测试,确定每个按 键的码值) #include #include #include #define uint unsigned int #define uchar unsigned char #define _Nop() _nop_() #define TURE 1 #define FALSE 0

/*端口定义*/ sbit lcd_rs_port = P3^5; /*定义LCD控制端口*/ sbit lcd_rw_port = P3^6; sbit lcd_en_port = P3^4; #define lcd_data_port P0 /////////////////////////////////// void delay1 (void)//关闭数码管延时程序 { int k; for (k=0; k<1000; k++); } //////////////////////////////////// uchar code line0[16]={" user: "}; uchar code line1[16]={" data: "}; uchar code lcd_mun_to_char[16]={"0123456789ABCDEF"}; unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4];//用来存放用户码、用户反码、数据码、数据反码unsigned char irdata[33];//用来存放32位码值 void ShowString (unsigned char line,char *ptr); ////////////////////////////////////////////// void Delay(unsigned char mS); void Ir_work(void); void Ircordpro(void); void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数 { irtime++; } void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数 { static unsigned char i; static bit startflag; if(startflag){ if(irtime<63&&irtime>=33)//引导码TC9012的头码 i=0; irdata[i]=irtime; irtime=0; i++; if(i==33){ irok=1; i=0; }

基于单片机的红外测距系统设计 - 副本

北京联合大学应用科技学院 实训报告 基于单片机的红外测距系统设计 系别电子 专业电子信息工程技术 年级12级02班 组长:张祎楠2012191294068 组员:殷跃2012191294070 白雨童2012191294063

目录 第1章绪论 (1) 1.1 本课题研究的目的 (1) 1.2 本课题研究的内容 (1) 13整个红外测距系统显示 (4) 第2章红外测距的软件设计 (5) 后记 (6)

第1章绪论 1.3 本课题研究的目的 我们所进行的课题便是做一个简易的,精确的,近距离的距离检测仪,这也是对我们所学知识的一种考验方法,从中我们可以更系统的认识单片机,了解AD转换和红外收发模块。 1.4 本课题研究的内容 红外传感器的测距基本原理为:红外发射电路的红外发光管发出红外光,红外接收电路的光敏接收管接收发射光,根据发射光的强弱判断出所测的距离。由于接收管接收的光强度是随着发光管与测量物的距离变化而变化的,因而,与测量物的距离近则接收光强,距离远则接收光弱。 具体方法如图1所示,红外模块发出并接收到红外线信号;AD转换模块将接收到的模拟信号转换成数字信号再交给单片机, 启动单片机中断程序,此时单片机得到数字信号也就是电压值,再由软件进行判别、计算,得出距离数并送给LED/LCD显示。 红外模块 电压距离公式 AD模块 单片机 显示模块 图1.1 反射能量法原理

图3.7 protues中整体系统 单片机AT89C52左端分别接了时钟电路和复位电路,这是单片机最小的系统。XTAL1和XTAL2串连一个晶振,并且分别接上一个20p的电容,两个电容另一端都接地,构成时钟电路。RST同时接上100p电容,4脚按键,1k电阻,4脚按键另一端接上一个1k电阻再与100p电容并联接VCC,1k电阻另一端则接地,构成复位电路。 单片机AT89C52右端P0端同时接LED的D1-D7端口和排阻,P2.0接CLK,P2.1接DO,P2.2接CS,P2.5接E,P2.6接RW,P2.7接RS。 MCP3001的VREF接vcc,IN+接红外距离传感器的Vo。 软件程序 #include #include #define uchar unsigned char #define uint unsigned int

基于51单片机超声波测距

一设计要求 (1)设计一个以单片机为核心的超声波测距仪,可以应用于汽车倒车、工业现场的位置监控; (2)测量范围在0.50~4.00m,测量精度1cm; (3)测量时与被测物无直接接触,能够清晰稳定地显示测量结果。 二超声波测距系统电路总体设计方案 本系统硬件部分由AT89S52控制器、超声波发射电路及接收电路、温度测量电路、声音报警电路和LCD显示电路组成。汽车行进时LCD显示环境温度,当倒车时,发射和接收电路工作,经过AT89S52数据处理将距离也显示到LCD 上,如果距离小于设定值时,报警电路会鸣叫,提醒司机注意车距。超声波测距器的系统框图如下图所示: 图5 系统设计总框图 由单片机AT89S52编程产生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的处理,指定接收口即变为低电平,读取单片机中定时器的值。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的

时间间隔计算出障碍物的距离,并由单片机控制显示出来。 由时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。 图6 时序图 三超声波发射和接收电路的设计 分立元件构成的发射和接收电路容易受到外界的干扰,体积和功耗也比较大。而集成电路构成的发射和接收电路具有调试简单,可靠性好,抗干扰能力强,体积小,功耗低的优点,所以优先采用集成电路来设计收发电路。 3.1 超声波发射电路 超声波发射电路包括超声波产生电路和超声波发射控制电路两部分,可采用软件发生法和硬件方法产生超声波。在超声波的发射电路的设计中,我们采用电路结构简单的集成电路构成发射电路:

c51、c52单片机红外线遥控接收解码c程序(可直接使用)

/ 亲,此程序以经过测试,可直接使用!!!/ #include #define uchar unsigned char #define uint unsigned int void delay(uchar x); sbit IRIN = P3^2; uchar IRCOM[4]; void main() { IE = 0x81; TCON = 0x01; IRIN=1; /* 此处可以根据按键码自由编写程序 /以下为3*7遥控按键码/ /(也可以应用与其他类型遥控,本程序只以3*7遥控为例)/ / 0x45 0x46 0x47 / / 0x44 0x40 0x43 / / 0x07 0x15 0x09 / / 0x16 0x19 0x0d / / 0x0c 0x18 0x5e / / 0x08 0x1c 0x5a / / 0x42 0x52 0x4a / 例如: while(1) {switch(IRCOM[2]) {case 0x45: P2=0x7f; break; case 0x44: P2=0xbf; break; case 0x07: P2=0xdf; break; case 0x16: P2=0xef; break; case 0x0c: P2=0xf7; break; case 0x08: P2=0xfb; break; case 0x42: P2=0xfd; break; case 0x52: P2=0xfe; break; case 0x4a: P2=0xff; break; case 0x5a: P2=0x00; break;} } */ while(1); } //end main /**********************************************************/ void IR_IN(void) interrupt 0 //外部中断服务程序 {unsigned char j,k,N=0; EX0 = 0; delay(15); if (IRIN==1) { EX0 =1;

相关主题