• 3.76 MB
  • 2022-04-29 14:30:03 发布

最新流水灯程序设计与调试概要课件PPT.ppt

  • 111页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'流水灯程序设计与调试概要 1.3.1流水灯程序设计与调试一、任务说明1、要求P1口作为输出口。P1.0至P1.7接8个发光二极管。要求编写程序实现如下功能:8个发光二极管依次亮灭并循环,延时0.1秒(已知fosc=12MHz)。2、重点1、学习P1口作为输出口的使用方法。2、学习延时程序的设计方法。2 二、硬件电路1、硬件分析发光二极管采用共阳极连接,P1口某个引脚输出“0”则对应的灯点亮。3 延时子程序实例若单片机的主频为12MHz,使用循环转移指令编写延时20ms的子程序。(双重循环结构)一个机器周期:12/12M=1us次数周期DELAY:MOVR6,#0C8H11LOOP2:MOVR7#x2001NOP2001LOOP1:DJNZR7,LOOP1200x2DJNZR6,LOOP22002RET12200+200+400x+400+2=20000求出x=487 三、任务实施步骤1:各小组按照流程图设计各部分程序。步骤2:程序汇编无误后,利用ISP软件和下载线将目标文件(.HEX)程序代码写入本组的单片机芯片中。步骤3:接通直流电源,启动电路板观察现象,如现象不对则重复步骤1、2。步骤4:现象无误,请求教师检查、评价。步骤5:编制项目报告并提交。8 四、任务扩展思考:若想实现8个灯累加点亮并循环,则程序该如何设计?9 一、任务说明P1口作为输入、输出口。P1.0、P1.1接开关K1、K2;P1.2、P1.3接发光二极管L1、L2;P1.4、P1.5接L5、L6。K1作为左转弯开关,K2作为右转弯开关。L1、L2作为左转弯灯,L5、L6作为右转弯灯。要求编写程序实现如下功能:向上打K1时(K1=1),左转弯灯以一定频率闪烁,向上打K2时(K2=1),右转弯灯以一定频率闪烁,两开关同时向上或向下,四灯都灭。灯闪烁一次即可,闪烁时先亮0.5S再灭0.5S。1.3.2转弯灯控制程序设计与调试10 重点:1、学习P1口既作为输入,又作为输出的使用方法。2、学习数据输入、输出程序的设计方法。11 二、任务分析1、硬件分析P1口为准双向I/O接口,输出单条指令完成,输入时应当先向对应的端口锁存器写入1,然后读入数据。12 2、软件说明(1)整体分析:先读入开关的状态,根据开关的四种状态分情况控制灯的亮灭。控灯完成后返回开始继续读开关,保证开关持续有效。(2)多分支判断的实现:开关有四种状态,对应灯有四种控制规律。可采取逐点检测的方式实现分支控制。即读入开关状态后先判断是否为00,若为00则灯全灭;若不为00则判断开关是否为01,若为01则左转弯灯闪烁;若不为01则判断开关是否为10,若为10则右转弯灯闪烁;若不为10则必然为11,灯全灭。K1K0状态控灯规律控制字00全灭0FFH01左转弯灯闪烁0F3H,0FFH10右转弯灯闪烁0CFH,0FFH11全灭0FFH13 (3)实现分支判断的关键指令:条件转移指令CJNE指令名称:比较不相等转移。指令格式:CJNEA,#data,rel;若(A)≠data,则跳到标号处执行指令,否则顺序执行。对借位标志有影响:若(A)0Y=100X=0求出Y值,将Y值存入31H单元。∣X∣X<0解:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。程序流程如图2-2所示。参考程序如下:ORG1000H21 MOVA,30H;取数JBACC.7,NEG;负数,转NEGJZZER0;为零,转ZER0ADDA,#02H;为正数,求X+2AJMPSAVE;转到SAVE,保存数据ZER0:MOVA,#64H;数据为零,Y=100AJMPSAVE;转到SAVE,保存数据NEG:DECA;CPLA;求∣X∣SAVE:MOV31H,A;保存数据SJMP$;暂停END22 A为负数?取数,A←(30H)开始结束A=0?YNNA←|X|A←64HA←X+2存数,(31H)←A(30H)图2-2例4.3程序流程图23 多向分支程序设计举例【例4.4】根据R0的值转向7个分支程序。R0<10,转向SUB0;R0<20,转向SUB1;R0<60,转向SUB5;R0>60,转向SUB6;解:利用JMP@A+DPTR指令直接给PC赋值,使程序实现转移。程序流程如图2-3所示。24 ORG2000HMOVDPTR,#TAB;转移指令表首地址MOVA,R0;取数MOVB,#10DIVAB;A除以10,商在A中CLRCRLCA;A←2AJMP@A+DPTR;PC←A+DPTRAJMPSUB0;转移指令表AJMPSUB1……AJMPSUB6TAB:25 K=?转SUB0转SUB1转SUB6K=0K=1……K=6开始图2-3多向分支程序流程图返回本节26 1.3.3交通灯程序设计与调试一、任务说明P1口控制6个灯,红、黄、绿各两个,编程实现交通灯控制规律。27 四红灯亮延时1秒东西路口绿灯亮,南北路口红灯亮延时6秒东西路黄灯闪烁8次,南北路口红灯亮每次延时1秒四红灯亮延时1秒东西路口红灯亮,南北路口绿灯亮延时6秒东西路红灯亮,南北路口黄灯闪烁8次每次延时1秒28 教学提示:指令是CPU用于控制功能部件完成某一指定动作的指示和命令。一台计算机全部指令的集合称为指令系统。指令系统体现了计算机的性能,也是计算机重要的组成部分,应用计算机进行程序设计的基础。单片机应用系统的运行,是依靠合理的硬件接口、用户程序和监控程序的完美结合实现的,所以掌握单片机需要学习多样的汇编程序设计方法实现运算和控制功能。29 80C51单片机具有111条指令,指令系统特点如下:(1)指令执行时间快。1个机器周期指令有64条,2个机器周期指令有45条,而4个机器周期指令仅2条(乘除指令)。(2)指令短,指令编码字节少,单字节的指令有49条(约有一半的指令为单字节指令),双字节的有45条,三字节的仅有17条。(3)具有丰富的位操作指令。(4)可直接用传送指令实现端口的输入输出操作。30 以80C51为内核的单片机指令系统为例,用44种操作码助记符来描述33种操作功能,构成了111条基本指令。单字节指令49条;按字节分   双字节指令45条;三字节指令17条;单周期指令64条;按指令执行时间分 双周期指令45条;111条基本指令          4个机器周期指令2条;数据传送类指令(29);算术运算类指令(24);按功能分   逻辑运算及移位类指令(24);控制转移类指令(17);布尔变量操作类指令(17)。31 3.1指令格式及常用符号80C51单片机指令格式1)指令由操作码助记符和操作数两部组成。2)指令格式如下:[标号:]操作码助记符[目的操作数][,源操作数][;注释]符号“[]”其包含的内容因指令的不同可有可无。特例:子程序返回指令RET、中断返回指令RETI、空操作指令NOP,皆无目的操作数和源操作数标号:根据编程需要给指令设定的符号地址,可有可无;通常在子程序入口或转移指令的目标地址处才赋予标号。标号由1~8个字符组成,第一个字符必须是英文字母,不能是数字或其他符号,标号后必须用冒号。32 操作码助记符:指令的核心部分,用于指示机器执行何种操作,如加、减、乘、除、传送等。操作数:是指令操作的对象,可以是一个具体的数据,也可以是参加运算的数据所在的地址。操作数一般有以下几种形式:没有操作数,操作数隐含在操作码中,如RET指令;只有一个操作数,如INCA指令;有两个操作数,如MOVA,30H指令,操作数之间以逗号相隔;有3个操作数,如CJNEA,#00H,10H指令。注释:对指令的解释说明,用以提高程序的可读性,注释前必须加分号,注释换行时行前也要加分号。33 指令的字节1.单字节指令(49条)在MCS-5l指令系统中,单字节指令可分为两类:无操作数的单字节指令含有操作数寄存器编号的单字节指令。1)无操作数单字节指令这类指令只有操作码字段,操作数隐含在操作码中。例如:INCDPTR34 指令码为2)含有操作码、寄存器编码的单字节指令单字节的指令码由操作码和指示操作数所在寄存器编码组成。例如:MOVA,Rn指令码为(其中rrr为寄存器Rn的编码)位D7D6D5D4D3D2D1D0十六进制码操作码10100011A3H位D7D6D5D4D3D2D1D0十六进制码操作码+操作数11101rrrE8H~EFH例如:INCDPTR35 2.双字节指令(46条)双字节指令的操作码字节在前,其后的操作数字节可以是立即数,也可以是操作数所在的片内RAM地址。例如:MOVA,#23H指令码为位D7D6D5D4D3D2D1D0十六进制码操作码0111010074H23H操作数(立即数)0010001136 1.实训目的(1)掌握指令格式及表示方法:助记符表示和机器码表示。(2)了解人工汇编与机器汇编的方法。(3)了解寻址方式的概念。(4)掌握常用指令的功能及应用。实训3指令的应用2.实训引入MOVP1,#55HMOVP1,55H请比较以上两条指令执行后P1口的状况?为什么?37 3.实训表格表3.1实验表格题号助记符指令机器码指令检查数据发光二极管状态①MOVP1,#55H②MOV20H,#0F0H(20H)=MOVP1,20H③MOVA,#0F0HA=MOVP1,A④MOVR4,#0FHR4=MOVP1,R4⑤MOV20H,#0AAH(20H)=MOVR0,#20HR0=MOVP1,@R0⑥MOVA,#55HA=MOVP1,AANDA,#0FHA=MOVP1,A38 ⑥MOVA,#55HA=MOVP1,AANDA,#0FHA=MOVP1,AORA,#0F0HA=MOVP1,A⑦CLRAA=MOVP1,ACPLAA=MOVP1,A⑧MOVA,#01HA=MOVP1,ARLAA=MOVP1,ARLAA=MOVP1,A39 4.实训分析与总结在实训中看到以下现象:往P1口传送数据的指令中,数据的来源不尽相同。数据是指令的操作对象,叫做操作数。指令必须给出操作数所在的地方,才能进行数据传送。寻找操作数地址的方法,称为寻址方式。寻找操作数到底有多少种方式呢?40 指令概述操作码70数据或寻址方式70双字节指令:标号:操作码操作数或操作数地址;注释单字节指令:操作码70三字节指令:操作码70数据或寻址方式70数据或寻址方式70指令按字节长度可以分为三种:——指令格式指令的格式:例如:MOVA,R0例如:MOVA,30H例如:MOVDPTR,#2010H41 一、寻址方式(找信方式)我的信在他那!找信去!②①注:找信是寻找信的“地址”!你能说出第二封信的“地址”吗?42 目的地#XXH操作数MOVP1,#55HMOVA,#01H#55H目的地信寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址43 目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址内部RAM或SFR区操作数XXHMOVP1,20H20H目的地20H注:寻址是寻操作数的“地址”!直接给出地址20H——直接寻址44 目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址寄存器目的地操作数XXHMOVP1,A寄存器R0-R7ABDPTR你能说出为什么叫寄存器寻址吗?45 寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOVP1,@R0目的地寄存器操作数3AH内部RAM3AH65H3AHR0R1DPTR寄存器间接寻址寄存器目的地2号信在2号箱子里1号你能说出1号箱子和2号箱子分别对应内存中哪一部分吗?46 寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是内存20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,R0对!47 寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20H④地址是内存20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,@R0对!48 寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,20H对!④地址是内存20H49 寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是内存20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,#20H对!50 寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOVCA,@A+DPTR目的地寄存器操作数内部RAM3AH65H3AH基址寄存器12H变址寄存器34H内部RAM46H65HADPTRPC46H51 目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址XXH位寻址操作数SJMP54HPC+54HPC2002H······2002H=2056HPC2056H52 寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址20H······27H21H28H21H20H100000000想一想:如果想使27H单元的第3位置1,该怎么办呢?53 单元地址2FH2EH2DH2CH2BH2AH29H28H26H25H24H23H22H21H20H7F776F675F574F47372F271F170F07MSB位地址LSB7E766E665E564E46362E261E160E067D756D655D554D45352D251D150D057C746C645C544C44342C241C140C047B736B635B534B43332B231B130B037A726A625A524A42322A221A120A02797169615951494131292119110901787068605850484030282018100800位寻址地址表例:SETB3DH3D3C3B3F3E3A393827H54 寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址SETB3DH20H······27H21H28H21H20H00000001055 二、指令系统1、指令描述约定符号含义Rn表示当前选定寄存器组的工作寄存器R0~R7Ri表示作为间接寻址的地址指针R0~R1#data表示8位立即数,即00H~FFH#data16表示16位立即数,即0000H~FFFFHaddr16表示16位地址,用于64K范围内寻址addr11表示11位地址,用于2K范围内寻址direct8位直接地址,可以是内部RAM区的某一单元或某一专用功能寄存器的地址Rel带符号的8位偏移量(-128~+127)Bit位寻址区的直接寻址位(X)X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容←将←后面的内容传送到前面去56 2、MCS-51的指令2.1数据传送指令(29条)2.2算术运算指令(24条)2.3逻辑运算指令(24条)2.4控制转移指令(17条)2.5位操作指令(17条)2.6常用伪指令(17条)57 目的地址源地址数据MOV<目的操作数>,<源操作数>MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA2.1数据传送指令(29条) ——8位数据传送指令(15条)58 2.1数据传送指令(29条) ——16位数据传送指令(1条)MOVDPTR,#data16——外部数据传送指令(4条)MOVX<目的操作数>,<源操作数>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA59 1)字节交换指令(3条)——交换和查表类指令(9条),AXCHdirectRn@RidirectARn@Ri2)低半字节交换指令(1条)XCHDA,@Ri3)累加器A中高4位和低4位交换(1条)SWAPA4)查表指令(2条)MOVCA,@A+PCMOVCA,@A+DPTR5)堆栈操作指令(2条)PUSHdirectPOPdirect60 directdirect2.2算术运算类指令(24条) ——加法指令(8条)A,Rn@Ri#dataADDRn@Ri#datadirectdirectA,Rn@Ri#dataADDCRn@Ri#data——减法指令(4条)directdirectA,Rn@Ri#dataSUBBRn@Ri#dataADDCA,B(A+B+CY→A)SUBBA,B(A–B–CY→A)61 BCD码:00110100——BCD码调整指令(1条)DAA注意:DAA指令只能跟在ADD或ADDC加法指令后,不适用于减法指令。十进制二进制BCD码0123456789101112131415000000010010001101000101011001111000100110101011110011011110111100000001001000110100010101100111100010010001000000010001000100100001001100010100000101011816+34十进制0001100000010110+BCD码001011100011010000101110-00000110差662 助记符格式机器码(B)相应操作指令说明机器周期INCA00000100AA+1影响PSW的P标志1INCRn00001rrrRnRn+1n=0~7,rrr=000~1111INCdirect00000101direct(direct)(direct)+11INC@Ri0000011i(Ri)(Ri)+1i=0,11INCDPTR10100011DPTRDPTR+12DECA00010100AA-1影响PSW的P标志1DECRn00011rrrRnRn-1n=0~7,rrr=000~1111DECdirect00010101direct(direct)(direct)+11DEC@Ri0001011i(Ri)(Ri)-1i=0,11——加1减1指令63 ——乘法指令(1条)MULAB——除法指令(1条)DIVAB2.3逻辑及移位类指令 ——逻辑与指令(6条)助记符格式机器码(B)相应操作指令说明机器周期ANLA,direct01010101directAA∧direct按位相与1ANLA,Rn01011rrrAA∧Rnn=0~7rrr=000~1111ANLA,@Ri0101011iAA∧(Ri)i=0,11ANLA,#data01010100dataAA∧#data1ANLdirect,A01010010direct(direct)(direct)∧A不影响PSW的P标志1ANLdirect,#data01010011directdata(direct)(direct)∧#data不影响PSW的P标志2无符号数相乘,高位存B,低位存A无符号数相除,商存A,余数存B64 ——逻辑或指令(6条)01000011directdata助记符格式机器码(B)相应操作指令说明机器周期ORLA,direct01000101directAA∨direct按位相或1ORLA,Rn01001rrrAA∨Rnn=0~7,rrr=000~1111ORLA,@Ri0100011iAA∨(Ri)i=0,11ORLA,#data01000100dataAA∨#data1ORLdirect,A01000010direct(direct)(direct)∨A不影响PSW的P标志1ORLdirect,#data(direct)(direct)∨#data不影响PSW的P标志265 ——逻辑异或指令(6条)助记符格式机器码(B)相应操作指令说明机器周期XRLA,direct01100101directAA(direct)按位相异或1XRLA,Rn01101rrrAARnn=0~7,rrr=000~1111XRLA,@Ri0110011iAA(Ri)i=0,11XRLA,#data01100100dataAA#data1XRLdirect,A01100010direct(direct)(direct)A不影响PSW的P标志1XRLdirect,#data01100011directdata(direct)(direct)#data不影响PSW的P标志266 ——累加器A清0和取反指令助记符格式机器码(B)相应操作指令说明机器周期CLRA11100100A00HA中内容清0,影响P标志1CPLA11110100A中内容按位取反,影响P标志1AA67 A.0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:执行带进位的循环移位指令之前,必须给CY置位或清零。——循环移位指令返回68 2.4控制转移类指令 ——无条件转移指令(4条)1)长转移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假设执行该指令前,PC的值为0000H。注意:该指令可以转移到64KB程序存储器中的任意位置。69 PC高5位(保持不变)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)11位转移地址的形成示意图程序计数器PC2)绝对转移指令AJMPaddr11;PC+2PC,addr11PC.10~PC.070 PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相对转移指令例:SJMP03H03H03H就是当前PC值与目的PC值相对差PC71 ——条件转移指令(8条)1)累加器A判0指令(2条)助记符格式机器码(B)相应操作机器周期JZrel01100000 rel若A=0,则PCPC+rel,否则程序顺序执行2JNZrel01110000rel若A≠0,则PCPC+rel,否则程序顺序执行22)减1非零转移指令(2条)助记符格式机器码(B)相应操作机器周期DJNZRn,rel11011rrrrelRnRn-1,若Rn≠0,则PCPC+rel,否则顺序执行2DJNZdirect,rel11010101directrel(direct)(direct)-1,若(direct)≠0,则PCPC+rel,否则顺序执行272 3)比较转移指令(4条)助记符格式机器码(B)相应操作机器周期CJNEA,#data,rel10110100datarel若A≠#data,则PCPC+rel,否则顺序执行;若A<#data,则CY=1,否则CY=02CJNERn,#data,rel10111rrrdatarel若Rn≠#data,则PCPC+rel,否则顺序执行;若Rn<#data,则CY=1,否则CY=02CJNE@Ri,#data,rel1011011idatarel若(Ri)≠#data,则PCPC+rel,否则顺序执行;若(Ri)<#data,则CY=1,否则CY=02CJNEA,direct,rel10110101directrel若A≠(direct),则PCPC+rel,否则顺序执行;若A<(direct),则CY=1,否则CY=0273 条件转移类指令范例——方案一还有什么方法实现循环的终止?将00H~0FH这16个数顺序地置入片内RAM20H~2FH单元中。MOVR0,#20HMOVR7,#0FHCLRALOOP:MOV@R0,AINCAINCR0DJNZR7,LOOPSJMP$74 条件转移类指令范例——方案二MOVR0,#20HMOVR7,#0FHCLRALOOP:MOV@R0,AINCAINCR0CJNEA,#0FH,LOOPSJMP$75 条件转移类指令范例——方案三MOVR0,#20HMOVA,#0FHMOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0DECAJNZLOOPSJMP$76 条件转移类指令范例——方案四MOVR0,#20HMOVA,#0FHMOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0SUBBA,#01HJNCLOOPSJMP$77 ——调用和返回指令(8条)1)绝对调用指令(1条)助记符格式机器码(B)相应操作机器周期ACALLaddr11a10a9a810001addr7~0PCPC+2SPSP+1,(SP)PC0~7SPSP+1,(SP)PC8~15PC0~10addr1122)长调用指令(1条)助记符格式机器码(B)相应操作机器周期LCALLaddr1600010010addr15~8addr7~0PCPC+3SPSP+1,SPPC0~7SPSP+1,SPPC8~15PCaddr16278 3)返回指令助记符格式机器码(B)相应操作机器周期RET00100010PC8~15(SP),SPSP-1PC0~7(SP),SPSP-1子程序返回指令2RETI00110010PC8~15SP,SPSP-1PC0~7SP,SPSP-1中断返回指令2助记符格式机器码(B)相应操作指令说明NOP00000000空操作消耗1个机器周期4)空操作79 2.5位操作类指令单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07MSB位地址LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻址区位地址表80 助记符格式机器码(B)相应操作指令说明机器周期MOVC,bit10100010CYbit位传送指令,结果影响CY标志2MOVbit,C10010010bitCY位传送指令,结果不影响PSW22.位置位和位清零指令助记符格式机器码(B)相应操作指令说明机器周期CLRC11000011CY0位清0指令,结果影响CY标志1CLRbit11000010bitbit0位清0指令,结果不影响PSW1SETBC11010011CY1位置1指令,结果影响CY标志1SETBbitbit1位置1指令,结果不影响PSW111010010bit1.位传送指令81 3.位运算指令助记符格式机器码(B)相应操作指令说明机器周期ANLC,bit10000010bitCYCY∧bit位与指令2ANLC,/bit10110010bit位与指令2ORLC,bit01110010bitCYCY∨bit位或指令2ORLC,/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,结果不影响CY2CYCY∧bitCYCY∨bitCYCYbitbit助记符格式机器码(B)相应操作机器周期JBbit,rel00100000bitrel若bit=1,则PCPC+rel,否则顺序执行2JNBbit,rel00110000bitrel若bit=0,则PCPC+rel,否则顺序执行2JBCbit,rel00010000bitrel若bit=1,则PCPC+rel,bit0,否则顺序执行24.位转移指令82 5.判CY标志指令助记符格式机器码(B)相应操作机器周期JCrel01000000若CY=1,则PCPC+rel,否则顺序执行2JNCrel01010000若CY≠1,则PCPC+rel,否则顺序执行283 常用伪指令定位伪指令ORG定义字节数据伪指令DB定义字数据伪指令DW定义空间伪指令DS符号定义伪指令EQU或=数据赋值伪指令DATA数据地址赋值伪指令XDATA汇编结束伪指令END84 练习1设内部RAM中33H单元中内容为44H,34H单元中内容为0AFH,R0中内容为33H,R1中内容为00H,给出以下每一条指令执行后A中的值和PSW中P的值。MOVA,#34HMOVA,34HMOVA,R1MOVA,@R0注意:对PSW中P标志的影响。85 练习2设内部RAM30H单元中内容为52H,请给出以下程序结果:MOVA,#30HMOVA,30HMOVR0,#30HMOVA,@R0MOV30H,#30H设P1口内容为0AAH(P1口地址为90H),请给出以下程序结果:MOVR0,#30HMOV10H,P1MOVA,10HMOV@R0,AMOV40H,@R086 本章主要知识点指令的七种寻址方式。难点:寄存器间接寻址各类指令的主要功能。难点:查表指令难点:条件转移指令作业:3.53.63.103.133.1687 疟疾 一、定义是感受疟邪引起的以寒战、壮热,头痛、汗出,休作有时为临床特证的一类疾病。 二、病名源流殷虚甲骨文中已有“疟”字。疟疾病名首见《内经》。《素问》有“疟论”与“刺疟”专篇。《金匮要略·疟病脉证并治》有“瘅疟、温疟、牝疟”以及“疟母”等不同类型的疟疾。《诸病源候论》之“间日疟候”与“劳疟候”等篇章中提出“间日疟”与“劳疟”名称。《三因极一病证方论·疟病不内外因证治》明确“疫疟”。《症因脉治·疟疾总论》进一步论述了“瘴疟”,并将间二日而发之疟称为“三日疟”。《疟疾论》将“三日疟”称为“三阴疟”,其特点是患病时间较长,但病情相对较轻,“无骤死之理”。 三、范围本病与西医疟疾等同。但西医学中回归热、黑热病、病毒性感染以及部分血液系统疾病等表现为寒热往来、似疟非疟者,也可参照治疗。 四、病因病机『病因』主要是感受“疟邪”。引起瘴疟者为瘴毒或瘴气,岭南(今广东)多见。『病机』发病:与卫气相集则引起发病,与卫气相离则病休(“入而与阴争则寒,出而与阳争则热”)。病位:疟邪内舍于营气,伏藏在半表半里(皮肤之内,肠胃之外)----邪在少阳----“疟不离少阳”。病性:“邪气盛则实”,此病为感“疟邪”所致,因此病理性质以邪实为主。但疟邪久留,疟疾发而不止,必伤气血,则属邪实正虚的虚实夹杂之证。病势:随经络而内搏五脏,横连募原 。 疟疾的分类:疟邪的盛虚更替,疟气的浅深,疟行之迟速,决定着与卫气相集的周期而病以时作的特点,此以发作周期而分型的疟以间日一作者最为多见;疟气深而行更迟者,则间二日而发,形成三日疟或称三阴疟。不同的体质,感受不同的疟邪,表现出阴阳偏盛、寒热多少的不同, 而有不同的分类: ①正疟:通常情况下形成的以寒热休作有时为特点者。②温疟:素体阳热偏盛,或感受暑热诱发,表现为热多寒少的疟疾。③寒疟:素体阳虚寒盛,或感受寒湿诱发,表现为寒多热少或但寒不热(牝疟)的疟疾。④瘴疟:感受山岚瘴毒所致,阴阳极度偏盛,心神蒙蔽,表现为寒热偏颇,神昏谵语者。热邪深重,内陷心肝者为热瘴,湿浊蒙蔽心神者为冷瘴。⑤劳疟:疟疾久发,气血耗伤,疟邪久羁,遇劳而发者。 五、诊查要点『诊断依据』1.发作时寒战、高热,出汗则热退,呈每日或隔日或三日发作1次的周期性发作,可伴有头痛身楚,恶心呕吐等症状。间歇期症状消失。2.夏秋季节发病,居住在流行地区或流行地区接触史。3.反复发作后可出现脾脏肿大。 证侯特证:寒战----寒冷期10分钟~1小时。高热----发热期4小时~8小时。休作有时----每日、隔日或三日定时而发。伴随症状:头痛、出汗(出汗期2小时~3小时),汗出则热退。夏秋季节多发。 『病证鉴别』1.疟疾与风温发热:风温发热多在冬春,邪在卫分,寒战发热而不具“往来”之特点;邪未伏藏,发病不呈休作有时的特点;“温邪上受,首先犯肺”,因此一般有咳嗽气急、胸痛等肺系症状。2.疟疾与淋证发热:淋证初起,湿热蕴蒸,邪正相搏,常有寒战发热,但病为邪壅膀胱,气化不利,有小便频、急、滴沥刺痛等表现。 3.寒疟、温疟与瘴疟:寒盛,寒重热轻,或但寒不热者为寒疟;热盛,热多寒少,或但热不寒者为温疟;热盛寒微或寒盛热微,神志昏迷者为瘴疟,或为热瘴,或为冷瘴。『相关检查』血涂片或骨髓片查获疟原虫为确诊依据。 六、辨证论治『辨证要点』分清正疟、温疟、寒疟、瘴疟、劳疟之不同。主要依据是病情轻重,寒热偏盛,正气的盛衰,病程的久暂。 『治疗原则』基本原则----祛邪截疟。正疟:和解表里温疟:清热保津寒疟:温阳达邪瘴疟:热瘴----清心开窍,冷瘴----化浊开窍劳疟:补益气血疟母:祛瘀化痰软坚『分证论治』 正疟症主症为疟疾典型发作:常先有呵欠乏力,继则寒战鼓颔,寒罢则内外皆热,头痛面赤,口渴引饮,继则遍身汗出,热退身凉,每日或间一二日发作一次,寒热休作有时。舌、脉:舌红,苔薄白或黄腻,脉弦。理疟邪伏于少阳,与营卫相搏,正邪交争。法祛邪截疟、和解表里。方柴胡截疟饮或七宝截疟饮药柴胡截疟饮(小柴胡+常山、槟榔、乌梅、桃仁)七宝截疟饮(常山、槟榔、草果、厚朴、青皮、陈皮、甘草) 温疟症主症:疟疾,发作时热多寒少。兼有表邪未解者:汗出不畅,头痛,骨节酸痛。热邪深重:口渴引饮,便秘尿赤。舌、脉:舌红苔黄,脉弦数。理阳热素盛,疟邪与营卫相搏,热炽于里。法清热解表、和解祛邪。方白虎加桂枝汤或白虎加人参汤加减药 寒疟症主症:疟疾,发作时热少寒多。寒湿内盛证:口不渴,胸闷脘痞,神疲体倦。舌、脉:舌苔白腻,脉弦。理素体阳虚,疟邪入侵,寒湿内盛。法和解表理、温阳达邪方柴胡桂枝干姜汤合截疟七宝饮加减药 瘴疟----热瘴症主症:热甚寒微,或壮热不寒,神昏谵语。瘴毒侵袭:头痛,肢体烦疼,胸闷呕吐。邪热内盛:面红目赤,烦渴饮冷,大便秘结,小便热赤。舌、脉:舌质红绛,苔黄腻或垢黑,脉洪数或弦数理瘴毒内盛,邪热内陷心包。法解毒除瘴、清热保津。方清瘴汤加减。药蒿芩清胆汤+常山、黄连、柴胡、知母,方中碧玉散换成益元散 瘴疟----冷瘴症主症:寒甚热微,或但寒不热,甚则嗜睡不语,神志昏蒙。湿浊证:如呕吐腹泻。舌、脉:舌苔厚而白腻,脉弦。理瘴毒内盛,湿浊蒙蔽心窍。法解毒除瘴、芳化湿浊方加味不换金正气散药不换金正气散(平胃散+半夏、藿香)+佩兰、草果、槟榔、石菖蒲、荷叶 劳疟症主症:疟疾迁延不愈,每遇劳累辄复发,发时寒热较轻。气血亏虚证:面色萎黄,倦怠乏力,短气懒言,纳少自汗。舌、脉:舌质淡,脉细弱。理疟邪久羁,气血耗伤。法益气养血、扶正祛邪方何人饮药何首乌、人参、当归、陈皮、生姜 恶性疟(脑型2%;肺型:急性肺水肿而呼衰;胃肠型;肾型;黄疸弛张型;厥冷型)。青蒿素对各种疟原虫的红内期无性体均有作用。对脑型疟与抗氯喹的恶性疟有良好疗效,原有片剂与水混悬液,目前使用浸膏片0.2(2#)、bid×4;青蒿素油注射液0.2(0.1/2ml/支),im,按0h、6h、24h、48h四个时段共用4次。疟母:为久疟不愈,痰浊瘀血互结,左胁下形成之痞块(慢性疟疾肿大的脾脏,治疗后不缩小,遇暴力易破裂;急性期有轻中度肿大)。治宜软坚散结、祛瘀化痰。方用鳖甲煎丸。 其它疗法 转归预后 预防与调摄 结语'