基于鼠标的随动系统设计毕业设计论文(编辑修改稿)内容摘要:
() 模块最佳工作电压 : 字符尺寸 : (W H)mm 1602LCD各引脚接口说明如表 21所示 : 表 21:引脚接口说明表 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据 /命令选择 12 D5 数据 5 R/W 读 /写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 硬件原理图 1602液晶显示模块可以和单片机 AT89C51直接接口,电路如图 图 28 1602与 AT89C51接口电路图 步进电机驱动设计 步进电机是将 电脉冲信号转换成 角位移或 线位移的 开环控制元件。 步进电机的角位移和脉冲数成正比,转速和脉冲频率成正比。 我选用的是四相 8 拍步进电机,用单极性直流电源供电。 只 要能对步进电机得各项绕组按照适当的时序通电,就可以使步进电机转动。 18 步进电机的 工作是一步步进马达转动, 它的 目的是 将 脉冲电信号 转变为 相应的角位移或线位移。 步进电机 的转速的高低,胜诉或者降速,启动或者停止取决于电脉冲的频率高低或者有没有信号。 图 29 是该四相步进电机工作原理示意图。 图 29 步进电机的工作原理示意图 开始时, 给 开关 SB供电 , 其余三项 断开, B 相 的 磁极 与 转子 的 0 和 3 号齿 相 对齐, 而且 ,转子的 1 号和 4号齿 便与 C、 D两 相绕组 的 磁极产生 相应的 错齿, 2 号和 5号齿 也 和 D、 A亮 相绕组 的 磁极产生 相应的 错齿。 当给开 关 SC 供电 , 其余三项 断开时,由于 C相绕组的磁力线和 4号齿之间磁力线的作用,使转子转动, 4号齿和 C相绕组的磁极对齐。 而 0、 3号齿和 A、 B相绕组产生错齿, 5号齿就和 A、 D相绕组磁极产生错齿。 给 四相绕组 按合适的顺序 轮流供电, 步进电机 转子 就 会沿 ABCD的 方向转动。 步进电机是不可以直接将其接到交直流的电源上就工作,所以必须使用步进电机的驱动器。 设计中的步进电机的驱动系统由单片机、 ULN2020 芯片和步进式电机的本体一共三个部分组合而成。 ULN2020 是一款耐高压大电流的达林顿管驱动器,有 7个NPN 达林顿管。 单片机发出不仅脉冲信号与方向信号,每当发出了一个步进脉冲,步进电机的驱动器就会驱动步进式电机的转子旋转一个角度,单片机的方向信号决定步进电机的旋转方向是顺时针还是逆时针。 步进电机驱动电路 此电路是步进电机的驱动部分,我选用的是 ULN2020 芯片来驱动的。 如图 210。 19 图 211 步进电机驱动部分 电源部分 电源部分利用 LM7812 和 LM7805 芯片得到 12V 和 5V的电压,其中 12V 电压给步进电机供电, 5V 电压则给单片机供电。 分别如图 21图 213 所示。 图 212 产生 12V的电压给步进电机供电 20 图 213 产生 5V的电压给单片机供电 复位电路设计 8051 的复位有自动上电抚慰和人工按钮复位两种,在本设计中,我们采用开关复位电路。 电路如下图 所示: 图 214 按键复位电路 晶振电路设计 石英晶振起振,会在 XTAL2 线上输出一个 3V 左右的正弦波,以便使 MSC51 单片机内的 OSC 电路按石英晶振相同频率自激震荡。 通常, OSC 的输出时钟频率 fOSC 为,典型值为 12MHz 或。 电容 C01 和 C02 可以帮助起振,典型值为 30pf,调节它们可以达到微调 fOSC 的目的。 石英晶振电路如下图所示: 图 215 石英晶振电路 21 第三章 软件设计 总体方案流程图 图 31 接口程序流程 开 始 1602 初始化 1602 显示 x,y PS2 鼠标初始化 1602 显示坐标初始值 1602 显示鼠标当前坐标值 步进电机参数设置 X,Y 当前坐标值转化为两步进电机脉冲数 步进电机按脉冲数运动 显示按下左键按下右键 显示按下左键 显示按下右键 按下左键和右键 按下左键 22 鼠标接口程序模块 主机和 PS2的鼠标 之间的 信息传输 是按照 字节 进行的 ,主机一般的命令 为 1个 字节, 或者 2字节 (个别命令) ,鼠标 返回到主机的 命令响应是 1, 2或 3个字节,鼠标 主动发送的信息 固定为 3个字节。 辅助位 加字节就构成了 一个消息帧字节,包括一个启示位,一个停止位, 一个 校验位和 8位数据,如图 2,每个 宽 度完全 由鼠标控制 显示。 在 PS2接口中,信息的整个传送的活动决定权根据主机来决定, 传送的节奏是由鼠标来控制。 没当鼠标根据需要来发送信息的时侯,它会首先检查一下时钟是否处于高电平,在确认之后,在其数据线上开始发起始位,然后经过时钟的通知,主机来接收数据,每个时钟的脉冲到时下降沿时,主机开始采样数据,共 11 个时钟的脉冲经过后,字节的传送结束,此时鼠标发现,若时钟是低电平,则说明此时主机是禁止将鼠标使用到总线,从而发送的过程不能够启动。 图 33 PS2接口的信息上行(鼠标直到主机)时序 当主机在需要发送指令的时侯,它首先会把时钟强制定在低电平于 100μ s 以上,之后于 数据线上发起起始位,进而释放时钟线,并通知鼠标进行接收数据,同时主机必须恰好在每一个时钟脉冲高电平的期间放置下一个数据在数据线上, 11 个时钟脉冲过后,字节的传送结束,如果信息的上行的过程仍正在进行当中,主机发出的 100μ s低电平将迫使鼠标终止发送,转入数据接收过程。 图 34 PS2接口信息下行(主机到鼠标)时序 23 (详细见附录 2) //函数声明 void INT1_init(void)。 //外部中断 INT0初始化 void delay120us(void)。 //延时 120us 函数定义 void mouse_write_dat(unsigned char dat)。 //发送数据 void mouse_read_dat(void)。 //读出数据 void mouse_data_process(void)。 //数据处理 void mouse_init(void)。 //鼠标初始化 开始 程序初始化 发送数据 读出数据 数据处 理 结束 奇偶校验 Y N 24 显示程序模块 1602液晶模块内部的控制器共有 11条控制指令,如表 22所示: 表 22 1602模块内部控制指令 序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示 0 0 0 0 0 0 0 0 0 1 2 光标返回 0 0 0 0 0 0 0 0 1 * 3 置为输入模式 0 0 0 0 0 0 0 1 I/D S 4 显示开 /关控制 0 0 0 0 0 0 1 D C B 5 光标或者字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL N F * * 7 置字符存贮器的地址 0 0 0 1 字符存贮器的地址 8 置数据存贮器的地址 0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数到 CGRAM或 DDRAM) 1 0 要写的数据内容 11 从 CGRAM或 DDRAM读数 1 1 读出的数据内容 表 23:基本操作时序表 读状态 输入 RS=L, R/W=H, E=H 输出 D0— D7=状态字 写指令 输入 RS=L, R/W=L, D0— D7=指令码, E=高 脉冲 输出 无 读数据 输入 RS=H, R/W=H, E=H 输出 D0— D7=数据 写数据 输入 RS=H, R/W=L, D0— D7=数据, E=高脉冲 输出 无 RAM地址映射及标准字库表 液晶显示模块是一个慢显示器件,所以在执行下一条指令之前之前一定要检查模块的忙标志为低电平,也就是说,看它是不是已经完成上一条指令的执行。 如果要显示字符,首先需要先输入它的字符地址,也就是说需要告诉模块在哪个位置显示字符,图 26是 1602的内部显示地址。 图 26 1602LCD内部显示地址 例如第一行第五个字符的地址是 05H,那么直接写入 05H,这样不能将光标定位在第一行第五个字符的位置,因为写入显示地址时要求最高位 D7恒定为高电平 1,所以 25 实际的数据应该是 00000101B( 05H) +10000000B(80H)=10000101B。 一般的 1602液晶显示模块内部的 CGROM已经存储了 160个不同的点阵字符图形,如表 24所示,每一个字符都有一个固定的代码,比如大写的英文字母“ Q”的代码是01010001B( 51H),显示时 CGROM把地址 51H中的字符图形显示出来,我们就可以看到字母“ Q”。 表 24CGROM和 CGRAM中字符代码与字符图形对应关系 26 (祥见附录 3) //函数声明 void LCD_busy (void)。 //检测 LCD是否忙 void LCD_init (void)。 //LCD初始化 void LCD_cmd (unsigned char cmd)。 //写入指令 void LCD_dat (unsigned char dat)。 //写入数据 void LCD_pos (unsigned char x, unsigned char y)。 //显示定位 void LCD_prints(unsigned char x, unsigned char y, unsigned char *s)。 //定位输出字符串 void LCD_printn(unsigned char x, unsigned char y, unsigned int num)。 //定位输出 16位二进制数字 开始 LCD 初始化 写入指令 写入数据 显示定位 输出定位字符串 输出二进制数字 结束 27 步进电机随动定位程序模块 (详见附录 4) static unsigned int count。 //计数 static int step_index。 //步进索引数,值为 0- 7 static bit turn。 //步进电机转动方向 static bit stop_flag。 //步进电机停止标志 static int speedlevel。 //步进电机转速参数,数值越大速度越慢,最小值为 1,速度最快 static int spcount。 //步进电机转速参数计数 static int x。 void delay(unsigned int endcount)。 //延时函数,延时为 endcount* 毫 秒 void gorun()。 //步进电机控制步进函数 28 致 谢 历时一个月的毕业设计终于告一段落,我的毕业设计是基于单片机的随动系统设计,由于自己在单片机的学习方面存在纰漏,所以在做毕业设计的过程中我遇到了很多困难和问题,所以向老师咨询了很多,我的辅导老师也竭尽全力的给了我很多鼓励和帮助,对我的设计提出了很多好的建议和方案,在此非常感谢他。 然后还要感谢的是我的同学,他们在专业方面和资料搜集方面给了我很多帮助,能在完成自己的毕业设计的前提下花很多 时间帮助我,我表示非常敬佩和感谢。 我的毕业设计能够顺利完成离不开他们的帮助,在这里深表感谢。基于鼠标的随动系统设计毕业设计论文(编辑修改稿)
相关推荐
( 1)本工程选择优质的袋装水泥,在施工期间,作好与水泥供应商的沟通,要求水泥供应商对我公司作出承诺,以保证施工的正常运转。 ( 2)施工期间,确保 砼、钢材等各种工程材料的供应,与供应商签订合同。 ( 3)公司确保资金流量。 施工机械设备、机具保证措施 ( 1)根据本工程特点,配备相适应的施工机械设备、机具,机械设备投入使用前必须提前检修、保养,确保进入施工现场设备、机具运行良好
时接收建设单位及监理和政府机构(工程质量监督站)的指导和监督。 施工准备过程阶段的质量管理 制定进度计划,做到文明施工、均衡施工,为工程质量稳定创造良好条件。 组织有关人员认真研读图纸,明确设计意图,认真会审图纸清除由于图纸差错造成的质量隐患。 加强对所进材料、成品的质量控制和验收,取得可靠质量保证依据,以保证材料及质量的可靠性。 施工过程阶段的管理 施工前做好技术交底工作,使施工人员了
孔口四周必须浇筑混凝土护圈,并在护圈上设置围栏围护,应高出地面。 孔内作业时,孔口上面必须有人监护,并在孔口设置水平可移动活动盖板,以防土块、砖、杂物、操作人员掉入孔内伤人。 挖出的土方应及时运离孔口,不得堆放在孔口四周 1米 范围内, 混凝土 围 护 上不得放置 工具和站人。 孔内作业人员 必须头戴安全帽、身系安全带,特殊情况下还应戴上防毒防尘面具。 利用吊桶运土时,必须采取相应的防范措施
动性的增大,人们对食品消费日益呈现出多样化、方便化的趋势。 非时令食品消费、在外就餐消费等活动大大增多,食品消费不断上升,也使得群体性的食品 安全问题变得更加严重 [13]17。 另外, 食品安全的信息网络建设明显滞后。 目前我国食品信息网络不健全,食品企业分散,沟通渠道不畅,许多信息难以收集、传递和及时处理,食品追溯管理缺乏现实的信息基础设施支持,造成我国食品产业链连接不紧、难于管理和监督
期性型终端点。 其中控制终端点主要用于 USB 设备的枚举和虚拟串口的波特率和数据类型(数据位数、停止位和起始位)设置的通信。 输出方向的非同步终端点用于主机向从设备发送数据,相当于传统物理串口中的 TXD 线(从微控制器的角度 14 看),输入方向的非同步终端点用于从设备向主机发送数据,相当于传统物理串口中的 RXD 线。 这样即可保证与上位机的正常通信。 图 CDC 分类 15 3
集成功率放大器。 图 110 是集成功率放大器 LA4100( LA410 LA4102)的内部电路图,它们由输入级、中间级(第二级和第三级)和输出级三部分组成。 输入级是由 T T2 组成的单端输入、单端输出的差动放大电路。 外接电源 EC 经过T R R5和 T5 组成的分压网络,在端点 10 上产生直流电压 U10,其值等于 EC/2。 该直流电压通过电阻 R1加到 T1 的基极,作为