基于51单片机的多路电器遥控器的设计内容摘要:

序扫 描 开 始键 按 下 ?逐 行 扫 描 按 P 口值 查 键 号按 键 号 转 至 相 应的 发 射 程 序返回YN发 射 开 始装 入 发 射 脉冲 个 数 ( R 1 )发 3 m s 脉 冲停 发 1 m s( R 1 ) 1 = 0 ?发 1 m s 脉 冲停 发 1 m s返回NY 图 41遥控发射器程序流程图 11 开 始初 始 化按 显 示 亮 度 数 据 设定 调 光 脉 冲 延 时 值P 1 .1 = 0 ?调 延 时 程 序P 1 .0 口 输 出调 光 脉 冲YN中 断 开 始接 收 并 对 低 电平 脉 冲 个 数高 电 平 脉 冲 3 m s ?按 脉 冲 个 数 至对 应 功 能 程 序中 断 返 回Y低 电 平 脉 冲 2 m s ?NN 图 42 遥控接收器主程序中断程序流程图 5 系统调试 调试 的过程和结果 在电路板 通电测试之前,必须认真对安装电路进行下列事项的检查: 先检查电路上电解电容的正负极是否插反,插反可能会导致电路板烧掉。 检查电路否是通的,用万用表查各个可以接通的两个点的电 路是否是通路,接电源的和接 地的点呀要检查是否接错。 将遥控器和接收 器都接上电时,数码管显示为“ 0”, LED灯都不亮的,依次的按 15个按键时,刚开始 1灯是不亮的,就检查红外接受部 分可能出错了,依次的检查各个点的电压,发现有电路被我短接了,最终 电路没成功。 12 参考文献 [1]彭为 等编著 .单片机典型系统设计实例精讲 [M], 电子工业出版社 , 2020, 1:15~ 32. [2]李朝青 主编 .无线发送 /接收 IC芯片及其数据通信技术选编 2[J]. 北京航天航空大学出版社 , 2020, 2:34~ 56. [3]杜小平 ,契桂花 ,雷道振 . 单片机初级教程 — 单片机基础 [M].北京 : 北京航空航天大学出版社 , 2020,4:77~ 56. [4]楼然苗 ,李光飞 . 51 系列单片机设计实例 [M].北京 : 北京航空航天大学出版社 , 2020, 4:46~ 89. [5]胡宴如 . 模拟电子技 [M].北京:高等教育出版社, 2020, 7: 56~ 99. [6]中国电子网 , [7]中国电子设计网, 13 附件 1. 元器件清单 元器件名称 数量 元器件名称 数量 1K 电阻 7 12V继电器 14 3K 电阻 14 两孔接插件 2 电阻 13 红外接收管 1 10K 电阻 3 红外发射头 1 47K 电阻 1 12 电源 1 470Ω电阻 1 按钮开关 16 100Ω电阻 1 12M 晶振 2 10uf/6V电容 3 二极管 4007 5 22pf 电容 4 LED 红光 14 104 电容 3 共阳数码管 1 1000uf/25V电容 2 7805 1 AT89C51 2 可控硅 1 三极管 9014 15 三极管 9015 1 14 附件 2. 程序清单 1. 红外发射程序 define uchar unsigned char define uint unsigned int include include include define THO_int 0xff //定时器高 8 位初值 define TL0_int 55 //定时器低 8位初值 define TMOD_int 0x01 //设置定时器工作模式 define TCON_int 0x10 //启动定时器 sbit HW_OUT=P1^0。 //****************************************** uchar tx_delay。 uchar IRF_buf。 uchar old_buf。 uchar IRF_step_cont。 uchar IRF_cont。 uchar IRF_tmfige。 uchar IRF_step。 uchar IRF_cont_buf。 uchar DA_step。 uchar tx_cont。 uchar tx_。 uchar IRF_data_buf2[4]。 uchar IRF_data_buf[4]。 uchar TX_BUF[6]。 uchar TX_BUF2[6]。 //****************************************** 15 uchar key_cont。 uchar key_buf。 uchar key。 uchar old_key,new_key。 uchar key_out。 //******************************************* uchar sec。 uchar cont_10ms。 uchar code key_scan_tap[4]={0x10,0x20,0x40,0x80}。 uchar code key_tap[16]={0x1e,0x1d,0x1b,0x17,0x2e,0x2d,0x2b,0x27,0x4e,0x4d,0x4b,0x47,0x8e,0x8d,0x8b,0x87}。 struct flag { unsigned hw_tx_ok:1。 //允许发送红外线标记 unsigned tou_ma:1。 //头码发送标记 unsigned sen_en:1。 //发送使能 unsigned T_10ms:1。 //10MS 标记 } flag1。 //位变量定义,主要用来作标记 struct SYS_flag { unsigned DA_GX:1。 //8 位数据发送完标记 unsigned sen_vor:1。 //电平标记, 0时发送高电平, 1时发送低电平 unsigned sen_jg:1。 //一帧数据发送完成标记 unsigned Pwer:1。 //开关机标记 } SYS_flag。 //************************************************** //定时器初值化 void T0_int(void) { TMOD=TMOD_int。 //设置定时器工作模式 0 TCON=TCON_int。 //启动定时器 TL0=TL0_int。 //装入定时器低 8位初值 TH0=THO_int。 //装入定时器高 8位初值 AUXR=AUXR|0x80。 //设置定时器为传统定时器的 12倍 ET0=1。 //定时器 0允许中断 EA=1。 //开总中断 } 16 //************************************************ // 发 void key_scan(void) { uchar i。 P2=P2|0x0f。 old_key=new_key。 new_key=P2amp。 0x0f。 if(new_key==old_key) { if(key_cont10) { key_cont++。 if(key_cont==10) { key_buf=new_key。 for(i=0。 i4。 i++) { P2=key_scan_tap[i]。 if(new_key!=P2amp。 0x0f) { key_buf=key_buf|key_scan_tap[i]。 i=4。 } } for(i=0。 i16。 i++) { if(key_buf==key_tap[i]) { key=i。 key_out=1。 //启动发送 TX_BUF2[0]=111。 //发送地址位高 8位 TX_BUF2[1]=11。 //发送地址位低 8 位 TX_BUF2[2]=key。 //用键码作为用户码 TX_BUF2[3]=key^0xff。 //发送用户反码 TX_BUF[0]=TX_BUF2[0]。 TX_BUF[1]=TX_BUF2[1]。 TX_BUF[2]=TX_BUF2[2]。 TX_BUF[3]=TX_BUF2[3]。 i=16。 } } 17 } } } else { key_cont=0。 } } void timer0_(void)interrupt 1 using 1 // 定时器溢出周期为 100us 已加入 16t { TR0=0。 // TL0=TL0_int。 TH0=THO_int。 TR0=1。 if(tx_delay0) tx_delay。 //以下为红外发送编码管理 if((key_out==1)amp。 amp。 (tx_delay==0)) { if(==1) //如果头码已发送 { if(==1) //如果一帧已发送完毕 ,则进入帧与帧之前的间隔时间 { =0。 //清第一帧发送标记 DA_step=0。 //发送阶段清 0 =0。 //下一次准备发送红外线 tx_delay=20。 //帧与帧之前的间隔时间 2MS tx_cont=0。 //发送计数器清 0 =0。 //清头码发送标记 =0。 //关闭发送 } else if(==1)//是否是发送间隔时间 { if(TX_BUF[DA_step]amp。 0x01)//如果发送据最低为 1 { tx_delay=16。 //送发 1 码宽为 } else { tx_delay=6。 //送发 0 码宽为 18 } =0。 =1。 =0。 TX_BUF[DA_step]=TX_BUF[DA_step]1。 } else { tx_delay=6。 //发送数据 0或 1红外发送宽度 =1。 =1。 }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。