微机接口项目之止血带的设计课件资料.docx
《微机接口项目之止血带的设计课件资料.docx》由会员分享,可在线阅读,更多相关《微机接口项目之止血带的设计课件资料.docx(32页珍藏版)》请在冰豆网上搜索。
![微机接口项目之止血带的设计课件资料.docx](https://file1.bdocx.com/fileroot1/2023-1/4/70ab5bb8-4b5e-45f9-bc69-0807856153ee/70ab5bb8-4b5e-45f9-bc69-0807856153ee1.gif)
微机接口项目之止血带的设计课件资料
止血带测控设计
姓名:
课程名称:
接口项目
指导教师:
刘宝华
2010年11月
摘要
针对电子止血带这一新型医疗器械的出现,认真分析其操作过程和止血原理,然后利用现有实验条件模拟电控充气式止血带工作原理。
具体实验内容包括实验器材准备、元器件的选择,电路原理图的绘制(利用Protel绘制原理图和PCB图),模拟电路运行论证,电路焊接,软件编程及调试,最终给出相关数据图表,总结实验现象,得出实验结论。
前言
随着医疗水平的高速发展和突发事故的不断增多,止血带的应用也愈发广泛。
作为急救手段,止血带作用于较大的血管上,使得出血即刻停止,在手术中使用,可以将术中失血减少到最低限度,从而减少输血量,节省了止血时间,可使麻醉和手术时间缩短,此外在肢体恶性肿瘤手术时,在肢体的适当部位利用止血带还可以防止肿瘤细胞扩散。
止血带更以作为战场上四肢出血的第一道就救治手段成为了战斗部队的标准装备。
目前正在使用的止血带的种类很多,有一次性止血带,包括点连式一次性止血、一次性连抽式止血带,橡皮止血带,充气止血带,包括手动式充气止血带和电动式充气止血带。
我们设计的就是简易的电控充气式止血带。
工作原理及电路设计
首先将气囊绑于大臂(假设出血处),打开开关,设定压力值开始充气,达到压力值时保持不变,LCD显示当前脉搏,数码管显示当前压力值,当压力过大或过低时蜂鸣器报警,复位(止血成功)后气囊放气,止血完成。
电路原理图见附录一。
工作原理:
1、电源:
电源电路将220V电压分别转换为+12V、-12V、+5V供整个系统的工作电压;
2、启动气泵:
微处理器控制微型气泵向袖带充气,微型电磁气阀关闭使整个气路处于封闭状态;
3、信号采集:
压力传感器与袖带相通,压力传感器将袖带中的气体压力转换为电信号,电信号经放大器放大后输入到AD0809转化器转化为数字信号在试验仪的数码管上显示出来,一但达到设定压力值后气泵关闭;
4、压力继电器起监测所充气体的临界值;
5、释放压力:
使用结束后,微处理器控制气阀打开,释放气路的气体。
实验器材及主要元器件:
1、可编程并行I/O接口芯片8255
8255管脚
8255内部组成框图
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
2、集成块CD4051
CD4051引脚功能
CD4051是单8通道数字控制模拟电子开关,有三个二进制控制输入端A、B、C和INH输入,具有低导通阻抗和很低的截止漏电流。
幅值为4.5~20V的数字信号可控制峰值至20V的模拟信号。
例如,若VDD=+5V,VSS=0,VEE=-13.5V,则0~5V的数字信号可控制-13.5~4.5V的模拟信号。
这些开关电路在整个VDD-VSS和VDD-VEE电源范围内具有极低的静态功耗,与控制信号的逻辑状态无关。
当INH输入端=“1”时,所有的通道截止。
三位二进制信号选通8通道中的一通道,可连接该输入端至输出。
其中VEE可以接负电压,也可以接地。
当输入电压有负值时,VEE必须接负电压,其他时候可以接地。
CD4051引脚功能说明
引脚号
符号
功能
124512131415
IN/OUT
输入/输出端
91011
ABC
地址端
3
OUT/IN
公共输出/输入端
6
INH
禁止端
7
VEE
负电压端
8
Vss
数字信号接地端
16
VDD
电源+
3、恒流源3CR3
恒流源3CR3封装图
恒流源3CR3是低温度系数、高电流稳定的精密恒流器件,输出电流0.5~100mA,起始电压小于2V。
外观引脚及外接电阻如图,引脚标号由金属壳标记处顺时针读取,输出电流I=1.234V/R。
4、集成块LM336
LM336封装图
LM336-2.5集成电路是精密的2.5V并联稳压二极管。
这些单片基准如低温度系数2.5V齐纳二极管那样工作,动态阻抗为0.2Ω。
电路上提供的第三个端子能方便地对基准电压和温度系数进行微调。
该系列器件适用于作数字电压表、电源或运放电路的精密2.5V电压基准(Vz)。
2.5V电压基准使它能方便地从5V逻辑电源得到稳定的基准。
因为该系列是并联稳压器,所以它们可用作正或负电压基准。
5、集成块ULN2003
ULN2003封装图及内部逻辑
ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成。
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。
6、运放LM725
LM725应用
LM725是高精度单运算放大器,具有调零端。
7、运放LF353
LF353内部逻辑图
LF353的总体电路设计还是比较简洁的,此类拓扑在目前的功率运算放大器设计中是主流:
输入放大级是由两只P沟道JFET组成的共源极差分电路,并且用镜像恒流源做负载来提高增益;在输入差分放大级和主电压放大级之间是一个由射极跟随器构成的电流放大级,用来提高主电压放大级的输入阻抗和共源极差分电路的负载增益;主电压放大级是一个简单的单级共射极放大电路,为了保证放大器的稳定性,在主电压放大级的输出端到输入差分放大级的输出端加入了一个电容补偿网络,跟补偿电容并联的二极管保证单级共射极放大电路构成的主电压放大级不进入饱和状态工作;输出电流放大级是NPN和PNP构成的互补射极跟随器,两个100Ω的电阻用来稳定输出电流放大级的静态电流,200Ω的电阻用来限制输出短路电流。
8、微型气泵
9、微型电磁气阀
10、压力传感器MPX53GP
硬件线路连接图:
由8086作为主控微处理器,其程序框图如下:
开始
输入设定值
充气
报警
N
判断是否达到设定值
Y
数码管显示当前
压力值
放气
结束
实现功能:
1、能够随时控制气泵、气阀的工作状态;
2、能通过键盘输入数据并在数码管上显示出来;
3、将袖带压力在数码管上显示出来;
4、监测整个气路的压力变化,如果在气压低于一定状态是能够报警;
5、检测整个气路的压力变化,如果在出现漏气或压力升高能够报警。
程序源代码见附录二。
调试及结论
初次调试由于设备故障,数码管显示错误而失败;更换实验台,检查线路正确后再次调试,达到了预期目标,袖带充气正确,设定值正确,保压稳定,正常显示当前压力值。
经过两周的接口技术项目实验过程,加深了我们对微机原理及接口技术这门理论的理解和运用,虽然时间很短,没能让我们真正做到自主设计电路板和编程,但通过操作过程、实验现象以及结果,为我们将来的课程设计和毕业设计奠定了一定的基础。
在项目进行过程中,我组四人确定了各自的任务和目标,努力做到每个人都能在项目中得到锻炼和学习,相互交流、促进发展。
在动手实践的过程中也遇到了各种问题,有设备的问题也有我们自己的失误,但这并不影响我们组的进展速度,由于时间所限,我们能做到的已经尽力展现,并保证在以后的任务中做到最好。
参考文献
[1]邵时.微机接口技术(第二版).北京.清华大学出版社,2008.1:
63-92
[2]杨立.微机原理与接口技术.天津.天津大学出版社,2010.1
[3]柯妙娟.手术中采用止血带的方法及注意事项[J].中国健康月刊(学术版),2011,3
附录一
附录二
;按下三个键:
A输入值;B充气,直到与输入值相等;C个放气
.MODELTINY
WR_COM_AD_LEQU0D004H;写左半屏指令地址CS3
WR_COM_AD_REQU0D000H;写右半屏指令地址
WR_DATA_AD_LEQU0D006H;写左半屏数据地址
WR_DATA_AD_REQU0D002H;写右半屏数据地址
RD_BUSY_ADEQU0D001H;查忙地址
RD_DATA_ADEQU0D003H;读数据地址
XEQU0B8H;起始显示行基址
YEQU040H;起始显示列基址
FirstLineEQU0C0H;起始显示行
COM_8255EQU0E003H;CS2
PA_8255EQU0E000H
PC_8255EQU0E002H
CMD_8279EQU0BF01H;CS5
DATA_8279EQU0BF00H
ADDR_08091EQU0F000H;CS1
ADDR_08092EQU0F003H
Con_8253EQU0D003H
T0_8253EQU0D000H
IO8259_0EQU0C000H
IO8259_1EQU0C001H
EXTRNDisplay8:
NEAR
.STACK100
.DATA
BUFFERDB8DUP(?
)
LastADDB0
DingzhiDB0
Dingzhi1DB0
Dingzhi2DB0;存放保值下限
DINGZHI3DB0;存放保值上限
DingFlagDB0
JINGFLAGDB0
CHONGFLAGDB0;冲气时按A,B,C键,去执行相应程序
BaozhiDB0
STR1DB0;存放压力值
STR2DB0;存放脉搏值
STR3DB0;存放上一次脉搏值
LDB0;左半屏计数器
RDB0;右半屏计数器
R2DB0;计数行数,判断是否满8行
R3DB0;存放行值
R4DB0;存放列值
BDB0;存放余数AH,用于查找在哪一行显示点
KEYCOUNTDB?
LED_TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
LCDDB80H,40H,20H,10H,08H,04H,02H,01H
CUNDB0
CUN1DB8DUP(?
)
CUN2DB8DUP(?
)
CUN3DB8DUP(?
)
CUN11DB8DUP(?
)
CUN22DB8DUP(?
)
CUN33DB8DUP(?
)
.CODE
START:
MOVAX,@DATA
MOVDS,AX
NOP
CALLDISPLAY_DATA;表示电路正常
LEASI,BUFFER
CALLDisplay8
CALLINIT8255;初始化8255,所有端口方式0,方向输出
CALLW_H;尝试充气,端口PC0置位,气阀打开
MOVDX,PA_8255;气阀关,气泵不工作
MOVAL,04H;气阀0关,气泵1时不工作
OUTDX,AL;进行初始化
START1:
CALLSCAN_KEY
JNCSTART1;无键返回
START2:
CMPAL,0CAH;要在三个键中进行选择,不是则继续检测
JZSTART3;如果AL值为0CAH时,就代表A键按下,跳到START3等待输入值
CMPAL,0CBH;如果AL值等于0CBH时,就代表B键按下,跳到START4充气
JZSTART4
CMPAL,0CCH;如果AL值等于0CCH时,就代表C键按下,跳到START6放气
JZSTART6
JMPSTART1
START3:
MOVDX,PA_8255
MOVAL,00000100B;按A键,0时气阀关闭,1时气泵不工作
OUTDX,AL
CALLSTART31;输入所要达到的值
JMPSTART2;便于修改输入值
START4:
CALLW_H;按B键,1气阀打开,0气泵工作
START41:
CALLSCAN_KEY;设置好8255使气泵充气后,如果有键按下,返回检测
JCSTART2;通过判断是否是C键按下
CALLCHONG
MOVCX,50;循环50次,取平均值
MOVBX,0;记录AD转换值的50次累加值
START42:
CALLAD08091;ADC将电压模拟量装换成数字量并赋予STR1
XORAH,AH
ADDBX,AX;将AD转换完毕的STR1值累加到BX中
LOOPSTART42
MOVAX,50
XCHGAX,BX
DIVBL;除以50,求得平均值,商数在AL中
MOVSTR1,AL
CALLDisplay_Data1
ZHUANHUAN221:
MOVAL,STR1
CMPAL,Dingzhi
JBSTART41;压力低的话充气
MOVDX,PA_8255
MOVAL,04H
OUTDX,AL
CALLTESTT
JMPSTART2
START6:
MOVDX,PA_8255
MOVAL,00000101B;按C键,1时气阀接通,放气,1时气泵不转
OUTDX,AL
CALLZHUANHUAN3
JMPSTART2
;-------------------输入定值--------------
START31PROCNEAR
START310:
MOVDX,PA_8255
MOVAL,04H;0时气阀关闭,1时气泵不工作
OUTDX,AL
CALLINIT8279
MOVKEYCOUNT,0;keycount为一个变量,不知道时干嘛的
START311:
CALLSCAN_KEY
JNCSTART311
CMPAL,0C1H;只能输入一,二两个值
JESTART3111
CMPAL,0C2H
JESTART3111
JMPSTART311
START3111:
XCHGAL,KEYCOUNT
INCAL
START321:
XCHGAL,KEYCOUNT
MOVCUN1,AL
CALLKEY_NUM
LEABX,LED_TAB
XLAT
CALLWRITE_DATA
MOVAL,CUN1
ANDAL,0FH
MOVCUN1,AL
START312:
CALLSCAN_KEY
JNCSTART312
CMPAL,0CAH;只能输入零---九,十个值
JNBSTART312
START3121:
XCHGAL,KEYCOUNT
INCAL
CMPAL,4
JNZSTART322
MOVKEYCOUNT,0
CALLINIT8279_1
JMPSTART310
START322:
XCHGAL,KEYCOUNT
MOVCUN2,AL
CALLKEY_NUM
LEABX,LED_TAB
XLAT
CALLWRITE_DATA
MOVAL,CUN2
ANDAL,0FH
MOVCUN2,AL
START313:
CALLSCAN_KEY
JNCSTART313
CMPAL,0CAH;只能输入0---9,十个值
JNBSTART313
START3131:
XCHGAL,KEYCOUNT
INCAL
CMPAL,4
JNZSTART323
MOVKEYCOUNT,0
CALLINIT8279_1
JMPSTART310
START323:
XCHGAL,KEYCOUNT
MOVCUN3,AL
CALLKEY_NUM
LEABX,LED_TAB
XLAT
CALLWRITE_DATA
MOVAL,CUN3
ANDAL,0FH
MOVCUN3,AL
START331:
MOVAL,0AH;由十进制转换成mmhg
MULCUN1
ADDAL,CUN2
XCHGCUN,AL
MOVAL,0AH
MULCUN
ADDAL,CUN3
MOVBL,2
DIVBL
MOVDingzhi,AL;将转化的十六进制存入Dingzhi
SUBAL,5
MOVDingzhi2,AL
ADDAL,20
MOVDINGZHI3,AL
START332:
CALLSCAN_KEY
JNCSTART332
CMPAL,0CAH
JZSTART300
CMPAL,0CBH
JZSTART300
CMPAL,0CCH
JZSTART300
JMPSTART332
START300:
RET
START31ENDP
TESTTPROCNEAR
TESTT0:
MOVDX,COM_8255
MOVAL,00000001B
OUTDX,AL
CALLSCAN_KEY
CMPAL,0CAH;要在三个键中进行选择,不是则退回
JZTESTT2
CMPAL,0CBH
JZTESTT2
CMPAL,0CCH
JZTESTT2
TESTT1:
CALLAD08091
MOVAL,STR1
CMPAL,Dingzhi2
JBA1
CMPAL,DINGZHI3
JAA2
MOVDX,PA_8255
MOVAL,04H
OUTDX,AL
MOVAL,STR1
CALLDISPLAY_DATA2
CALLMAIBOLCD
JMPTESTT0
A1:
CALLCHONG
MOVDX,COM_8255
MOVAL,00001100B
OUTDX,AL
JMPTESTT0
A2:
MOVDX,PA_8255
MOVAL,05H
OUTDX,AL
MOVDX,COM_8255
MOVAL,00001100B
OUTDX,AL
JMPTESTT0
TESTT2:
RET
TESTTENDP
CHONGPROCNEAR;充气子程序
MOVDX,PA_8255
MOVAL,00H;0时气阀关闭,0时气泵工作
OUTDX,AL
RET
CHONGENDP
FANGPROCNEAR;放气子程序
MOVDX,PA_8255
MOVAL,05H;1时气阀打开,1时气泵不工作
OUTDX,AL
RET
FANGENDP
BAOPROCNEAR;保压子程序
MOVDX,PA_8255
MOVAL,04H;AL=00000100B,气泵不工作,气阀关闭
OUTDX,AL
RET
BAOENDP
INIT8255PROCNEAR;8255初始化,设置8255所有端口工作方式为0,方向输出
MOVDX,COM_8255
MOVAL,80H
OUTDX,AL
RET
INIT8255ENDP
INIT8279PROCNEAR;8279初始化
MOVDX,CMD_8279
MOVAL,34H
OUTDX,AL
MOVAL,10H
OUTDX,AL
MOVAL,0A0H
OUTDX,AL
CALLINIT8279_1
RET
INIT8279ENDP
INIT8279_1PROCNEAR
CALLCLEAR;清显示
MOVAL,90H;从第一个数码管开始移位显示
OUTDX,AL
RET
INIT8279_1ENDP
CLEARPROCNEAR
MOVDX,CMD_8279
MOVAL,0DEH;清除命令
OUTDX,AL
WAIT1:
INAL,DX
TESTAL,80H
JNZWAIT1;显示RAM清除完毕吗?
RET
CLEARENDP
SCAN_KEYPROCNEAR
MOVDX,CMD_8279;0BF01H
INAL,DX;读状态
READ_FIFO:
ANDAL,7;00000111
JZNO_KEY;是否有键按下
READ:
MOVAL,40H;01000000
OUTDX,AL;读FIFORAM
MOVDX,DATA_8279
INAL,DX
STC;有键
SCAN_KEY1:
RET
NO_KEY:
CLC;无键按下,清CY
JMPSCAN_KEY1
SCAN_KEYENDP
W_LPROCNEAR
MOVDX,COM_8255
MOVAL,00000000B
OUTDX,AL
RET
W_LENDP
W_HPROCNEAR;
MOVDX,COM_8255;dx指向8255的控制端口
MOVAL,00000001B;1时气阀打开,0时气泵充气
OUTDX,AL
RET
W_HENDP
INIT2_8255PROCNEAR;为蜂鸣器发声做准备
MOVDX,COM_8255
MOVAL,80H
OUTDX,AL
RET
INIT2_8255ENDP
ZHUANHUAN3PROCNEAR;压力采样显示子程序
ZHUANHUAN31:
CALLSCAN_KEY
CMPAL,0CAH
JZZHUANH