• 1.16 MB
  • 2022-04-29 14:23:15 发布

最新单片机应用技术课件PPT.ppt

  • 101页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'单片机应用技术 任务一数码显示任务要求本任务要求应用4位数码管分别显示片内存储器30H~33H单元的数值(假设存储单元的内容为1~4)。知识目标:(1)认识8段数码管的外形和内部结构。(2)知道8段数码管的显示原理。(3)了解单片机对数码管的控制方式。技能目标:(1)会设计单片机与数码管静态显示的接口电路和控制程序。(2)会设计单片机与数码管动态显示的接口电路和控制程序。单片机应用技术高职高专ppt课件 任务一数码显示知识链接1.数码管简介(1)数码管的结构单片机应用技术高职高专ppt课件 任务一数码管显示知识链接1)电路设计。图2-274HC245引脚图表2-274HC245逻辑功能表AB/输入输入/输出AnBnLLA=B输入LH输入B=AHX高阻高阻单片机应用技术高职高专ppt课件 图2-3两位数码管静态显示电路图知识链接单片机应用技术高职高专ppt课件 2)程序清单(LI2_1.ASM):ORG0000hJMPSTARTORG0100HSTART:MOVP1,#0F9HMOVP2,#0A4HSJMP$END知识链接单片机应用技术高职高专ppt课件 (2)动态显示方式知识链接选用动态显示的系统中一般有多位数码管,各位数码管不是同时点亮显示,而是逐位轮流的点亮(也称逐位扫描)。对每一位数码管而言,每隔一段时间点亮一次,每次点亮一定时间。这样,虽然每个数码管都是亮灭变化的,但只要选择合适的点亮时间和间隔时间,由于人的视觉暂留作用和发光二极管的余辉效应,使人肉眼看到的每个数码管都是稳定显示。一位接一位地轮流点亮各位数码管,这种逐位点亮显示器的过程称为位扫描。 3.堆栈指令介绍PUSHdirect;(SP)+1→(SP),(direct)→(SPPOPdirect;(SP)→(direct),(SP)-1→(SP)例2-2试分析下面指令序列的执行结果。①MOVSP,#60H②MOVDPTR,#1234H③PUSHDPL④PUSHDPH指令序列执行的最终结果:(61H)=34H,(62H)=12H,(SP)=62H。知识链接 电路设计任务一数码管显示 程序设计任务一数码管显示ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOVR0,#30H;设置显示数值30H~34H是1~4MOVR1,#4MOVA,#01HLOOP1:MOV@R0,AINCAINCR0DJNZR1,LOOP1LOOP:MOVR3,#4;共4位数码管动态显示ACALLDISPLAYAJMPLOOP 程序设计MOVA,@R0MOVCA,@A+DPTRMOVP0,ASETBP2.0CLRP2.0;查表求段码并锁存输出MOVA,R2;位码左移,准备点亮下一个数码管RLAMOVR2,AINCR0ACALLDELAYMOVP0,#0FFH;关显示SETBP2.0CLRP2.0DJNZR3,DIS1;循环点亮下一个数码管POPACCRET;数码管动态显示子程序;R3是入口参数,存放显示位数DISPLAY:PUSHACCCLRP3.6SETBP2.7MOVR2,#0FEH;R2单元存放位码值MOVR0,#30H;30H单元存放显示数值MOVDPTR,#SEGADIS1:MOVA,R2MOVP0,ASETBP2.1CLRP2.1;锁存输出位码 ;延时1ms子程序DELAY:MOVR7,#02HD1EL2:MOVR6,#70HD1EL1:DJNZR6,D1EL1DJNZR7,D1EL2RET;共阳极数码管段码表SEGA:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB80H,90H,88H,83H,0C6H,0A1H,86H,8EHEND程序设计任务一数码管显示 1.技能训练(1)在学习板上实现一个数码管静态显示字形“3”。(2)在学习板上实现8个数码管分别显示数字1~8。(3)增加任务中的延时时间,观察数码管的显示情况。2.知识思考(1)什么是数码管的静态显示?(2)简述数码管动态显示过程。(3)什么情况下数据需要保护?本任务程序中可以将“PUSH”和“POP”两条指令去掉吗?拓展训练任务一数码管显示 任务二按键识别任务要求选用4个按键,编号分别是“1~4”,当某个键按下后,应用数码管显示按键编号。知识目标:(1)看懂单片机和独立式按键的接口电路。(2)了解独立式按键的工作原理。(3)掌握按键消抖的方法。(4)看懂单片机和矩阵式按键的接口电路。(5)了解矩阵式按键的工作原理。技能目标:(1)会设计单片机与数码管静态显示的接口电路和控制程序。(2)会设计单片机与数码管动态显示的接口电路和控制程序。(3)知道矩阵式按键的识别及控制方法。 知识链接任务二按键识别1.按键的分类根据结构,按键可分为两类触点式开关按键无触点式开关按键根据接口原理按键可分为两类编码键盘非编码键盘 2.单片机对键盘的控制方式知识链接(1)查询方式:指在程序中用一段专门的扫描和读按键程序不停查询有无按键按下,确定键值。特点:电路简单,但需要占用单片机的机器时间。(2)定时扫描方式:指利用单片机内的定时器来产生定时中断,然后在定时中断的服务程序中扫描,检查有无按键按下,确定键值。特点:电路也比较简单,不占用单片机的机器时间,但需要占应用定时器,同时定时的时间不能过长,否则可能检测不到相应得按键。(3)中断扫描方式:指当有键按下时由相应的硬件电路产生中断信号,单片机在中断服务程序中扫描,检查有无按键按下,确定键值。特点:硬件电路上必须要产生中断线,需要与门和非门来产生。但中断方式不占用单片机的机器时间,也不会出现定时方式时的检测不到键盘的情况。 3.键盘接口问题:由于机械触点的弹性作用,触点在闭合和断开瞬间的电接触情况不稳定,造成了电压信号的抖动现象。抖动时间:一般为1~10ms(如图2-5所示)。后果:会引起单片机对于一次键操作进行多次处理,因此必须设法消除抖动现象。措施:软件消抖、硬件消抖抖动时间<10ms开关动作时间>100ms“1”“0”<10ms按下抖动闭合稳态释放抖动 软件消抖;延时10ms子程序DELAY10:MOVR7,#20;1μsD10EL0:MOVR6,#255;1μsD10EL1:DJNZR6,D10EL1;2μs,执行255次DJNZR7,D10EL0;2μs,循环执行20次RET;2μs延时时间计算:1+[1+2×255+2]×20+2=10263≈10000μs=10ms。(2)硬件消抖图2-6硬件消抖电路 4.独立式按键独立式按键结构图2-7独立式与单片机接口电路图 ;查询方式扫描一次键盘的程序JPDL:MOVA,#0FFHMOVP1,A;置P1口为输入状态JPDL0:MOVA,P1;键状态输入JNBACC.0,JPDL1;检测0号键是否按下,按下转JNBACC.1,JPDL2;检测1号键是否按下,按下转JNBACC.2,JPDL3;检测2号键是否按下,按下转JNBACC.3,JPDL4;检测3号键是否按下,按下转RET;无键按下返回JPDL1:ACALLPS1;PS4分别为每个按键的功能子程序RETJPDL2:ACALLPS2RETJPDL3:ACALLPS3RETJPDL4:ACALLPS4RET 5.矩阵式键盘矩阵式键盘的结构及原理图2-8矩阵键盘结构图 (2)矩阵式键盘按键的识别以8号键的识别为例来说明扫描法识别按键的过程:按键按下时,与此按键相连的行线与列线短路导通,行线在无按键按下时处于高电平。显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此必须使所有列线处在低电平。只有这样,当有按键按下时,该按键所在的行电平才会由高电平变为低电平。CPU根据行电平的变化,就能判定相应的行有键按下。8号键按下时,第3行一定为低电平。然而第3行为低电平时,能否肯定是8号键按下呢?回答是否定的,因为9、10、11号键按下,同样会使第3行为低电平。为进一步确定具体键,不能使所有列线在同一时刻处于低电平,可在某一时刻只让一条列线处于低电平,其余列线均处于高电平,另一时刻,让下一列处在低电平,依次循环,这种依次轮流每次选通一列的工作方式称为键盘扫描。 (3)键盘的编码对于矩阵式键盘,按键的位置由行号和列号惟一确定,因此可分别对行号和列号进行二进制编码,然后将两值合成一个字节,高4位是行号,低4位是列号。如图2-8中的8号键,它位于第3行,第0列,因此,其键盘编码应为30H。采用上述编码对于不同行的键离散性较大,不利于散转指令对按键进行处理。因此,可采用依次排列键号的方式对按键进行编码。以图2-8中的4×4键盘为例,可将键号编码为:01H、02H、03H、…、0EH、0FH、10H等16个键号。编码的相互转换可通过计算或查表的方法实现。 6.键盘扫描程序键盘扫描程序一般应包括以下内容。_判别有无按键按下。_键盘扫描取得闭合键的行、列值。_用计算法或查表法得到键值。_判断闭合键是否释放,如没释放则继续等待。_将闭合键键号保存,同时转去执行该闭合键的功能。 7.指令介绍(1)CJNE指令。指令格式是:CJNE目的,源,rel,共有4条:CJNEA,#data,rel;(A)与data比较,如果A=data,则顺序执行,否则转移CJNEA,direct,rel;(A)与(direct)比较,若相等则顺序执行,否则转移CJNERn,#data,rel;(Rn)与data比较,若相等则顺序执行,否则转移CJNE@Ri,#data,rel;((Ri))与data比较,若相等则顺序执行,否则转移图2-9CJNE操作示意图 例2-3将内部RAM的一个数据块(首址为DATA1)传送到内部数据RAM(首址为DATA2),遇到传送的数据为00H时停止。程序清单:MOVR1,#DATA1;设置数据指针MOVR0,#DPTA2;设置数据指针LP1:MOVA,@R1;读数据CJNEA,#00H,LP2;(A)≠00H,则转移RET;(A)=00H,结束传送LP2:MOV@R0,A;送数到内部RAMINCR0;修改指针INCR1;修改指针SJMPLP1;继续传送 (2)累加器A判零指令,有两条:JZrel;若(A)=0,则转移,否则顺序向下执行JNZrel;若(A)≠0,则转移,否则顺序向下执行在例2-3中,如果利用“JZ”指令的程序如下:MOVR1,#DATA1;设置数据指针MOVR0,#DATA2;设置数据指针LP1:MOVA,@R1;读数据JZLP2;判断传送数据是否为00H,是则转移MOV@R0,A;数据不为00H,送内部RAMINCR0;修改地址指针INCR1;修改外部RAM地址指针SJMPLP1;继续传送LP2:RET;结束传送,返回主程序 电路设计任务二键盘识别本任务硬件主要由单片机、键盘、显示数码管组成。键盘选择4个按键,采用独立键盘控制,电路如图2-7所示,其编号分别是“1~4”。键值显示电路如图2-4所示,但只选用其中一个数码管静态显示。 程序设计任务二键盘识别ORG0000HAJMPSTARTORG0100HSTART:CLRP2.0CLRP3.6SETBP2.7MOVP0,#0FEH;输出数码管公共端信号SETBP2.1;开通U14CLRP2.1;锁存U14LOOP:ACALLDLJPAJMPLOOP;独立按键识别子程序DLJP:MOVP1,#0FFHMOVA,P1;读键盘状态CJNEA,#0FH,XDOU;有键按下消抖处理DLJPR:RET;无键按下则再读键盘状态 程序设计XDOU:MOV40H,A;把读的键盘状态放在40H的地址ACALLDELAY10;延时MOVA,P1;再读键盘状态CJNEA,40H,DLJPR;比较两次读键盘状态,如不同则返回JBACC.0,SS2;S1键未按下,转SS2ACALLPS1;1号键按下,显示1AJMPDLJPRSS2:JBACC.1,SS3;S2键未按下,转SS3ACALLPS2;2号键按下,显示2AJMPDLJPRSS3:JBACC.2,SS4;S3键未按下,转SS4ACALLPS3;3号键按下,显示3AJMPDLJPRSS4:JBACC.3,DLJPR;S4键未按下,读键盘ACALLPS4;4号键按下,显示4AJMPDLJPR 程序设计PS1:MOVP0,#0F9H;1号键键处理子程序SETBP2.0CLRP2.0RET;1号键按下,显示1PS2:MOVP0,#0A4H;2号键键处理子程序SETBP2.0CLRP2.0RET;2号键按下,显示2PS3:MOVP0,#0B0H;3号键键处理子程序SETBP2.0CLRP2.0RET;3号键按下,显示3PS4:MOVP0,#99H;4号键键处理子程序SETBP2.0CLRP2.0RET;4号键按下,显示4 1.技能训练(1)应用PROTEUS仿真矩阵键盘的键值显示。(2)应用学习板完成按键S1每按下一次,数码管显示值加一的功能(复位后数码管显示0)。(3)画出本任务完整电路图。2.知识思考(1)独立式键盘的工作原理是什么?(2)说明矩阵键盘的按键识别过程。(3)键盘消抖的方法有哪些?拓展训练任务三定时时间的设定 任务三定时时间的设定任务要求本任务要求应用独立式按键,使用3个按键,S1为定时时间加1键,S2为减1键,S3定时时间清零键。要求定时时间范围0~99秒,定时时间的设定值应用两位数码管显示。知识目标:(1)进一步理解独立按键工作原理。(2)理解逻辑运算指令和数据交换指令。技能目标:(1)会应用按键设定定时时间。(2)会编写16进制数转换为10进制数程序。(3)会应用逻辑运算指令和数据交换指令。(4)会设计码型转换程序 知识连接逻辑操作指令(1)逻辑与操作指令(6条)ANLA,direct;对A中的内容和直接寻址单元中的内容执行与操作,结果存到A中ANLA,#data;对A中的内容和立即数执行与操作,结果存到A中ANLA,Rn;对A中的内容和寄存器Rn中的内容执行与操作,结果存到A中ANLA,@Ri;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行与操作,结果存到A中ANLdirect,A;对直接寻址单元中的内容和A中的内容执行与操作,结果存到直接寻址单元中ANLdirect,#data;对直接寻址单元中的内容和立即数执行与操作,结果存到直接寻址单元中 (2)逻辑或操作指令(6条)ORLA,direct;对A中的内容和直接寻址单元中的内容执行或操作,结果存到A中ORLdirect,#data;对直接寻址单元中的内容和立即数执行逻辑或操作,结果存在直接寻址单元中ORLA,#data;对A中的内容和立即数执行逻辑或操作,结果存在A中ORLA,Rn;对A中的内容和寄存器Rn中的内容执行逻辑或操作,结果存到A中ORLdirect,A;对直接寻址单元中的内容和A中的内容执行逻辑或操作,结果存在直接寻址单元中ORLA,@Ri;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行或操作,结果存在A中知识连接 (3)逻辑异或操作指令(6条)XRLA,direct;对A中的内容和直接寻址单元中的内容执行异或操作,结果存在A中XRLdirect,#data;对直接寻址单元中的内容和立即数执行异或操作,结果存在直接寻址单元中XRLA,#data;对A中的内容和立即数执行异或操作,结果存在A中XRLA,Rn;对A中的内容和寄存器Rn中的内容执行异或操作,结果存在A中XRLdirect,A;对直接寻址单元中的内容和A中的内容执行异或操作,结果存在直接寻址单元中XRLA,@Ri;对A中的内容和工作寄存器Ri所指的地址单元中的内容执行异或操作,结果存在A中知识连接 2.交换指令(5条)XCHA,Rn;(A)←→(Rn),累加器与工作寄存器Rn中的内容互换XCHA,direct;(A)←→(direct),累加器与直接寻址单元中的内容互换XCHA,@Ri;(A)←→((Ri)),累加器与工作寄存器Ri所指存储单元中的内容互换XCHDA,@Ri;(A3-0)←→((Ri)3-0),累加器与工作寄存器Ri所指存储单元中内容的低半字节互换SWAPA;(A3-0)←→(A7-4),累加器中内容的高、低半字节互换知识连接 例2-4拆字程序,把R7的内容拆开,高4位送到片内RAM的30H单元中,低4位送到31H中。程序如下:MAIN:MOVA,R7ANLA,#0F0H;屏蔽高位SWAPA;交换A中高低位的内容MOV30H,A;R7的高4位送到30H中MOVA,R7;再读入R8中的内容ANLA,#0FH;屏蔽高位MOV31H,A;R7的低4位送到31HSJMP$知识连接 3.乘除法指令MULAB;(A)×(B)→(A)和(B),将累加器A中的内容与寄存器B中的内容相乘,结果的低8位存在累加器A中,高8位存在寄存器B中DIVAB;(A)/(B)→(A)和(B),将累加器A中的内容除以寄存器B中的内容,所得商存在累加器A中,余数存在寄存器B中。例如,若(A)=FBH(251),(B)=12H(18),执行指令“DIVAB”后,(A)=0DH(13),(B)=11H(17),(OV)=0,(CY)=0。知识连接 4.码型的转换16进制与ASCII的转换表2-3十六进制与ASCII码的对应关系表十六进制数ASCII码十六进制数ASCII码十六进制数ASCII码十六进制数ASCII码030H434H838HC43H131H535H939HD44H232H636HA41HE45H333H737HB42HF46H知识连接 例2-5将1位十六进制数转换成相应的ASCII码。设该十六进制数存放于累加器A中,转换后的ASCII码存放于R1中。一位十六进制只占累加器A的低四位,转换前应先屏蔽掉没用的高4位,然后判断其是否小于A,判断方法是将其与A相减,看是否有借位。有借位说明小于A,ASCII码是将其加30H,否则将其加37H。程序清单(LI2_7.ASM)如下:HTOASC:ANLA,#0FH;屏蔽高四位MOVR5,A;暂存R5中CLRC;清借位位SUBBA,#0AH;判断十六进制数的大小MOVA,R5;取回原十六进制数JCXYA;有借位,转至XYAADDA,#37H;大于A,加37HSJMPABCXYA:ADDA,#30H;小于A,加30HABC:MOVR1,ARET (2)BCD码(十进制数的二进制编码)表2-48421BCD码编码表十进制数8421码十进制数8421码00000B50101B10001B60110B20010B70111B30011B81000B40100B91001BBCD码是一种具有十进制权的二进制编码。BCD码种类较多,常用的是8421码。8421码是一种采用4位二进制数来代表一位十进制数的代码系统。在这个代码系统中,十组4位二进制数分别代表了0~9中的十个数字符号。知识连接 (3)十六进制数转换成BCD码格式的十进制数例2-6将两位十六进制数转换成两位BCD码(设数值范围是0~99)。0~99范围的十六进制数占一个字节单元,假设存放于片内RAM的34H单元中,将该16进制数除10,得到的商是BCD码的十位,存放到R4中,得到的余数是BCD码的个位,存放到R5中。程序清单(LI2_8.ASM)如下:MOVA,34HHTOBCD:MOVB,#10;16进制转换10进制子程序DIVABMOVR4,AMOVR5,BRET知识连接 电路设计实现本任务功能的电路主要包括两部分电路(1)4个独立式按键,它们与单片机的接口电路如图2-7所示;(2)数码管显示电路,电路参考图2-4,该秒表的时间设定范围是0~99秒,选用低位两个数码管显示设定的秒值即可。任务三定时时间的设定 程序设计程序清单(A2_3.ASM)ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HMOV30H,#00HMOV32H,#00HMOV34H,#00HLOOP1:MOVR3,#2ACALLDISPLAY;动态显示子程序,参考A2_1.ASMACALLDLJP;独立按键扫描子程序,参考A2_2.ASMSJMPLOOP1任务三定时时间的设定 PS1:INC34H;S1按键处理子程序,单击S1键定时时间加1MOVA,34HCJNEA,#100,PS11MOV34H,#00HMOVA,34HPS11:ACALLHTOBCD;将定时时间转换十进制MOV30H,R4;将定时时间送显示单元MOV31H,R5RETPS2:DEC34H;S2按键处理子程序;单击S1键定时时间减1MOVA,34HCJNEA,#0FFH,PS21MOV34H,#99MOVA,34HPS21:ACALLHTOBCD;将定时时间转换十进制MOV30H,R4;将定时时间送显示单元MOV31H,R5RET 程序设计;S3按键处理子程序PS3:MOV34H,#0;单击S3键,定时时间清零MOVA,34HPS21:ACALLHTOBCD;将定时时间转换十进制MOV30H,R4;将定时时间送显示单元MOV31H,R5RET;S4按键处理子程序PS4:RET;单击S4键,直接返回END任务三定时时间的设定 拓展训练1.技能训练(1)写出本任务完整程序清单。(2)将累加器A中的8位二进制数转换成3位BCD码格式的十进制数。2.知识思考(1)执行下列指令序列后,相关寄存器、存储单元及标志如何变化?2)MOVA,#89HMOV32H,#98HORL32H,A4)MOVA,#89HSWAPARLCA(讨论C的内容)1)MOVA,#98HMOVR4,#11HANLA,R43)CLRACPLAXRLA,#77H任务三定时时间的设定 (2)已知(A)=7AH和(CY)=1,试指出执行下列程序后的最终结果。1)MOVA,#0FH2)MOVA,#0BBHCPLACPLAMOV30H,#00HRRAORL30H,#0ABHMOV40H,#AAHRLAORLA,40H3)ANLA,#0FFH4)ORLA,#0FHMOV30H,ASWAPAXRLA,30HRRCARLCAXRLA,#0FHSWAPAANLA,#0F0H(4)什么是BCD码?拓展训练任务三定时时间的设定 任务四定时器任务要求本任务要实现定时器功能,定时范围0~99秒,4位数字显示,显示精度0.01秒。4个按键实现定时器的控制,单击S1键定时时间加1,单击S2键定时时间减1,单击S3键定时时间清零,S4是重新定时按键。数码管进行计时显示和设定时间的显示,当定时时间到,声音提示。知识目标:(1)熟悉中断系统结构和中断处理过程。(2)掌握定时计数器的工作原理。(3)明白定时/计数器的结构。技能目标:(1)会设置定时/计数器的工作方式。(2)会计算定时初值。(3)会对定时计数器初始化。(4)会编写定时/计数器相关程序。 知识连接中断的基本概念CPU正在处理某一事件A时,事件B请求CPU迅速去处理(中断请求或中断申请);CPU暂停事件A的处理,转去处理事件B(中断响应);事件B处理结束后,CPU又回到事件A暂停的地方继续处理事件A(中断返回),这一过程称为中断。中断源:事件B是引起CPU中断的根源。断点:事件A被暂停的地方。中断服务处理:事件B的过程,也称为中断处理。中断服务程序:CPU处理事件B需要执行的程序。中断系统:实现中断的所有部件。任务四定时器 2.89C51单片机的中断系统(1)89C51单片机中断系统的结构图2-10单片机中断系统的结构知识连接 (2)中断源及中断请求标志1)INT0-外部中断请求0,中断请求标志为IE0。该中断源的中断请求信号由INT0(P3.2)引脚输入,有效信号通过硬件自动置位IE0=1,请求中断。2)INT1-外部中断请求1,中断请求标志为IE1。该中断源的中断请求信号由INT1(P3.3)引脚输入,有效信号通过硬件自动置位IE1=1,请求中断。TCON的格式如下:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88H说明:外部中断源有两种请求触发方式,低电平触发和下降沿触发,具体选择那种方式要通过TCON的IT0和IT1进行设置。IT0:外部中断请求INT0的触发方式设置位。IT0可由软件置“1”或清“0”。当IT0为0时,选择为电平触发方式,INT0低电平有效。ITl:外部中断请求INT1的触发方式设置位,意义和IT0类似。 3)定时器/计数器T0,中断请求标志为TF0。片内计数器T0计数满溢出,自动置位TF0=1,产生中断请求。CPU响应中断后,标志位TF0自动清零。4)定时器/计数器T1,中断请求标志为TF1。片内计数器T1计数满溢出,自动置位TF1=1,产生中断请求。CPU响应中断后,标志位TF0自动清零。知识连接 5)串行口,该中断源有两个中断请求标志位,RI(串行口控制寄存器SCON的D0位)和TI(串行口控制寄存器SCON的D1位)。当串行接口接收完一桢串行数据时,置位RI=1,产生接收中断请求;当串行接口发送完一桢串行数据时,置位TI=1,产生发送中断请求。CPU响应中断后,标志位RI和TI都不能自动清零,必须在中断服务程序中通过软件清零。SCON的格式如下:位D7D6D5D4D3D2D1D0SCONTIRI位地址99H98H知识连接 IE的格式如下:位D7D6D5D4D3D2D1D0IEEA--ESET1EX1ET0EX0位地址AFHACHABHAAHA9HA8H中断允许寄存器IE各位的功能如下:EA:中断允许总控制位。EA=0,CPU屏蔽所有中断请求;EA=1,CPU开放所有中断。ES:串行口中断允许位。ET1:T1的溢出中断允许位。EX1:外部中断1中断允许位。ET0:T0的溢出中断允许位。EX0:中断0中断允许位。Ei=1,允许中断;Ei=0,禁止中断。 (3)中断优先级寄存器IPIP的格式如下:位D7D6D5D4D3D2D1D0IP---PSPT1PX1PT0PX0位地址BCHBBHBAHB9HB8HPS串行口中断优先级控制位。PT1定时/计数器T1中断优先级控制位。PX1外部中断1中断优先级控制位。PT0定时器T0中断优先级控制位。PX0外部中断0中断优先级控制位。Pi=1,设置为高优先级Pi=0,设置为低优先级知识连接 中断源辅助优先级结构外部中断0定时/计数器T0外部中断1定时/计数器T1串行口中断最高最低中断优先级相应原则:1)低优先级可被高优先级中断,而高优先级中断源不能被任何中断源所中断。2)任何一种中断(不管是高级还是低级),一旦得到响应,不会再被它的同级中断所中断。3)当几个同优先级的中断同时申请中断,响应哪一个中断源将取决于内部查询顺序,或称为辅助优先级结构,其优先级排列如下表所示。知识连接 (4)中断的处理过程1)中断响应条件和时间中断响应条件有三个:中断源有中断请求;此中断源的中断允许位为1;CPU开中断(EA=1)。上述三个条件必须同时满足,CPU才有可能响应中断。在下列情况之一时,CPU将封锁对中断的响应,虽然响应中断的三个条件都满足,但是不响应。第一:CPU正在处理一个同级或更高级别的中断请求;第二:现行的机器周期不是当前正在执行指令的最后一个周期。单片机有单周期、双周期、三周期指令,当前执行指令是单字节没有关系,如果是双字节或四字节的,就要等整条指令都执行完了,才能响应中断(因为中断查询是在每个机器周期都可能查到的);第三:当前正执行的指令是返回批令(RETI)或访问IP、IE寄存器的指令,则CPU至少再执行一条指令才响应中断。这些指令都是与中断有关的,如果正访问IP、IE则可能会开、关中断或改变中断的优先级,而中断返回指令则说明本次中断还没有处理完,所以都要等本指令处理结束,再执行一条指令才响应中断。 2)中断响应过程①将内部的优先级状态触发器置1,以阻止后来的同级或低级的中断请求;②执行一条硬件LCALL指令,使断点的地址入栈,然后将相应的中断服务程序入口地址送PC;③执行中断服务程序。中断响应过程的前两项是由中断系统硬件电路自动完成的,而中断服务程序要由用户自己编写。表2-6中断服务程序入口地址表中断源中断服务程序入口地址外部中断00003H定时器T0000BH外部中断10013H定时器T1001BH串行口0023H知识连接 3)中断返回,这个过程是通过指令RETI实现的。中断服务程序的最后一条指令必须是RETI。RETI指令使CPU结束中断服务程序的执行,返回到曾经被中断的程序处,继续执行原来的程序。RETI指令的具体功能是:①将中断响应时压入堆栈保存的断点地址从栈顶弹回PC,CPU从原来中断的地方继续执行程序②将相应中断优先级状态触发器清0。知识连接 例2-7应用按钮K,模拟外部中断源,电路如图2-11所示,单击按钮,就产生一个外部中断请求。89C51单片机响应中断请求,将数码管显示数值加1。数码管显示参考图2-4,选择两位数码管动态显示。图2-11一个外部中断源电路 程序清单(LI2_9.ASM):ORG0000HLJMPMAINORG0013HLJMPPP0ORG0030HMAIN:MOVSP,#60HMOV30H,#0MOV31H,#0MOV34H,#0SETBEASETBEX1SETBPX1SETBIT1LOOP:MOVR3,#2ACALLDISPLAYSJMPLOOPPP0:PUSHACCINC34HACALLHTOBCDMOV30H,R4MOV31H,R5POPACCRETI 3.89C51单片机的定时计数器(1)定时器/计数器的组成结构图2-12定时/计数器结构图知识连接 (2)定时器/计数器的工作方式寄存器TMOD的格式如下:位D7D6D5D4D3D2D1D0TMODGATEM1M0GATEM1M0T1方式控制字T0方式控制字TMOD各位含义如下:GATE,门控制。当GATE=0时,只要用软件使TCON的TR0或TR1为1,就可以启动相应的定时/计数器;当GATE=1时,要用软件使TCON的TR0或TR1为1,同时外部中断引脚也为高电平时,才能启动定时/计数器工作。或:定时/计数器功能选择位。当=1时,作为计数器实现对外部脉冲计数;当=0时,作为定时器实现定时控制。知识连接 M1和M0,工作方式选择位。定时器/计数器有4种工作方式,可通过M1、M0进行设置,见表2-7。表2-7定时/计数器工作方式设置表M1M0工作方式说明00方式013位定时/计数器01方式116位定时/计数器10方式2可自动重装初值的8位定时/计数器11方式3T0分成两个独立的8位定时/计数器;T1此方式停止计数知识连接 (3)定时/计数器控制寄存器TCON格式:位D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTCON的低4位用于控制外部中断前面已经介绍,这里只介绍高4位,各位含义如下:TF0,TF1——分别为定时器T0、T1的计数溢出中断请求标志位。计数器计数溢出时,该位由硬件置1。使用查询方式时,此位作为状态位供CPU查询,查询后需由软件清0;使用中断方式时,此位作为中断请求标志位,CPU响应中断后由硬件自动清0。TR0,TR1——分别为定时器T0、T1的运行控制位,可由软件置1或清0。(TR0)或(TR1)=1,启动定时/计数器工作;(TR0)或(TR1)=0,停止定时/计数器工作。知识连接 (4)定时/计数器的工作方式1)方式0:16位寄存器(由特殊功能寄存器TL0和TH0组成)只用了13位,由TH0的8位和TL0的低5位组成一个13位的定时/计数器,TL0的高3位未用,其最大的计数次数应为213次。图2-13工作方式0的逻辑结构图2)方式1:由特殊功能寄存器TL0和TH0组成一个16位的定时/计数器,其最大的计数次数应为216次。除了计数位数不同外,方式1与方式0的工作过程相同。 3)方式2:是自动重装初值的8位定时/计数器。8位寄存器TL0作为计数器,TH0用于存放计数初值,启动前,TL0和TH0装入相同的初值,当TL0计数溢出时,在将中断标志位TF0置1的同时,TH0的初值自动重新装入TL0。图2-14工作方式2的逻辑结构图 4)方式3:方式3只适用于定时/计数器T0,定时/计数器T1不能工作在方式3。此方式时定时/计数器T0分为两个独立的8位计数器:TL0和TH0,其逻辑结构如图2-15所示,TL0使用T0的状态控制位C/T、GATE、TR0及INT0,而TH0被固定为—个8位定时器(不能作外部计数方式),并使用定时器Tl的状态控制位TRl和TFl,同时占用定时器T1的中断源。图2-15方式3逻辑结构图 (5)定时器初值的计算计数方式:计数初值=满值-计数值=2N-计数值。定时方式:计数值=定时时间/机器周期,计数初值=满值-计数值=2N-定时时间/机器周期。定时和计数两种方式都是启动定时器后从初值开始加1计数,计数满溢出置中断请求标志位。不同工作方式只是计数位数不同,满值不等,但计算方法相同,假设计数位数为N,则满值都是2N。知识连接 例2-8利用定时器T0的方式0定时模式,在P1.0引脚上输出周期为10ms的方波。设单片机的晶振频率fosc=12MHz。程序(LI2_10.ASM)如下:ORG0000HLJMPMAINORG000BH;T0中断服务程序入口地址LJMPPINT0;转T0服务程序实际地址ORG0100HMAIN:MOVTMOD,#00H;置T0方式字MOVTL0,#18H;置定时器初值MOVTH0,#63HSETBEA;CPU开中断SETBET0;T0中断允许SETBTR0;启动T0运行SJMP$;等待中断ORG0200H;实际的T0中断服务程序起始地址PINT0:MOVTL0,#18H;重装初值MOVTH0,#63HCPLP1.0;定时时间到取反P1.0输出RETIEND 例2-9已知晶振12MHz,测量由(P3.3)引脚输入的外部脉冲宽度,所测得的高8位值存入30H单元,低8位存于31H单元。程序(LI2_11.ASM)如下:ORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#90H;应用T1,定时方式1,GATE=1MOVTH1,#0MOVTL1,#0;T1初值设为0JBP3.3,$;等待INT1变为低SETBTR1;INT1变低电平,TR1置1JNBP3.3,$;等待INT1变高JBP3.3,$;等待INT1再次变低,这段时间计数器计数CLRTR1;再次变低后停止计数MOV30H,TH1;保存测量结果MOV31H,TL1SJMP$END 4.蜂鸣器简介图2-17单片机与扬声器接口电路蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机I/O引脚输出的电流较小,驱动不了蜂鸣器,因此需要增加一个电流放大的电路。知识连接 电路设计本任务电路分三部分(1)按键部分,参考图2-7(2)显示部分,参考图2-4(3)发声部分,参考图2-17任务四定时器 程序清单(A2_4.ASM)如下:;30H显示十位;31H显示个位;32H显示0.1位;33H显示.01位;34H存放设定的定时时间;35H计时整数部分;36H计时小数部分ORG0000HLJMPMAINORG000BHLJMPPRT0ORG0100HMAIN:MOVSP,#60HCLRP3.5MOVR0,#30HMOVR1,#7MOVA,#0HLOOP:MOV@R0,AINCR0DJNZR1,LOOPMOVTMOD,#01H;T0定时方式1MOVTH0,#0D8H;T0定时10ms初值MOVTL0,#0F0HSETBEA;开放T0SETBET0LOOP1:JBTR0,DSHMOVR3,#2SJMPLOOP2DSH:MOVR3,#4LOOP2:ACALLDISPLAY;调用动态显示子程序,参考A2-1.ASMACALLDLJP;调用独立按键扫描子程序,参考A2-2.ASMSJMPLOOP1程序设计任务四定时器 ;T0中断服务程序ORG0300HPRT0:PUSHACCMOVTH0,#0D8H;T0定时10ms初值MOVTL0,#0F0HINC36HMOVA,36HCJNEA,#99,PRT0RMOV36H,#0INC35HMOVA,35HCJNEA,34H,PRT0R;判断定时时间是否到CLRTR0SETBP3.5MOVTH0,#0D8H;T0定时10ms初值MOVTL0,#0F0HMOV35H,#0MOV36H,#0;计时时间转换为十进制PRT0R:MOVA,35HACALLHTOBCDMOV30H,R4MOV31H,R5MOVA,36HACALLHTOBCDMOV32H,R4MOV33H,R5POPACCRETI ;由于本任务4个按键按下时不再是显示编号,;所以4个按键处理程序与任务二的不同;S1、S2、S3按键的功能与任务三相同;S4按键处理子程序PS4:CLRP3.5;关闭声音SETBTR0MOV35H,#0;重新定时MOV36H,#0MOVTH0,#0D8H;T0定时10ms初值,重新定时MOVTL0,#0F0HPS4R:RETEND 呼吸衰竭病人的护理查房ICU李翠琳 二、病例1、现病史、既往史何竹林,男,78岁主诉:反复咳嗽、咳痰30佘年、加重伴胸闷气促4天。入院情况:患者于2015年6月23日10时24分入住心内科治疗于6月27日16时00分因呼吸困难明显、血氧饱和度不佳转入ICU, 查体:T36.1℃,P:113次/分,R:36次/分Bp:162/67mmHg(静脉泵注硝普钠中),血氧饱和度86%.患者神清,精神差,高卧位,急性危重面容、颈静脉怒张,桶状胸肋间隙宽,双肺呼吸音粗糙,双肺可闻及干湿啰音。心律齐,末闻及杂音,腹平软,无压痛,肝脾肋下末触及,双下肢无浮肿。 既往史:有高血压病史,曾行“急性阑尾炎、右腹股沟疝”手术,有吸烟、饮酒史,已戒。 诊断1、I型呼吸衰竭2、慢性阻塞性肺疾病急性加重期3、高血压性心脏病4、心功能IV级 16:30立即协助医师行经口气管插管并呼吸机辅助通气,给予镇静、镇痛治疗。17:08留置导尿置管成功18:00患者血压67/42mmHg,上去甲停胺碘酮、硝酸甘油。18;38患者心率49次/分,予阿托品1支静推,上异丙肾。行留置胃管。 7-01心率92次/分,停异丙肾,去甲改多巴胺。反酸水,给予奥美拉唑、多潘立酮。7-02开始脱机,脱机不理想。7-03昨日脱机后感胸闷明显,故予间断脱机(上机2小时脱机2小时)。多巴胺仍8ug/kg.min泵注升压。胸片检查示:双肺符合慢阻肺改变、主动脉硬化 7-04稍有低热,无咳嗽、腹胀、胸闷、气促,痰变稀白,量仍校多,心电监护生命体征平稳,查体:血压140/63,患者神清,精神稍软,口唇不绀,消瘦貌。桶状胸,双肺呼吸音低,闻及少许湿罗音。心率103次/分,律齐,腹平软,无压痛,肠呜音3次/分。四肢不肿。抗生素已用7天,炎症仍未完全控制,仍需继续使用抗生素。尿管有漏尿给予拔除。 2、目前状况(1)稍有低热,无咳嗽、腹胀、胸闷、气促,痰变稀白,量仍校多,心电监护生命体征平稳,查体:血压140/63,患者神清,精神稍软,口唇不绀,消瘦貌。桶状胸,双肺呼吸音低,闻及少许湿罗音。心率103次/分,律齐,腹平软,无压痛,肠呜音3次/分。四肢不肿。抗生素已用7天,炎症仍未完全控制,仍需继续使用抗生素。尿管有漏尿给予拔除。 白细胞13.56电解质紊乱:Na:131~142mmol/L离子钙1.33-1.37血糖4.8-21.4 护理诊断(1)清理呼吸道无效与呼吸道感染、分泌物增加且粘稠、无力咳嗽等有关。(2)气体交换受损与肺部炎症,痰液粘稠等引起呼吸面积减少有关。(3)营养失调低于机体需要量与气管插管、病人不能自行进食,机体的消耗增加有关。(4)皮肤完整性受损与长期卧床有关。(5)低热与感染有关 护理措施(1)清理呼吸道无效与呼吸道感染、分泌物增加且粘稠、无力咳嗽等有关。①保持呼吸道通畅,适时机械吸痰。②观察痰液的性质与量,并准确记录。③遵医嘱应用抗生素,观察药物的疗效与不良反应。 (2)气体交换受损与肺部炎症,痰液粘稠等引起呼吸面积减少有关。①机械通气气管插管,持续呼吸机辅助通气,保持呼吸道通畅。②密切观察病情评估患者的呼吸频率,节律和深度,判断呼吸困难类型。监测生命体征、血氧饱和度和动脉血气变化,观察有无缺氧及二氧化碳潴留的症状体征,及时发现和解决病人异常状况。 (3)营养失调低于机体需要量与气管插管、病人不能自行进食,机体的消耗增加有关。①评估患者营养状态,密切观察水肿、皮肤颜色和弹性等情况。②补充足够的液体和能量,维持水电解质平衡,给予百普力鼻饲饮食,保持鼻饲管通畅。③观察患者有无出现腹胀、腹泻、便秘等情况。 (4)皮肤完整性受损①勤观察患者皮肤:做好皮肤护理,每2小时翻身一次,防止局部长期受压,受压部位可用赛肤润外喷。②保持床单位的整洁、干净,给予气垫床。③患者骶尾部予透明贴外贴。保持肛周、会阴清洁,肛周、阴囊底部潮红糜烂予达克宁粉外喷;阴囊潮红瘀紫、水肿予垫高。四肢浮肿予垫高。④每天予床上擦浴并更换干洁衣物。⑤脚跟用保护垫保护。 (5)低热与感染有关抗感染:感染是慢性呼衰急性加重最常见诱因。1.严密监测体温变化,体温异常及时通知医生给于处理2.遵医嘱给以头部冰帽,冰敷,酒精擦浴,确保使用触皮肤完好.3.遵医嘱给予电冰毯降温,设置合理的水温,体温 4.遵医嘱使用退烧药,注意观察用药后效果,如果有出汗等要及时更换衣物.5.降低室温,增加空气流通,增加散热面积,减少被子覆盖注意肢端末梢及腹部保暖.6.严格无菌操作,预防感染. 3、护理评价(1)病人缺氧状况改善,呼吸困难有所缓解,SP02能够维持正常。(2)保证了足够的营养摄入,病人体重和水、电解质平衡得以维持。(4)患者并发症得到有效预防。 需解决的护理问题:低效型呼吸形态? 感谢聆听!'