无线多点报警系统毕业设计(编辑修改稿)内容摘要:

实现优先权排队 通常,系统中有 多个中断源,当有多个中断源同时发出中断请求时,要求计算机能确定哪个中断更紧迫,以便首先响应。 为此,计算机给每个中断源规定了优先级别,称为优先权。 这样,当多个中断源同时发出中断请求时,优先权高的中断能先被响应,只有优先权高的中断处理结束后才能响应优先权低的中断。 计算机按中断源优先权高低逐次响应的过程称优先权排队,这个过程可通过硬件电路来实现,亦可通过软件查询来实现。 定时器初值与中断周期 时钟中断无需过于频繁,一般取 20mS(50Hz)即可。 如需要百分之一秒的时基信号,可取 10mS(100Hz)。 这里取 20mS,用定时器 T0 工作于 16 位定时器方式 (方式 1)。 T0 的工作方式为:每过一个机器周期自动加 1,当计满 0FFFFh,要溢出时,便会产生中断,并由硬件设置相应的标志位供软件查询。 即中断时比启动时经过了 N+1 个机器周期。 所以,我们只要在 T0 中预先存入一个比满值 0FFFFh 小 N的数,然后启动定时器,便会在 N个机器周期后产生中断。 这个值便是所谓的“初值”。 下面计算我们需要的初值:时钟为 6MHz, 12个时钟周期为一个机器周期, 20mS 中有 10000 个机器周期。 (10000)10=(2710)16,则 0FFFFh2710h+1=0D8F0h。 由于响应中断、保护现场及重装初值还需要 7~8 个机器周期,把这个值再加上 7,即 T0 应装入的初值是 0D8F7h。 每次中断进入后,先把 A及 W的值压入堆栈,然后即把 0D8F7h 装入 T0。 设置一个单元,每次中断加 1 我们可以取内部 RAM 中一个单元,取名为INCPI(Increase Per Interrupt),在中断中,装完 T0 初值后,用 INC INCPI 指令将其加一。 从这个单元中,无论中断程序还是主程序,都可以从中获得 20mS 的 1~256之间任意整数倍的信号。 例如:有一段向数码管送显的程 序,需要每 河南工业职业技术学院机电工程系毕业设计(论文) 第 10 页 共 32 页 次以便刷新显示器,便可以设一单元 (称为等待单元 )W_DI ,用 /MOV A,INCPI/ADD A,25/MOV W_DI ,A/语句让其比当前的 INCPI 值大 25,然后在每次中断中检查是否于 INCPI 值相等。 若相等,说明已过了 25 个中断周期,便执行送显程序,并且让 W_DI 再加上 25,等待下个。 我们可以设置多个等待单元,以便取出多个不同的时基信号。 让中断程序在每次中断时依次查询各个等待单元是否与 INCPI 相等,若相等,则执行相应的处理,并重新设置该等待单元的值,否则跳过。 例如:用 秒信号刷新或闪烁显示器,用 1秒信号产生实时时钟,或输出一定频率的方波,以一定间隔查询输入设备等。 中断的使用 开全局中断 51 是 EA = 1 对应中断使能 比如定时器 1 ET1 = 定时器 0 ET0 = 1 定时器工作方式配置: 有三种方式 双 8位定时 16位定时 还有捕捉方式 定时器 2 有 4种 ,具体不介绍了 TMOD 是定时器 0和定时器 1 方式配置的寄存器 TMOD = 0x01,定时器 0 工作在方式 1( 16 位计数) 打开定时器 TR0 = 1。 定时器 1打开是 TR1 = 1。 中断服务程序:就是定时时间到,你要处理的事务 12864 应用说明 使用前的准备 先给模块加上工作电压,再按照下图的连接方法调节 LCD 的对比度,使其显示出黑色的底影。 此过程亦可以初步检测 LCD 有无缺段现象。 字符显示 带中文字库的 128X640402B 每屏可显示 4 行 8 列共 32个 16 16 点阵的汉字,每个显示 RAM 可显示 1 个中文字符或 2个 16 8点阵全高 ASCII 码字符,即每屏最多可实现 32 个中文字符或 64个 ASCII 码字符的显示。 带中文字库的 128X640402B内部提供 128 2 字节的字符显示 RAM 缓冲区( DDRAM)。 字符显示是通过将字符显示编码写入该字符显示 RAM实现的。 根据写入内容的不同,可分别在液晶屏上显示 CGROM(中文字库)、 HCGROM( ASCII 码字库)及 CGRAM(自定义字形)的内容。 三种不同字符 /字型的选择编码范围为: 0000~ 0006H(其代码分别是 0000、 000 000 0006共 4个)显示自定义字型, 02H~ 7FH显示半宽 ASCII 码字符, A1A0H~ F7FFH 显示 8192种 GB2312 中文字库字形。 字符显示 RAM在液晶模块中的地址 80H~ 9FH。 字符显示的RAM 的地址与 32个字符显示区域有着一一对应的关系,其对应关系如下表所示。 80H 81H 82H 83H 84H 85H 86H 87H 90H 91H 92H 93H 94H 95H 96H 97H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 河南工业职业技术学院机电工程系毕业设计(论文) 第 11 页 共 32 页 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH 3 、图形显示 先设垂直地址再设水平地址 (连续写入两个字节的资料来完成垂直与水平的坐标地址 ) 垂直地址范围 AC5...AC0 水平地址范围 AC3„ AC0 绘图 RAM 的地址计数器( AC)只会对水平地址 (X 轴 )自动加一 ,当水平地址 =0FH 时会重新设为 00H 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。 GDRAM 的坐标地址与资料排列顺序如下图: 应用说明 用带中文字库的 128X64 显示模块时应注意以下几点: ①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。 ②显示 ASCII 字符过程与显示中文字符过程相同。 不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加 1指向下一个字符位置,否则,显示的字符中将会有一个空 ASCII 字符位置。 ③当字符编码为 2 字节时,应先写入高位字节,再写入低位字节。 ④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取 BF标志时 BF需为“ 0”,方可接受新的 指令。 如果在送出一个指令前不检查 BF 标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。 指令执行的时间请参考指令表中的指令执行时间说明。 ⑤“ RE”为基本指令集与扩充指令集的选择控制位。 当变更“ RE”后,以后的指令集将维持在最后的状态,除非再次变更“ RE”位,否则使用相同指令集时,无需每次均重设“ RE”位 . nRF905 时序说明 发送流程 1. 当微控制器有数据要发送时,通过 SPI 接口,按时序把接收机的地址和要发送的数据送传给 nRF905, SPI 接口的速 率在通信协议和器件配置时确定; 2. 微控制器置高 TRX_CE 和 TX_EN,激发 nRF905 的 ShockBurstTM 发送模式; 3. nRF905 的 ShockBurstTM 发送: l 射频寄存器自动开启; l 数据打包 (加字头和 CRC 校验码 ); 河南工业职业技术学院机电工程系毕业设计(论文) 第 12 页 共 32 页 l 发送数据包; l 当数据发送完成,数据准备好引脚被置高; 4. AUTO_RETRAN 被置高, nRF905 不断重发,直到 TRX_CE 被置低; 5. 当 TRX_CE 被置低, nRF905 发送过程完成,自动进入空闲模式。 ShockBurstTM工作模式保证,一旦发送 数据的过程开始,无论 TRX_EN 和 TX_EN 引脚是高或低,发送过程都会被处理完。 只有在前一个数据包被发送完毕, nRF905 才能接受下一个发送数据包。 接收流程 1. 当 TRX_CE 为高、 TX_EN 为低时, nRF905 进入 ShockBurstTM 接收模式; 2. 650us 后, nRF905 不断监测,等待接收数据; 3. 当 nRF905 检测到同一频段的载波时,载波检测引脚被置高; 4. 当接收到一个相匹配的地址,地址匹配引脚被置高; 5. 当一个正确的数据包接收完毕, nRF905 自动移去字头、地址和 CRC 校验位,然后把数据准备好引脚置高 6. 微控制器把 TRX_CE 置低, nRF905 进入空闲模式; 7. 微控制器通过 SPI口,以一定的速率把数据移到微控制器内; 8. 当所有的数据接收完毕, nRF905 把数据准备好引脚和地址匹配引脚置低; 9. nRF905 此时可以进入 ShockBurstTM 接收模式、 ShockBurstTM 发送模式或关机模式。 当正在接收一个数据包时, TRX_CE 或 TX_EN 引脚的状态发生改变, nRF905立即把其工作模式改变,数据包则丢失。 当微处理器接到地址匹配引脚的信号之后,其就知道 nRF905 正在接收数据包,其可以决定是让 nRF905 继续接收该数据包还是进入另一个工作模式。 节能模式 nRF905 的节能模式包括关机模式和节能模式。 在关机模式, nRF905 的工作电流最小,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。