收藏 分销(赏)

微机原理课程设计创新题报告蓝牙模板.docx

上传人:丰**** 文档编号:9895332 上传时间:2025-04-12 格式:DOCX 页数:89 大小:1.36MB 下载积分:16 金币
下载 相关 举报
微机原理课程设计创新题报告蓝牙模板.docx_第1页
第1页 / 共89页
微机原理课程设计创新题报告蓝牙模板.docx_第2页
第2页 / 共89页


点击查看更多>>
资源描述
微机原理课程设计创新题报告蓝牙 89 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 微机原理设计报告 创新型实验设计报告 题 目 基于蓝牙通信的无线控制系统 学 院 自动化学院 专 业 电气工程及其自动化 成 员 陈 旭 吴海成 指导教师 刘迎澍 摘 要 随着现代互联网技术的发展, 物联网和智能家居概念开始逐步发展。智能家居是以住宅为平台, 利用综合布线技术、 网络通信技术、 自动控制等技术将生活有关的设施集成, 构建高效的住宅设施与家庭日程管理系统, 提升家居安全性、 便利性, 并能实现环保节能的居住环境。 蓝牙技术是一种尖端的开放式无限通讯标准, 蓝牙无线技术使用全球通用的频带( 2.4GHz) 蓝牙成本低, 体积小, 比802.11协议更具有移动性, 而且一般的手持平台( 手机, PC机, Pad) 均具有蓝牙功能。本系统是典型的蓝牙无线通信控制系统, 包括手持设备指令的发送、 处理系统的接收、 处理、 和功能的具现化。本文基于市场常见的蓝牙通讯模块( HC-06) 和8086微机实验平台结合, 利用现有的资源实现简单的基于蓝牙通信的无线控制系统的搭建。 关键词: 蓝牙; 8086微机平台; 串口通信 目录 第一章 绪论 1.1 课程介绍 1.2 题目简介 第12二章 硬件结构 2.1 硬件组成 2.2 芯片简介 2.2.1 8255芯片 2.2.2 8253芯片 2.2.3 8251芯片 2.2.4 12864液晶显示模块 2.3 蓝牙接收模块 第三章 软件结构 3.1 程序子模块组成 3.1.1 概况 3.1.2 模块组成 3.2 程序运行详细流程 3.2.1 主程序流程图 3.2.2 中断子程序流程图 3.2.3 3.2.4 3.2.5 3.2.6 第四章 实验总结 4.1 实验现象 4.2 实验感想 4.3 实验分工 附录 程序清单 第一章 绪论 1.1 课程介绍 微型计算机原理及接口技术是电气工程及其自动化专业的重要基础课程, 具有很强的实践性。天津大学在开展微机实践教学改革的过程中开辟了学生创新型题目, 这类题目在教材知识的基础上, 要求学生综合运用多学科知识, 结合自学, 经过团队合作来共同完成, 以提升同学们的自学能力、 团队精神、 创新意识和动手能力, 为把学生培养为卓越工程师打下良好基础。 1.2 题目简介 本题目是设计一个基于蓝牙通信的手机对PC机的控制系统, 经过将手机发送的信息编码, 在PC机的程序中解码, 能够实现手机发送指令, PC机执行相应功能的目的。 我们利用微机开发试验箱共设计了四种功能: 数码管显示输入数字、 电机运动与停止、 LCD屏显示英文与数字、 LCD屏显示汉字报文。运行程序后, 经过输入命令字可进入相应的功能中, 然后根据功能可输入数字、 英文、 汉字的编码, 即可实现相应的显示或动作。 本题目的设计特色主要用两点。一、 经过手机终端的智能控制是家居智能化的一个方向, 目的是经过手机等终端发送指令, 实现对电器设备的控制。本题目实现了手机控制PC机做出响应动作, 而蓝牙的有效范围为10米, 因此能够实现对一个房间内电器的控制, 而且能够随时连接。二、 蓝牙信号的接收。由于实验箱没有可接收蓝牙信号装置, 因此我们接入了一个蓝牙接收模块, 并设计了模块底板, 将信号以串行信号发出, 再经过实验箱上的串口芯片接收, 自己设计相应的通信协议和传输速率。 第二章 硬件结构 2.1 硬件组成 本课题的硬件由PC机、 微型计算机实验系统、 蓝牙接收模块构成。控制信号输入部分由手机经过蓝牙发出信号, 蓝牙接收模块接收, 并经过8251芯片将串行信号转换成并行数据传给PC机。被控部分由实验箱上的LCD屏, 数码管, 直流电 手机蓝牙 微机实验系统 PC机 图2-1 硬件组成原理示意图 图2-2 实物连接图 2.2 芯片简介 2.2.1 8255芯片 一、 简介: 8255是可编程并行1/0接口芯片, 有3个8位并行1/0口.具有3个通道3种工作方式的可编程并行接口芯片( 40引脚) 。其各口功能可由软件选择, 使用灵活, 通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片, 必须提供与主机相连的3个总线接口, 即数据线、 地址线、 控制线接口。同时必须具有与外设连接的接口 A、 B、 C口。由于8255可编程,因此必须具有逻辑控制部分, 因而 8255内部结构分为3个部分: 与CPU连接部分、 与外设连接部分、 控制部分。 二、 与CPU连接部分 根据定义, 8255能并行传送8位数据, 因此其数据线为8根DO〜D7。 由于8255具有3个通道A、 B、 C, 因此只要两根地址线就能寻址A、 B、 C 口及控制寄存器, 故地址线为两根A0〜A1。另外CPU要对8255进行读、 写与片选操作, 因此控制线为片选、 复位、 读、 写信号。各信号的引脚编号如下: (1) 数据总线DB:编号为DO〜D7,用于8255与CPU传送8位数据。 (2) 地址总线AB:编号为A0〜A1,用于选择A、 B、 C 口与控制寄存器。 (3) 控制总线CB:片选信号、 复位信号RST、 写信号、 读信号。当CPU要对8255进行读、 写操作对, 必須先向8255发片选信号选中8255芯片, 然后发读信号或写信号对8255进行读或写数据的操作。 三、 与外设接口部分 根据定义, 8255有3个通道A、 B、 C与外设连接, 每个通道又有8根线与外设连接, 因此8255能够用24根线与外设连接, 若进行开关量控制, 则 8255可同时控制24路开关。各通道的引脚编号如下: (1) A口: 编号为PA0〜PA7,用于8255向外设输入输出8位并行数据。 (2) B口: 编号为PB0〜PB7,用于8255向外设输入输出8位并行数据。 (3) C口: 编号为PC0〜PC7,用于8255向外设输入输出8位并行数据。当8255工作于应答I/O方式时, C 口用于应答信号的通信。 四、 控制器 8255将3个通道分为两组。即PA0〜PA7与PC4〜PC7组成A组, PB0〜 PB7与PC0~PC3组成B组.如图7. 5所示, 相应的控制器也分为A组控制器和B组控制器, 各组控制的作用如下: (1) A组控制器: 控制A口与上C口的输入与输出。 (2) B组控制器: 控制B口与上C口的输入与输出。 五、 8255A的引脚功能说明 8255A采用40引脚的双列直插式封装。40个引脚分为与外设连接的引脚和与CPU连接引脚。 ( 1) 与外设连接的引脚 8255A与外设连接的引脚共有: PA7〜PA0——A端口数据线, 双向三态。 PB7〜PB0——B端口数据线, 双向三态。 PC7〜PC0——C端口数据线, 双向三态。 PB7〜PB0和PC7〜PC0引脚能驱动达林顿复合晶体管( 在5V时输出1mA), 因此B、 C端口一般作为输出端口。 ( 2) 与CPU连接的引脚 8255A与CPU连接的引脚, 有8根数据引脚D7〜D0。它们全部是双向、 三态引脚, 用来与数据总线相连接; 另外, 它还有6根输入控制引脚, 用来接收CPU送来的地址和控制信号。 这些引脚分别是: RESET——输入复位信号, 高电平有效。当RESET有效时, 把8255A内部所有寄存器( 包括控制寄存器)全部清零, 端口A、 B、 C自动设置为输入状态, 三个端口的数据线处于髙阻状态。一旦复位后,若使8255A重新工作必须进行初始化编程。 CS——片选信号输入端, 低电平有效。当CS =0为低电平时, 8255A才被选中, 才能对 8255A进行读写操作。 RD——读命令信号, 输入低电平有效。当RD =0为低电乎时CPU对8255A进行读操作, 读出或状态。 WR——写命令信号, 输入, 低电平有效。WR=0为低电平时, CPU对8255A进行写操作, 把数据或控制字写入8255A。 A1A0端口选择信号, 输入。A1A0的编码输入选择端口。8255A有四个端口地址, 分别为A端口、 B端口、 C端口和控制寄存器。选择方法见表8.5。 表8.5 8255A端口寻址及基本操作 向8255A输出一写操作 CS RD WR A1A0 操作功能 0 1 0 00 选择A端口, 对A端口写操作 0 1 0 01 选择B端口, 对B端口写操作 0 1 0 10 选择C端口, 对C端口写操作 0 1 0 11 对控制寄存器写入控制字 向8255A输出一读操作 CS RD WR A1A0 操作功能 0 0 1 00 选择A端口, 对A端口读操作 0 0 1 01 选择B端口, 对B端口读操作 0 0 1 10 选择C端口, 对C端口读操作 0 0 1 11 非法操作, 数据线处于高阻状态 1 X X XX 未选中, 数据线处于高阻状态 2.2.2 8253芯片 一、 简介 8253内部有三个计数器, 分别称为计数器0、 计数器1和计数器2, 她们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制字, 互相之间工作完全独立。每个计数器经过三个引脚和外部联系, 一个为时钟输入端CLK, 一个为门控信号输入端GATE, 另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器, 还有一个16位的计数初值寄存器CR、 一个计数执行部件CE和一个输出锁存器OL。 执行部件实际上是一个16位的减法计数器, 它的起始值就是初值寄存器的值, 而初始值寄存器的值是经过程序设置的。输出锁存器的值是经过程序设置的。输出锁存器OL用来锁存计数执行部件CE的内容, 从而使CPU能够对此进行读操作。 二、 工作原理 8253具有3个独立的计数通道, 采用减1计数方式。在门控信号有效时, 每输入1个计数脉冲, 通道作1次计数操作。当计数脉冲是已知周期的时钟信号时, 计数就成为定时。 8253芯片有24条引脚, 封装在双列直插式陶瓷管壳内。 1.数据总线缓冲器 数据总线缓冲器与系统总线连接, 8位双向, 与CPU交换信息的通道。这是8253与CPU之间的数据接口, 它由8位双向三态缓冲存储器构成, 是CPU与8253之间交换信息的必经之路。 图2-3 8253内部原理图 2.读/写控制 读/写控制分别连接系统的IOR和IOW, 由CPU控制着访问8253的内部通道。接收CPU送入的读/写控制信号, 并完成对芯片内部各功能部件的控制功能, 因此, 它实际上是8253芯片内部的控制器。A1A0: 端口选择信号, 由CPU输入。8253内部有3个独立的通道, 加上控制字寄存器, 构成8253芯片的4个端口, CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。这4个端口地址由最低2位地址码A1和A0来选择。如表所示。 (1) CS——片选信号, 由CPU输入, 低电平有效, 一般由端口地址的高位地址译码形成。 (2) RD、 WR——读/写控制命令, 由CPU输入, 低电平有效。RD有效时, CPU读取由A1A0所选定的通道内计数器的内容。WR有效时, CPU将计数值写入各个通道的计数器中, 或者是将方式控制字写入控制字寄存器中。CPU对8253的读/写操作。 3.计数通道0~2 每个计数通道内含1个16位的初值寄存器、 减1计数器和1个16位的( 输出) 锁存器。8253内部包含3个功能完全相同的通道, 每个通道内部设有一个16位计数器, 可进行二进制或十进制( BCD码) 计数。采用二进制计数时, 写入的初值范围为0000H~0FFFFH, 最大计数值是0000H, 代表65536。采用BCD码计数时, 写入的初值范围为0000~9999, 最大计数值是0000, 代表10000。与此计数器相对应, 每个通道内设有一个16位计数值锁存器。必要时可用来锁存计数值。 当某通道用作计数器时, 应将要求计数的次数预置到该通道的计数器中、 被计数的事件应以脉冲方式从CLK端输入, 每输入一个计数脉冲, 计数器内容减”1”, 待计数值计到”0”, OUT端将有输出, 表示计数次数到。当某个通道用作定时器时, 由CLK输入一定频率的时钟脉冲, 根据要求定时的时间长短确定所需的计数值。 计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到: 定时系数=需要定时的时间/时钟脉冲周期 ①设置通道: 向方式控制字寄存器端口写入方式选择控制字, 用于确定要设置的通道及工作方式; ②计数/定时: 向通道写入计数值, 启动计数操作; ③读取当前的计数值: 向指定通道读取当前计数器值时, 8253将计数器值存入锁存器, 从锁存器向外提供当前的计数器值, 计数器则继续作计数操作。 ④计数到: 当计数器减1为0时, 经过引脚OUT向外输出”到”的脉冲信号。 计数初值输入存放在初值寄存器中, 计数开始或重装入时被复制到计数器中。 4.方式选择控制字 8253的初始化编程就是对其工作方式的确定。具体实现就是在8253上电后, 由CPU向8253的控制寄存器写入一个控制字, 就能够规定8253的工作方式、 计数值的长度以及计数所用的数制等, 另外根据要求将计数值写入8253的相应通道。 8253的一个方式控制字只决定一个技术通道的工作模式。 三、 8253的通道工作方式 8253中各通道可有6种可供选择的工作方式, 以完成定时、 计数或脉冲发生器等多种功能。8253的各种工作方式如下: 1.方式0: 计数结束则中断 工作方式0被称为计数结束中断方式。当任一通道被定义为工作方式0时, OUT输出为低电平; 若门控信号GATE为高电平, 当CPU利用输出指令向该通道写入计数值WR#有效时, OUT仍保持低电平, 然后计数器开始减”1”计数, 直到计数值为”0”, 此刻OUT将输出由低电平向高电平跳变, 可用它向CPU发出中断请求, OUT端输出的高电平一直维持到下次再写入计数值为止。 在工作方式0情况下, 门控信号GATE用来控制减”1”计数操作是否进行。当GATE=1时, 允许减”1”计数; GATE=0时, 禁止减”1”计数; 计数值将保持GATE有效时的数值不变, 待GATE重新有效后, 减”1”计数继续进行。 显然, 利用工作方式0既可完成计数功能, 也可完成定时功能。当用作计数器时, 应将要求计数的次数预置到计数器中, 将要求计数的事件以脉冲方式从CLK端输入, 由它对计数器进行减”1”计数, 直到计数值为0, 此刻OUT输出正跳变, 表示计数次数到。当用作定时器时, 应把根据要求定时的时间和CLK的周期计算出定时系数, 预置到计数器中。从CLK, 输入的应是一定频率的时钟脉冲, 由它对计数器进行减”1”计数, 定时时间从写入计数值开始, 到计数值计到”0”为止, 这时OUT输出正跳变, 表示定时时间到。 有一点需要说明, 任一通道工作在方式0情况下, 计数器初值一次有效, 经过一次计数或定时后如果需要继续完成计数或定时功能, 必须重新写入计数器的初值。 2.方式1: 单脉冲发生器 工作方式1被称作可编程单脉冲发生器。进入这种工作方式, CPU装入计数值n后OUT输出高电平, 不论此时的GATE输入是高电平还是低电平, 都不开始减”1”计数, 必须等到GATE由低电平向高电平跳变形成一个上升沿后, 计数过程才会开始。与此同时, OUT输出由高电平向低电平跳变, 形成了输出单脉冲的前沿, 待计数值计到”0”, OUT输出由低电平向高电平跳变, 形成输出单脉冲的后沿, 因此, 由方式l所能输出单脉冲的宽度为CLK周期的n倍。 如果在减”1”计数过程中, GATE由高电平跳变为低电乎, 这并不影响计数过程, 仍继续计数; 但若重新遇到GATE的上升沿, 则从初值开始重新计数, 其效果会使输出的单脉冲加宽, 如教材图9-22(b)中的第2个单脉冲。 这种工作方式下, 计数值也是一次有效, 每输入一次计数值, 只产生一个负极性单脉冲。 3.方式2: 速率波发生器 工作方式2被称作速率波发生器。进入这种工作方式, OUT输出高电平, 装入计数值n后如果GATE为高电平, 则立即开始计数, OUT保持为高电平不变; 待计数值减到”1”和”0”之间, OUT将输出宽度为一个CLK周期的负脉冲, 计数值为”0”时, 自动重新装入计数初值n, 实现循环计数, OUT将输出一定频率的负脉冲序列, 其脉冲宽度固定为一个CLK周期, 重复周期为CLK周期的n倍。 如果在减”1”计数过程中, GATE变为无效( 输入0电平) , 则暂停减”1”计数, 待GATE恢复有效后, 从初值n开始重新计数。这样会改变输出脉冲的速率。 如果在操作过程中要求改变输出脉冲的速率, CPU可在任何时候, 重新写人新的计数值, 它不会影响正在进行的减”1”计数过程, 而是从下一个计数操作用期开始按新的计数值改变输出脉冲的速率。 4.方式3: 方波发生器 工作方式3被称作方波发生器。任一通道工作在方式3, 只在计数值n为偶数, 则可输出重复周期为n、 占空比为1: 1的方波。 进入工作方式3, OUT输出低电平, 装入计数值后, OUT立即跳变为高电平。如果当GATE为高电平, 则立即开始减”1”计数, OUT保持为高电平, 若n为偶数, 则当计数值减到n/2时, OUT跳变为低电平, 一直保持到计数值为”0”, 系统才自动重新置入计数值n, 实现循环计数。这时OUT端输出的周期为n×CLK周期, 占空比为1:1的方波序列; 若n为奇数, 则OUT端输出周期为n×CLK周期, 占空比为((n+1)/2)/((n-1)/2)的近似方波序列。 如果在操作过程中, GATE变为无效, 则暂停减”1”计数过程, 直到GATE再次有效, 重新从初值n开始减”1”计数。 如果要求改变输出方波的速率, 则CPU可在任何时候重新装入新的计数初值n, 并从下一个计数操作周期开始改变输出方波的速率。 5.方式4: 软件触发方式计数 工作方式4被称作软件触发方式。进入工作方式4, OUT输出高电平。 装入计数值n后, 如果GATE为高电平, 则立即开始减”1”计数, 直到计数值减到”0”为止, OUT输出宽度为一个CLK周期的负脉冲。由软件装入的计数值只有一次有效, 如果要继续操作, 必须重新置入计数初值n。如果在操作的过程中, GATE变为无效, 则停止减”1”计数, 到GATE再次有效时, 重新从初值开始减”1”计数。 显然, 利用这种工作方式能够完成定时功能, 定时时间从装入计数值n开始, 则OUT输出负脉冲( 表示定时时间到) , 其定时时间=n×CLK周期。这种工作方式也可完成计数功能, 它要求计数的事件以脉冲的方式从CLK输入, 将计数次数作为计数初值装入后, 由CLK端输入的计数脉冲进行减”1”计数, 直到计数值为”0”, 由OUT端输出负脉冲( 表示计数次数到) 。 当然也可利用OUT向CPU发出中断请求。 因此工作方式4与工作方式0很相似, 只是方式0在OUT端输出正阶跃信号、 方式4在OUT端输出负脉冲信号。 2.2.3 8251芯片 一、 8251A的内部结构 图2-4 8251引脚图 二、 8251A的工作过程 ( 1) 8251A发送数据的过程 ①当发送缓冲器为空时, 信号TXRDY有效( 或状态字的D0=1) , 以示发送器准备好, 等待CPU送入数据。 ②CPU将要发送的数据写入8251A的发送缓冲器; ③发送的数据进行”并→串”转换; ④插入起始位、 奇/偶位和停止位或同步字符等, 数据一位一位从TXD端串行输出。 ( 2) 8251A接收数据的过程 ①在RXD端检测到起始位或同步字符; ②开始在RXD线上采集数据; ③将接收到的数据”串→并”转换, 并进行奇偶校验和检查错误; ④将采样到的、 经过变换的8位数据由接收缓冲器送入数据总线缓冲器; ⑤信号RXRDY有效( 或状态字的D1=1) , 以示8251A已接收到一个数据, 待CPU读取。 三、 8251A的初始化 在如前面已经强调过的, 在使用可编程接口之前必须进行初始化, 即在使用8251A进行数据传输前, 对其进行编程, 将相关方式指令字、 命令指令字写入8251A。 8251A初始化的具体步骤如图所示。 图2-5 初始化流程图 四、 8251A的控制字和状态字 关于8251A的方式指令字、 命令指令字和状态字, 应着重对字中各位符号"0"、 "1"含义的理解, 掌握这些字的应用。 ( 1) 方式指令字( 控制字) 格式 方式指令字的格式如图1-4所示: [注]方式指令字的B2B1=00, 此时8251A工作于同步方式, 而字中S2S1的设置不起作用。 图2-6 251A方式指令字格式 ( 2) 命令指令字( 控制字) 格式 命令指令字的格式如图1-5所示: 图2-7 8251A方式指令字格式 ( 3) 状态字 8251A的状态字格式如图1-6所示: (i)状态位RXRDY、 TXE、 SYNDET和8251A的引脚信号RXRDY、 TXE、 SYNDET定义相同, 电平一致; (ii)状态位TXRDY与8251A的引脚信号TXRDY定义相同, 但条件不一样。当发送缓冲器为空时, 状态位TXRDY=1; 而引脚信号TXRDY为高电平的条件是状态位TXRDY=1、 命令控制字TXEN=1, 且输入低电平。 (iii)采用查询方式利用8251A传送数据时, 可经过对状态位RXRDY或TXRDY的测试来进行数据的传送。 图2-8 8251A的状态字格式 2.2.4 12864字符型液晶屏 一、 管脚详解 管脚号 管脚名称 电平 管脚功能描述 1 VSS 0V 电源地 2 VCC 3.0+5V 电源正 3 V0 - 对比度( 亮度) 调整 4 RS(CS) H/L RS=”H”,表示DB7——DB0为显示数据 RS=”L”,表示DB7——DB0为显示指令数据 5 R/W(SID) H/L R/W=”H”,E=”H”,数据被读到DB7——DB0 R/W=”L”,E=”H→L”, DB7——DB0的数据被写到IR或DR 6 E(SCLK) H/L 使能信号 7 DB0 H/L 三态数据线 8 DB1 H/L 三态数据线 9 DB2 H/L 三态数据线 10 DB3 H/L 三态数据线 11 DB4 H/L 三态数据线 12 DB5 H/L 三态数据线 13 DB6 H/L 三态数据线 14 DB7 H/L 三态数据线 15 PSB H/L H: 8位或4位并口方式, L: 串口方式( 见注释1) 16 NC - 空脚 17 /RESET H/L 复位端, 低电平有效( 见注释2) 18 VOUT - LCD驱动电压输出端 19 A VDD 背光源正端( +5V) ( 见注释3) 20 K VSS 背光源负端( 见注释3) *注释1: 如在实际应用中仅使用并口通讯模式, 可将PSB接固定高电平, 也能够将模块上的J8和”VCC”用焊锡短接。 二、 控制器接口信号说明 ( 1) RS, R/W的配合选择决定控制界面的4种模式: RS R/W 功能说明 L L MPU写指令到指令暂存器( IR) L H 读出忙标志( BF) 及地址记数器( AC) 的状态 H L MPU写入数据到数据暂存器( DR) H H MPU从数据暂存器( DR) 中读出数据 ( 2) E信号 E状态 执行动作 结果 高——>低 I/O缓冲——>DR 配合/W进行写数据或指令 高 DR——>I/O缓冲 配合R进行读数据或指令 低/低——>高 无动作   ● 忙标志:BF BF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据.  利用STATUS RD 指令,能够将BF读到DB7总线,从而检验模块之工作状态. ● 字型产生ROM( CGROM)     字型产生ROM( CGROM) 提供8192个此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示( DISPLAY ON),DDRAM 的内容就显示在屏幕上, DFF=0为关显示( DISPLAY OFF)。DFF 的状态是指令DISPLAY ON/OFF和RST信号控制的。 ● 显示数据RAM( DDRAM) 模块内部显示数据RAM提供64×2个位元组的空间, 最多可控制4行16字( 64个字) 的中文字型显示, 当写入显示数据RAM时, 可分别显示CGROM与CGRAM的字型; 此模块可显示三种字型, 分别是半角英数字型(16*8)、 CGRAM字型及CGROM的中文字型, 三种字型的选择, 由在DDRAM中写入的编码选择, 在0000H—0006H的编码中( 其代码分别是0000、 0002、 0004、 0006共4个) 将选择CGRAM的自定义字型, 02H—7FH的编码中将选择半角英数字的字型, 至于A1以上的编码将自动的结合下一个位元组, 组成两个位元组的编码形成中文字型的编码BIG5( A140—D75F) , GB( A1A0-F7FFH) 。 ● 字型产生RAM(CGRAM) 字型产生RAM提供图象定义(造字)功能, 能够提供四组16×16点的自定义图象空间, 使用者能够将内部字型没有提供的图象字型自行定义到CGRAM中, 便可和CGROM中的定义一样地经过DDRAM显示在屏幕中。 ● 地址计数器AC 地址计数器是用来贮存DDRAM/CGRAM之一的地址,它可由设定指令暂存器来改变, 之后只要读取或是写入DDRAM/CGRAM的值时, 地址计数器的值就会自动加一, 当RS为”0”时而R/W为”1”时, 地址计数器的值会被读取到DB6——DB0中。 ● 光标/闪烁控制电路 此模块提供硬体光标及闪烁控制电路, 由地址计数器的值来指定DDRAM中的光标或闪烁位置。 3、 指令说明 模块控制芯片提供两套控制命令, 基本指令和扩充指令如下: 指令表1: ( RE=0: 基本指令) 指 令 码 功 能 令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0   清除 显示 0 0 0 0 0 0 0 0 0 1 将DDRAM填满"20H",而且设定DDRAM的地址计数器(AC)到"00H" 地址 归位 0 0 0 0 0 0 0 0 1 X 设定DDRAM的地址计数器(AC)到"00H",而且将游标移到开头原点位置;这个指令不改变DDRAM 的内容/home设定 显示状态开/关 0 0 0 0 0 0 1 D C B D=1: 整体显示 ON C=1: 游标ON     B=1:游标位置反白允许 进入点 设定 0 0 0 0 0 0 0 1 I/D S 指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位 I/D=1; AC自增, 若光标显示允许, 则光标自动右移1位 I/D=0; AC自减, …… SH=1; 移动显示打开, 若I/D=1; 整屏左移一位, 0右移一位 游标或显示移位控制 0 0 0 0 0 1 S/C R/L X X 设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容  功能  设定 0 0 0 0 1 DL X RE X X DL=0/1: 4/8位数据 RE=1: 扩充指令操作 RE=0: 基本指令操作  设定CGRAM  地址 0 0 0 1 AC5 AC4 AC3 AC2 AC1 AC0 设定CGRAM 地址  设定DDRAM  地址 0 0 1 0 AC5 AC4 AC3 AC2 AC1 AC0 设定DDRAM 地址( 显示位址) 第一行: 80H-87H 第二行: 90H-97H 读取忙标志和地址 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 读取忙标志(BF)能够确认内部动作是否完成,同时能够读出地址计数器(AC)的值 写数据到RAM 1 0 数据 将数据D7——D0写入到内部的RAM (DDRAM/CGRAM/IRAM/GRAM) 读出RAM的值 1 1 数据 从内部RAM读取数据D7——D0 (DDRAM/CGRAM/IRAM/GRAM) 指令表2: ( RE=1: 扩充指令) 指令 指 令 码 功 能 RS R/W D7 D6 D5 D4 D3 D2 D1 D0     待命 模式 0 0 0 0 0 0 0 0 0 1 进入待命模式,执行其它指令都棵终止 待命模式 卷动地址开关开启 0 0 0 0 0 0 0 0 1 SR SR=1: 允许输入垂直卷动地址 SR=0: 允许输入IRAM和CGRAM地址   反白   选择 0 0 0 0 0 0 0 1 R1 R0 选择2行中的任一行作反白显示, 并可决定反白与否。初始值R1R0=00, 第一次设定为反白显示, 再次设定变回正常   睡眠   模式 0 0 0 0 0 0 1 SL X X SL=0: 进入睡眠模式 SL=1: 脱离睡眠模式   扩充   功能   设定 0 0 0 0 1 CL X RE G 0 CL=0/1: 4/8位数据 RE=1: 扩充指令操作 RE=0: 基本指令操作 G=1/0: 绘图开关  设定绘图RAM  地址 0 0 1 0 AC6 0 AC5 0 AC4 AC3 AC3 AC2 AC2 AC1 AC1 AC0 AC0 设定绘图RAM 先设定垂直(列)地址AC6AC5…AC0 再设定水平(行)地址AC3AC2AC1AC0 将以上16位地址连续写入即可 备注;当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。 2.2 蓝牙收发模块 2.2.1 概述 BLK-MD-BC04-B蓝牙模块是深圳市博陆科电子科技有限公司专为智能无线数据传输而打造, 采用英国 CSR 公司 BlueCore4-Ext 芯片, 遵循V2.1+EDR蓝牙规范。 本模块支持 UART,USB,SPI,PCM,SPDIF 等接口, 并支持SPP蓝牙串口协议, 具有成本低、 体积小、 功耗低、 收发灵敏性高等优点, 只需配备少许的外围元件就能实现其强大功能。 2.2.2 特点 蓝牙 V2.1+EDR 蓝牙 Class 2 内置 PCB 射频天线 内置 8Mbit Flash 支持 SPI 编程接口 支持 UART,USB,SPI,PCM 等接口 3.3V 电源 经过 REACH、 ROHS 认证 2.2.3 应用领域 该模块主要用于短距离的数据无线传输领域。能够方便的和 PC 机的蓝牙设备相连, 也能够两个模块之间的数据互通。避免繁琐的线缆连接, 能直接替代串口线。 ※ 蓝牙无线数据传输; ※ 工业遥控、 遥测; ※ POS 系统, 无线键盘、 鼠标; ※ 交通,井下定位、 报警; ※ 自动化数据采集系统; ※ 无线数据传输; 银行系统; ※ 无线数据采集; ※ 楼宇自动化、 安防、 机房设备无线监控、 门禁系统; ※ 智能家居、 工业控制; ※ 汽车检测设备; ※ 电视台的互动节目表决设备; ※ 政府路灯节能设备 ※ 无线 LED 显示屏系统 2.2.4 功能框图 图2-8 蓝牙模块功能框图 2.2.5 应用电路图 图2-9 应用电路图 2.2.6 主从设置及其它配置 状态指示 LED: PIO(1) 用于指示蓝牙模块所处状态, LED 灯闪烁方式与蓝牙模块状态对应见下表: 模式 LED 显示 模块状态 从模式 均匀快速闪烁(200ms-on,200ms-off) 等待配对 长亮 建立连接 第三章 软件结构 3.1 程序子模块组成 3.1.1 设计思路 1、 基本功能 经过输入命令字可进入相应的功能中: ⑴、 数码管显示输入数字 ⑵、 电机运动与停止 ⑶、 LCD屏显示英文与数字 ⑷、 LCD屏显示汉字报文。 在各个功能可输入数字、 英文、 汉字的编码, 即可实现相应的显示或动作。 2、 设计过程 在本创新课程设计中根据复杂程序设计思想——模块化程序设计, 首先分析和确定程序设计的总体目标; 然后将总体目标划分为若干模块, 具体的对每个功舵的实现进行设计。 裎序设计的思路按以下顺序进行: ♦分析与确定程序总体设计目标. ♦蓝牙接收部分的选择. ♦蓝牙接收电路的设计、 焊接与调试. ♦定义毎个模块的具体任务 ♦编写源程序并进行调试。程序调试过程中现将各个模块进行调试, 然后和进行整体调试。 ♦完成实舱报告。 3.1.2 程序模块组成 ♦ 主程序 主程序首先是对各个芯片及外设的初始化, 然后根据串口中断中收到的数据判断命令字, 根据命令字进入相应的程序块中执行相应动作。 主程序实际是一个死循环, 当进入主程序后判断命令字, 只有输入正确命令字才进入相应的程序块中。再程序块中执行相应功能时, 如果再有命令字输入就会再次跳到命令字判断程序。 ♦ 显示实现子程序 对LCD的操作主要有两个方面: (1) 在使用之前要先对其进行初始化。这次实验均是对各文字显示, 因此只涉及对基本显示的命令设置
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服