基于单片机的电器遥控器设计毕业设计论文(编辑修改稿)内容摘要:

的流程图,首先初始化硬件系统启动程序,然后循环扫描键位。 开 始硬 件 、 程 序 初始 化按 键 扫 描 模 块 图 发射程序流程 基于单片机的电器遥控器设计 按键扫描模块:先判断按键是否被按下,如果有按键被按下则循环扫描,按照 P 口值查找按下的键号。 最后按照键号调用发射模块,流程图如下: 按 键 扫 描 开 始键 值 是否 被 按 下逐 行 扫 描 按 P值 查 找 键 位将 按 键 号 传递 给 红 外 发 射模 块Y返 回N 图 按键扫描流程 红外发射模块:首先装入发射脉冲个数(发射时 3ms 脉冲,停止时 1ms 脉冲 ),如果脉冲个数为 1 则返回主程序 , 反之如果不为 1 则发射 1ms 脉冲 , 然后停发 1ms 脉冲。 以上为一个完整的发射过程。 在实际应用中,使用红外线遥控方式时,受到遥控距离,遥控角度等因素影响,使用的效果不是很理想。 如果采用调频或者调幅发射接收码,可有效提高遥控的范围,并且屏蔽了角度的影响。 下图为红外信号的发射过 程流程图: 皖西学院 20xx 届本科毕业设计(论文) 17 发 射 开 始载 入 发 射 脉 冲个 数 ( r )停 发 1 m s发 射 3 m s 脉 冲 r 1 = 0发 1 m s 脉 冲停 发 1 m s返 回NY 图 发射过程流程 接收端程序设计 遥控接受端的主程序及其初始化延迟过程如下:先初始化,然后按照显示亮度数据设定调光脉冲延 时数值,看 端口的脉冲数值是否为 0,如果不为 0则调入延迟程序,此时喷 .7 端口输出调光脉冲然后返回;如果为 0 则直接返回。 程序流程图如下: 基于单片机的电器遥控器设计 开 始初 始 化按 照 显 示 亮 度设 置 调 光 脉 冲延 时 值P 3 . 0 = 0调 延 时 程 序P 2 . 7 端 口 输 出调 光 脉 冲YN 图 接收程序流程 接收端中断过程:首先判断低电平脉宽度是否大于 2ms,如果脉宽不到 2ms,则中断返回;如果低电平大于 2ms,则接收并基数低电平脉冲个数,然后判断高电平脉宽度是否大于 3ms,如果小于 3ms,则返回上一阶段计数过程;如果大于3ms,则按照脉冲个数找到对应的功能程序,此时中断 返回。 图为中 断过程程序流程图: 皖西学院 20xx 届本科毕业设计(论文) 19 中 断 开 始低 电 平脉 宽 2 m s接 收 并 计 数 ( 低 电平 )高 电 平脉 宽 3 m s按 照 脉 冲 个 数 转 至 对应 程 序中 断 返 回YYNN 图 中断流程 5 最后总结 本系毕业论文先确定了遥控信息的传递方式。 通过对比红外传递、无线电电波传递、 wifi、 zigbee 等方式,从中选择了最合适于本课题的红外线传递控制信息的方式。 然后进一步了解了红外线传递的具体知识,设计了 三套应用于红外线的设计方案,最后根据课题的实际情况(时间限制、难易度、功能多少)确定了以第三套方案为主的设计。 运用了大学期间所学的主要课程:微机原理、通信原理、数电、模电等课程的知识完成了本设计的 硬件实现;经过对 C 语言、汇编的的强化训练完成了本设计的软件部分。 通过本次课题使我自己所学有一个总体认识 ,复习巩固了大学期间所学的专业知识;同时也学习新的专业知识,也让我对大学四年所学的专业课程有了一次综合性的实践。 基于单片机的电器遥控器设计 6 主要参考文献 [1].何希才 . 新型软开关电源的设计与应用 [M] . 北京 :科学出版社 ,20xx. [2].先锋工作室,《单片机程序设计实例》 .北京:清华大学出版社, 20xx [3].李朝清 .《单片机原理及接口技术》 . 北京:航空航天大学出版社, 1997 [4].范寿康等编著,《单 片微型计算机的应用开发技术》 . 北京:人民邮电出版社, 1998 [5].李珍,付植桐编著 .《单片机原理与应用技术 [M]》 . 北京:清华大学出版社,20xx [6].万福君,潘松峰 .《单片微机原理系统设计与应用》 .中国科学技术大学出版社 . [7].李华 . 《 MCS51 系列单片机实用接口技术》 .北京:航空航天大学出版社,1999. [8].张肃文 ,陆兆文 . 高频电子电路 .高等教育出版社 . . [9].瞿雷,刘圣德,胡咸斌 .ZigBee 技术及应用 . 北京航空航天大学出版社 .第 1版 (20xx 年 9 月 1 日 ) 皖西学院 20xx 届本科毕业设计(论文) 21 附录 部分程序测试代码: KEY_PORT EQU P3。 LCD_PORT EQU P0。 lcd 控制与驱动 RS BIT。 lcd 控制与驱动 RW BIT。 lcd 控制与驱动 E BIT。 lcd 控制与驱动 SCLK BIT。 DS1302 控制与驱动 IO BIT。 DS1302 控制与驱动 RST BIT。 DS1302 控制与驱动 PHWX BIT。 HWXINT0 DQ BIT。 18B20 数据输入 /输出端 KEY_BUSY BIT 00H。 startup check timer display load SEC EQU 30H MIN EQU 31H HOUR EQU 32H DAY EQU 33H MONTH EQU 34H YEAR EQU 35H WEEK EQU 36H COM EQU 38H DAT EQU 39H KEY_CNT EQU 3DH HWX_NUM1 EQU 80H。 接收首数据存放地址 HWX_NUM2 EQU 81H。 接收首数据存放地址 HWX_NUM3 EQU 82H。 接收首数据存放地址 HWX_NUM4 EQU 83H。 接收首数据存放地址 HWX_STO EQU 41H。 receivd hwx data HWX_FLG BIT 07H。 RECIEVED HWX_SIGNAL HWX_BUSY BIT 08H。 startup check timer display load TEM_L EQU 34H TEM_H EQU 35H TEM_NUM EQU 36H ALARM BIT 基于单片机的电器遥控器设计 SHI EQU 42H GEE EQU 43H ORG 0000H LJMP MAIN ORG 0003H LJMP IR ORG 0030H MAIN:SETB EA SETB EX0 SETB IT0 SJMP RUNDS1302 runds1302: MOV SP,0dfH mov a,00h mov r1,0FFh mov r0,0FDh LOOP1302: mov @r1,a DEC r1 djnz r0,loop1302 mov KEY_CNT,80h mov p0,0ffh LCALL INITIAL。 液晶初始化子程序。 CLR KEY_BUSY。 开关忙标志清零 LOOP0: SETB ALARM LCALL RUN1。 显示第一屏 ,字符 MOV COM,01H LCALL LCD_W_CMD。 清屏 LCALL SET1302 LCALL RUN2。 显示第二屏 ,时间 RUN2:LCALL GET1302 LCALL DISPLAY2。 第二屏初显示 LCALL DELAY /* M02:LCALL CHK_KEY JB KEY_BUSY,M02。 开关标志忙么。 如忙 则一直检测开关状态,不忙则显示时间 */ MD1: JNB HWX_FLG, MD0 SETB ALARM CLR HWX_FLG 皖西学院 20xx 届本科毕业设计(论文) 23 LCALL HWX_SCAN MD0:JB HWX_BUSY, MD1 SJMP run2 RET RUN18B20: MOV SP,0DFH MOV DPTR,TAB1820 MOV A,00H MOV R1,0FFH MOV R0,0FDH LOOP1820: MOV @R1,A DEC R1 DJNZ R0,LOOP1820。 内寄存器清零 MOV P0,0FFH LCALL INITIAL LOOP1: LCALL GET_TEM LCALL TEM_COV LCALL DISPLAY1820 MT1: LCALL HWX_SCAN SETB ALARM SJMP LOOP1 run1:lcall display1。 字符显示 ret SCAN_KEY: SETB SETB SETB SETB MOV A, KEY_PORT CPL A ANL A, 0F0H RET。 读取开关值 CHK_KEY: LCALL SCAN_KEY JZ NO_KEY1 LCALL DELAY100US LCALL SCAN_KEY 基于单片机的电器遥控器设计 JZ NO_KEY1 MOV R2, A。 保护键值 WAIT1: LCALL SCAN_KEY LCALL DELAY100US JNZ WAIT1。 等待释放 MOV A, R2 KEYACC: NOP LX: JB , SHIFT。 控制转移 JB , ADD_ONE。 控制加 1 JNB , LX1。 控制减 1 LJMP SUB_ONE LX1: JNB ,NO_KEY1 LJMP SETUP。 距离太长,跳转不到 控制确定按键 NO_KEY1: RET。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。