ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:277.63KB ,
资源ID:7407233      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7407233.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(红外遥控车.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

红外遥控车.docx

1、红外遥控车计算机与信息学院单片机综合实验审批材料电子信息工程16-1班第一组 红外遥控车一成员介绍本组共有15名成员,其中组长一名,副组长一名组长: 刘之恒副组长:刘晓畅成员: 刘志华常兴宏高阿麒徐建栗马睿诸辰洋张华庆陆潮彬林晨瑶詹妮周杰郑婧彭可军二成员分工1.实验模块 本实验分为七个模块,分别为键盘与蜂鸣器,数码管,红外初始化,红外解码, 74HCT595N芯片,PWM调速,车的组装。2.模块分工键盘与蜂鸣器:刘志华 周杰 诸辰洋 彭可军 数码管: 张华庆 林晨瑶 红外初始化: 郑婧 常兴宏 高阿麒 红外解码: 刘之恒 陆潮彬 詹妮 74HCT595N : 刘晓畅 PWM调速: 刘晓畅 车的

2、组装: 刘晓畅三实验原理1 bas.c程序1.1头文件与宏定义#include#include #define uchar unsigned char #define NOP() _nop_()sbit b=P23; /定义蜂鸣器sbit s2=P34; /定义按键s2sbit s3=P35; /定义按键s2sbit dula=P26; /数码管段选,锁存器控制信号sbit wela=P27; /数码管位选,锁存器控制信号sbit IR=P32; /红外接口标志unsigned char irtime;/红外用全局变量bit irpro_ok,irok;unsigned char IRcord

3、4;unsigned char irdata33;1.2延时程序1.2.1程序代码/*延时1ms*/void delay(unsigned int i) unsigned int j; unsigned char k; for(j=i;j0;j-) for(k=125;k0;k-);1.3按键程序1.3.1程序代码/*按键*/unsigned char rec_ud() if(s2=1&s3=1) return 0; else if(0=s2) delay(5) ; /防抖 if(s2=0) return 1; else if(0=s3) delay(5); /防抖 if(s3=0) retu

4、rn 2;1.3.2原理独立按键内部电路如图所示。 矩阵键盘内部电路图 当按键没按下时,CPU对应的I/O接口由于内部有上拉电阻,其输入为高电平;当某键被按下后,对应的I/O接口变为低电平。只要在程序中判断I/O接口的状态,即可知道哪个键处于闭合状态。1.4蜂鸣器程序1.4.1程序代码/*蜂鸣器*/void beep() b=0; delay(500); b=1; delay(1000);1.4.2原理蜂鸣器的发声原理由振动装置和谐振装置组成,而蜂鸣器又分为无源他激型与有源自激型。无源他激型蜂鸣器的工作发声原理是:方波信号输入谐振装置转换为声音信号输出,无源他激型蜂鸣器的工作发声原理图如下:有

5、源自激型蜂鸣器的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号,有源自激型蜂鸣器的工作发声原理图如下:1.5数码管程序1.5.1程序代码/*数码管*/ void springt(unsigned char num) unsigned char dunum= 0xc0,0xf9,0xa4, 0xb0,0x99,0x92, 0x82,0xf8,0x80, 0x90,0x00; unsigned char wenum= 0x01,0x02,0x04, 0x08,0x10,0x20; unsigned char temp = 0,i = 5,level; unsig

6、ned char count = 1; level = num / 43; while(num 0 | count = 3) temp = num%10; dula = 0; P0 = dunumtemp;/段选 dula = 1; dula = 0; wela = 0; P0 = wenumi;/位选 wela = 1; wela = 0; delay(6); /此处延时,约6ms num /= 10; i-; count+; /此处是挡位 dula = 0; P0 = dunumlevel;/段选 dula = 1; dula = 0; wela = 0; P0 = wenum0;/位选

7、wela = 1; wela = 0; delay(1); /此处延时,约1ms1.5.2原理dula和wela的D0-D7分别对应单片机I/O口的P0.0到P0.7,8个单片机IO口组成一个字节,在程序编写过程中,可以直接用P0来进行操作。dula和wela的分别对应单片机I/O口的P2.6和P2.7,实现对数码管的位选和段选.加入延时函数,达到数码管循环显示目的。1.6红外程序1.6.1程序代码/*- 定时器0中断处理-*/ void tim0_isr (void) interrupt 1 using 1 irtime+; /用于计数2个下降沿之间的时间/*- 外部中断0中断处理-*/ v

8、oid EX0_ISR (void) interrupt 0 /外部中断0服务函数 static unsigned char i; /接收红外信号处理 static bit startflag; /是否开始处理标志位if(startflag) if(irtime=33)/引导码 TC9012的头码,9ms+4.5ms i=0; irdatai=irtime;/存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i+; if(i=33) irok=1; i=0; else irtime=0; startflag=1; /*- 红外接收函数-*/unsigned char rec_

9、ir() unsigned char i, j, k; unsigned char cord,value; unsigned char num; k=1; for(i=0;i4;i+) /处理4个字节 for(j=1;j7)/大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差 value|=0x80; if(j=1; k+; IRcordi=value; value=0; irpro_ok=1;/处理完毕标志位置1 irok=0; switch(IRcord2)/判断第三个数码值 case 0x18:num=2;break;/2 case 0x08:num=4;brea

10、k;/4 case 0x1c:num=5;break;/5 case 0x5a:num=6;break;/6 case 0x52:num=8;break;/8 default:break; irpro_ok=0;/处理完成标志 return num; /*- 红外初始化-*/void init_ir(void) TMOD|=0x02;/定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; /重载值 TL0=0x00; /初始化值 ET0=1; /开中断 TR0=1; IT0 = 1; /指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; /使能外部中断 EA =

11、 1; /开总中断 1.6.2原理对接收到的红外信号进行解码,由于不同按键的区别在于数据码不同,所以只需解码第三个字节。对数组irdata存储的第三个字节进行判断,一共八位,进行8次判断,利用时钟中断的叠加标志来判断是0还是1。同时,因为采用的nec通信协议是低位在前高位在后,所以要对每次解码的1或0进行移位,最后转成数字输出。1.7 HC595程序1.7.1程序代码void HC595SendData(unsigned char SendVal) unsigned char i; for(i=0;i8;i+) if(SendVali)&0x80)MOSIO=1; else MOSIO=0;

12、S_CLK=0; NOP(); NOP(); S_CLK=1; R_CLK=0; NOP(); NOP(); R_CLK=1;1.7.2原理Q0-Q7: 八位并行输出端Q7: 级联输出端DS: 串行数据输入端/MR(10脚): 低电平时将移位寄存器的数据清零。SH_CP(11脚):上升沿时数据寄存器的数据移位。下降沿移位寄存器数据不变。ST_CP(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。/OE(13脚): 高电平时禁止输出(高阻态)使用时,1.将要准备输入的位数据移入74HC595数据输入端上,送位数据到_595。2.将位数据逐位移入74HC595,即

13、数据串入。SH_CP产生一上升沿,将DS上的数据移入74HC595移位寄存器中,先送低位,后送高位。3.并行输出数据。即数据并出。ST_CP产生一上升沿,将由DS上已移入数据寄存器中的数据送入到输出锁存器。1.7.3功能将串行数据转换为并行数据输出,用于控制电机,以及实现4个电机的同步pwm调速。2 main.c文件2.1头文件与宏定义#include#include #includebas.c#define uchar unsigned char#define uint unsigned int uchar pwm=255;uchar timer1_count=255;sbit M1 = P

14、10;sbit M2 = P11;sbit M3 = P12;sbit S1 = P13;sbit S2 = P15;sbit pwm_out=P17; /PWM输出端口2.2PWM程序2.2.1程序代码/*T0定时器初始化*/void init_timer0() TMOD |= 0x20; /T1方式2计时 TH1=0xb0; TL1=0xb0; EA=1; /总中断开 ET1=1; /定时器0开 TR1=1; /启动定时器 /*T0定时中断子函数* */void timer1() interrupt 3 using 0 if(pwm=timer1_count )/占空比计数器等于定时中断计

15、数器否 pwm_out=1; /开通输出 if(timer1_count=0) /定时中断计数器为0否 pwm_out=0; /关断输出 timer1_count=256; /重置初始值 timer1_count-;2.2.2原理PWM是一项通过数字方法来获得模拟量的技术。 数字控制来形成一个方波,方波信号只有开关两种状态(也就是引脚的高低)。通过控制开与关所持续时间的比值就能模拟到一个0到5V之间变化的电压。高电平所占用的时间就叫做脉冲宽度,所以PWM也叫做脉冲宽度调制。2.2.3功能通过pwm调整占空比达到调速目的2.3主函数2.3.1程序代码void main() /主函数 init_i

16、r(); init_timer0(); while(1) springt(pwm); switch(rec_ud() case 0:S1=0;S2=0;break; case 1: if(pwm!=0)pwm-;S2=1; else beep(); break; case 2: if(pwm!=255)pwm+;S1=1; else beep(); break; delay(10); switch(rec_ir() case 2: M1=0;M2=0;M3=0; break; case 4: M1=0;M2=1;M3=0; break; case 5: M3=1; break; case 6:

17、 M1=1;M2=0;M3=0; break; case 8: M1=1;M2=1;M3=0; break; 四实验电路1.L293D2.74HCT595N五实验问题及应对试验中发现调用74HCT595N操控电机时,电机反馈与指令不符且毫无规律,多次修正无果后,放弃调用74HCT595N函数,使用arduino对电机控制,通过若干IO口实现和51单片机之间的通信,达到实验目的。六小车操作说明1.向51单片机板提供3V至5V电压,向arduino板提供9V左右电压,向L293D电池盒中装入两节18650电池。2.通过固定键盘按键S2,S3可以调节占空比,以达到调速目的,数值在0-255之间,并显

18、示在数码管上,达到上限或下限会有蜂鸣器警报。LED8号灯的显示亮度可以提供参考。3.通过红外遥控发送指令,2为前进,4为左转,5为停止,6为右转,8为后退。LED1号2号3号灯可以提供参考,3号灯灭为停止,1号2号4种亮灭组合对应四种行进方式。七应用及前景红外遥控车功能可以进一步完善。如加装传感器模块后,可以实现自动避障功能,循迹功能,自动导航功能等。搭载摄像头以及小型计算机后,可以实现自动识别功能。小车也称轮式机器人,最适合在那些人类无法工作的环境中工作,该技术可以应用于无人驾驶机动车,无人生产线,仓库,服务机器人等领域。在危险环境下,机器人非常适合使用。在这些险恶的环境下工作,人类必需采取严密的保护措施。而机器人可以进入或穿过这些危险区域进行维护和探测工作,且不需要得到像对人一样的保护。

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

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