微机原理设计报告创新型实验设计报告题目基于蓝牙通信的无线控制系统学院自动化学院专业电气工程及其自动化成员陈旭3012203270吴海成3012203292指导教师刘迎澍摘要随着现代互联网技术的发展,物联网和智能家居概念开始逐步发展。智能家居是以住宅为平台,利用综合布线技术、网络通信技术、自动控制等技术将生活有关的设施集成,构建高效的住宅设施与家庭日程管理系统,提升家居安全性、便利性,并能实现环保节能的居住环境。蓝牙技术是一种尖端的开放式无限通讯标准,蓝牙无线技术使用全球通用的频带(2.4GHz)蓝牙成本低,体积小,比802.11协议更具有移动性,并且一般的手持平台(手机,PC机,Pad)均具有蓝牙功能。本系统是典型的蓝牙无线通信控制系统,包括手持设备指令的发送、处理系统的接收、处理、和功能的具现化。本文基于市场常见的蓝牙通讯模块(HC-06)和8086微机实验平台结合,利用现有的资源实现简单的基于蓝牙通信的无线控制系统的搭建。关键词:蓝牙;8086微机平台;串口通信目录第一章绪论1.1课程介绍1.2题目简介第12二章硬件结构2.1硬件组成2.2芯片简介2.2.18255芯片2.2.28253芯片2.2.38251芯片2.2.412864液晶显示模块2.3蓝牙接收模块第三章软件结构3.1程序子模块组成3.1.1概况3.1.2模块组成3.2程序运行详细流程3.2.1主程序流程图3.2.2中断子程序流程图3.2.33.2.43.2.53.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屏,数码管,直流电图2-1硬件组成原理示意图图2-2实物连接图PC机微机实验系统手机蓝牙2.2芯片简介2.2.18255芯片一、简介: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.58255A端口寻址及基本操作向8255A输出一写操作CSRDWRA1A0操作功能01000选择A端口,对A端口写操作01001选择B端口,对B端口写操作01010选择C端口,对C端口写操作01011对控制寄存器写入控制字向8255A输出一读操作CSRDWRA1A0操作功能00100选择A端口,对A端口读操作00101选择B端口,对B端口读操作00110选择C端口,对C端口读操作00111非法操作,数据线处于高阻状态1XXXX未选中,数据线处于高阻状态2.2.28253芯片一、简介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-38253内部原理图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的通