基于pic单片机的红外遥控设计本科毕业设计(编辑修改稿)内容摘要:
6 个特殊功能寄存器: EEADR、 EEADRH、 EEDATA、 EEDATH、 EECON EECON2。 FLASH 程序存储器允许以指令字节( 14 位)进行读∕写操作,但是写操作会暂停 CPU 对 FLASH 区中指令的执行,直到写操作完成。 当 CPU 间接访 问 FLASH 程序存储器时, EEADRA 和 EEADRH 一起用来存放指向某一单元的 13 位(或 12 位或11位)地址码, EEDATA 和 EEDATH 一起用来存放即将被写入或读出的 14 位数据(实际是用户程序的指令代码)。 依据内部配置 FLASH 的容量不同,又可以分为以下 3种情况。 ⑴ 对于 PIC16F876∕ 877 而言,配置的 FLASH 容量 8K 14。 用到了 EEADR 和EEADRH 寄存器对的低 13 位, 213 =8K。 虽然最高 3位没有用到,但是必须将这几位清 0。 原因是,当 EEADR 和 EEADRH 内部 16 位地址码 超出 8K时,寻址范围并不会绕回到 FLASH的低地址单元上。 例如,当 EEADR和 EEADRH内部 16位地址码为 20xxH时,寻址到的单元并不是 0000H 号单元。 这样做也便于用户程序在 PIC16F87X 不同型号之间的移植和兼容。 12 ⑵ 对于 PIC16F873∕ 874 而言,配置的 FLASH 容量为 4K 14,为 PIC16F876∕ 877 的一半。 所以仅用到了 EEADR 和 EEADRH 内部 16 位地址码的低 12 位, 212=4K。 虽然最高 4 位没有用到,但是必须将这 4位清 0,理由同上。 ⑶ 对于 PIC16F870∕ 871∕ 872 而言,配置的 FLASH 容量仅为 2K 14,为PIC16F876∕ 877 的 1/4。 所以,仅用到了 EEADR 和 EEADRH 内部 16 位地址码的低11位, 211=2K。 虽然最高 5 位没有用到,但是必须要将这 5位清 0,理由同上。 FLASH 程序存储器结构和操作原理 图 3 FLASH 数据存储器结构图 PIC16F877a 单片机内部,用于固化用户程序的 FLASH。 也把它当作一个外围模块来看待,对于它的操作与操作 EEPROM 数据存储器也基本相同,只是其数据宽度和地址宽度都需要增加,因此,地址寄存器 和数据寄存器都增加到了一对。 FLASH 与单片机内部总线之间,利用地址寄存器对 EEADR:EEADRH 和数据寄存器对 EEDATA: EEDATH,作为用户程序与 FLASH 存储器打交道的对话窗口。 从图中可以发现,以上述 4 个寄存器为界,其左边,在工作寄存器 W和 4 个寄存器之间经过内部数据总线进行的是数据传送,是由 CPU 执行用户程序分 4 次来完成的;而右边,在 4 个寄存器与 FLASH 之间的数据传送则是靠硬件自动实现的。 单片机向 FLASH 程序存储器烧写的程序代码或数据,常常是最先来自于单片机外部,方法是可以经过端口模块(如 USART、 SPI、 I2C 等),与外界进行 13 通信并获取程序代码或数据,然后写入 FLASH。 烧写 FLASH 与向 EEPROM 中烧写数据的操作过程相比,主要的不同之处有: 地址码有 13 位、 12 位或 11 位(分别对应 876∕ 87 873∕ 874 和 872∕ 871∕ 870),需要 2 个地址寄存器并行工作;数据有 14 位,也需要 2 个数据寄存器并行工作。 对于以 FLASH 为对象的烧写操作,与 CPU 以 FLASH 为指令来源的程序执行,两种操作行为之间存在着互斥关系。 也就是说,这两种操作绝对不能发生在同一时刻,其中的道理前面分析过。 在 对于 FLASH 写操作期间,系统时钟继续振荡,所有外设模块继续工作,如果中断处于使能状态,发生的中断请求将排队等候。 一旦写操作完成, CPU 将继续执行被中止的程序。 能否烧写 FLASH,还与系统配置字的 WRT 位有关。 在用程序烧写器经过在线串行编程( ICSP)引脚,对单片机进行烧写编程时如果将 WRT 位清 0,此后就不能再以执行用户程序来操纵控制寄存器 EECON 的方式,烧写 FLASH 程序存储器,如表 1所列。 我们在此可以主要关注内部写操作与 WRT 的对应关系。 表 1 内部 FLASH 程序存储器的读∕写状态表 配置位 FLASH 程序存储器 区间 内部 ICSP CP1 CP0 WRT 读操作 写操作 读操作 写操作 0 0 X 全部 是 不 不 不 0 1 0 未保护区间 是 不 是 不 保护区间 是 不 不 不 0 1 1 未保护区间 是 是 是 不 保护区间 是 不 不 不 1 0 0 未保护区间 是 不 是 不 保护区间 是 不 不 不 1 0 1 未保护区间 是 是 是 不 保护区间 是 不 不 不 表 内部 FLASH 程序存储器的读∕写状态表 (续 ) 1 1 0 全部 是 不 是 是 1 1 1 全部 是 是 是 是 14 说明: ⑴ ICSP 读∕写操作 —— 指借助于“程序烧写器”经过在线串行编程( ICSP)引脚对单片机片内存储器进行读∕写操作; ⑵ 内部读∕写操作 —— 以执行用户程序和通过操纵控制寄存器 EECON的方式进行读∕写操作 烧写 FLASH 比烧写 EEPROM 更需要慎重,以防程序失控导致死机。 与向 EEPROM单元中一次烧写数据过程一样,烧写 FLASH 也需要多个步骤才能完成:应事先把长地址和长数据分别放入地址寄存器对 EEADRH: EEADR 和数据寄存器 EEDATH:EEDATA 中,把 EEPGD 控制位置 1,再将写允许位 WREN 置 1,最后再把写启动位 WR置 1。 除了正在对于 FLASH 进行写操作之外,平时 WREN 始终保持为 0。 只有在前一次的操作中把控制位 WREN 置 1,后面的操作才能把控制位 WR置 1,也就是,这两位的置 1 操作,绝对不能在 1 条指令的执行过程中同时完成,必须安排两条指令。 在一次写操作完毕之后, WREN 位由软件清 0。 在一次写操作尚未完成之前,如果用软件清除 WREN 位,则不会停止本次写操作过程。 写 FLASH 程序存储器的操作步骤如下。 把长地址码分两步送入地址寄存器 对 EEADRH: EEADR 中,并且保证地址不能超出目标单片机内部 FLASH 的最大地址范围(对于 870∕ 871∕ 872, 2K 14 的最大地址码是 07FFH;对于 873∕ 874, 4K 14 的最大地址码是 0FFFH;对于 876∕ 877,8K 14 的最大地址码是 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 指令,给单片机足够的进入写操作的时间。 ⑦ 放开中断总屏蔽位(如果打算利用 EEIF 中断功能的话)。 15 ⑧ 清除写允许位 WREN,在本次写操作没有完毕之前,禁止重开新的一次写操作。 当写操作完成时,控 制位 WR 被硬件自动清 0,中断标志位 EEIF 被硬件置 1(该位必须由软件清 0)。 由于在对 FLASH 的写操作期间, CPU 不能执行任何指令,因此,就不能使用软件查询方式检验 WR 状态位或 EEIF 标志位,来判定写操作是否完成。 对于 FLASH 程序存储器的写操作是事关系统安全运行的大问题,需要谨慎对待,并且可以充分利用 PIC16F87X 单片机为解决此类问题而配置的一些片内软、硬件资源,来设计一些有效的方法和措施。 为了防止意外写操作行为的发生,(意外写操作主要是指由于某些偶然的原因单片机自发进行的、可能导致不良后果的一类写 操作行为。 在某些特殊情况下单片机是不适合对 FLASH 程序存储器进行写操作的。 ) PIC16F87X 单片机内部建立了多种保障机制。 在上电复位时,写操作使能控制位 WREN 自动被清 0,以防止上电期间可能发生的意外写操作。 72ms 的上电延时复位定时器 PWRT(如果系统配置字定义为使能,即PWRTE =0),也可以防止上电期间可能发生的意外写操作。 可以由软件编程的写操作使能控制位 WREN,平时保持为 0,为写操作的启动设置了一道关卡。 厂家规定的写操作专用的“ 5 指令序列”, 如果顺序颠倒、密码出错、不连续执行等,都不能启动写操作,从而有效地防止关机、电源跌落、电源受到强烈干扰、软件失控期间,可能发生的意外写操作。 对于 FLASH 程序存储器防止意外写操作, PIC16F87X 单片机内部,额外设置了更加严格的限制。 那就是系统配置字中的 CP CP0 和 WRT 这 3位(见表 或系统配置字的说明部分)。 当 CP1: CP0=00 时,无论 WRT 等于何值,都会禁止任何对于 FLASH 存储器的写操作;当 WRT=0 时,无论 CP1: CP0 等于何值,也都会禁止任何对于 FLASH 存储器的写操作。 况且这三位不 是由软件所能改动的。 一旦设置 了此种写保护功能,若想把它解除,只能对芯片全部擦除。 4.编码及解码原理 ( 1) 遥控发射器编码 发射电路编码原理(一般家庭用的 DVD、 VCD、音响都使用这种编码方式)。 当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。 这种遥 16 控码具有以下特征: 采用脉宽调制的串行码,以脉宽为 、间隔 、周期为 的组合表示二进制的 “0” ;以脉宽为 、间隔 、周期为 的组合表示二进制的 “1” ,其波形如图 4所示。 图 4 遥控码的 “0” 和 “1” (注:所有波形为接收端的与发射相反) 上述 “0” 和 “1” 组成的 32位二进制码经 38kHz 的载频进行二次调制以提高发射效。基于pic单片机的红外遥控设计本科毕业设计(编辑修改稿)
相关推荐
部负载,用于在程序设计中处理逻辑控制任务,下文出现的 M 也是作为辅助继电器。 SS M 0 . 1 M 0 . 01网 络 1 图 网络 1 梯形图 ( 2)上升沿脉冲触发的状态 网络 2 是在按动 瞬间,常开触电 通电,表现为高电平,此时通过上升沿脉冲使得寄存器加法指令执行一次相加的操作,在 LAD 中, IN1+IN2=OUT,数据类型为整数,所以在双整数相加时输出也为整数,传递给 VW1
控制系统。 下面将着重向大家介绍三种控制系统的优劣区别比较及本课题选用变频控制系统的特色。 继电气控制系统 继电器控制系统的组成:控制系统(输入回路),被控系统(输出回路)。 继电器控制系统 利用具有继电特性的元件进行控制的 自动 控制系统。 所谓继电特性是指在输入信号作用下输出仅为通、断等几个状态的特性。 继电控制也称通断控制。 例如,电炉温度调节中根据炉温是否超过规定值而断开或接通电源。
车技术几乎包括了机械、电子、液压、光学、磁控和计算机技术等各个领域的所有成熟先进技术。 停车方式也在不停的改变。 设备结构采用模块化的设计,而不是整套的生产,便于组合使用,也易于安装拆卸,增加了立体车库的随意性。 控制技术方面,广泛采用可编程序控制器( PLC)和矢量变频变压调速 闭环控制技术,使系统运行高速平稳,这些技术不仅节省电力,而且振动和噪音也相对趋于最小化。
该系统当前状态及指纹数据比对成果显示出来。 独立按键 模块 :用于选择该系统的功能。 电磁锁模块 :用于门锁的开关。 拟解决的问题 本设 计 解决的主要问题是 指纹识别模块与 PIC单片机之间的通信、独立按键模块控制、液晶屏模块控制和电磁锁模块控制。 研究的方法与技术路线 本设 计主要有 硬件 模块 和软件模块 两 个部分:硬件设计主要包括 指纹识别模块、独立按键模块、液晶屏 模块
款自由的软件,在人们的使用中,不断为它开发新的功能、特性和修改原来存在的缺陷,使 Apache 得功能变得越来越完善,越来越能够适应各种环境。 Apache 有着很多特点,其中简单、速度快、性能稳定的特点,是它可以做代理服务器的重要原因。 正是因为其开源,适应各种平台,以及其特点,所以本次设计采用了 Apache作为此次设计的服务器,能够满足网站的使用。 MySQL 数据库 MySQL
册用户的详细个人信息,如果想在本系统中发表文章、上传图片等操作,则必须先进行注册。 上传图片实体包括上传图片的名称、上传图片用户和上传图片的时间等。 数据库物理结构设计 博客系统使用的数据库是 db_blog,在数据库中一共使用了 9 个数据表如图 所 示: 图 所有 表 各表的名称和作用如下: tb_admin(管理员信息表) 管理员信息表主要储存管理员的个人信息。 而管理