微处理器程序设计-以51单片机为例 课件 项目4 智慧校园一卡通应用及维护 任务4.3_第1页
微处理器程序设计-以51单片机为例 课件 项目4 智慧校园一卡通应用及维护 任务4.3_第2页
微处理器程序设计-以51单片机为例 课件 项目4 智慧校园一卡通应用及维护 任务4.3_第3页
微处理器程序设计-以51单片机为例 课件 项目4 智慧校园一卡通应用及维护 任务4.3_第4页
微处理器程序设计-以51单片机为例 课件 项目4 智慧校园一卡通应用及维护 任务4.3_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目四智慧校园一卡通应用及维护

冯蓉珍

《微处理器程序设计》任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务目标

有一种医疗设备叫作手术显微镜,医生通过手术显微镜对病人实施手术。

显微镜镜头部件中连接有直流电机,通过直流电机转动调节镜头焦距,以便医生能清晰地看到手术视野。显微镜镜镜头里的照明灯通过光纤聚光后照亮手术视野,医生手术时双手持有手术刀,无法用双手对显微镜镜头进行焦距和光源亮度的调节。通常会给手术显微镜配置一个脚踏控制器,脚踏控制器上有上、下、左、右四个按键,左、右按键控制显微镜直流电机正、反转,上、下按键调节灯光亮、暗。脚踏控制器和显微镜镜身进行串行通信。

通过本任务的设计与制作,培养学生利用串行通信技术解决各个领域中智能设备数据通信的问题,进一步提高学生对智能设备的应用与维护。知识准备

本项目中需要采集和甲机连接的四个按键的状态,并通过串口发送给乙机。乙机接收到数据后,控制和乙机相连的灯光亮度及镜头的聚焦点。

完成本项目需要具备前几个项目涉及的串行通信和通过继电器控制直流电机的知识点。同时,需要利用独立式按键的状态变化来判断按键是否被按下。

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施

医生踩下脚踏控制器上左侧按键,电机反正;踩下右侧按键,电机正转;踩下上面的按键,灯光调亮;踩下下面的按键,灯光调暗。脚踏控制器中有一微处理器,连接上下左右四个按键开关,显微镜镜头里也有一个微处理器与电机和光源相连接。脚踏控制器中的微处理器和显微镜镜头里的微处理器通过串口进行通信。1、硬件电路设计

在仿真电路图中,甲机是在脚踏控制器中的微处理器,乙机是显微镜镜头里的微处理器。任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施

甲机的P1.0~P1.3连接四个按键。甲机的TXD和乙机的RXD连接,甲机的RXD和乙机的TXD连接。甲机电路图如图

图4-16脚踏控制(甲机)电路图

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施

乙机的串口和甲机连接,P1.0~P1.2连接3个LED灯,模拟显微镜镜头里的光源。电机两极连接P3.6和P3.7。图4-17乙机控制电路图

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施2、软件编程

甲机主函数对串口中断进行初始化设置,定时器1工作方式2,11.0592MHz晶振下,波特率翻倍,波特率设定为9600bps时,定时器1寄存器初始值为0xfa。串口通信方式1,10位数据异步通信,波特率可设置。启动定时器1,允许串行口中断。初始化串口发送的数据为0。TMOD=0X20;//00100000,定时器1工作方式2,TH1=0XFA; //波特率为9600,11.0592MHz晶振,波特率翻倍TL1=0XFA;PCON=0X80;//波特率翻倍SCON=0X50;//01010000 串口工作方式1,10位异步通信,波特率可变,允许串口接收数据TR1=1;//启动定时器1EA=1;//允许总中断ES=1;//允许串行中断send_data=0;//按键值初始化任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施主函数循环执行以下语句。while(1){//1读键盘值

readkey();//2发送按键值

if(send_en){

SBUF=send_data;

while(!TI);

TI=0; send_en=0;//发送完毕后不允许串口发送数据,直到下次有按键按下}任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施

首先读取按键状态并获得对应的按键值,然后将按键值通过串口发送给乙机。为了避免重复发送按键值,在读取按键子函数中,有按键按下,给send_data变量赋予不同的键值,同时置为send_en为1,表示允许发送数据。在串口发送完数据后,send_en清0,表示不允许串口发送数据,只有到下一次有按键按下,才允许串口发送。

踩下左键不松开时,发送1给乙机,表示电机应该反转;如果左键松开时判断右键是否被踩下,如果踩下了右键,则发送2给乙机,表示电机应该正转;否则表示左右键都没踩下,发送5给乙机,表示电机应该停止。如果踩下上面或下面的按键,踩一下,亮度档位调整一档。左右键是否踩下利用判断是否为低电平来实现,而上下键踩下的判断则是利用电平跳变的方式,即刚才按键松开现在按键踩下才认为是一次按键。任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施代码如下://读取按键状态,获得按键值voidreadkey(){//左右按键为按下时发送数据1或2,松开后发送5if(key_left==0){//左键按下send_data=1; send_en=1;//允许串口发送数据}elseif(key_right==0){ //左键松开,如果右键踩下 send_data=2; send_en=1;//允许串口发送数据}

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施else{ //右键松开send_data=5; send_en=1;//允许串口发送数据}if((key_up==0)&&(key_up_last)){send_data=3; send_en=1;//允许串口发送数据}key_up_last=key_up;if((key_down==0)&&(key_down_last)){send_data=4; send_en=1;//允许串口发送数据}key_down_last=key_down;}

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施乙机主函数初始化和甲机一致,并初始化接收数据为0,灯光档位为0档。receive_data=0;//接收数据初始化light_value=0;//灯光档位初始化为0乙机接收甲机串口发送来的数据,利用串口中断接收数据。串口中断服务函数如下:voidmyrec()interrupt4using0{if(RI){

receive_data=SBUF; RI=0;}}

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施

主函数的while(1)循环中反复根据收到的数据进行调焦和调光。当收到的是脚踏左键踩下的数据1,电机反转;收到的脚踏右键踩下的数据2,电机正转;收到脚踏上键踩下的数据3,调光档位加1;收到脚踏下键踩下的数据4,调光档位减1。代码如下:

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施switch(receive_data){ case1://电机反转ctr1=0;ctr2=1;break;

case2://电机正转ctr1=1;ctr2=0;break;

case3://灯光调亮一档light_value++;

if(light_value>3)//超过最高亮度,回到最低亮度

light_value=0;

receive_data=0;//收到数据被强制更新为0,否则调光档位会不停加1

break;

case4:light_value--;

if(light_value<0) light_value=3;

receive_data=0;break;

default://电机停止ctr1=0; ctr2=0;break;}//switch

任务4.3企业案例

——手术显微镜焦距及光源系统智能控制任务实施调光部分代码如下://调光

switch(light_value){ case1://灯光1档,亮一个灯led1=0;led2=1;led3=1;break;

case2://灯光2档,亮二个灯led1=0;led2=0;led3=1;brea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论