• 557.50 KB
  • 2022-04-29 14:35:58 发布

最新[计算机软件及应用]例--子--讲--解课件PPT.ppt

  • 59页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'[计算机软件及应用]例--子--讲--解 如右图所示,将P1口的P1.4~P1.7作为输入位,P1.0~P1.3作为输出位。要求利用8031将开关所设的数据读入单片机,并依次通过P1.0~P1.3输出,驱动发光二极管,以检查P1.4~P1.7输入的电平情况(高电平LED亮)。现要求采用中断触发方式,每中断一次完成一次操作。 程序如下:ORG0000HAJMPMAINORG0003HAJMPINTERORG0030HMAIN:SETBEX0SETBIT0SETBEAHERE:SJMPHERE中断服务子程序:(输入、显示)ORG0200HINTER:MOVP1,#0F0HMOVA,P1SWAPAMOVP1,ARETIEND 主程序及中断程序入口部分:ORG0000HLJMPMAINLJMPINTX0ORG0030HMAIN:MOVSP,#5FHSETBEX0SETBIT0;下降沿触发SETBEASJMP$查询部分:INTX0:CLREAPUSHPSWPUSHASETBEAJBP1.0,DV1JBP1.1,DV2JBP1.2,DV3JBP1.3,DV4EXIT:CLREAPOPAPOPPSWSETBEARETI 各装置的中断服务程序部分:DV1:……(装置1的中断服务程序):LJMPEXITDV2:……(装置2的中断服务程序):LJMPEXITDV4:……(装置4的中断服务程序):LJMPEXIT 装置3的中断服务程序:DV3:SETBP3.0LCALLDELAYCLRP3.0CLRP1.6SETBP1.6LJMPEXIT延时时间计算:8+(2+(2+4*249+2)*100+2)*10+8=1000056μS≈1S延时1秒的子程序:(设晶振为12MHz)DELAY:PUSH30HPUSH31HPUSH32HMOV32H,#10DY1:MOV31H,#100DY2:MOV30H,#249LY3:NOPNOPDJNZ30H,DY3DJNZ31H,LY2DJNZ32H,LY1POP32HPOP31HPOP30HRET 应用举例设定时器T0选择工作模式0,定时时间为1ms,ƒosc=6MHz。试确定T0初值,计算最大定时时间T。解:(1)求T0的初值X由公式:t=(213-T0初值)*机器周期Tcyt=1ms=1000μs机器周期Tcy=12/ƒosc=12/6000000s=2μs得1000=(213-X)*2所以初值X=8192-500=7692=1111000001100BT0的低5位:01100B=0CHT0的高8位:11110000B=F0H(2)最大定时时间T当T0的初值=0时为最大定时时间T=(213-0)*2=8192*2μs=16384μs=16.384ms7692÷32商为高8位,余数为低5 设T1以模式0定时,定时时间为1ms,ƒosc=6MHz,编程实现其定时功能。解:(1)计算初值(同上,略)F0HTH0,0CHTL0(2)程序清单ORG0000HRESET:AJMPMAINORG000BHAJMPIT0P;主程序ORG0100HMAIN:MOVSP,#5FHMOVTL0,#0CHMOVTH0,#0F0HSETBTR0SETBET0SETBEASJMP$ ;中断服务程序ORG0120HIT0P:MOVTL0,#0CHMOVTH0,#0F0HCPLP1.0RETI 利用T0的工作模式0产生1ms的定时,编程实现在P1.0引脚上输出周期为2ms的方波。设单片机的晶振频率ƒosc=12MHz。解:方法:定时1ms,对P1.0取反,然后继续定时(1)设置模式字TMOD=****0000B=00000000B=00H(2)计算初值由公式:t=(213-T0初值)*机器周期t=1ms=1000μs,机器周期Tcy=12/ƒosc=12/12000000s=1μs得1000=(213-X)*1=(8192-X)*1所以初值X=7192=1110000011000BT0的低5位:11000B=18HT0的高8位:11100000B=E0H1ms2ms7192÷32商为高8位,余数为低5位 (3)程序清单方法一:中断方式ORG0000HRESET:LJMPMAINORG000BHLJMPCTC0;主程序ORG0030HMAIN:MOVSP,#5FHMOVTMOD,#0MOVTL0,#18HMOVTH0,#0E0HSETBEASETBET0SETBTR0SJMP$;中断服务程序ORG0100HCTC0:MOVTL0,#18HMOVTH0,#0E0HCPLP1.0RETI 方法二:查询方式ORG0000HSTART:MOVSP,#5FHMOVTMOD,#0MOVTL0,#18HMOVTH0,#0E0HSETBTR0LOOP:JBCTF0,NEXTSJMPLOOPNEXT:MOVTL0,#18HMOVTH0,#0E0HCPLP1.0SJMPLOOP可替换为:LOOP:JNBTF0,$CLRTF0MOVTL0,#18H: 用定时器T1产生一个50Hz的方波,由P1.1输出。使用程序查询方式,设ƒosc=12MHz。解:(1)计算初值方波周期T为:T=1/50s=0.02s=20ms定时时间为:t=T/2=10ms=10000μs由公式:t=(216-X)*机器周期Tcy因Tcy=1μs,得10000=(216-X)*1,10000=65536-XX=55536=D8F0H55536÷256商为高8位,余数为低8位 (2)模式字TMODTMOD=0001****B=10H(3)源程序ORG0000HMOVTMOD,#10HSETBTR1LP:MOVTH1,#0D8HMOVTL1,#0F0HJNBTF1,$CLRTF1CPLP1.1SJMPLP 当P3.4引脚上输入的电平发生负跳变时,从P1.0输出一个500μs的同步脉冲,请编程实现该功能。设ƒosc=6MHz。解题思路:先令T0以模式2计数,其初值设为FFH,当P3.4引脚上输入的电平发生负跳变时,计数器加1使溢出标志置1;然后令T0以模式2定时,使P1.0输出一个500μs的同步负脉冲。 解:1、T0以模式2计数(1)计数初值X=0FFH(2)模式字TMOD=****0110B=06H2、T0以模式2定时(1)定时初值X计算t=500μs,Tcy=2μs由公式:t=(28-X)*机器周期Tcy得500=(256-X)*2X=6(2)模式字TMOD=****0010B=02H 3、程序清单:ORG0000HSTART:MOVTMOD,#6;T0以模式2计数MOVTH0,#0FFHMOVTL0,#0FFHSETBTR0JNBTF0,$CLRTF0CLRTR0MOVTMOD,#2;T0以模式2定时MOVTH0,#06MOVTL0,#06CLRP1.0SETBTR0JNBTF0,$SETBP1.0CLRTF0CLRTR0SJMPSTART 利用定时器T1的模式2对外部信号计数,要求每计满100次对P1.0端取反。解:(1)计算计数初值X100=28-XX=256-100=156=9CH(2)模式字TMOD=0110****B=60H(3)程序清单;用中断方式ORG0000HMAIN:MOVTMOD,#60HMOVTL1,#156MOVTH1,#156MOVIE,#88HSETBTR1SJMP$;中断服务程序ORG001BHCPLP1.0RETI 设某单片机系统中已经使用了两个外部中断源,并置定时器T1为模式2,作串行口波特率发生器用。现要求再增加一个外部中断源,并由P1.0引脚输出一个5kHz的方波。ƒosc=12MHz。解:1、确定定时器的工作方式将T0设置为模式3计数,T0的引脚接外部中断源,TL0的计数初值设为FFH,下降沿产生中断;T0的TH0为8位定时器,可产生方波,用中断方式;T1设为模式2定时,作串行口的波特率发生器。2、计算各个初值(1)TL0的初值为0FFH(2)TH0的初值产生5kHz的方波的周期为:T=1/5000s=0.2ms=200μs 因此TH0的定时时间为:t=T/2=100μs,Tcy=1μs得100=(256-X)*TcyX=256-100=156TH1=TL1,由波特率值确定3、TMOD值:00100111B=27HTCON值:01010101B=55H4、程序清单:(1)中断入口部分:ORG0000HSTART:LJMPMAINLJMPE0INTORG000BHLJMPTL0INTORG0013HLJMPE1INTORG001BHLJMPTH0INT (2)主程序部分:MAIN:MOVSP,#5FHMOVTMOD,#27HMOVTL0,#0FFHMOVTH0,#156MOVTH1,#dataMOVTL1,#dataMOVIE,#9FH;开中断: (3)中断处理程序部分:TL0溢出中断服务程序:TL0INT:MOVTL0,#0FFH(外部中断处理)RETITH0溢出中断服务程序:TH0INT:MOVTH0,#156CPLP1.0ERTI(其它外部中断服务程序略) 设某单片机系统的晶振频率为6MHz,试编写利用T0产生1s定时的程序。解:1、确定定时器T0的工作模式Tcy=2μs模式0最长可定时:2μs*8192=16.384ms模式1最长可定时:2μs*65536=131.072ms模式2最长可定时:2μs*256=512μs选模式1,每隔100ms中断一次,中断10次为1s。2、计算初值X100000μs=(65536-X)*2μsX=65536-50000=15536=3CB0H3、实现的方法:(1)计数器法;(2)中断循环程序法15536÷256商为高8位,余数为低8位 4、程序清单:(1)中断入口和主程序部分:ORG0000HSTART:LJMPMAINORH000BHLJMPSERVEORG0030HMAIN:MOVSP,#5FHMOVB,#10MOVTMOD,#01HMOVTL0,#0B0HMOVTH0,#3CHSETBTR0;开运行SETBET0;开中断SETBEASJMP$(2)中断服务程序部分:SERVE:MOVTL0,#0B0HMOVTH0,#3CHDJNZB,LOOPCLRTR0LOOP:RETIEND 8031与8155的连接方法 P2.7=0P2.0=0P2.7=0P2.0=1P2.1~P2.6均取1 设置8155,使用I/O口和定时器:使A口为基本输入方式,B口为基本输出方式;定时器作方波发生器,对输入的脉冲进行24分频。试编程实现之。思路:先对定时器赋初值和设定输出波形,向定时器/计数器寄存器中写;再设定A、B口的工作方式和传输方向,并启动定时器工作,向命令寄存器中写。程序段如下: (1)对定时器赋初值和设定输出波形:定时器/计数器寄存器地址:7F04H、7F05HMOVDPTR,#7F04HMOVA,#24MOVX@DPTR,AINCDPTRMOVA,#01000000BMOVX@DPTR,A(2)设定A、B口的工作方式并启动定时器工作:命令寄存器地址:7F00HMOVDPTR,#7F00HMOVA,#11000010BMOVX@DPTR,A 8051单片机的时钟振荡频率为11.0592MHz,选用定时器T1工作于模式2作为波特率发生器,波特率为2400b/s。求T1的初值X,并编写初始化程序段。解:设波特率加倍位SMOD=0X=256-11.0592×106×(0+1)/(384×2400)=244=F4H初始化程序段::MOVTMOD,#20HMOVTH1,#0F4HMOVTL1,#0F4HSETBTR1: 用8051串行口外接CD4049或74LS164串入-并出移位寄存器,扩展8位并行口。8位并行口的每位都接一个发光二极管,要求发光二极管从左到右他延迟的轮流显示,并且不断循环。设发光二极管为共阴极接法,如下图所示。STB为高电平时允许并行输出选通串入并出移位寄存器 解:采用中断方式发送;逐位输出高电平使二极管轮流发光;显示延时通过调用延时子程序实现。程序如下:中断服务子程序SETBP1.0LCALLDELAYCLRTIRRACLRP1.0MOVSBUF,ARETI主程序ORG0023HLJMPSBRORG0030HMOVSCON,#0SETBESSETBEAMOVA,#80HCLRP1.0MOVSBUF,ASJMP$SBR:循环右移 用8051的串行口以方式1发送ASCII数据块,要求波特率为1200b/s,进行校验。试编写采用查询方式发送的程序。设数据在片内RAM的20H~3FH单元,ƒosc=11.0592MHz。解:(1)最高位作校验位,采用奇校验,P最高位(2)用定时器/计数器1以模式2定时,作为波特率发生器;计算初值,由初值X=2N-ƒosc×(SMOD+1)/(384×波特率值)这里N=8,ƒosc=11.0592MHz波特率为1200b/s,取SMOD=0PCON=00H得初值X=232D=0E8H。(3)TMOD=00100000B=20H(4)SCON=01000000B=40H (5)程序清单:主程序MOVTMOD,#20HMOVTL1,#0E8HMOVTH1,#0E8HSETBTR1MOVSCON,#40HMOVR0,#20HMOVR7,#32MOVA,@R0LCALLSP-OUTJNBP,ERRORINCR0DJNZR7,LP:串行口发送子程序MOVC,PCPLCMOVACC.7,CMOVSBUF,AJNBTI,$CLRTIRETERROR:(略)SP-OUT:P为0说明发送出的数据中有偶数个1,是错误的。LP: 用8051的串行口以方式1接收带奇偶校验位的数据块(与上题配合)。试编写采用查询方式的程序,接收的数据放在片内RAM的20H~3FH单元。ƒosc=11.0592MHz。解:(1)最高位为校验位(采用奇校验),应去掉(2)用定时器/计数器1以模式2定时,作为波特率发生器;计算初值,由初值X=2N-ƒosc×(SMOD+1)/(384×波特率值)这里N=8,ƒosc=11.0592MHz波特率为1200b/s,取SMOD=0PCON=00H得初值X=232D=0E8H。(3)TMOD=00100000B=20H(4)SCON=01010000B=50H (5)程序清单:主程序MOVSCON,#50HMOVPCON,#0MOVTMOD,#20HMOVTL1,#0E8HMOVTH1,#0E8HSETBTR1MOVR0,#20HMOVR7,#32LCALLSP-INJCERRORMOV@R0,AINCR0DJNZR7,LP:串行口接收子程序JNBRI,$CLRRIMOVSBUF,AMOVC,PCPLCANLA,#7FHRETERROR:(略)SP-IN:LP:C为1说明接收的数据有偶数个1,是错误的(因采用奇校验)。 8031串行口按双工方式收发ASCII字符,最高位用来作奇偶校验位,采用奇校验,要求传送的波特率为1200b/s,用中断方式收发,试编写程序。设发送的数据的首地址为20H,接收的数据放在从40H开始的单元。单片机的振荡频率为ƒosc=6MHz。解:(1)最高位作校验位,采用奇校验,P最高位(2)用定时器/计数器1以模式2定时,作为波特率发生器;计算初值,由初值X=2N-ƒosc×(SMOD+1)/(384×波特率值)这里N=8,ƒosc=6MHz波特率为1200b/s,取SMOD=0,PCON=00H得初值X=243D=0F3H。(3)TMOD=00100000B=20H(4)SCON=01010000B=50H (4)程序清单:主程序ORG0000HMOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBTR1MOVSCON,#50HMOVPCON,#0MOVR0,#20HMOVR1,#40HLCALLSOUTSETBESSETBEASJMP$ 接收子程序CLRRIMOVA,SBUFMOVC,PCPLCANLA,#7FHMOV@R1,AINCR1RETSIN:SEND:NEXT:中断服务程序ORG0023HJNBRI,SENDLCALLSINSJMPNEXTLCALLSOUTRETI发送子程序CLRTIMOVA,@R0MOVC,PCPLCMOVACC.7,CMOVSUBF,AINCR0RETSOUT:接收优先级高采用的是奇校验 用第9个数据位作奇偶校验位,编写串行口方式2的发送程序。设欲发送的数据在片内RAM的50~5FH中。解:(1)TB8中放校验位,即PTB8(2)波特率:取SMOD=1,则波特率为ƒosc/32即PCON=80H(3)SCON=10000000B=80H(4)用查询方式发送 程序清单:MOVSCON,#80HMOVPCON,#80HMOVR0,#50HMOVR7,#10HMOVA,@R0MOVC,PMOVTB8,CMOVSBUF,AJNBTI,$CLRTIINCR0DJNZR7,LPRETTRR:LP: 编写一个用串行口接收的程序,将接收的16个字节的数据进行校验后送入片内RAM的50H~5FH单元。设串行口工作于方式3,波特率为2400b/s,ƒosc=11.0592MHz。解:(1)RB8中放的是校验位,RB8与P比较(2)用定时器/计数器1以模式2定时,作为波特率发生器;计算初值,由初值X=2N-ƒosc×(SMOD+1)/(384×波特率值)这里N=8,ƒosc=11.0592MHz波特率为2400b/s,取SMOD=0,PCON=00H得初值X=244D=0F4H。(3)TMOD=00100000B=20H(4)SCON=11010000B=0D0H(5)用查询方式接收 初始化部分:MOVTMOD,#20HMOVTL1,#0F4HMOVTH1,#0F4HSETBTR1MOVR0,#50HMOVR7,#16MOVSCON,#0D0HMOVPCON,#0接收部分:JNBRI,$CLRRIMOVA,SBUFJNBP,PNPJNBRB8,PERSJMPRIGHTJBRB8,PERMOV@R0,AINCR0DJNZR7,WAITCLRPSW.5RETSETBPSW.5RETMAIN:PNP:RIGHT:PER:WAIT:P=1P=0用户标志位F0F0=1示错误 甲状腺激素合成与代谢 甲状腺激素的合成条件碘(I)80-90%来源于食物,其余来源于饮食和空气。目前国际上推荐摄碘量为100-200ug/d。甲状腺球蛋白(TG)血液中氨基酸被甲状腺滤泡上皮细胞摄取——甲状腺球蛋白前体——甲状腺球蛋白甲状腺过氧化物酶(TPO)催化甲状腺激素合成的重要酶,参与合成全过程。 甲状腺素的合成过程聚碘。甲状腺滤泡上皮细胞基底膜钠-碘共同转运体(碘泵)逆碘离子浓度,血碘比甲状滤泡细胞内碘低20-25倍。主动转运,碘-钠共同转运体。需要Na-K+-ATP酶提供能量。碘离子活化。进入细胞的碘离子在氧化酶的催化下被氧化成碘原子。酪氨酸碘化。碘原子在绒毛顶端取代甲状腺球蛋白中酪酸残基上的氢原子-称酪氨酸碘化。碘化酪氨酸缩合。碘化的酪氨酸有一碘络氨酸残基(MIT)和二碘氨酪酸残基(DIT)。二者分别耦联成四碘甲状腺原氨酸—T4.三碘甲状腺原氨酸—T3.即碘化酪氨酸的缩合。 血液中I-过氧化物酶I。TG上的酪氨酸残基MITDIT过氧化物酶T3T4滤泡腔胶质蛋白水解酶血液T3T4下丘脑TRH腺垂体TSH甲状腺激素合成I-碘泵负反馈甲状腺细胞 甲状腺素的运输1、血液中的T3、T4几乎全部和血浆蛋白结合。极少呈游离状态。结合状态游离状态,相互转化。2、T4:90%.T310%左右。T3生物活性是T4的5倍。1、结合状态的甲状腺素不发挥生理作用。2、三种结合蛋白:甲状腺激素结合球蛋白、甲状腺激素结合前白蛋白、白蛋白。3、缓冲甲状腺分泌的变化,并起储备作用。4、防止T3、T4在肾小球滤过。结合甲状腺素的血浆蛋白生理意义3、人血清:T451~142nmol/L;T31.2~3.4nmol/L;T3活性>T4(5倍) 3、T4半衰期7天,T3半衰期1.5天。1、肝、肾、骨骼肌是甲状腺素降解的主要部位。80%的T4在外周组织经脱碘酶作用脱碘成T3或r-T3。2、T4、T3经脱碘酶作用脱碘成二碘、一碘及不含碘的甲状腺氨酸。T4T3、r-T3DIT、MIT甲状腺氨酸甲状腺激素的降解 甲状腺疾病实验室诊断指标1.功能指标:TSH、FT3、FT4、T3、T4、TT3、TT42.蛋白指标:TBG(甲状腺素结合球蛋白)TG(甲状腺球蛋白)3.抗体指标TPOAb(甲状腺过氧化物酶抗体)TGAb(甲状腺球蛋白抗体)TRAb(TSH-受体抗体) 什么是甲功5项TSH促甲状腺素。TRH促进甲状腺素释放激素。T4:结合型甲状腺激素四碘的甲状腺原氨酸与甲状腺结合蛋白(TBG)结合成T4,未结合则游离为FT4,2者可相互转换,总和为TT4。TSH刺激T4分泌,T4可负反馈抑制TSH释放。T3:T4脱碘为T3,T3与TBG结合成结合T3,游离存在成FT3。T3与FT3可相互转化,2者之和为TT3。TSH刺激T3分泌,T3可负反馈抑制TSH释放。T4+FT4=TT4T3+FT3=TT3 结合型甲状腺激素——T3、T41.1T4全部由甲状腺直接分泌而来,直接反应甲状腺分泌功能。1.2T3:80%由T4脱碘代谢转化而来,20%直接来自甲状腺。2.1.T3和T4是体内含量最多的甲状腺激素——分泌能力结合型甲状腺激素是激素的储存和运输形式。 1.FT3和FT4是甲状腺激素的活性形态——功能状态1.1FT3和FT4分别为T3和T4在血清中未与蛋白结合的部分,其不受血清中TBG的影响。1.2是实际进入靶细胞与受体结合而发挥作用的激素物质,直接反映甲状腺功能的状态,其敏感性和特异性均高于T3和T4。游离甲状腺激素—FT3、FT4限于目前的检测技术,为了准确评估甲状腺功能,仍建议综合分析TT3,TT4,FT3,FT4 血清甲状腺激素测定—TSHTSH—甲功检测中最关键、最灵敏的指标!诊断甲亢和甲减:首选指标。诊断亚临床甲状腺功能异常(亚临床甲亢、亚临床甲减)。诊断甲亢灵敏度的顺序为TSH>FT3>T3>FT4>T4甲减的诊断灵敏度顺序为TSH>FT4>T4>FT3>T3 蛋白指标测定1.TG(甲状腺球蛋白)甲状腺滤泡上皮细胞分泌,是甲状腺激素合成和储存的载体。常与TGAb(甲状腺球蛋白抗体)联合检测。监测甲状腺分化癌术后复发的指标。2.TBG(甲状腺素结合球蛋白)由肝脏产生,在血清中主要与T4结合。影响总甲状腺激素水平,临床不常用。 抗体指标TgAb和TPOAb均是自身免疫性甲状腺疾病中的主要抗体TgAb:主要用作血清Tg测定的辅助检查TPOAb阳性:妊娠期甲状腺功能异常或甲状腺炎的危险因素TRAbTRAb可作为检测Graves病及判断治疗效果和预后的一种可靠方法 谢谢'