基于PIC单片机的红外遥控设计本科毕业设计

上传人:无*** 文档编号:106926133 上传时间:2022-06-14 格式:DOC 页数:34 大小:336KB
收藏 版权申诉 举报 下载
基于PIC单片机的红外遥控设计本科毕业设计_第1页
第1页 / 共34页
基于PIC单片机的红外遥控设计本科毕业设计_第2页
第2页 / 共34页
基于PIC单片机的红外遥控设计本科毕业设计_第3页
第3页 / 共34页
资源描述:

《基于PIC单片机的红外遥控设计本科毕业设计》由会员分享,可在线阅读,更多相关《基于PIC单片机的红外遥控设计本科毕业设计(34页珍藏版)》请在装配图网上搜索。

1、XXXX大学本科毕业设计基于PIC单片机的红外遥控设计学生姓名 所 在 系专业名称班 级学 号指导教师XXX大学教务处年 月毕业设计论文原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计论文,是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安阳工学院及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过奉献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解安阳工学院关于收集、保存

2、、使用毕业设计论文的规定,即:按照学校要求提交毕业设计论文的印刷本和电子版本;学校有权保存毕业设计论文的印刷本和电子版,并提供目录检索与阅览效劳;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的局部或全部内容。作者签名: 日 期: 基于PIC单片机的红外遥控设计学生: 指导教师:内容提要:遥控器是现代电子控制系统的重要部件。可以利用无线电波、可见光、红外光、超声波作为传输介质远距离操控电子设备。由于其功耗低、可靠性高和互相干扰小等优点,已在现实生活中得到了广泛应用。在目前的家用电器中,如电视机、家庭影院和数字音像设备中,大多都采用了红外线遥控电路

3、。而这套“基于PIC单片机的红外遥控设计那么是以Microchip公司生产的16F877a芯片为模版,价格低廉,电路结构简单,据此本设计提出了一种简单易行的红外遥控器的设计。关键词:PIC单片机 红外遥控 简单易行PIC MCU-based infrared remote control designAbstract:The remote control of modern electronic control systems are an important component. Can make use of radio waves, visible light, infrared lig

4、ht, ultrasonic remote control as the transmission medium of electronic equipment. Because of its low power consumption, high reliability, and interfere with each other the advantages of small, have been in real life has been widely applied. In the current household appliances such as televisions, ho

5、me theater and digital audio-visual equipment, most of them have adopted the infrared remote control circuit. This set of PIC-based single-chip design of the infrared remote control is based on Microchip produced chips for 16F877a template, cheap, simple circuit structure, whereby the design of a si

6、mple infrared remote control design. Key words:PIC Single-chip infrared remote control is simple一、前言一开发的背景自从1800年英国天文学家赫歇尔发现红外辐射至今,红外技术的开展经历了将近两个世纪。从那时开始,红外辐射和红外元件、部件的科学研究逐步开展,但开展比拟缓慢,直到1940年前后才真正出现现代的红外技术。随着科技的不断开展,各系统间的联系越来越紧密,对各系统间的数据传递的要求也越来越高,但是外部设备越多,连接用的线也越多,短距离联接的开展必然要走向无线联机,目前主要的短距离无线连接技术有红

7、外通信技术和蓝牙技术,前者采用红外线,后者采用无线电波作为信息传播的媒介。红外无线通讯的技术与蓝牙相比拟,红外技术具有比拟成熟,接口电路简单,本钱低等诸多优点。红外遥控是通过红外设备将单片机与外部设备联系起来进行通讯,实现系统间的无线通讯。自从红外技术出现以来,美国、英国、前苏联等国竞相开展。特别是美国,大力研究红外技术在军事方面的应用。目前,美国将红外技术应用于单兵装备、装甲车辆、航空和航天的侦察监视、预警、跟踪以及武器制导等各个领域。 1993年,由二十多个大厂商发起成立了红外数据协会IrDA,统一了红外通讯的标准,这就是目前被广泛使用的IrDA红外数据通讯协议及标准。IrDA专司制订和推

8、进能共同使用的低本钱红外数据互连标准,支持点对点的工作模式。由于标准的统一和应用的广泛,更多的公司开始开发和生产IrDA模块,技术的进步也使得IrDA模块的集成越来越高,体积也越来越小。IrDA1.0可支持最高115.2kbps的通信速率,而IrDA1.1可以支持的通信速率到达4Mbps。本课题是专业知识综合用于前沿科技的一个尝试,本人坚信此次研究和设计的成果具有一定的现实意义。二开发的目标本系统的根本任务和目标就是,通过红外发射电路的设计,实现单片机利用红外信号,通过发射电路与外界联系,实现对外的遥控控制,其中包含了输入设备红外键盘,和红外传感器的使用。借助软件局部的设计,实现系统的总体功能

9、,红外遥控。总的说来,完成此设计主要有四个模块:发射及接收电路的设计;编码及解码程序;红外传感器的选取和使用;红外键盘的设计。三开发的思路 设计基于单片机的红外遥控,我们要从发射接收电路,编码解码,传感器,红外键盘几个方向入手。在软件局部中,我们主要是先要画好系统原理图,还有明确系统各局部功能,发射接收电路的设计,编码及解码程序,在硬件局部中,主要是发射和接收电路的硬件设计,红外传感器的使用,以及红外键盘的设计。二、设计根底一PIC单片机的介绍1PIC单片机常识据统计,我国的单片机年容量已达13亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。这说明单片机应用在我国才

10、刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。当今单片机厂商琳琅满目,产品性能各异。针对具体情况,我们应选何种型号呢?首先,我们来弄清两个概念:集中指令集CISC和精简指令集RISC。采用CISC结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构。它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高。采用RISC结构的单片机数据线和指令线别离,即所谓哈佛结构。这使得取指令和取数据可同时进行,且由于一般指令线宽于数据线,使其指令较同类CISC单片机指令包含更多的处理信息,执行效率更高,速度亦更快。同时,这种单片机指

11、令多为单字节,程序存储器的空间利用率大大提高,有利于实现超小型化。属于CISC结构的单片机有Intel8051系列、Motorola和M68HC系列、Atmel的AT89系列、台湾Winbond(华邦)W78系列、荷兰Pilips的PCF80C51系列等;属于RISC结构的有Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韩国三星公司的KS57C系列4位单片机、台湾义隆的EM-78系列等。一般来说,控制关系较简单的小家电,可以采用RISC型单片机;控制关系较复杂的场合,如通讯产品、工业控制系统应采用CISC单片机。不过,RISC单片机的迅速完善,使其佼佼

12、者在控制关系复杂的场合也毫不逊色。根据程序存储方式的不同,单片机可分为EPROM、OTP一次可编程、QTP掩膜三种。我国一开始都采用ROMless型单片机片内无ROM,需片外配EPROM,对单片机的普及起了很大作用,但这种强调接口的单片机无法广泛应用,甚至走入了误区。如单片机的应用一味强调接口,外接I/O及存储器,便失去了单片机的特色。目前单片机大都将程序存储体置于其内,给应用带来了极大的方便。2PIC单片机的特点和工作原理1PIC最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠开展多种型号来满足不同层次的应用要求。就实际而言,不同的应用对单片机功能和资源的需求也是不

13、同的。比方,一个摩托车的点火器需要一个I/O较少、RAM及程序存储空间不大、可靠性较高的小型单片机,假设采用40脚且功能强大的单片机,投资大不说,使用起来也不方便。PIC系列从低到高有几十个型号,可以满足各种需要。其中,PIC12C508单片机仅有8个引脚,是世界上最小的单片机。2精简指令使其执行效率大为提高。PIC系列8位CMOS单片机具有独特的RISC结构,数据总线和指令总线别离的哈佛总线Harvard结构,使指令具有单字长的特性,且允许指令码的位数可多于8位的数据位数,这与传统的采用CISC结构的8位单片机相比,可以到达2:1的代码压缩,速度提高4倍。3产品上市零等待Zero time

14、to market。采用PIC的低价OTP型芯片,可使单片机在其应用程序开发完成后立刻使该产品上市。4PIC有优越开发环境。OTP单片机开发系统的实时性是一个重要的指标,象普通51单片机的开发系统大都采用高档型号仿真低档型号,其实时性不尽理想。PIC在推出一款新型号的同时推出相应的仿真芯片,所有的开发系统由专用的仿真芯片支持,实时性非常好。就我个人的经验看,还没有出现过仿真结果与实际运行结果不同的情况。5其引脚具有防瞬态能力,通过限流电阻可以接至220V交流电源,可直接与继电器控制电路相连,无须光电耦合器隔离,给应用带来极大方便。6彻底的保密性。PIC以保密熔丝来保护代码,用户在烧入代码后熔断

15、熔丝,别人再也无法读出,除非恢复熔丝。目前,PIC采用熔丝深埋工艺,恢复熔丝的可能性极小。7自带看门狗定时器,可以用来提高程序运行的可靠性。8睡眠和低功耗模式。虽然PIC在这方面已不能与新型的TIMSP430相比,但在大多数应用场合还是能满足需要的。3PIC单片机的分类初档8位单片机:PIC12C5XXX16C5X系列PIC16C5X系列是最早在市场上得到开展的系列,因其价格较低,且有较完善的开发手段,因此在国内应用最为广泛;而PIC12C5XX是世界第一个八脚低价位单片机可用于简单的智能控制等一些对单片机体积要求较高的地方,前景十分广阔。中档8位单片机:PIC12C6XX/PIC16CXXX

16、系列PIC中档产品是Microchip近年来重点开展的系列产品,品种最为丰富,其性能比低档产品有所提高,增加了中断功能,指令周期可到达200ns,带AD,内部E2PROM数据存储器,双时钟工作,比拟输出,捕捉输入,PWM输出,I2C和SPI接口,异步串行通讯USART,模拟电压比拟器及LCD驱动等等,其封装从8脚到68脚,可用于高、中、低档的电子产品设计中,价格适中,广泛应用在各类电子产品中高档8位单片机:PIC17CXX系列PIC17CXX是适合高级复杂系统开发的系列产品,其性能在中档位单片机的根底上增加了硬件乘法器,指令周期可达成160ns,它是目前世界上8位单片机中性价比最高的机种,可用

17、于高、中档产品的开发,如马达控制二相关背景知识 116F877a根本知识116F877a的根本架构单片机是中央处理单元(CPU),存储器(Memory)及输入/输出单元三大局部组成。其中CPU可分为两局部,即算术逻辑单元(ALU)及控制单元(CU),CPU通过总线(BUS)执行程式码的Fetch、Decode、算术逻辑运算及读写时钟信号的控制。存储器单元提供存放程序与资料的空间,包含只读存储器(ROM)和随机存取存储器(RAM)。而输入/输出单元提供与外界周边设备或元件的管道 ,如图一所示。 图1 单片机根本架构2PIC16F877a的特性说明如下:采用高性能的RISC CPU核心8位微电脑控

18、制芯片8K14Flash程序存储器5组I/O端口A,B,C,D,E368Bytes数据存储器及256Bytes的EEPROM数据存储器2组8位定时器TMR0,TMR2,及1组16位定时器TMR1支持14个中断处理3PIC16F877a单片机核心架构PIC16F877a单片机是RISC架构单片机,它所采用的Harvard结构和过去一般单片机所采用的Von Neumann结构最大的差异在于总线的改变,如图2所示。Von Neumann结构是传统的单片机结构,程序存储器和数据存储器是在同一个存储体区块,存储器与CPU之间只使用单一总线,不管是对程序存储器或数据存储器作存取都是使用此总线,因此要完成一

19、个指令通常必须依序使用总线,从指令的提取、解码、资料读取、执行到资料的写入,最后的结果是一个指令大都需要等待好几个周期才能完成。Harvard结构改善了这样的缺点,主要是程序存储器和数据存储器使用不同的存储体区块,而且也有各自独立的总线,这样的做法就大大改善了指令执行的频宽,两条总线可以同时工作,最大的优点是当一个指令在执行时,已经可以去抓下一个指令,因此对于运作的效率会有显著的提升。 图2 Harvard架构与Von Neumann架构比拟4存储器根本知识 PIC16F877a单片机共有3个存储器块,它们是程序存储器,数据存储器,EEPROM数据存储器。程序存储器和数据存储器有它自己的总线,

20、各自工作而不受对方影响。 PIC16F877a有一个13位程序计数器它的寻址能力达8K14程序存储器空间,而且PIC16F877a的Flash存储器空间正好是8K14,当寻址超出上面可执行的地址范围时将导致缭绕。复位向量在0000h中,而中断向量在0004h中。 数据存储器被分为4个体,它包括通用存放器(GPR)和特殊功能存放器(FSR),位 RP0,RP1是块抉择位。RP1 RP0 STATUS6:5=0 0 体0=01 体1 =10 体2 =11 体3 每个块的范围到达7Fh128bit,每个块的较低位存储单元保存SFRS,在SFRS上面是GPRS作为静态RAM操作的。所有执行的块包括SF

21、R。一些经常使用的SFRS可以从一个体镜像到另一个体来减少代码和实现快速访问。 在实际应用编程中会经常使用到两个比拟特殊的存放器:INDF和FSR。它们是实现间接寻址所必需的两个存放器。位于RAM数据存储器的的最顶端、地址码最小的INDF存放器,它虽有地址编码,但其实不是一个物理上的存放器。间接寻址通过使用INDF存放器而成为可能。任何使用INDF存放器的指令其实是通过文件选择存放器FSR来访问所指向的存放器。在PIC16F877a中所采用的这种独特而巧妙的设想,可以使指令集得到很大程度的精简。 电源控制存放器PCON电源控制存放器的内容包括2个有效位,用其中一个来记录和区分是否发生了上电复位

22、、外部引脚输入低电平引起的人工复位、还是看门狗超时溢出复位。在本系统的设计中就会用到该存放器中的位进行判断进入哪个程序模块。 电源上电复位标志位 =1 没有发生上电复位 =0 发生了上电复位。当发生上电复位之后,应该用软件及时将其置1,以便下次利用该比特来判断是否发生了电源上电复位。2.FLASH程序存储器的背景知识 存储器是任何计算机系统都不可缺少的一类重要的外围器件或部件。在计算机系统中应用的存储器有外部存储器又叫辅助存储器和内部存储器又叫主存储器之分。外部存储器有:磁带存储器多用于大型计算机、软磁盘存储器、硬磁盘存储器、只读光盘存储器、可读写光盘存储器、卡式存储器例如IC卡等;内部存储器

23、目前都用半导体存储器。而常见的半导体存储器器件分为RAM、ROM和NVRAM,而它们往下又细分为多个分支,FLASH程序存储器就是ROM中的一种,其内容断电后也不丧失,可反复檫写屡次,并且容易实现在线檫写,其檫写速度根本同于EEPROM,但是其制造本钱更低、芯片面积更小。适应于不仅要求内容可以修改而掉电后又不丧失,而且又要求本钱更低、存储容量更大的电器设备中。虽然EEPROM和FLASH存储器都可以屡次电檫和电写,但EEPROM的读写次数要高的多。因此,FLASH存储器适合用来烧写那些改动不太频繁的用户程序或参数,有利于降低单片机本钱。PIC16F87X单片机内部同时具备两种电檫和电写存储器,

24、分别是用于存储数据的EEPROM和用于固化用户程序的FLASH,它们都能够在适合PIC单片机正常工作的VDD电压范围内实现读写操作。也就是说,单片机内部自带电荷泵升压电路,即使是烧写操作也不需要外加高电压。FLASH程序存储器的读写操作是以14位的单指令字节为单位进行的,对于其的写操作实际是对某一指定单元进行的“先檫除,后写入的操作。对于程序存储器的读写操作允许进行“校验和的计算,以便提高可靠性。烧写到FLASH程序存储器中的内容,不一定都是有效指令代码,也可以利用这个14位宽的存储器,存放一些固定参数等。当CPU执行到存放着这些无效指令代码的区域是,产生与执行空操作指令NOP同样的结果。但是

25、对于FLASH程序存储器进行单个指令字节的写入操作,将会暂停其他指令的执行,直到写操作完成,并在写操作进行期间,不能对程序存储器的任何单元进行取指操作,即在此期间不能执行任何指令。原因是,FLASH是一个整体,当对其任何一个单元进行烧写操作时,升压电荷泵启开工作,对FLASH整体施加了高电压,在这个不适合FLASH正常读取操作的高电压存续期间,FLASH暂时失去了程序存储器的角色。总之,FLASH不能同时扮演“被烧写存储器和“取指令存储器双重角色。为了解决这个矛盾,在PIC16F87X系列单片机中采用的解决方案是,作为一个整体的FLASH程序存储器,在对一个单元进行烧写并且电源自动切换到电荷泵

26、供电时,CPU自动停顿而进入等待状态。在一次烧写操作完毕,FLASH工作电压再自动切换到正常值时,CPU才继续执行FLASH中的程序。对于PIC16F87X,在烧写FLASH时,虽然不能执行FLASH中的指令,但是系统时钟仍然振荡,片内各个外围模块仍然正常工作,可以检测到中断事件的发生,并进行排队等待,直到写操作完成之后才会得到响应。具体处理过程是,一旦写操作完成,如果中断源对应的各个中断屏蔽位都是开放的,并且该中断源的中断请求发生在写操作期间,那么,在执行完预先抓取到指令存放器中的指令之后,将立刻转向中断矢量地址去执行中断效劳子程序。FLASH不是直接影射到RAM存储器地址空间的,也就是说,

27、它并不与RAM统一编址。因此,FLASH两者都不能被用户程序直接访问,而只能通过专用存放器进行间接的访问。为了到达间接访问它们的目的,额外增加了6个特殊功能存放器:EEADR、EEADRH、EEDATA、EEDATH、EECON1、EECON2。FLASH程序存储器允许以指令字节14位进行读写操作,但是写操作会暂停CPU对FLASH区中指令的执行,直到写操作完成。当CPU间接访问FLASH程序存储器时,EEADRA和EEADRH一起用来存放指向某一单元的13位或12位或11位地址码,EEDATA和EEDATH一起用来存放即将被写入或读出的14位数据实际是用户程序的指令代码。依据内部配置FLAS

28、H的容量不同,又可以分为以下3种情况。 对于PIC16F876877而言,配置的FLASH容量8K14。用到了EEADR和EEADRH存放器对的低13位,213 =8K。虽然最高3位没有用到,但是必须将这几位清0。原因是,当EEADR和EEADRH内部16位地址码超出8K时,寻址范围并不会绕回到FLASH的低地址单元上。例如,当EEADR和EEADRH内部16位地址码为2000H时,寻址到的单元并不是0000H号单元。这样做也便于用户程序在PIC16F87X不同型号之间的移植和兼容。 对于PIC16F873874而言,配置的FLASH容量为4K14,为PIC16F876877的一半。所以仅用到

29、了EEADR和EEADRH内部16位地址码的低12位,212=4K。虽然最高4位没有用到,但是必须将这4位清0,理由同上。 对于PIC16F870871872而言,配置的FLASH容量仅为2K14,为PIC16F876877的1/4。所以,仅用到了EEADR和EEADRH内部16位地址码的低11位,211=2K。虽然最高5位没有用到,但是必须要将这5位清0,理由同上。 3.片内FLASH程序存储器结构和操作原理图3 FLASH数据存储器结构图PIC16F877a单片机内部,用于固化用户程序的FLASH 。也把它当作一个外围模块来看待,对于它的操作与操作EEPROM数据存储器也根本相同,只是其数

30、据宽度和地址宽度都需要增加,因此,地址存放器和数据存放器都增加到了一对。FLASH与单片机内部总线之间,利用地址存放器对EEADR:EEADRH和数据存放器对EEDATA:EEDATH,作为用户程序与FLASH存储器打交道的对话窗口。从图中可以发现,以上述4个存放器为界,其左边,在工作存放器W和4个存放器之间经过内部数据总线进行的是数据传送,是由CPU执行用户程序分4次来完成的;而右边,在4个存放器与FLASH之间的数据传送那么是靠硬件自动实现的。单片机向FLASH程序存储器烧写的程序代码或数据,常常是最先来自于单片机外部,方法是可以经过端口模块如USART、SPI、I2C等,与外界进行通信并

31、获取程序代码或数据,然后写入FLASH。烧写FLASH与向EEPROM中烧写数据的操作过程相比,主要的不同之处有:地址码有13位、12位或11位分别对应876877、873874和872871870,需要2个地址存放器并行工作;数据有14位,也需要2个数据存放器并行工作。对于以FLASH为对象的烧写操作,与CPU以FLASH为指令来源的程序执行,两种操作行为之间存在着互斥关系。也就是说,这两种操作绝对不能发生在同一时刻,其中的道理前面分析过。在对于FLASH写操作期间,系统时钟继续振荡,所有外设模块继续工作,如果中断处于使能状态,发生的中断请求将排队等候。一旦写操作完成,CPU将继续执行被中止

32、的程序。能否烧写FLASH,还与系统配置字的WRT位有关。在用程序烧写器经过在线串行编程ICSP引脚,对单片机进行烧写编程时如果将WRT位清0,此后就不能再以执行用户程序来操纵控制存放器EECON的方式,烧写FLASH程序存储器,如表1所列。我们在此可以主要关注内部写操作与WRT的对应关系。表1 内部FLASH程序存储器的读写状态表配置位FLASH程序存储器区间内部ICSPCP1CP0WRT读操作写操作读操作写操作00X全部是不不不010未保护区间是不是不保护区间是不不不011未保护区间是是是不保护区间是不不不100未保护区间是不是不保护区间是不不不101未保护区间是是是不保护区间是不不不表2

33、.10 内部FLASH程序存储器的读写状态表(续)110全部是不是是111全部是是是是说明: ICSP读写操作指借助于“程序烧写器经过在线串行编程ICSP引脚对单片机片内存储器进行读写操作; 内部读写操作以执行用户程序和通过操纵控制存放器EECON的方式进行读写操作烧写FLASH比烧写EEPROM更需要慎重,以防程序失控导致死机。与向EEPROM单元中一次烧写数据过程一样,烧写FLASH也需要多个步骤才能完成:应事先把长地址和长数据分别放入地址存放器对EEADRH:EEADR和数据存放器EEDATH:EEDATA中,把EEPGD控制位置1,再将写允许位WREN置1,最后再把写启动位WR置1。除

34、了正在对于FLASH进行写操作之外,平时WREN始终保持为0。只有在前一次的操作中把控制位WREN置1,后面的操作才能把控制位WR置1,也就是,这两位的置1操作,绝对不能在1条指令的执行过程中同时完成,必须安排两条指令。在一次写操作完毕之后,WREN位由软件清0。在一次写操作尚未完成之前,如果用软件去除WREN位,那么不会停止本次写操作过程。写FLASH程序存储器的操作步骤如下。把长地址码分两步送入地址存放器对EEADRH:EEADR中,并且保证地址不能超出目标单片机内部FLASH的最大地址范围对于870871872,2K14的最大地址码是07FFH;对于873874,4K14的最大地址码是0

35、FFFH;对于876877,8K14的最大地址码是1FFFH。 把准备烧写的14位数据分两步送入数据存放器对EEDATH:EEDATA中。把控制位EEPGD置位,以指定FLASH作为烧写对象。 把写使能位WREN置1,允许后面进行写操作。 去除全局中断控制位GIE,关闭所有中断请求。 执行专用的“5指令序列这5条指令是固定搭配,道理同前: 用一条移动指令把55H写入到W; 用一条移动指令再把W中的55H转入控制存放器EECON2中; 用一条移动指令把AAH写入到W; 用一条移动指令再把W中的AAH转入控制存放器EECON2中; 操作启动控制位WR置1。 执行2条NOP指令,给单片机足够的进入写

36、操作的时间。 放开中断总屏蔽位如果打算利用EEIF中断功能的话。 去除写允许位WREN,在本次写操作没有完毕之前,禁止重开新的一次写操作。当写操作完成时,控制位WR被硬件自动清0,中断标志位EEIF被硬件置1该位必须由软件清0。由于在对FLASH的写操作期间,CPU不能执行任何指令,因此,就不能使用软件查询方式检验WR状态位或EEIF标志位,来判定写操作是否完成。对于FLASH程序存储器的写操作是事关系统平安运行的大问题,需要谨慎对待,并且可以充分利用PIC16F87X单片机为解决此类问题而配置的一些片内软、硬件资源,来设计一些有效的方法和措施。为了防止意外写操作行为的发生,意外写操作主要是指

37、由于某些偶然的原因单片机自发进行的、可能导致不良后果的一类写操作行为。在某些特殊情况下单片机是不适合对FLASH程序存储器进行写操作的。PIC16F87X单片机内部建立了多种保障机制。在上电复位时,写操作使能控制位WREN自动被清0,以防止上电期间可能发生的意外写操作。72ms的上电延时复位定时器PWRT如果系统配置字定义为使能,即=0,也可以防止上电期间可能发生的意外写操作。可以由软件编程的写操作使能控制位WREN,平时保持为0,为写操作的启动设置了一道关卡。厂家规定的写操作专用的“5指令序列,如果顺序颠倒、密码出错、不连续执行等,都不能启动写操作,从而有效地防止关机、电源跌落、电源受到强烈

38、干扰、软件失控期间,可能发生的意外写操作。对于FLASH程序存储器防止意外写操作,PIC16F87X单片机内部,额外设置了更加严格的限制。那就是系统配置字中的CP1、CP0和WRT这3位见表2.2或系统配置字的说明局部。当CP1:CP0=00时,无论WRT等于何值,都会禁止任何对于FLASH存储器的写操作;当WRT=0时,无论CP1:CP0等于何值,也都会禁止任何对于FLASH存储器的写操作。况且这三位不是由软件所能改动的。一旦设置了此种写保护功能,假设想把它解除,只能对芯片全部擦除。4编码及解码原理1遥控发射器编码发射电路编码原理一般家庭用的DVD、VCD、音响都使用这种编码方式。当发射器按

39、键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图4所示。图4 遥控码的“0和“1 注:所有波形为接收端的与发射相反上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,到达降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图5所示。图5 遥控信号编码波形图UPD6121G产生的遥控编码是连续的32位二进制码组,

40、其中前16位为用户识别码能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户 识别码固定为十六进制01H;后16位为8位操作码功能码及其反码。UPD6121G最多额128种不同组合的编码。遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在4563ms之间,图6为发射波形图。图6 遥控连发信号波形当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码9ms,一个结果码 4.5ms,低8位地址码9ms18ms,高8位地址码9ms18ms,

41、8位数据码9ms18ms和这8位数据的反码 9ms18ms组成。如果按键按下超过108ms仍未松开,接下来发射的代码连发码将仅由起始码9ms和结束码2.25ms组成。图7 引导码 图8连发码2遥控信号接收及解码接收电路可以使用一种集红外线接收和放大于一体的一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。接收器对外只有3个引脚:Out、GND、Vcc与单片机接口非常方便,如图9所示。图 9 脉冲信号输出直接接在单片机的IO 口。 GND接在系统的地线0V; Vcc接在系统的

42、电源正极+5V;把红外遥控器每一个按键的键值读出来,并且通过实验板上P1口的8个LED显示出来,在解码成功的同时并且能发出“嘀嘀嘀的提示音。三 、各局部设计与实现一原理及总体设计 红外遥控系统通用红外遥控系统由发射和接收两大局部组成。应用编/解码专用集成电路芯片来进行控制操作,如下图。发射局部包括键盘矩阵、编码调制、LED红外发送器;接收局部包括光、电转换放大器、解调、解码电路,如图10所示。 图10 红外线遥控系统框图二各局部软硬件实现1.红外传感器这里我们采用HS0038,HS0038 一体化红外接收头,接收频率为38kHz1kHz管脚依次为: 1GND 2VCC 3OUT连接时,在VCC

43、与GND之间并入一个0.1uF的电容有助于改良信号质量。其可以用于遥控编码接收,也可以用于低码率的数据通讯。HS0038 信号电平: 38kHz 红外发射接收到时:OUT低电平输出 38kHz 红外发射接收不到时:OUT高电平输出Hs0038的使用考前须知: 38kHz红外发射信号在HS0038接收角度范围边沿区域时,接收信号不断振荡无法稳定,因此为保证信号质量,使用时发射接收尽力正对为好; HS0038用于数据通讯时,在标准RS232下,波特率设置不要大于2400bps,否那么HS0038无法区分到接收的信号2400bps接近其带宽极限了。2红外键盘 红外键盘原理图,如图11、12、13、1

44、4。图11 图12图13图143.通用同步异步收发器USARTPIC16F87X单片机内部集成了两个类型不同的串行通信模块,即通用同步异步收发器USARTuniversal synchronousasynchronous receiver transmitter模块和主控同步串行端口MSSPmaster synchronous serial port模块。前者的主要应用目标是系统之间的远距离串行通信;而后者的主要应用目标是系统内部近距离的串行扩展。与USART模块有关的存放器有9个,都在RAM阵列中具有统一的地址编码。如表2所示。表2 与USART模块相关的存放器存放器名称存放器符号存放器地址

45、存放器内容bit7bit6bit5bit4bit3bit2bit1Bit0中断控制存放器INTCON0BH/8BH/10BH/18BHGIEPEIET0IEINTERBIET0IFINTFRBIF第一外设中断标志存放器PIR10CHPSPIFADIFRCIFTXIFSSPIFCCP1-IFTMR2-IFTMR1-IF第一外设中断屏蔽存放器PIE18CHPSPIEADIERCIETXIESSPIECCP1-IETMR2-IETMR1-IFC口方向存放器TRISC87HTRISC7TRISC6TRISC5TRISC4TRISC3TRISC2TRISC1TRISC0发送状态兼控制存放器TXSTA98

46、HCSRCTX9TXENSYNC_BRGHTRMTTX9D接收状态兼控制存放器RCSTA18HSPENRX9SRENCRENADDENFERROERRRX9D发送存放器TXREG19HUSART发送缓冲存放器接收存放器RCREG1AHUSART接收缓冲存放器波特率存放器SPBRG99H对于波特率发生器产生波特率的定义值发送状态兼控制存放器TXSTA,它是一个bit3不用,bit1只读,其余6位可读写的存放器,其中没有一位读取时会返回0。其中的SYNC位是USART同步异步选择位。等于1时,是同步模式,等于0时是异步模式;TXEN是发送使能位,为1时是使能发送,为0时是关闭发送功能。RCSTA是

47、接收状态兼控制存放器,它是一个低三位只读、高5位可读写的存放器。其中的CREN是连续接收使能位。在异步模式下:等于1表示使能连续接收,等于0那么是禁止连续接收;在同步模式下,等于1表示使能连续接收,直到该位被清0为止。该位优先于SREN位。等于0表示关闭连续接收。USART发送缓冲存放器TXREG也是一个用户程序可读写的存放器。每次用户发送的数据都是通过写入该缓冲器来实现的。USART接收缓冲存放器RCREG是一个用户程序可读写的存放器。每次从对方传送过来的数据,用户都是从该缓冲器最后读取出来的。SPBRG存放器是用来控制一个独立的8位定时器的溢出周期。该存放器的设定值0255与波特率成反比关

48、系。在同步方式下波特率仅由这一个存放器决定,在异步方式下那么由BRGH位和该存放器共同确定。四、总结和体会通过这次红外遥控的毕业设计,学习和使用芯片的具体应用,传感器的选用,明白了不同芯片外围接口使用时的工作方式。熟练掌握了它们的运用环境和使用时的方式控制,以及编程命令字的设置。进一步了解了所学芯片的根本的编程步骤及各种方式命令字的使用。将书本上所学的东西用在实际当中了,这加深了我们对可编程器件的理解。在这次设计过程中我有几点深刻的体会。1.经过这次设计,我体会到应该掌握丰富的理论知识,理论知识是设计的前提。但同时又决不能局限于理论。如某些地方的元件取值,应该大胆的根据经验去判断。2.平时课堂

49、上所学习的知识大多比拟陈旧,作为电子专业的学生,由于专业特点自己更要积极查阅当前的最新信息资料。一个人不可能什么都学过,什么都懂,因此,当你在设计过程中需要用一些不曾学过的东西时,就要去有针对性地查找资料,然后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识,补充最新的专业知识。3.实践能力得到了进一步提高,在设计过程中积累了一些经验。4.设计对以前学过的理论知识起到了回忆作用。在整个设计之中是对数字电路、模拟电路课程,单片机,微机原理等课程是综合应用,并对其加以进一步的消化和稳固,加深了对以前所学课程知识的掌握。5.在设计过程中,深深感受到自己在对一些器件的了解上,还存在很大差距,对

50、他们的功能,参数都不是太熟悉。但是通过这次理论与实际的结合之后,认识比以前有不少提高。 五、谢辞首先感谢我的父母,正是你们的默默的付出,才让我完成大学四年的学习,养育之恩,无以回报,你们永远健康是我最大的幸福。还要感谢汪光宅老师,刘强老师,在毕业设计的制作过程中,老师们对我自始自终悉心教导、不断鼓励、一直催促我学习和制作,使我能够顺利完成毕业设计 ,也教给了我很多新的知识,令我获益匪浅。他们严谨的治学态度深深的影响着我,让我受益一生,不管是工作还是生活中。同时我还要感谢梁明华,孙伟,刘亮宇,苟庆松等同学,正是他们同时给我的帮助,才让我的毕业设计能够顺利完成。在此,对汪光宅老师、刘强老师以及给我

51、提供帮助的同学致以诚挚的谢意。祝你们工作顺利,身体健康!附录一红外键盘相关程序用WHILE实现的延时程序void delay16(unsigned int i)while(-i);/*void delay882us(void)delay16(100);/*void delay1000us(void)delay16(115);/*void delay4740us(void)delay16(546);非中断方式串口输出void ComOutChar(unsigned char OutData)SBUF = OutData; /输出字符while(!TI); /空语句判断字符是否发完TI = 0;

52、/清TI/*/串口初始化晶振为.0592M方式波特率/*void InitCom(void)SCON = 0x50; /串口方式,允许接收TMOD = 0x21; /定时器定时方式,定时为模式,位模式TH1 = 0xFd;/设波特率为TL1 = 0xFd;PCON = 0x00; /波特率不加倍控制,SMOD为RI = 0;/清收发标志TI = 0;TR1 = 1; /启动定时器二编码及解码程序接收,程序如下RF:BTFSC PORTB,2 GOTO RF1BTFSS DOWNBIT CLRF RTCCOUNTBSF DOWNBIT BTFSS UPBIT RETLW 0BTFSC IDBIT

53、 GOTO RF3MOVLW 2AHSUBWF RTCCOUNT,0BTFSS STATUS,0GOTO RF2MOVLW 36HSUBWF RTCCOUNT,0BTFSC STATUS,0GOTO RF2BTFSC IDBITGOTO RF3MOVLW .8MOVWF LOOPMOVLW .3MOVWF LOOPCOUNTCLRF DATACOUNTBSF IDBITBSF DOWNBITBCF UPBITCLRF RTCCOUNTRETLW 0RF1:BTFSS DOWNBITRETLW 0BSF UPBITRETLW 0RF2:BCF DOWNBITBCF UPBITBCF IDBITC

54、LRF RTCCOUNTRETLW 0 ;遥控接收RF3:MOVLW 02HSUBWF RTCCOUNT,0BTFSS STATUS,0GOTO RF4MOVLW 0CHSUBWF RTCCOUNT,0BTFSS STATUS,0GOTO RF4GOTO RF2RF4:MOVLW 08HSUBWF RTCCOUNT,0BTFSC STATUS,0BSF 3H,0MOVLW 07HSUBWF RTCCOUNT,0BTFSS STATUS,0BCF 3H,0RLF DATACOUNT,1BSF DOWNBITBCF UPBITCLRF RTCCOUNTDECFSZ LOOP,1RETLW 0MOV

55、LW .8MOVWF LOOPDECFSZ LOOPCOUNTRETLW 0BSF RFBIT BCF DOWNBITBCF UPBITBCF IDBITCLRF RTCCOUNTRETLW 0/TIME:BTFSC TIMEPD1GOTO TIME1MOVF RTCC,0MOVWF TIMEONEBSF TIMEPD1RETLW 0 ;定时查寻TIME1:MOVF RTCC,0SUBWF TIMEONE,0BTFSC STATUS,2RETLW 0BCF TIMEPD1INCF RTCCOUNT,1RETLW 0/在这里我是用查询的方式来定时的RTCCOUNT只是在解码时不需要去追求时间精度

56、;是去查RTCC有没有发生跳变,如有那么表示时间过了 256US-RTCCOUNT加一;这样做有一个好处-你不必去管RTCC具体的值是多少,RTCC去做精确的时钟定时;在这个查询的子程序中你可以去判断键扫,显示刷新等等发送:原理是接收的逆过程,如下;/READDIGT:MOVF SENDLOOP,0ADDWF PC,1GOTO SENDC4GOTO SENDC3GOTO SENDC2GOTO SENDC1GOTO SENDC0;/SENDC0:MOVF C4COUNT,0;读要发的数据假设要发5个字RETURNSENDC1:MOVF C3COUNT,0RETURNSENDC2:MOVF C2C

57、OUNT,0RETURNSENDC3:MOVF C1COUNT,0RETURNSENDC4:MOVF C0COUNT,0RETURN;/SENDBIT:CLRF TIMEBCF PORTB,1SENDBIT1:CLRWDTMOVLW .35SUBWF TIME,0BTFSS STATUS,2GOTO SENDBIT1CLRF TIMEBSF PORTB,1SENDBIT2:CLRWDTMOVLW .18SUBWF TIME,0BTFSS STATUS,2GOTO SENDBIT2CLRF SENDLOOP ;码头数据发送/SENDBIT3:CLRWDTBCF INTCON,7CALL READDIGTMOVWF SENDCOUNTBSF INTCON,7CALL SENDDIGTINCF SENDLOOP,1MOVLW .5SUBWF SENDLOOP,0BTFSS STATUS,2GOTO SENDBIT3CLRF TIMEBCF PORTB,1SENDDIGT5:CLRWDTMOVLW .2;加发一个结束位SUBWF TIME,0BTFSS STATUS,2GOTO SENDDIGT5BSF PORTB,1BSF STARTBITRETURN;/SENDDI

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!