单片机原理及应用作业参考答案.doc

上传人:大张伟 文档编号:8846070 上传时间:2021-01-19 格式:DOC 页数:23 大小:164.50KB
返回 下载 相关 举报
单片机原理及应用作业参考答案.doc_第1页
第1页 / 共23页
单片机原理及应用作业参考答案.doc_第2页
第2页 / 共23页
单片机原理及应用作业参考答案.doc_第3页
第3页 / 共23页
单片机原理及应用作业参考答案.doc_第4页
第4页 / 共23页
单片机原理及应用作业参考答案.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《单片机原理及应用作业参考答案.doc》由会员分享,可在线阅读,更多相关《单片机原理及应用作业参考答案.doc(23页珍藏版)》请在三一文库上搜索。

1、单片机原理及应用作业参考答案12 单片机的结构特点表现在哪些主要方面?答:(1)在存储器结构上,严格将程序存储器和数据存储器在空间上分开,并使用不同的寻址方式,使用两个不同的地址指针; (2)在内部有一个全双工的串行接口; (3)有一个独立进行操作的位处理器。14 通用单片机的供应状态主要取决于什么?供应状态有哪几种?用户选用单片机的供应状态的原则是什么?答:通用单片机的供应状态主要取决于片内ROM的配置状态。(1)片内ROM的配置状态掩膜ROM,适合于低成本。大批量产品的场合(2)片内EPROM配置状态可通过高压脉冲写入应用程序到EPROM,适合于开发样机,小批量生产。(3)片内无ROM配置

2、状态必须外扩EPROM,价格低,使用灵活,适合于需要外接能在现场进行修改和更新程序存储器的应用场合。23 单片机的端有何功用?8031的端应如何处理,为什么?答:端是访问外部程序存储器的控制信号:当无效时,访问内部ROM,当为有效时,访问外部ROM。由于8031没有内部ROM,所以端必须接低电平。24 MCS51引脚中有多少I/O线?它们与单片机对外的地址总线、数据总线和控制总线有什么关系?地址总线和数据总线各是几位?答:MCS-51引脚中有32根I/O线,一般由P0口提供单片机对外的数据总线,同时作为分时复用的地址总线的低8位,由P2口作为地址总线的高8位,控制总线由第二功能的状态下的P3口

3、以及RST、ALE和提供。25 8051单片机的内部数据存储器可以分为哪几个不同的区域?各有什么特点?答:数据存储器主要分为两个区域:00H7FH是真正的RAM区,80HFFH专门用作特殊功能寄存器的区域。其中00H7FH可分为三个区域:00H1FH为四组工作寄存器;20H2FH为128位位寻址区,30H7FH为一般RAM区。26 单片机对外有几条专用控制线?其功能是怎样的?答:单片机对外的专用控制线有4条,分别是:(1): 外部取指操作,在访问外部ROM时,信号自动产生;(2)ALE/:ALE为地址锁存允许信号,在访问外部ROM或RAM时,用来锁存P0口的低8位地址。第二功能是对8751的E

4、PROM编程时,编程脉冲输入。(3)/VPP:是访问外部程序存储器的控制信号,无效时,访问内部ROM,有效时,访问外部ROM,第二功能VPP为对8751EPROM的21V编程电源输入。(4)RST/VPD:RST是复位信号输入端,第二功能VPD是备用电源输入端。28 有哪几种方法使单片机复位?复位后各寄存器、RAM中的状态如何?答:单片机的复位方式有两种,上电自动复位和按钮复位。复位后各寄存器状态为:PC0000HACC00HPSW00HSP07HDPTR0000HP0P3FFHIPXX000000B IE 0X000000BTMOD00HTCON 00H TL000HTH000HTL100H

5、TH100HSCON 00HSBUFXXHPCON0XXX0000B29 在8051扩展系统中,片外程序存储器和片外数据存储器使用相同的地址编址,是否会在数据总线上出现争总线的现象?为什么?答:不会发生争总线的现象,因为从外部ROM取指令需要用ALE和信号控制读取操作,由P2和P0提供地址;而片外数据存储器的读写除了地址之外还要、控制,所以不会争总线。210 如果8051端口P0P3作为通用I/O口使用,则在输入引脚数据时应注意什么?答:8051的P1、P2和作为一般输入I/O口的P以及第一功能的P3口均为准双向口,在输入数据时应先向端口写1,然后方可作为高阻输入。以使其场效应管T2截止,才不

6、会影响输入电平。32 若要完成以下的数据传送,应如何用MCS-51的指令实现?(1)R1的内容传送到R0 MOV A,R1 MOV R0,A (2)外部RAM20H单元的内容传送到R0MOV R0,#20HMOVX A,R0MOV R0,A(3)外部RAM20H单元的内容传送到内部RAM20H单元MOV R0,#20HMOVX A,R0MOV 20H,A(4)外部RAM1000H单元内容传送到内部RAM20H单元MOV DPTR,#1000HMOVX A,DPTRMOV 20H,A(5)ROM2000H单元的内容传送到R0MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV

7、R0,A(6)ROM2000H单元的内容传送到内部RAM20H单元MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV 20H,A(7)ROM2000H单元的内容传送到外部RAM20H单元MOV DPTR,#2000HCLR AMOVC A,A+DPTRMOV R0,#20HMOVX R0,A33 间接转移指令JMP A+DPTR有何优点?为什么它能代替众多的判跳指令?试举例说明。答:该间接转移指令的转移地址由A的内容和数据指针DPTR的内容之和决定,且两者都是无符号数,由DPTR决定多分支转移程序的首地址,由A的不同值实现多分支转移。因为可以根据A的内容进行分支转移,所以

8、可以替代众多判跳指令。如:根据A的内容调用相应的程序,如A为0调用OP0,A为1调用OP1,这里A的值小于128。MOVDPTR,#OPTABRLAJMPA+DPTROPTAB:ACALL OP0ACALL OP1ACALL OP2 34 设内部RAM的30H单元的内容为40H,即(30H)40H,还知(40H)10H,(10H)00H,端口P10CAH。问执行以下指令后,各有关存储器单元、寄存器以及端口的内容(即R0、R1、A、B、P1以及40H、30H、10H单元的内容)。MOV R0,#30H ;(R0)30HMOV A,R0 ;(A)(30H)40HMOV R1,A ;(R1)40HM

9、OV B,R1 ;(B)(40H)10HMOV R1,P1 ;(40H)0CAHMOV P2,P1 ;(P2)0CAHMOV 10H,#20H ;(10H)20HMOV 30H,10H ;(30H)20H35 已知8751单片机的P1口为输出,经驱动电路接有8只发光二极管。当输出位是1时,发光二极管点亮;输出位是0时发光二极管熄灭。试分析下述程序的执行过程及发光二极管的发光情况。LP:MOVP1,#81H;1000 0001BLCALLDELAYMOV P1,#42H;0100 0010BLCALLDELAYMOV P1,#24H;0010 0100BLCALLDELAYMOV P1,#18H

10、;0001 1000BLCALLDELAYMOV P1,#24H;0010 0100BLCALLDELAYMOV P1,#42H;0100 0010BLCALLDELAYSJMPLP答:程序执行MOV P1,#DATA后,根据DATA的每位的值点亮相应的LED,调用延时程序使点亮的LED保持一段时间。LED发光的情况为:每次同时点亮两个LED并从两边向中间移动,然后再向两边移动,并一直循环。36 在上题中,若系统的晶体振荡器频率为6MHz,求子程序DELAY的延时时间。DELAY: MOV R2,#0FAH ;2SL1: MOV R3,#0FAH ;2SL2: DJNZ R3,L2 ;4S D

11、JNZ R2,L1 ;4S RET ;4S0FAH250D其中执行250次,执行时间为2504S其中循环250次,该循环执行时间为(225044)250S加上和的执行时间,DELAY的延时时间为2(225044)2504251.506ms延时程序的设计:首先设计内循环:MOVR3,#data1;2sNOP;2sDJNZR3,$;4sdata1延时时间t1224data14(data11)1000s1ms,则data1249若需要大于1ms时间,则先增加一层循环 MOVR2,#data2;2sL1:MOVR3,#data1;2sNOP;2sDJNZR3,$;4sdata1DJNZR2,L2;(4

12、st1)data2延时时间为:2(4st1)data224s4(data11)data224(data12)data2250ms,这里将data1修正为248,得24(2482)data221000data2250ms则data225037 根据图3-3线路,试设计灯亮移位程序,使8只发光二极管每次亮一个,循环右移或左移,一个一个地亮,循环不止。MOV A,#80H DIS:MOV P1,AACALL DELAYRR AAJMP DIS38 设逻辑运算表达式为: 其中变量A,B,C分别为P1.0、P1.4、定时器1溢出标志TF1,D,E,F分别为22H.0、22H.3、外中断方式标志IE1;输

13、出变量为P1.5。试编写实现上述逻辑功能的程序段。MOV C,P1.4ORL C,/TF1 ;ANL C,P1.0 ;MOV F0,A ;用户自定义标志位,暂存数据MOV C,22H.3ORL C,/IE1 ;ANL C,22H.0 ;CPL C ;ORL C,/F0 ;MOV P1.5,C41 试设计数据块传送程序,将起始地址为0400H的100个连续单元中的内容送到以4000H为首址的区域中去解:分析:地址为16位,且进行数据传送,所以连续单元应为外部的存储器,只能使用外部数据传送指令,由于源和目的地址都为16位,所以要保存DPTR的值,但源低8位和目的低8位相同,可以用一个寄存器保存。M

14、OV R0,#00NEXT: MOV DPH,#04HMOV DPL,R0MOVX A,DPTRMOV DPH,#40HMOVX DPTR,AINC R0 CJNE R0,#100,NEXT42 试编写程序,计算片内RAM区40H47H8个单元中数的算术平均值,结果存放在4AH中。解:分析:8个数总和最大值为FFH87F8H,所以求和时必须用两字节加法,设R7保存和高8位,R6保存低8位,求和后再除以8即得算术平均值,这里需使用16/8除法,但因为除数为23,所以可以直接通过算术右移3位实现除以8,前提存储的数据为无符号数。MOVR0,#40HMOVR6,#00H;和低字节清零MOVR7,#0

15、0H;和高字节清零NEXT : MOVA,R0;取出一个字节INCR0;地址指针下移ADDA,R6;低字节求和MOVR6,A;保存和的低字节CLRAADDCA,R7;如果低字节求和有进位,则加至高字节MOVR7,A;保存和的高字节CJNER0,#48H,NEXTMOVR1,#03H;循环移位3次,实现除以8DIV8: CLRCMOVA,R7RRCA;高字节先移位,将D0移至CMOVR7,AMOVA,R6RRCA;将C移入低字节的D7,从而实现16位数据的移位MOVR6,ADJNZR3,DIV816位除以8位除法子程序:被除数R6R5,除数R4,商R3R2,余数R1DIV168: MOV R3,

16、#00H MOV R1,#00HNEXT2: CLR C MOV A,R5 SUBB A,R4 MOV R5,A MOVA,R6 SUBB A,#00H MOV R6,A JC NEXT MOV A,R2 ADD A,#01H MOV R2,A JNC NEXT2 INC R3 AJMP NEXT2NEXT: MOV A,R5 ADD A,R4 MOV R1,ARET43 设有两个长度为15的数组,分别存放在0200H和0500H为首地址的存储区域中,试编写程序求其对应项之和,结果存放在以0300H为首地址的存储区域中。解:分析:0200H和0500H都是片外地址,必须利用MOVX指令获取数据

17、,这将导致DPTR使用不方便,解决办法:(1)0200H,0500H和0300H低字节地址相同,可以共用DPL,DPH单独处理;(2)可以考虑先将两个存储区的数据先转移到内部RAM中,然后再进行运算。这里只是求对应项之和,并不是多位数求和,两数相加,可能产生进位,这里应该只考虑没有进位的情况。这里采用第一种方法 MOVR0,#15MOV DPL,#00HNEXT: MOVDPH,#02HMOVXA,DPTRMOVB,AMOVDPH,#05HMOVX A,DPTRADDA,BMOV DPH,#03HMOVXDPTR,AINCDPTRDJNZR0,NEXT44 在起始地址为2100H,长度为64的

18、数表中找F的ASCII码,并将其地址送到1000H和1001H单元中去。解:都为RAM单元,只要找到“F”,则停止查找。利用寄存器R7保存高8位地址,R6保存低8位地址。SF: MOV DPTR,#2100HMOV R0,#64NEXT1:MOVX A,DPTRCJNE A,#4FH,NEXT2MOVR7,DPHMOVR6,DPLMOV DPTR,#1000HMOVA,R6MOVX DPTR,AINC DPTRMOVA,R7MOVX DPTR,AAJMP SFENDNEXT2:INCDPTRDJNZ R0,NEXT1SFEND: RET45 设计一个多字节无符号数加法子程序和减法子程序。解:(

19、1)多字节无符号数加法设R0为加数首地址,R1为被加数首地址,R2为字节数JIAFA: CLR CNEXT: MOV A,R0ADDC A,R1MOV R0,AINC R0INC R1DJNZ R2,NEXTRET(2)多字节无符号数减法设R0为被减数首地址,R1为减数首地址,R2为字节数JIANFA: CLR CNEXT: MOV A,R0SUBB A,R1MOV R0,AINC R0INC R1DJNZ R2,NEXTRET46 试设计一个双字节无符号数乘法子程序和除法子程序。解:设被乘数为R7R6,乘数为R5R4,结果存于R3R2R1R0设被除数为R7R6,除数为R5R4,商存于R3R2

20、,余数存于R1R0将被除数减除数,够减商加1,然后将差作为被减数,继续前面的减法操作,直到不够减为止,这时需要恢复余数。MUL1616:MOVA,R6MOVB,R4MULABMOVR0,AMOVR1,BMOVA,R7MOVB,R4MUL ABADDA,R1MOVR1,AMOVA,BADCA,#0MOVR2,AMOVA,R6MOV B,R5MULABADDA,R1MOVR1,AMOVA,BADCA,R2MOVR2,AMOVA,R7MOVB,R5MULABADDA,R2MOVR2,AMOVA,BADCA,#0MOVR3,ARETDIV1616:MOVDPTR,#0LOOP:CLRCMOVA,R6S

21、UBBA,R4MOVR4,AMOVA,R7SUBBA,R5MOVR7,AJCNEXTINCDPTRJMPLOOPNEXT:MOVA,R6ADD A,R4MOVR0,AMOVA,R7ADCA,R5MOVR1,AMOVA,DPHMOVR3,AMOVA,DPLMOV R2,ARET47 在3000H为首的存储器区域中,存放着14个由ASCII码表示的09之间的数,试编写程序将它们转换成BCD码,并以压缩BCD码的形式存放在2000H2006H单元中。解:09的ASCII码为30H39H,首先必须去掉其中的3,可以通过减去30H实现,也可通过ANL实现。另外还得将两个BCD码压缩成一个BCD码,注意低

22、地址对应低字节,比如3000H为31H(低字节),3001H为38H(高字节),合并后应为81H,存于2000H单元,可利用ORL或ADD进行合并。由于涉及到源和目的地址都为16位,为了方便操作,现将转换结果存于内部RAM。MOV R0,#30HMOVR1,#14MOV DPTR,#3000HNEXT: MOVX A,DPTR ;取出低字节INC DPTR ;源区地址指针下移ANL A,#0FH ;低字节转换为BCD码MOV R4,A ;暂存数据MOVX A,DPTR ;取出高字节INCDPTRANL A,#0FH ;高字节转换为BCD码SWAP A ;高低四位互换ORL A,R4 ;将两个B

23、CD码合并MOVR0,AINCR0CJNER1,#37H,NEXTMOVR0,#30HMOVDPTR,#2000HNEXT2:MOVA,R0INCR0MOVXDPTR,AINCDPTRCJNER0,#37H,NEXT248 编写一段程序,模拟如图所示的逻辑电路的逻辑功能,要求将四个输入与非门的逻辑模拟先写成一个子程序,然后以多次调用得到整个电路的功能模拟。设X、Y、Z和W都已定义为位地址,若程序中还需要其他地址标号,也可以另行定义。解:方法一:设计四输入与非门子程序,利用子程序必定要传递参数,但位操作的传送指令必须由C完成,所以调用子程序时参数传递较复杂。MOVC,WMOV 00H,CMOVC

24、,ZCPL CMOV01H,CMOVC,YMOV 02H,CMOVC,XMOV 03H,CACALLNAND4MOV04H,CSETB00HMOVC,XMOV 01H,CMOVC,YMOV 02H,CMOVC,ZMOV 03H,CACALLNAND4MOV05H,CSETB00HMOVC,XMOV 01H,CCPL01HMOVC,YCPL CMOV 02H,CMOVC,WMOV 03H,CACALLNAND4SETB00HMOV01H,CMOVC,04HMOV02H,CMOVC,05HMOV03H,CACALLNAND4MOVF,CAJMP $NAND4:MOV C,00HANLC,01HAN

25、LC,02HANLC,03HCPLCRETEND方法二:利用宏实现MACRO,宏可以带参数,所以参数传递将很方便NAND4 MACRO A1,A2,A3,A4MOV C,A1ANLC,A2ANLC,A3ANLC,A4CPLCENDMORG 0000HAJMP MAINORG 0030HMAIN: MOV C,Z CPL C MOV ONE,C NAND4 X,Y,ONE,W MOV 04H,C SETB ONE NAND4 X,Y,ONE,W MOV 05H,C CPL Y SETB ONE NAND4 X,Y,ONE,W MOV 06H,C SETB ONE NAND4 04H,05H,06

26、H,ONE MOV F,C53已知8051单片机系统时钟频率为6MHz,试利用定时器T0和P1口输出矩形脉冲,其波形如图所示(建议用方式2)。解:定时器T0的工作方式:方式2,定时方式,所以TMOD为:0000010(02H) 定时初值:(28TH0初值)时钟周期12(28X)(1/6M)1240s X2360ECH,360s则为9次定时中断MOV TMOD,#02HMOV TH0,#0ECHMOV TL0,#0ECHCLR P1.0SETB TR0NEXT3: MOV R0,#09HSETB P1.0JNB TF0,$CLRTF0NEXT1: CLR P1.0WAIT2: JNB TF0,$

27、CLRTF0DJNZ R0,WAIT2AJMP NEXT354 要求8051单片机定时器的定时值以内部RAM的20H单元的内容为条件而改变;当(20H)00H时,定时值为10ms;当(20H)01H时,定时值为20ms。请根据以上要求编写相应程序。解:采用定时器T0,工作方式:方式1,定时方式,所以TMOD为:0000001(01H) 定时初值:(216T0初值)时钟周期12(216X)(1/6M)12(216X)2s10(20H)+11000s (这里20H单元的内容最大为12,否则超出16为定时器的范围)TIMER:MOV A,20HMOV B,#88HMUL AB ;88H(20H)MO

28、V R0,A ;R0保存低字节MOV R1,B ;R1保存高字节MOV A,20HMOV B,#13HMUL AB ;13H(20H)ADD A,R1MOV R1,A ;只要限制20H单元内容小于13,1388H(20H)即为两字节CLR CMOV A,78HSUBB A,R0 ;78H减去1388H(20H)的低字节MOV TL0,AMOV A,#0ECHSUBB A,R1 ;ECH减去1388H(20H)的高字节MOV TH0,AMOV TMOD,#01HSETB TR0WAIT: JNB TF0,WAIT RET ;定时时间到上述定时初值的设置适合(20H)为00H12H,即可以实现10

29、ms190ms的定时。若仅仅是10ms和20ms两种情况,初值设置将更简单 TIMER:MOVA,20HCJNEA,#00H,NEXT1MOVTH0,#0ECHMOVTL0,#78HAJMPNEXT2NEXT1:CJNEA,#01H,NEXT2MOVTH0,#0D8HMOVTL0,#0F0HNEXT2:MOV TMOD,#01H;T0工作方式SETB TR0WAIT: JNB TF0,WAIT RET ;定时时间到55 试用定时器T1设计外部事件计数器。要求每计数1万个脉冲,就将T1转为10ms定时方式,当定时到后,又转为计数方式,如此反复循环不止。设系统的时钟频率为6MHz,建议选用方式1编

30、写相应程序。解:T1工作方式为方式1,计数方式:TMOD:01010000(50H),定时方式:TMOD:00010000(10H) 计数初值XM计数模值655361000055536D8F0H 定时初值(65536X)210000,X60536EC78HMAIN: MOV TMOD,#50HMOV TL1,#0F0HMOV TH1,#0D8HSETB TR1WAIT1: JBC TF1,NEXT1 AJMP WAIT1NEXT1:MOV TMOD,#10HMOV TL1,#78H MOV TH1,#0ECHWAIT2: JBC TF1,MAIN AJMP WAIT257 利用8051单片机定

31、时器测量某正脉冲宽度宽度,采用何种工作方式可以获得最大的量程?若时钟频率为6MHz,则允许测量的最大脉宽是多少?解:要获得最大量程,那么定时/计数器的计数值必须达到最大,只有方式1是工作在16位计数模式。因为测脉宽,所以定时/计数器工作于定时方式,且由外部中断引脚电平启动定时。最大定时时间为:(MX)T(655360)121/6MHz131.072ms73 某异步通讯接口,其帧格式由一个起始位,7个数据位,1个奇偶校验位和一个停止位组成。当该接口每分钟传送1800个字符时,计算其传送波特率。解:由帧格式可知:一个字符由171110位组成,波特率180010/60300波特。76 为什么定时器T

32、1用作串行口波特率发生器时常采用工作方式2?若已知T1设置成方式2,用作波特率发生器,系统时钟频率为11.0592MHz,求可能产生的最高和最低的波特率各是多少?答:因为定时器T1的方式2为自动重装定时初值,这样操作方便,也避免了因重装定时初值引起的定时误差。由波特率当初值为0,SMOD0时,得到最低波特率112.5当初值为255,SMOD1时,得到最低波特率57.6K77在8051应用系统中,时钟频率为6MHz。现需利用定时器T1方式2产生1200波特的波特率。试计算定时器的初值,并指出实际得到的波特率与所要求的波特率是否有误差。解:根据波特率计算公式当SMOD0时,初值为243,此时实际的

33、波特率为:1201.92当SMOD1时,初值为230,此时实际的波特率为:1201.92所以实际波特率与要求的波特率有误差。78 试设计一个8051单片机的双机通讯系统,并编写程序将A机片内RAM40H5FH的数据块通过串行口传送B机的片内RAM 60H7FH中去。解:该双机通讯系统,是将A机数据发送到B机,所以可以采用单工工作方式串行口采用方式1 10位异步收发,采用查询方式A机:发送MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBTR1MOVSCON,#40HMOVR0,#40HCLRTINEXT:MOVA,R0INC R0MOVSBUF,AJNBTI,$C

34、JNE R0,#60H,NEXTAJMP$B机:接收MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBTR1MOVSCON,#50HMOVR0,#60HNEXT:CLRRIJNBRI,$MOVA,SBUFMOVR0,AINC R0CJNE R0,#80H,NEXTAJMP$81 8051有几个中断源,各中断标志是如何产生的,又是如何复位的?CPU响应中断时其中断入口地址各是多少?答:8051有5个中断源,分别是外部中断0,定时器T0中断,外部中断1,定时器T1中断,串行口中断。中断入口地址分别为0003H,000BH,0013H,001BH,0023H。定时器中断

35、标志TF1和TF0是当计数器溢出时产生的,CPU响应中断时能自动清除;外部中断IE1和IE0则是根据外部INT1和INT0的变化产生的,只有边沿方式的IE1和IE0能在响应中断是自动清除,电平方式的只能软件清除;串行口中断标志RI,TI是在串行口接收和发送是产生的,它们只能利用软件清除。83 如何区分串行通讯中的发送中断和接收中断?答:串行通讯中,发送和接收中断共用一个中断入口地址,但可以通过RI和TI标志判断是哪种中断,TI1表示发送中断,RI1表示接收中断。84 如何设定外部中断源是采用边沿触发还是电平触发?这两种中断触发所产生的中断过程有和不同?答:可通过IT1和IT0标志位进行设置,I

36、T0时,为电平触发,IT1时,为边沿触发。电平触发,CPU响应中断时不会清除IE标志,所以中断返回前应撤销INT引脚上的低电平;边沿触发方式,CPU连续两个机器周期采样到先高后低的电平,则置位IE标志,CPU响应中断时由硬件清除IE标志。87试用中断方法设计秒、分脉冲发生器,即由8051的P1.0每秒钟产生一个机器周期的正脉冲,由P1.1每分钟产生一个机器周期的正脉冲。解:设系统时钟为6MHz,由定时器完成定时,最大定时时间为655362us131096us131.096ms,所以设置定时器定时时间为100ms,10次定时为1秒钟,60次一秒为一分钟,所以设置两个计数器分别对10和60计数(M

37、-X)2us100ms,所以X155363CB0HORG 0000HAJMPMAINORG 0023HAJMP INTTIMERMAIN:MOVTH0,#3CHMOVTL0,#0B0HMOVTMOD,#01HSETBTR0CLRP1.0CLRP1.1MOVR4,#60MOVR3,#10STBET0SETBEAINTTIMER:MOVTL0,#0B0HMOVTH0,#3CHDJNZR3,INTENDSETBP1.0CLRP1.0MOVR3,#10DJNZR4,INTENDSETBP1.1CLRP1.1MOVR4,#60INTEND:RETI88 试运用定时器中断技术设计一个秒闪电路,其功能是使发

38、光二极管LED每秒钟闪亮400ms,设系统主频为6MHz。 答:分析题目可知每秒钟LED闪亮400ms,也就是600msLED灭,那也就是只要LED亮400ms,灭600ms即满足要求,即要实现两个延时,根据定时/计数器延时计算公式:(MX)T定时值,最大定时值为655362us131.072ms,不足400ms,所以设置基本延时为100ms,400ms和600ms定时通过多次基本延时实现。(M-X)2us100ms,所以X155363CB0H程序如下:LEDEQU P1.0ORG 0000HAJMPMAINORG 0023HAJMP INTTIMERMAIN:MOVTH0,#3CHMOVTL0,#0B0HMOVTMOD,#01HSETBLEDMOVR3,#00HSTBET0SETBEAINTTIMER:MOVTL0,#0B0HMOVTH0,#3CHINCR3CJNER3,#04H,NEXTCLRLEDAJMPINTENDNEXT:CJNER3,#0AH,INTENDSETBLEDMOVR3,#00HINTEND:RETI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1