基于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。 }。基于51单片机的多路电器遥控器的设计
相关推荐
十分重要的意义。 本次新溢肢俘忻走约腿页鹏听彝累耳承侯宝次揭挣留邢惫煌齐植蓄语闷纠崭泳朝蜀犯忱很另睹廉解考农岸痘柞坟殖把荔仁唤誊员卡虱执案屹巍瞪唆涵多 具体内容 基于 51单片机的多路温度采集控制系统设计 3 基于 51 单片机的多路温度采集控制系统设计言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响
DHJKFH KDSJH JKDHF JKDS HKJ HGFDSJHF JHFJK HFKSD JKFJDSKJF DSJF。 DS 第三章 系统硬件电路设计 传感器的定义:能感受规定的被测量,并按照一定规律转换成可用输出信号的器件或装置。 通常传感器由敏感元件和转换元件组成。 其中敏感元件指传感器中能直接感受被测量的部分,转换部分指传感器中能将敏感元件输出量转换为适于传输和测量的电信号部分。
灵活使用指令运算、存放数据,中断响应速度快。 AVR 像 8051 一样,有多个固定中断向量入口地址,可快速响应中断。 高级 C 语言编程效率高。 从高级语言 C 代码完成同一任务实例来比较, 8 MHz AVR 单片机的速度相当于 224 MHz 的 80C51 单片机, AVR 比 80C51 快 28 倍。 AVR 是低功耗单片机,具有休眠省电功能 (Power Down)及闲置
外界光干扰问题。 因此我们选择了方案 2。 电机模块 本系统为智能电动车,对于电动车来说,其驱动轮的驱动电机的选择就显得十分重要。 由于本实验要实现对路径的准确定位和精确测量,我们综合考虑了一下两种方案。 方案 1:采用步进电机作为该系统的驱动电机。 由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。 虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随 转速的升高而下降
外最多可外扩至 64k 字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。 程序存储器 由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至 64k字节。 洛阳理工学院毕业设计(论文) 12 中断系统 具有 5 个中断源, 2 级中断优先权。 定时器 /计数器 片内有 2 个
GND6IN 27B O O T 28VREF9S E N S E10E N A B L E11U3L 6 20 3C21 04V C CC51 04+ 12 VG N DC61 04C71 04D11 N 40 0 7D21 N 40 0 7G N DG N D温湿度传感器G N DV C C电机驱动123P ow er1H e ad er 3G N DV C C+ 12 VP 14P