微型计算机及接口课程设计Word文档格式.docx
《微型计算机及接口课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《微型计算机及接口课程设计Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
遥控解码汇编源程序..............................16
第4章小结............................................22
参考文献:
.............................................23
课程设计图纸...........................................24
课程设计任务书:
安徽工程大学
本科课程设计任务书
09届机电学院
计算机科学与技术专业
Ⅰ课程设计题目:
红外遥控开关
Ⅱ课程设计任务内容
1.课程设计的目的意义:
通过课程设计培养同学们的系统设计能力,使同学们达到以下能力训练:
、调查研究、分析问题的能力;
、使用设计手册、技术规范的能力;
、查阅中外文献的能力;
、制定设计方案的能力;
、计算机应用的能力;
、设计计算和绘图的能力;
、技术经济指标的分析能力;
、语言文字表达的能力。
2.本课题研究的主要内容:
设计一个多路红外遥控开关,利用市售彩电红外遥控器(以编码芯片LC7461为例),发送遥控器键盘数字信号,控制器接收解码,控制相应的输出。
基本要求:
、设计实验电路(要求利用实验仪的硬件资源)
、分析实验原理
、列出实验接线表
、采用汇编语言编写实验程序
、通过实验验证功能的实现
、编写课程设计说明书
3.提交的成果:
一份符合毕业设计论文规范的课程设计说明书课程设计统一使用学校印制的课程设计封面及课程设计袋。
课程设计袋按要求认真填写,字体要工整,卷面要整洁,手写一律用碳素墨水书写。
课程设计除课程设计袋的其它资料鼓励用计算机打印。
课程设计按统一顺序装订:
(1)封面
(2)前言(3)目录(4)课程设计任务书(须有指导教师签名及日期)(5)正文(分章、层次等,每一章从新的一页开始)(6)小结(7)参考文献(8)课程设计图纸装订好后放入填写好的资料袋内由各教学单位存档。
指导老师(签名):
完成时间:
接受任务书学生(签名):
第一章:
方案论证
需求分析
(1)应用场合:
红外线遥控是目前使用最广泛的一种通信和遥控手段。
由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。
工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅安全可靠而且能有效地隔离电气干扰。
(2)设计目的:
实现简单的数据传送和接收。
(3)立题意义:
体会红外遥控器编程上的一些独特的编法,以及硬件连接和各部件的使用。
在这次课设中制作红外遥控器的目的是为了学习它的基本功能,以及这些功能怎样用AT89S51去编程实现我们需要的功能。
:
红外线控制系统基本功能
(1)基本的工作过程:
键盘输入—>
编码—>
红外线—>
放大器—>
解调/码—>
控制设备
:
红外线控制系统
通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。
发射部分包括键盘矩阵、编码调制、LED红外发送器;
接收部分包括光、电转换放大器、解调、解码电路。
工作原理:
1)利用键盘输入指令,将其转化为电信号,经过编码调制等处理过程,通过LED红外发射器发送。
2)将接收到的红外遥控信号放大、接调和整形后输出响应的指令信号,送至单片机进行识别和处理,单片机根据识别结果输出控制信号,控制相应的继电器,从而控制对应的家用电器的开关状态。
红外线系统框图
遥控发射器及其编码
遥控发射器专用芯片很多,根据编码格式可以分成脉冲宽度调制和脉冲相位调制两大类,这里我们以运用比较广泛,解码比较容易的脉冲宽度调制来加以说明,现以LC7461组成发射电路为例说明编码原理。
当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。
这种遥控码具有以下特征:
采用脉宽调制的串行码,以脉宽为、间隔、周期为的组合表示二进制的“0”;
以脉宽为、间隔、周期为的组合表示二进制的“1”
上述“0”和“1”组成的42位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。
然后再通过红外发射二极管产生红外线向空间发射,
7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。
后16位为8位的操作码和8位的操作反码用于核对数据是否接收准确。
当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一个9ms的低电平,和一个的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。
解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以的低电平开始,不同的是高电平的宽度不同,“0”为,“1”为,所以必须根据高电平的宽度区别“0”和“1”。
如果从低电平过后,开始延时,以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比长些,但又不能超过,否则如果该位为“0”,读到的已是下一位的高电平,因此取(+)/2=最为可靠,一般取左右即可。
根据红外编码的格式,程序应该等待9ms的起始码和的结果码完成后才能读码。
LC7461编码方式
LC7461编码方式,该编码所发送的一帧数据中含有42位码,包含一引导码、13位用户码和8位数据码以及它们的反码。
这样很大程度上减少了误码率。
发射码的格式如下图1所示:
图1LC7461的发射码的格式
引导码有9ms的载波和的载波关断波形所构成,以作为用户码、键数据码以及它们的反码的先导。
当SEL接DRV2脚时,选中的13位用户编码为(C12—C0:
00001(0117H)),LC7461的输出波形如图2,图3所示:
图2LC7461的第一次传送波形
图3LC7461的第二次传送波形(重复码波形)
“1”和“0”的区分取决与脉冲之间的时间,称之为脉冲位置调制方式(PPM),如图4所示。
图4“1”和“0”的波形
发射端输出高电平时按图5的载波波形发送,频率:
38KHz;
占空比:
1/3。
图5载波频率
图6红外线数据帧格式
接收端的流程图
一体化红外接收头HS0038的解调可理解为:
接收到红外脉冲串时,输出低电平,否则输出高电平,显然输出的信号极性与发送信号的相反,所以解码时要将接收到的信号经过反向才能和发送信号编码一致。
当接收端接收到表示传输开始的同步帧后,接收单片机进入解码过程,解码采用软件抽样判决。
从上升沿开始,以15个脉冲为判决门限,在门限时刻读得低电平时,即可判定为编码“1”;
在门限时刻读得高电平时,即可判定为编码“0”,解码1位后,需等到下一位的上升沿到来,再计数15个脉冲后,判断读得的电平是高还是低,进行解码。
如图1所示。
接完1帧后,接收单片机首先判断收到的用户码是否和自己的用户码一致,如果不一致,则放弃刚收到的数据并做好下一次接收准备;
如果一致,则读取刚收到的控制码,并调用相应的控制程序,产生控制信号。
图1波形解码示意图
红外遥控器接收部分由主程序、信号解码子程序和控制执行子程序3部分组成,主程序负责初始化,不停地查询有无红外信号。
控制程序则随着各设备的不同而不同。
主程序和接收子程序流程图如图2和图3所示。
图
(1)接收端主程序图
(2)接收端子程序
红外解码子程序流程图
第二章:
硬件系统的设计
硬件系统的设计主要包括处理器芯片的选择、各个功能不见的选择和接口的设计
处理器芯片的选择
考虑到芯片实用、简单、便宜可以选择51单片机即可,在这里选择AT89S51,接收器选择HS0038
接收控制器的个数随控制对象的多少而定。
每个接收控制器都有一个AT89S51芯片作为控制中心,与接收电路和各自的控制电路共同构成。
其中接收电路使用一体化红外接收头HS0038,HS0038工作频率为38kHz,能对收到遥控信号进行放大、检波、整形、解调,得到TTL电平的编码信号,再送给单片机,经单片机解码并执行相关控制程序,对外只有3个引脚:
VS、GND和1个脉冲信号输出引脚,使用方便,性能可靠控制电路随着被控设备的不同而不同,但原理是一致的。
图1是其中的一个接收控制电路原理图,用来控制窗帘的打开与闭合。
单片机的引脚P1.1、P1.2分别控制窗帘的打开与闭合,由电机的正反转来实现。
中间触点和边缘触点分别检测闭合与打开是否到位。
图1接收端硬件电路原理图
红外发送器
采用基于LC7461的遥控发射器(原理见)
基于LC7461遥控发射器
基于LC7461遥控发射器原理图
8051单片机硬件结构
8051单片机在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和I/O接口等多种功能。
其内部包含的功能部件如下:
◆一个8位CPU;
◆一个片内振荡器及时钟电路;
◆4K字节ROM程序存储器:
◆128字节RAM数据存储器;
◆两个16位定时器/计数器;
◆可寻址64K外部数据存储器和64K外部程序存储器空间的控制电路;
◆32条可编程的I/O线(四个6位并行I/O端口)
◆一个可编程全双工串行口;
◆具有五个中断源、两个优先级嵌套中断结构。
第3章:
应用软件系统设计
软件概述
本红外遥控解码实验的的功能是:
程序对遥控器发射的遥控码进行解码,解码成功时蜂鸣器发出"
嘀嘀"
的解码成功提示音,如果按压的是数字键"
0~9"
就将按键值在实验板上的5位数码管上显示出按键值,同时将按键的十六进制值用P1口的8位发光二极管指示出来;
如果按压的不是数字键"
,就直接从P1口输出键值。
实验时将先连接好硬件设备,将配套的一体化红外遥控接收头插入实验板上的"
红外遥控"
接口内,在Keil单片机集成开发环境中新建工程,通过Keil将源程序编译得到HEX格式目标文件,最后使用ISP编程器将目标文件写到AT89S51单片机中,插到S51增强型实验板上运行,拿出配套的红外遥控器进行解码测试。
软件使用说明
使用LC7461芯片的遥控器做出相应的控制,根据按键不同,发光二极管L1-L11显示不同的状态。
该系统只处理遥控器的开关键和数字键,其余按键无效。
使用前,系统处于初始状态,L1-L11小灯全灭,此时可进行如下操作:
一:
按下遥控器的开关键(红色按钮),L11小灯点亮,表示系统进入运行状态。
(注意按键不应距离过远)
二:
按下遥控器的i数字键,二极管L(i+1)点亮。
(数字从0-9,对应小灯1-10)
三:
在系统运行状态下按遥控器的开关键,表示关闭系统,L1—L11均熄灭,系统处于关闭状态。
四:
在系统关闭状态下按数字键系统无任何反应。
遥控解码汇编源程序:
ORG0000H
LJMPSTART
ORG0003H
LJMPINT
ORG0D50H
START:
MOVP0,#0FFH
MOVP1,#0FFH;
L1-L11小灯均熄灭
SETB31H;
系统处于关闭状态
SETBEA
SETBIT0;
外中断0设置为脉冲负边沿触发
SETBEX0
AJMP$;
主程序处于等待状态
INT:
CLREA
LCALLJMA;
调用解码子程序
JNZLOOP0;
若A中得到的键值不为0,表示成功接收,程序转入键值处理程序
RETI;
若A中得到的键值不为0,表示键值接收不成功,中断返回,不对按键进行处理
LOOP0:
JNB31H,LOOP1;
31H位单元的0/1分别表示系统处于开/关状态
CJNEA,#01H,LOOP2;
判断A中键值是否为开关键,关闭状态按数字键无效,转向LOOP2,中断返回
CLR31H;
系统切换到开状态
CLR;
指示系统开/关状态的小灯L11点亮
LOOP2:
SETBEA
RETI
LOOP1:
CJNEA,#01H,LOOP3;
判断A中键值是否为开关键
在系统运行状态下按开关键,系统切换到关闭状态
MOVP0,#0FFH
小灯均熄灭
LOOP3:
MOVDPTR,#TB0;
查找TB0表,找出与按键匹配的值
MOVB,A;
A中键值存入B中保存
MOVA,#00H;
从表头开始查找
MOVR0,#0AH;
查找10次,对应表中10个数据
LOOP5:
MOVR1,A;
R1中存放当前查找到的个数
MOVCA,@A+DPTR
CJNEA,B,LOOP4;
判断按键值与表中数值是否匹配
MOVDPTR,#P0TB;
匹配上则查P0TB表对应P0口的输出
MOVA,R1
MOVP0,A;
将P0口的对应输出输出到P0口
MOVDPTR,#P1TB;
查P1TB表对应P1口的输出
MOVP1,A;
将P1口的对应输出输出到P0口
LOOP4:
MOVA,R1
INCA
DJNZR0,LOOP5;
没有匹配上则继续查表
SETBEA;
表查完了还没匹配上
RETI则按键无效,返回
TB0:
DB10H,11H,12H,13H,14H,15H,16H,17H,18H,19H
P0TB:
DB01111111B,B,B,B
DBB,B,B,B
DBB,B
P1TB:
DBB,B,B,B
JMA:
MOVR6,#10
SB:
LCALLYS1;
调882微妙延时
;
JB,EXIT;
延时后判断脚是否出现了高电平,出现则退出
DJNZR6,SB;
重复10次,完成9MS的低电平识别
JNB,$;
等待接下来的高电平
LCALLYS2;
避开MS的高电平
MOVR7,#26;
循环过滤掉26位的系统识别码
JJJJA:
等待系统识别码的第一位高电平
LCALLYS1;
高电平开始后用882微妙的时间尺去判断信号此时的高低
MOVC,
JNCUUUA
LCALLYS3;
为1要延时等待高电平的结束
UUUA:
DJNZR7,JJJJA
MOVR1,#31H;
31H准备存放操作码
MOVR2,#02H;
32H准备存放操作反码
PP:
MOVR3,#08H;
每组数据为8位
JJJJ:
JNB,$;
等待操作数的第一位高电平
LCALLYS1
JNCUUU
LCALLYS3
UUU:
MOVA,@R1;
当前获得的操作数送如A
RRCA;
通过带进位的循环右移,把接受的一位移入A中
MOV@R1,A;
更新当前操作数
DJNZR3,JJJJ
INCR1
DJNZR2,PP
MOVA,31H
CPLA;
将操作码取反
CJNEA,32H,EXIT;
与反操作码比较,不等则放弃此次按键
MOVA,31H;
通过验证的键值存入A中
RET
EXIT:
MOVA,00H;
解码不成功时,A中的值为00H
YS1:
MOVR4,#20;
延时子程序1,精确延时882微妙
D1:
MOVR5,#20
DJNZR5,$
DJNZR4,D1
YS2:
MOVR4,#10;
延时子程序2,精确延时4740微妙
D2:
MOVR5,#235
DJNZR5,$
DJNZR4,D2
YS3:
MOVR4,#2;
延时子程序3,精确延时1000微妙
D3:
MOVR5,#248
DJNZR4,D3
END
第四章:
小结
通过这次的单片微型计算机及接口的课程设计,我收获很多,下面就是我在这次课程设计的体会:
在设计之前,我到图书馆翻阅了大量的相关的参考资料,从网络上也进行了查找,根据寻找的资料和自己认真的思考以及和同学一起交流,最后进行自己的课题的设计。
在设计过程中,也遇到了预先没有想到的问题,出现了没有和实验前预料的结果,通过老师和同学的帮助下,一步一步接近自己的自己预料的结果时,感觉好有成就感。
在设计中我运用自己平时所学到的一些知识,以及自己在课下锁查找的进行设计,刚开始遇到了很多困难,后来也请同学和老师的帮忙参考一下,最后找到了解决的办法,当自己成功的做完课程设计时,感觉好有成就感,两周很快要过去了,我感觉这两周是过的最充实的两周,其实看起来很容易的题目,但是做起来既不是那么容易的事情了,要经过反复的操作最终才能完成。
我非常感谢学校了给我们安排这次课程设计,通过设计会增长我们的知识,特别是没有学到的,做过之后就知道了其功能。
[1]谢永宁《单片微型计算机及接口技术》2012年
[2]康华光《电子技术基础》(数字部分)第五版北京:
高等教育出版社2006年
[3]蔡美琴《MCS-51系列单片机系统及其应用》高等教育出版社1999年
[4]马长林《单片机实践应用与技术》清华大学出版社2008年
课程设计图纸:
发送电路图
接受电路图