收藏 分享(赏)

毕业设计 基于单片机的红外发射控制灯的设计.doc

上传人:kuailexingkong 文档编号:1632352 上传时间:2018-08-14 格式:DOC 页数:20 大小:802KB
下载 相关 举报
毕业设计 基于单片机的红外发射控制灯的设计.doc_第1页
第1页 / 共20页
毕业设计 基于单片机的红外发射控制灯的设计.doc_第2页
第2页 / 共20页
毕业设计 基于单片机的红外发射控制灯的设计.doc_第3页
第3页 / 共20页
毕业设计 基于单片机的红外发射控制灯的设计.doc_第4页
第4页 / 共20页
毕业设计 基于单片机的红外发射控制灯的设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、1基于单片机的红外发射控制灯的设计物理与机电工程学院 电子信息工程学号:200402116 姓名: 黄燕 指导老师: 麻莉萍(副教授)摘要:以 HSOO38 作为红外接收头,介绍了红外遥控信号的单片机软件编码解码方法,包括编码、调制和解码的原理,以及硬件电路和程序 实现。 经实验测试,该方法能使红外遥控信号可靠发送和接收,并执行相应的功能。关键词:红外遥控;单片机;编码解码Abstract: This paper introduces an encoding and decoding method for infrsred remotecontrol signal with software

2、of microchip computer,infrared signal is received hy Hs0038, including principle of encoding and modulation and decoding, and hardware circuit, and program. Its experiment indicates that the method can help to reliable transmission of infrared to remotecontrol signal.Key words: infrared remotecontro

3、l; microchip computer; encoding and decoding21绪论1.1 引言红外遥控是一种无线、非接触控制技术、具有抗干扰能力强,信息传输可靠,功耗低,成本低,易于实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。1.2 本设计所要做的工作该设计由硬件和软件共同组成。首先是硬件部分,该系统的最终实现选用的单片处理器(89S52) 、键盘、LED显示、单片机的串行接口电路。因此应充分了解单片机,包括存储空间,并行口,串行口,串行通信,定时器等,掌握非编码键盘和LED的动态显示,并要在充分满足系统可实现的功能的基础上考虑到器件的价

4、格,制版的复杂度和软件的实现难度。其次是软件部分,该系统的软件环境是S52,因此应了解S52的编程方法,常用的一些编程技巧,调试运行程序,尽量使程序简洁,易懂,便于移植,编译效率高,健壮性好。为了用计算机解决某一具体问题或实现某一特定的功能,总要先对问题或功能要求进行分析,确定相应的算法和步骤,然后选择相应的指令,并按一定的顺序排列起来,这就构成了解决某一问题或实现某一特定功能的应用程序。编制好的程序通过仿真器进行调试,将调试成功的程序通过T写入器写入到芯片AT89S52中,最后把芯片AT89S52插入连接完毕的硬件系统中投入实际使用。2系统总体设计方案2.1 系统方案选择(1)红外编码和发射

5、部分方案一:专用芯片解决方案。专用红外编码芯片种类很多,如日本三菱公司的 M50426AP、PT2262、BL9148、zD6631 等,此类芯片一般集载波振荡、编码、发射于一体,具有很强的抗干扰能力,外围电路简单,使用很方便,而且价格也很低。通用的遥控器上大多使用此类专用芯片。但是,专用芯片也有致命的弱点:专用芯片的应用灵活性很差,其内部编码已经固定,无法修改内部数据,不适用于经常需要改动传送数据的场合;专用芯片几乎都是面向指令型的编码遥控方式,传输效率较低;大多数的专用芯片的内部编码及技术数据已经公诸于世,会产生安全漏洞。方案二:微处理器单独解决方案。电路如图(a)所示。该方案使用微处理器

6、的 I/O 口直接产生 38KHZ 已调波,驱动红外发光二极管,发射红外数据。38KHZ 方波由 CPU 的定时器产生或由软件编程产生。红外编码工作由软件完成,因此,红外编码方案可以任意设计,外部只需配接非常简单的硬件电路,大大降低了了电路的复杂性,有利于降低成本,减小遥控器的体积。由于使用软件编码方案,占用了 CPU 的一定的时间,CPU 处理速度受到一定的影响,但是,对于遥控器这一类功能比较单一的系统来说,处理任务比较少,根本影响不了 CPU 的处理效率,仅仅是增加了软件编程的负担。经比较,方案二既可满足题目要求,电路又非常简单,硬件成本又很低,仅仅是增加了软件的编程负担,使得红外编码非常

7、灵活,所以采用该方案。(2)红外接收和解码部分 方案一:分立元件解决方案,电路如图 2-1 所示。图中 RD1 为红外接收管;R3、R4,VT1 构成反相放大器;VT2、R5、C2 构成滤波器,滤掉 38KHZ 的高频载波;R6、R7、VT3 构成整形电路,将滤波后的波形处理为较好的方波;Cl、C3 为耦合电容;R2 为限3流电阻,当接收到较强的信号是保护 VT1。该方案最大的优点是供电电压比较低,可用两节电池 3V 电压供电。但是,由于电路使用分立元件构成,其稳定性和抗干扰能力不高,影响红外数据传输的准确性。方案二:集成电路解决方案,电路如图(b)所示。该方案使用一体化红外接收器,集红外接收

8、和放大于一体,不需任何外接元件,就能完成从红外接收到输出与 TTL 电平兼容的所有工作,而体积和普通的塑封三极管大小一样。经比较,方案二既可满足题目要求,电路又非常简单,硬件成本又很低,通过软件编程,使得红外编码非常灵活,所以采用该方案。(3)器件选择:采用 12MHZ 的晶振;红外接收端采用价格便宜,性能可靠的一体化红外接收头:HSOO38;采用 89S52 进行控制;控制方面采用小灯进行模拟。2.2 系统构成框图单片机 红外发射电路 一体化红外接收头 单片机编码调制 发送 接收解调 解码2.3 系统工作原理红外遥控有发送和接收两个组成部分:发送端采用单片机将待发送的二进制信号编码调制为一系

9、列的脉冲串信号,通过红外发射管发射红外信号。红外接收端普遍采用价格便宜,性能可靠的一体化红外接收头(如 HSOO38,它接收红外信号频率为 38KHz,周期约 26US)接收红外信号,它同时对信号进行放大、检波、整形,得到相应电平的编码信号,再送给单片机,经单片机解码并执行,去控制相关对象。(1)二进制信号的编码本设计采用不同的脉宽宽度来实现二进制信号的编码,可由发送单片机来完成。用图 2-2(a)表示二制信号中的高电平1 ,其特征是脉冲中低电平的宽度等于 0.26ms,相当于 10 个 26us 的宽度,高电平的宽度等于 0.52ms,相当于 20 个 26us 的宽度;用图 2-2(b)表

10、示二进制信号中的低电平0 ,其特征是脉冲中高电平的宽度等于 0.26mS,而低电平的宽度是高电平的二倍,等于 0.52ms,相当于 20个 26us 的宽度。上述 10 个和 20 个脉冲宽度还可适当调整,以适应不同数据传输速度的需要。图 2-2(a) 1的表示 图 2-2(b) 0的表示图 2-1 低电压红外接收电路4(2)二进制信号的调制二进制信号的调制仍由发送单片机来完成,它把编码后的二进制信号调制成频率为 38KHz 的间断脉冲串,相当于用二进制信号的编码乘以频率为 38KHz 的脉冲信号得到的间断脉冲串,即是调制后用于红外发射二极管发送的信号。如图 2-3 所示,A 是二进制信号的编

11、码波形,B 是频率为 38KHz(周期为 26uS)的连续脉冲串,c 是经调制后的间断脉冲串(相当于 C=A*B),用于红外发射二极管发送的波形。图 2-3 中,待发送的二进制数据为 10。10 个脉冲A 发送前的二进制数据 0、1 编码C=A*B、调制后的二进制信号(发送)T=26us20 个脉冲单个脉冲B、脉冲调制图 2-3、二进制信号的调制(3)二进制信号的解调二进制信号的解调由一体化红外接收头 HSOO38 来完成,它把收到的红外信号(图 2-4 中波形 D,也是图 2-3 中波形(C)经内部处理并解调复原,输出图 2-4 中波形 E(正好是对图 2-3 中波形 A 的取反),HS00

12、38 的解调可理解为:在输入有脉冲串时,输出端输出低电平,否则输出高电平。二进制信号的解码由接收单片机来完成的它把红外接收头送来的二进制编码波形通过解码,还原出发送端发送的数据。如图 2-4,把波形 E 解码后还原成数据信息 101。D、红外接收头接收的波形(输入)E、解调后的输出波形图 2-4、HS0038 的输入输出波形(4)基于字节传输的红外遥控数据格式在发送字节的开始先通过单片机发送 20 个脉冲宽度(每个脉冲周期 26uS)的高电平作为传输开始,接着发送 8 位数据(字节高位在前,低位在后),最后发送 10 个脉冲宽度的低电平作为传输结束,如图2-5 所示。5传输开始 8 位数据 传

13、输结束20 个脉冲 高位在前,低位在后 10 个脉冲图 2-5 基于字节传输的红外遥控数据格式3.硬件电路设计3.1 主要器件介绍3.1.1 芯片AT89S52(1)主要性能: 与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。(2)功能特性描述: At89s52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。

14、使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256 字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻 辑操作,支持 2种软件可选择节电模式。空

15、闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash AT89S52 (3)管脚说明:P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上

16、拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下所示。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 6P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触

17、发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P

18、2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。(4)振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采

19、用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(5)时钟电路时钟电路是计算机的心脏,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MH ZMCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。AT89S52是属于CMOS8位微处理器,它的时钟电路在结构上有别于NMOS型的单片机。CMOS型单片机内部(如AT89S52)有一个可控的负反馈反相放大

20、器,外接晶振(或陶瓷谐振器)和电容组成振荡器,图31为CMOS型单片机时钟电路框图。振荡器工作受/PD端控制,由软件置“1”PD(即特殊功能寄存器PCON.1)使/PD0,振荡器停止工作,整个单片机也就停止工作,以达到节电目的。清“0”PD,使振荡器工作产生时钟,单片机便正常运行。图中SYS为晶振或陶瓷谐振器,振荡器产生的时钟频率主要由SYS参数确定(晶振上标明的频率) 。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小) ,其典型值为30pF。图31 CMOS型单片机时钟电路框图7(6)复位电路计算机在启动运行时都需要复位,使中央处理器C

21、PU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。MCS-51单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后,该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。此时ALE、PSEN、P0、P1、P2、P3接口都输出高电平。RST变为低电平后,退出复位,CPU从初始状态开始工作。本设计采用的复位方式是自动复位方式。对于MOS(AT89S52)单片机只要接一个电容至V CC即可(见图32)。在加电瞬间,电容通过电阻充电,就在RST端出现一定

22、时间的高电平,只要高电平时间足够长,就可以使MCS-51有效的复位。RST端在加电时应保持的高电平时间包括V CC的上升时间和振荡器起振的时间,V ss上升时间若为10ms,振荡器起振的时间和频率有关。10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电进应保持20ms以上的高电平。RC时间常数越大,上电进RST端保持高电平的时间越长。若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。图 323.1.2 集成电路 74 LS2174LS21 是由四输入与门构成,74LS21 集成电路的引脚分布图如图 3-3 所示1A Vcc1B 2DNC

23、 2C1C NC1D 2B1Y 2A接地 2Y图 3-3 74LS21 集成电路的引脚分布图3.1.3 接收器 HS0038一体化红外接收头 HSOO38 的外部结构如图 3-4 所示,1 脚 GND 接电源地,2 脚 VCC 接十 SV,3 脚OUT 为数据输出端( TTL 电平,反相输出),可直接与单片机相联。图 3-4 HS0038 的外观及引脚83.2 主要电路设计(1)发射电路原理图如图 3-5 所示:112233445566D DC CB BA ATitleNumber RevisionSizeBDate: 2008-4-27 Sheet of File: F:2222222222

24、22222222Previous Backup of 发发发发.SchDrawn By:12.000MHZSW-PBS1SW-PBS2SW-PBS3SW-PBS4SW-PBS5SW-PBS6SW-PBS7SW-PBS11SW-PBS13SW-PBS14SW-PBS16SW-PBS15SW-PBS12SW-PBS9SW-PBS10SW-PBS8 10K10K10K10KVCCP2.7P2.0P2.1P2.2P2.6P2.3P2.5 P2.41245 674LS21AINT1VCC30PFC130PFC2LEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330

25、RLEDD330RLEDD330RP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7VCC22ufC31KVC1K1K9013 12SE3031p1.0 23456789RST 10111213141517161819GND40 VCC393837363534333231302928 P2.727 P2.626 P2.525 P2.424 P2.323 P2.222 P2.121 P2.0AT89S52VCCVCC图 3-5 发射电路原理图(2)接收电路原理图如图 3-6 所示:9112233445566D DC CB BA ATitleNumber RevisionSizeBD

26、ate: 2008-4-27 Sheet of File: F:222222222222222222Backup of 发发发发.SchDrawn By:LEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RP2.0 P2.1 P2.2 P2.3 P2.4 P2.5P2.6 P2.7VCCLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VCC1212MHZ30pFC330pFC4

27、123HS0038VCC22ufC21KC?VCC1p1.0 23456789RST 10111213141517161819GND40 VCC393837363534333231302928 P2.727 P2.626 P2.525 P2.424 P2.323 P2.222 P2.121 P2.0AT89S521K* VCC0.1UFC1VCC图 3-6 接收电路原理图各个基本电路图的设计(1)发射接收电路如图 3-7 所示:112233445566D DC CB BA ATitleNumber RevisionSizeBDate: 2008-4-28 Sheet of File: Shee

28、t1.SchDoc Drawn By:123HS0038VCC1p1.0 23456789RST 10111213141517161819GND40 VCC393837363534333231302928 P2.727 P2.626 P2.525 P2.424 P2.323 P2.222 P2.121 P2.0AT89S521K* VCC0.1UFC1VCCVCC1K1K9013 12SE3031p1.0 23456789RST 10111213141517161819GND40 VCC393837363534333231302928 P2.727 P2.626 P2.525 P2.424 P

29、2.323 P2.222 P2.121 P2.0AT89S52VCC图 3-7(a)接收电路 图 3-7(b) 发射电路10(2)键盘扫描:采用 4*4 键盘,键盘扫描采用低电平扫描,中断定时扫描方式。电路图如 3-8 所示,其公共端连接 VCC,初始时,令 P2=F0H,无论哪个按键被按下,都将产生中断,开启定时器 10ms,扫描键盘。开始进行扫描时,P2.0P2.3 点均保持高电平。P2.4P2.7 只能有一个为低电平。程序流程图如图 4-1所示。112233445566D DC CB BA ATitleNumber RevisionSizeBDate: 2008-4-28 Sheet o

30、f File: F:222222222222222222Previous Backup of 发发发发.SchDrawn By:SW-PBS1SW-PBS2SW-PBS3SW-PBS4SW-PBS5SW-PBS6SW-PBS7SW-PBS11SW-PBS13SW-PBS14SW-PBS16SW-PBS15SW-PBS12SW-PBS9SW-PBS10SW-PBS8 10K10K10K10KVCCP2.7P2.0P2.1P2.2P2.6P2.3P2.5 P2.41245674LS21AINT1图 3-8 键盘扫描电路(3)控制电路:采用小灯的亮灭来模拟实际应用中的电路,电路如图 3-9 所示。1

31、12233445566D DC CB BA ATitleNumber RevisionSizeBDate: 2008-4-23 Sheet of File: F:222222222222222222Previous Backup of 发发发发.SchDrawn By:LEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7VCCLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RLEDD330RP0

32、.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VCC图 3-9 小灯控制电路114软件设计4.1 程序流程图初始化第一行按键输出扫描码第二行按键第三行按键第四行按键下一行超过四行?防抖取出键值送入 23HCLR P1.7结束yes 发 送 下 一 位 oyes 发 送 下 一 位 oyes 发 送 下 一 位 oyes 发 送 下 一 位 oyes 发 送 下 一 位 ono 发 送 下 一 位 o图 4-1 键盘扫描12图 4-2、定时中断扫描 RETI 键盘扫描10ms 到了开始初始化P1.7=1?数据11编码 0编码发送下一位8 位结束CLRP1.7no 发 送 下 一 位

33、 onoyes 发 送 下 一 位 oyes 发 送 下 一 位 onoyes 发 送 下 一 位 o图 4-3 发送流程图13开始初始化接收数据11解码 0解码接收下一位8 位结束数据判别取值控制no yes 发 送 下 一 位 onoyes 发 送 下 一 位 o图 4-4、接收流程图5设计结果经过测验,红外遥控信号的发送和接收没有出现传输误码,发光二极管可以准确地显示发射信号,可靠使用,在编码解码方面降低了硬件成本。若在数据传输协议中,加上地址帧(设备号识别)和校验帧,该方法在计算机系统中将有更广泛的应用。146论文小结在本次设计中,遇到了不少问题,首先键盘始终到 1,2,3,4 四个键

34、,我先检查硬件,排除硬件原因,其次对软件进行分析,发现未对按键设置扫描码初始值。其次是数据发送不稳定,我在 51 旁接上滤波电容,还有尽量减少外围元件的干扰;对编码进行完善,使数据接收更稳定。经过本次设计基本掌握红外发射和接收传感器的使用,信号的简单编码和解码;基本懂得用软件来实现键盘的扫描,数据发送接收。致谢辞在论文完成之际,谨向关心我、支持我的师长、朋友和亲人表示最衷心的感谢。首先要感谢我尊敬的指导老师麻莉萍老师,本论文的工作得到了麻老师悉心的指导和启发,从论文的选题和具体实现都给予极大的帮助。麻老师平易近人,我非常感谢麻老师。 本设计的完成,当然也少不了同学的帮助,感谢他们对我的帮助,没

35、有他们的帮助,设计的任务是不可能这么快顺利完成的。同时,也要感谢我的爸爸妈妈,感谢他们这么多年来默默地支持着我的学业,我会再接再厉,以更加饱满的热情投入到今后的学习和工作中去。参考文献:1 祁伟,杨亭编著.单片机 C51 程序设计教程与实验.北京:北京航空航天大学出版社,20062 何立民.MCS-51 系列单片机应用系统设计.北京航空航天大学出版社,20003 丁元杰.单片微机原理及应用第 2 版M.北京机械工业出版社,20014 黄智伟编著.全国大学生电子设计竞赛训练教程.北京:电子工业出版社,20055 陈威. 51 单片机应用系统中的软件抗干扰J,福建电脑, 2003 年第 7 期 6

36、 王贺艳,王宗和. 单片机(AT89C51)与 PC 机的串行通信J,大众科技, 2005 年第 09 期7 赵高生,杨文焕.单片机应用技术大全M.西南文通大学出版社,19968 李东生,张勇.Protel DXP 电路设计教程.电子工业出版社,20049 罗凌.浅谈提高单片机系统运行的可靠性J,科技资讯, 2007 年第 33 期10 Meixian Yang.Monolithic integrated circuits development and applicationJ,SCIENCE *发送程序*ORG 0000HLJMP STARTORG 0003HRETIORG 000BHLJ

37、MP TIME0ORG 0013HLJMP INT1INITIALIZE: MOV 23H, #0FFH ;发送数据初值MOV 36H, #20H ;TIME0 定时 10msmov p2, #00001111b ;产生键盘中断扫描MOV TMOD, #2 ;TIME0 方式 2MOV TH0, #6 ;250us 定时初值MOV TL0, #6 ;250us 定时初值CLR TR0 ;关闭 TIME0 计数SETB ET0 ;开启 TIME0SETB IT1 ;置 INT0 边沿触发SETB EX1 ;开启 INT0SETB EA ;开启总中断RETSTART: LCALL INITIALI

38、ZE ;初始化SEND: mov p2, #00001111b ;产生键盘中断扫描jb p1.7, $clr EAMOV A, 23h ;发送数据mov p0, a ;数据显示MOV R4,#8 ;2us 发送 8 位MOV R5,#30 ;2us 传输开始(同步贞) ,发送 30 个脉冲LCALL H26us ;3us 产生一个周期 26us 的脉冲CO: RLC A ;1us 先发送字节的高位JC SEND1 ;2us 判断发送0还是1SEND0: MOV R5, #20 ;2us 发送编码0,先发送 20 个脉冲宽度的低电平LCALL L26us ;3us 产生一个宽度位 26us 的低

39、电平MOV R5,#10 ;2LCALL H26us ;3MOV R5,#20 ;2LCALL L26us ;3MOV R5,#10 ;216LCALL H26us ;3LJMP NEXT ;3SEND1: MOV R5, #10 ;2us 发送编码1,先发送 10 个脉冲宽度的低电平LCALL L26us ;3MOV R5,#20 ;2LCAL L H26us ;3MOV R5,#10 ;2LCALL L26us ;3MOV R5,#20 ;2LCAL L H26us ;3LJMP NEXT ;3NEXT: DJNZ R4, CO ; 发送 8 位,未完,继续MOV R5, #30 ;2 传

40、输结束,发送 30 个脉冲的低电平LCALL L26us ;3SETB p1.7SETB EALJMP SEND ;新的一轮数据传送RET;*26us 高电平脉冲 *H26us: SETB P1.0 ;1usMOV R6, #5 ;2usDJNZ R6, $ ;2us*R6clr P1.0 ;1usMOV R6, #5 ;2usDJNZ R6, $ ;2us*R6DJNZ R5, H26us ;2usRET ;1us 忽略;*26us 低电平脉冲 *L26us: CLR P1.0 ;1usNOP ;1usMOV R6, #10 ;2usDJNZ R6, $ ;2*R6DJNZ R5, L26u

41、s ;2usRET ;1us 忽略;*外部中断 1*INT1: PUSH ACCPUSH PSWCLR EX1SETB TR0 ;开启定时器 0INT1RET: SETB EX1POP PSWPOP ACCRETI;*定时器 0*TIME0: PUSH ACCPUSH PSW17SETB RS1CLR RS0clr ex1BEGIN: MOV R0, #0MOV R1, #4MOV a, #0EFH;*键盘扫描*SCAN: MOV P2, A ;扫描,设定输入模式JNB P2.0, KEYIN ;检测第一行INC R0 ;下一个按键JNB P2.1, KEYIN ;检测第二行INC R0JNB

42、 P2.2, KEYIN ;检测第三行INC R0JNB P2.3, KEYIN ;检测第四行INC R0RL A ;下一个扫描码DJNZ R1, SCAN ;扫描下一列DJNZ 36H, BEGIN ;重新扫描MOV 36H, #20H ;10ms 定时值LJMP TIME0RETKEYIN:LCALL DEL ;调用防抖子程序MOV A, R0 ;取回按键值anl A, #0FH ;取回按键值MOV 23H, A ;存入按键值CLR p1.7LJMP TIME0RETTIME0RET: setb ex1mov p2,#00001111bCLR TR0POP PSWPOP ACCRETI;*

43、延时 16ms*DEL: MOV R7, #40D1: MOV R6, #200DJNZ R6, $DJNZ R7, D1RETEND;*接收程序*RECEIVE: MOV R5, #8 ;2us 接收 8 位JB P1.1, $ ;3us 等待同步贞,即低电平MOV R7, #10 ;2us 同步贞(低电平)到来后,延时等待 10 个脉冲的时间LCALL DEL10us ;3us 调用子程序,产生一个 26us 的延时18JB P1.1, RECEive ;3 AMOV R7, #10 ;2LCALL DEL10us ;3JB P1.1 , RECEive ;3 BJNB P1.1, $ ;

44、跳过后续低电平CO: MOV R7, #5 ;2us 编码中的高电平到来后,延时等待 5 个脉冲的时间LCALL DEL10us ;3JNB P1.1, REceive ;3 C 延时 15 个脉冲后,判断 P1.1MOV R7, #10 ;2LCALL DEL10us ;3 DJNB P1.1, REceive1 ;3 p1.1=1,接收为0,否则为1receive0:mov r7, #10 ;2LCALL DEL10us ;3Jb p1.1, receive ;3 Emov r7, #10 ;2LCALL DEL10us ;3jNb p1.1, receive ;3 Fmov r7, #1

45、0 ;2LCALL DEL10us ; 3jNb p1.1, receive ;3 Gmov r7, #10 ;2LCALL DEL10us ;3jb p1.1, receive ;3 HCLR CRLC AjNb p1.1, $ ;跳过后续低电平LJMP NEXTREceive1:mov r7, #10 ;2LCALL DEL10us ;3jb p1.1, receive ;3 Emov r7, #10 ;2LCALL DEL10us ;3jNb p1.1, receive ;3 Fmov r7, #10 ;2LCALL DEL10us ;3jb p1.1, receive ;3 Gmov r7, #10 ;2LCALL DEL10us ;3jb p1.1, receive ; 3 HSETB CRLC AjNb p1.1,$ ;跳过后续低电平LJMP NEXTNEXT: DJNZ R5, CO ;8 位未接收完继续;*接收数据判别并处理 *mov 25h,a19cjne a,#00h,k1cpl p0.0ljmp rece

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

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报