




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要在现代社会发展中环保节能是必然的发展的趋势。电子遥控技术的发展使现代人的生活习惯慢慢走向便利,本设计就设计一款可遥控调光。它主要以 51 单片机为主控芯片,由 ADC0809 对旋转亮度旋钮进转把模拟量换成数字量。使用 PWM 驱动方式,通过调速 PWM 脉冲的脉宽比控制双向可控硅的导通角从而达到 LED 亮度连续可调。遥控部分使用 AT89C2051 单片机进行红外编码调制提高抗干扰能力,接收用红外一体化接收头,由 51 单片机对信号进行解码,实现整机控制。关键词:ADC0809 PWM 调制 红外编码 连续可调 2目录摘要21 方案论证41 方案论述42 方案论证42 硬件电路的设计41 电路方框图42 主要单元电路53 软件的部分设计61 遥控红外编码部分72 主机解码部分105 系统测试121 主机功能测试122 从机功能测试126 总结137 参考文献138 附录133一 方案论证1方案论述方案一:手动调节由电位器直接控制双向可控硅的导通角,遥控发射部分用NE555 多谐振荡电路控制红外发光管,接收部分用 SONYCX20106 红外接收芯片,在经过分频电路,再来通过切换电阻阻值来调节可控硅的导通角。方案二:手动调节由电位器直接控制可控硅的导通角完成,红外发射部分由小单片机 AT89C2051 来完成,接收有红外一体化接收,然后在由单片机完成数据处理,用单片机的 I/O 切换不同阻值电阻来控制可控硅的导通角。方案三:手动调节先由电位器来调节一个模拟量,在由 AD0809 来转换成一个数字量,再由单片机来处理。红外发射部分还是由小单片机 AT89C2051 来完成,接收部分是由红外一体化接收,在由单片机处理,用 PWM 调制方式控制输出电压。2. 方案论证(1) 方案一里面电路简单,但达不到题目要求采用单片机为主控芯片的要求,功能也不能完全实现,所以舍弃此方案。(2) 方案二电路简单易控制,但在手动调节和遥控调节会互相干扰,达不到便利的目的,所以就舍弃此方案。(3) 方案三电路较复杂,程序控制也较难,在成本控制方面因为使用了 AD0809 所以也不是很理想。但在功能方面手动调节和遥控调可以相互转换。功能也就比较强大,达到题意的基本要求。综上所述这里采用方案三。4123U97A6R8KDSLE0VCP.二 硬件电路的设计1. 电路方框图:(1)主机电路方框图: 时钟电路 红外接收AD0809 模数转换电路 可控硅调光电路复位电路 单片机(2)遥控电路方框图: AT89C2051时钟电路复位电路键盘电路 红外发射电路2. 主要单元电路(1)调光电路从单片机 P1.6 出来的 PWM 调制信号控制可控硅的导通角,导通角越大灯的亮度越高。(2)模数转换电路5(3)遥控电路 RST1P.0/XD2AL4IN6789UCYpKuFVQkHW一BE(+)-OG6三 软件设计:其中 PWM 程序使用定时器 1 作为 PWM 脉冲输出的基本单位。程序中定时器 0 工作在模式 2,且计时高低字节寄存器 TH1、TL1 的初始值为0x97H。定时器的定时过程如图 5-9 所示。TL0(0x97H)1212MHz(晶振) TF0TH0(0x97H)从上图可以看出,中断与中断之间相隔时间为 256us(即每 256 产生中断一次)。程序中每一脉冲的周期有“P”个基本时间单位。如果“P”为00H,则表示脉冲周期为 256 个基本时间单位。因此每一个脉冲周期计算如下:脉冲周期=25625us=65536us=65.536ms程序中“clock”设为“FFH” ,表示总共送出去 255 个高电平部分逐次曾大的脉冲。输出的脉冲波形如图 5-10 所示。输出脉冲中,第一个脉冲“T1”的脉宽比例为7一25T=6.3ms1. 遥控红外编码部分/*发送 8 位红外数据*/void sendcode_8(void)uchar i;for(i=0; i1;/*发送 2 位红外数据*/8void sendcode_2(void)/前 26 位系统码最后两位uchar i;for(i=0;i1;/*发送红外数据*/void sendcode(void)set_count = 575;/发送 9ms 38K 红外光flag = 1;count = 0;TR0 = 1;while(count 12&count12 & buf_count210 & buf_count= 25)/若收完 26 个脉冲ir_status=2;/数据解码标记common_code_count=0;/系统码计算清零buf_count=0;/中断计数暂存清 0else if (buf_count40 & buf_count12 & buf_count40 & buf_count= 1;buf_key_code |= 0x80;/收到 1key_bit_count+;/数据脉冲累加else if (buf_count12 & buf_count=1;/收到 012key_bit_count+;else /若收完 8 位数据则做以下处理ir_status = 0;/接收状态返回到空闲key_code = buf_key_code;key_bit_count = 0;buf_key_code = 0;buf_count = 0;TR0 = 0;new_code = 1;13四 系统测试4、1 主机功能测试这里测试是以数字示波器(型号:DS5022M,带宽:25MHz,实时采样率:500MSa/s)数字万用表(型号:VC9807A+) ,旋转主机亮度旋钮,测量旋钮上的电压与 PWM 频率(如下表所示):旋钮电压(V)0.845 1.215 1.643 1.994 2.408 2.760 3.103 3.496 3.893 4.224 4.616脉宽 2/13 3/13 4/13 5/13 6/13 7/13 8/13 9/13 10/13 11/1312/13(注:其中我们设定 1/13 为高亮度,6/13 为中亮度,11/13 中低亮度)电压与脉宽如下图所示:由上图看出 ACD0809 转换数据较准确。4、1 从机功能测试从机部分的测试,我们只测量距离。实际制作中,距离可以达到 8 米左右。14五总结1.这是我们第一次参加这样的比赛,感觉很累很辛苦。但我们感觉很高兴,我们通过几天的奋战,做出了我赛题所要求的产品。2.我们在这次比赛中确实学到了很多东西,队友的分工合作直接影响到工作的效率,在比赛中也体会到那么一点一个产品开发的流程的味道。3.这次比赛也为我们 9 月份的全国赛提供了一次演练的机会,得到了比赛时间按安排的宝贵经验。4.这次比赛也让我们认识到自身的缺陷,让我们知道以后该训练的重点15六参考文献1电子电工实践指导 王港元 主编江西科学技术出版社(第四版)2C51 单片机典型模块设计与应用边春元 李文涛 江杰 杜平 等编著3模拟电子技术 周雪 主编西安电子科技大学出版社(修订版)4常用集成电路应用实例荷希才 编电子工业出版社5数字集成电路应用 300 例黄继昌等编人民邮电出版社6单片机 C 语言应用程序设计马忠梅等编北京航空航天大学出版社7单片机外围电路设计沙占友 王彦朋 孟志永等编电子工业出版社16七、附录附录一:主机原程序代码:#include #include #define uint unsigned int#define uchar unsigned char#define AD_data P2uint k,k_on,off,TH;uchar time;bit ON_OFF; /电位器调接允许端,0 允许,1 允许sbit ALE =P36; /ADC0809 地址锁存允许信号sbit EOC =P31; /ADC0809 转换结束信号sbit OE =P34; /ADC0809 输出允许sbit clock=P30; /ADC0809 外部时钟脉冲输入端sbit LAMP =P16; /高亮度 LED 驱动sbit ir=P33; /红外端口uchar key_code=0; /遥控键值uchar new_code=0; /有无新按键uint buf_key_code=0; /键值暂存uchar key_bit_count=0; /键编码脉冲计数uint count=0; /定时中断次数计数uint buf_count=0; /定时中断计数暂存uchar common_code_count=0; /前导码脉冲计数uchar ir_status=0; /脉冲接收器所处的状态,0:无信号,1:系统码接收区,2:数据编码接收区void delay_10us(unsigned char y)/延时子程序 10usunsigned char x;for(x=y;x0;x-);void delay_ms(uint z)/延时子程序 1msuint x,y;for(x=z;x0;x-)for(y=113;y0;y-);void init(void) / 时器初使化17ir=1; /红外端口写 1EA=1; /开总中断TMOD=0x22; /定时器 01,模式 2,8 位自动装载模式TH0=0Xd1; TL0=0Xd1; TH1=156;TL1=156;TR1=1;ET1=1;IT1=1; /INT1 下降沿触发ET0=1; EX1=1; /*定时器 0 中断*/void time0() interrupt 1 /时器中断count+;/定时器中断次数累加/*外部中断,红外解码程序*/void int1() interrupt 2/外部中断TR0=1;/开定时器中断if (count12&count12 & buf_count210 & buf_count= 25)/若收完 26 个脉冲ir_status=2;/数据解码标记common_code_count=0;/系统码计算清零buf_count=0;/中断计数暂存清 0else if (buf_count40 & buf_count12 & buf_count40 & buf_count= 1;buf_key_code |= 0x80;/收到 1key_bit_count+;/数据脉冲累加else if (buf_count12 & buf_count=1;/收到 0key_bit_count+;else /若收完 8 位数据则做以下处理ir_status = 0;/接收状态返回到空闲key_code = buf_key_code;key_bit_count = 0;buf_key_code = 0;buf_count = 0;19TR0 = 0;new_code = 1;void RUN_AD(void)ALE = 0;delay_ms(20);ALE = 1; /启动 AD 转换delay_ms(20);ALE = 0;while(0 = EOC); OE = 1;k = AD_data;if(abs(k_on-k)5) ON_OFF = 0;off = 0; /重新激活 旋转亮度调节 k_on=k;OE = 0;if(!ON_OFF) TH = k;P0=k;void time_t1(void)interrupt 3clock=clock; /ADC0809 外部时钟信号time+;if (time = 128) time = 0;LAMP = 1|off; /PWM 调节if (time = TH/2) LAMP = 0|off;/*主程序*/void main()init(); /定时器初始化while(1)while(!new_code) RUN_AD(); /判断是否有新按键,如果有则执行下面程序,没有则一直循环if(key_code #define uint unsigned int#define uchar unsigned charbit irout;/红外管状态sbit ir=P12;/红外发射管控制脚uint count, set_count;/中断计数,设定中断次数bit flag,keyflag;/红外发送标志,按键标志位uchar irsys4=0x1a,0xa1,0xdc,0x03;/26 位系统码,最后一个字节只用 2 位uchar ircode,irdata;/*延时 1ms*/void delay(uint z)/延时 1ms,晶振 22.1184Muint x,y;for(x=z;x0;x-)for(y=225;y0;y-);/*按键扫描*/void keyscan(void)uchar keytemp;P3=0xff;keytemp=P3if(keytemp!=0x0f)21delay(20);keytemp=P3if(keytemp!=0x0f)keyflag=1;/有按键标志switch(keytemp)case 0x0e:irdata=27;break;/按键 1 对应该遥控器 P+的键值case 0x0d:irdata=26;break;/按键 2 对应该遥控器 P-的键值case 0x0b:irdata=31;break;/按键 3 对应该遥控器 VOL+的键值case 0x07:irdata=30;break;/按键 4 对应该遥控器 VOL-的键值/*发送 8 位红外数据*/void sendcode_8(void)uchar i;for(i=0; i1;/*发送 2 位红外数据22*/void sendcode_2(void)/前 26 位系统码最后两位uchar i;for(i=0;i1;/*发送红外数据*/void sendcode(void)set_count = 575;/发送 9ms 38K 红外光flag = 1;count = 0;TR0 = 1;while(count set_count);TR0 = 0;set_count = 320;/间隔 4.5msflag = 0;count = 0;TR0 = 1;while(count set_count);TR0 = 0;23ircode = irsys0;/发送 26 位系统码的前 1-8 位sendcode_8();ircode = irsys1;/发送 26 位系统码的前 9-16 位sendcode_8();ircode = irsys2;/发送 26 位系统码的前 17-24 位sendcode_8();ircode = irsys3;/发送 26 位系统码的前 24-26 位sendcode_2();ircode = irdata;/发送 8 位数据码sendcode_8();ircode = irdata; /发送 8 位数据反码sendcode_8();set_count = 28;/发送 0.56ms 38k 红外波(编码中的 0.56ms 低电平)flag = 1;count = 0;TR0 = 1;while(co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025出国劳务合同范本
- 2025年度企业管理资料 信息技术设备维护合同范本
- 中级消防技能题库及答案
- gps监控人员考试题及答案
- 四年级上册语文期末试卷及答案
- 农村小区施工方案模板
- 除灰管道安装施工方案
- 2025年乡村旅游运营师中级面试指南及模拟题解析
- 惠州户外冲浪池施工方案
- 连杆玩具教学设计-2025-2026学年小学劳动三年级下册苏教版《劳动与技术》
- IP授权使用合作协议书范本
- 铁路运输融资创新-洞察分析
- 安全法律知识培训课件
- 顶管工程监理规划
- 妊娠合并地中海贫血护理
- 2025年汽车零部件企业公司组织架构图职能部门及工作职责
- 机械加工质量控制计划
- 《水利工程质量》课件
- 《市场营销岗位介绍》课件
- 《电子收费系统E》课件
- 2024年全国《考评员》专业技能鉴定考试题库与答案
评论
0/150
提交评论