基于51单片机的无线通信设计Word格式.docx

上传人:b****2 文档编号:5336760 上传时间:2023-05-05 格式:DOCX 页数:14 大小:302.76KB
下载 相关 举报
基于51单片机的无线通信设计Word格式.docx_第1页
第1页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第2页
第2页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第3页
第3页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第4页
第4页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第5页
第5页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第6页
第6页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第7页
第7页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第8页
第8页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第9页
第9页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第10页
第10页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第11页
第11页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第12页
第12页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第13页
第13页 / 共14页
基于51单片机的无线通信设计Word格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的无线通信设计Word格式.docx

《基于51单片机的无线通信设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的无线通信设计Word格式.docx(14页珍藏版)》请在冰点文库上搜索。

基于51单片机的无线通信设计Word格式.docx

主程序。

解码子程序。

遥控执行子程序。

发声子程序。

短暂延时子程序。

延时子程序,总延时时间为0.5ms×

R5。

用于解码延时子程序,延时时间为0.093ms。

②.程序清单

汇编语言编写的LED显示红外线遥控器按键值源程序IR01.ASM代码如下:

01;

程序名:

IR01.ASM

02;

程序功能:

显示红外遥控器按键值

03;

----------------------------程序初始化

04SPKEQUP2.4;

压电喇叭信号输入位

05IRINEQUP3.2;

红外线IR信号输入位

06IRDZEQU20H;

解码数据放置起始地址

07DZ3EQU22H;

比较第3字节

08;

-------------------------------主程序

09MAIN:

10ACALLFS_SPK;

调用发声子程序(79),响一声

11SETBIRIN;

IR输入位设置为高电平

12LOOP:

13MOVR0,#IRDZ;

设置IR解码起始地址

14ACALLIR_IN;

调用解码子程序(25),解码

15ACALLIR_ZX;

调用遥控执行子程序(71),执行动作

16JMPLOOP;

继续循环执行

17;

----------------------------解码子程序

18IR_IN:

;

解码子程序

19;

确认IR信号出现,避开9毫秒引导脉冲

20L1:

JNBIRIN,L2;

等待IR信号出现

21JMPL1

22L2:

MOVR5,#17;

避开9毫秒引导脉冲

23ACALLDELAY05_R5

24JBIRIN,L1;

确认IR信号出现

25L3:

JBIRIN,L4;

等IR变为高电平

26ACALLDEL;

调用0.093ms延时程序

27JMPL3

28L4:

MOVR3,#0;

8位计数清为0

29;

-------------------------------

30;

避开低电平,待直接判断高电平

31L5:

JNBIRIN,L6;

等IR变为低电平

32ACALLDEL;

33JMPL5

34L6:

JBIRIN,L7;

35ACALLDEL;

36JMPL6

37;

38;

通过调用0.093ms延时次数的计数值来判断高电平的宽度,解码0或1

39L7:

MOVR2,#0;

0.093ms计数清为0

40L8:

ACALLDEL;

调用0.093ms延时子程序

41JBIRIN,L9;

42;

-----------------------

43MOVA,#8;

将A寄存器设置为8

44CLRC;

清除借位标志C

45SUBBA,R2;

以减法指令SUBB来判断高低位

46MOVA,@R0;

R0值为解码内存地址,即取出内存数据给A

47RRCA;

将借位标志C右移进入A

48MOV@R0,A;

将数据写入内存

49INCR3;

R3值加1,处理完一位

50CJNER3,#8,L5;

需处理完8位

51;

---------------------

52MOVR3,#0;

计数清0

53INCR0;

R0值加1

54CJNER0,#23H,L5;

收集到4字节

55JMPL10

56L9:

INCR2;

R2值加1

57CJNER2,#30,L8;

计数过长离开

58L10:

59RET;

子程序返回

60;

---------------------------遥控执行子程序

61IR_ZX:

遥控执行子程序

62MOVA,DZ3;

将第3字节数据赋予A

63MOVP1,A;

显示二进制按键值

64ACALLFS_SPK;

调用发声子程序,响一声

65RET

66;

-------------------------------发声子程序

67FS_SPK:

发声子程序

68MOVR6,#0

69B1:

ACALLDE

70CPLSPK

71DJNZR6,B1

72MOVR5,#100

73ACALLDELAY05_R5

74RET

75;

---------------------------短暂延时子程序

76DE:

短暂延时子程序

77MOVR7,#180

78DE1:

NOP

79DJNZR7,DE1

80RET

81;

------------------------------延时子程序

82DELAY05_R5:

延时子程序,总延时时间为0.5ms*R5

83MOVR6,#5

84D1:

MOVR7,#10

85DJNZR7,$

86DJNZR6,D1

87DJNZR5,DELAY05_R5

88RET

89;

--------------------------解码延时子程序

90DEL:

用于解码延时子程序,延时为0.093ms

91MOVR7,#22

92E1:

93NOP

94DJNZR7,E1

95RET

96;

-----------------------------------------------------

97END;

程序结束

C.1.4代码详解

04~07:

为程序初始化部分。

04:

P2.4为压电喇叭信号输入位,并设定P2.4以SPK表示。

05:

P3.2为红外线IR信号输入位,并设定P3.2以IRIN表示。

06:

20H为解码数据放置起始地址,并设定起始地址20H以IRDZ表

示。

解码数据一共需要占用4字节,即20H、21H、22H、23H。

其中20H

和21H单元放置用户编码,22H单元放置按键数据编码,23H单元放置按键数据码的反码。

07:

22H单元放置的是按键数据编码,并设定22H单元以DZ3表示。

14~21:

为主程序部分。

10:

调用FS_SPK发声子程序,响一声,表示红外线接收开始工作。

11:

将红外线信号输入位设置为高电平。

12:

循环开始。

13:

将20H赋给寄存器R0,设置红外线解码起始地址。

14:

调用IR_IN解码子程序,将接收到的红外线遥控器信号进行解码。

15:

调用IR_ZX遥控执行子程序,将解码后的按键值由LED显示出来。

16:

无限循环执行。

18~59:

红外线接收解码子程序部分。

18:

解码子程序开始。

20~28:

确认IR信号出现,避开9ms引导脉冲。

接收端接收到的引导

码是由一个4.5ms的低电平脉冲及4.5ms的高电平脉冲组成9ms引导脉冲,当IR信号出现后,通过调用DELAY05_R5延时子程序避开9ms引导脉冲。

31~36:

避开低电平,直接判断高电平。

数据“0”和“1”的波形均

以0.56ms的低电平开始,只是高电平的宽度不同,因此,可以避开低电平,直接通过判断高电平的宽度来确定数据“0”或“1”。

39:

R2为计数高低电平宽度的计数器,使计数初始值为0,即从0开

始计数调用0.093ms解码延时的次数。

40:

调用0.093ms延时解码子程序。

41:

如果仍为高电平,则跳转到标号L9处执行,使R2值加1。

43:

将A寄存器设置为8。

44:

清除借位标志C。

45:

指令“SUBBA,R2”中R2为计数值,若出现高电平的宽度

为0.56ms,即数字“0”的特征,则调用6次0.093ms延时便会出现低电平,此时存入R2中的计数值为6。

若出现高电平的宽度为1.68ms,即数字“1”的特征,则需要调用18次0.093ms延时才能出现低电平,此时存入R2中的计数值为18。

所以,R2中计数值是6还是18,就决定编码“0”或是“1”。

A寄存器设置为8,当R2值为6时,“8-R2”无产生借位,借位标志C=0,表示编码为0。

当R2值为18时,“8-R2”产生借位,借位标志C=1,表示编码为1。

46:

R0以间接寻址方式取出内存数据给A。

47:

右移指令,将借位标志C右移进入A寄存器中。

48:

将数据写入内存内。

49:

R3值加1,处理完一位。

50:

一字节需收集完8位数据。

52~55:

需要收集到4字节。

56:

R2值加1。

57:

计数过长自动离开。

59:

解码子程序返回。

61~65:

62:

将第3字节的内容,即解码后的红外按键编码数据送入寄存器A中。

63:

将寄存器A中的内容送入P1端口输出,由8个LED显示二进制

按键值。

64:

调用发声子程序,响一声。

65:

遥控执行子程序返回。

67~74:

76~80:

82~88:

90~95:

用于解码延时子程序,延时为0.093ms。

97:

程序结束。

小结

基于89C51单片机以及红外编码芯片SC9012设计的红外线遥控系统,结构简单、价格低廉,系统稳定性好,电路及控制程序略加改变即可运用于各种不同的家用电器的红外线遥控系统中。

通过本课程设计,进一步熟悉和掌握单片机的结构及工作原理。

掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应的工作打下基础。

参考文献

1、《8051单片机课程设计实训教材》,陈明荧,清华大学出版社

2、《数字电子技术》,阎石,高等教育出版社

3、《模拟电子技术》,童诗白,高等教育出版社

4、《单片机课程设计指导》,谭浩强,清华大学出版社

5、《MCS-51单片机应用设计》,张毅刚,哈工大出版社

6、《单片机原理实验教程》,薛庆军、张秀娟,北京航空航天大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2