单片机练习题及例题.doc

上传人:豆**** 文档编号:33426489 上传时间:2022-08-11 格式:DOC 页数:16 大小:75.50KB
返回 下载 相关 举报
单片机练习题及例题.doc_第1页
第1页 / 共16页
单片机练习题及例题.doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《单片机练习题及例题.doc》由会员分享,可在线阅读,更多相关《单片机练习题及例题.doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品文档,仅供学习与交流,如有侵权请联系网站删除单片机课堂练习题/例题总结习 题 和 思 考 题 一、一个完整的单片微机芯片内至少有哪些部件?、根据程序存储器的差别单片机可以分为那些类型?、单片机的主要特性是什么?它适宜于构成一个通用微机系统还是专用微机系统?为什么?习题与思考题二、8051单片机内包含哪些主要逻辑功能部件?、MCS-51单片机结构上有哪些主要特点?习 题 和 思 考 题 三、详细描绘MCS-51单片机的存储器配置图。 、MCS-51单片机是通过哪些方法将程序存储器和数据存储器严格分开的? 、什么是单片机的特殊功能寄存器?8051/8052各有几个特殊功能寄存器?这些特殊功能寄

2、存器占有的地址范围? 、MCS51单片机有哪些可直接寻址的位? 、什么是堆栈?8031的堆栈区可以设在什么地方?一般应设在什么区域?如何实现?试举例说明。习题和思考题四1、试根据P1口和P3口的结构特性,指出它们作为输入口或第二功能输入/输出的条件。2、MCS-51中无ROM型单片机在应用中P2口和P0口能否直接作为输入/输出连接开关、指示灯之类的外围设备?为什么?3、画出MCS-51系列单片机进行系统扩展时的三总线结构图。 课堂练习一1、8031有四个工作寄存器区,由PSW状态字中的RS1、RS0两位的状态来决定,单片机复位后,若执行 SETB RS1 指令,此时只能使用( )区的工作寄存器

3、。A、0区 B、1区 C、2区 D、3区2. 09H位所在的单元地址是( )A 02H B 21H C 08H D20H3.单片机在进行取指令操作时,指令的地址是由( )的内容决定。A SP BPC C DPTR D PSEN和ALE4. P1口作输入用途之前必须( )。A外接高电平 B外接上拉电阻 C相应端口先置0 D相应端口先置15.程序计数器PC用来( )。A存放指令 B存放上一条的指令地址 C存放下一条的指令地址 D存放正在执行的指令地址思 考 题1. 数123可能是( )。 A. 二进制数 B. 八进制数 C. 十六进制数 D 四进制数 E.十进制数2. 8031单片机内部RAM包括

4、( ) 。 A.程序存储区 B堆栈区 C工作寄存器及特殊功能区 D位寻址区 E. 中断入口地址区3. 8051单片机CPU的主要功能有( )。A.产生控制信号 B存储数据 C.算术、逻辑运算及位操作 DI/O端口数据传送 E.驱动LED4.单片机能够直接运行的程序是( )。 A. 汇编源程序 B. C语言源程序 C. 高级语言程序 D. 机器语言源程序5. 十进制数126其对应的十六进制可表示为( )。 A8F B8E CFE D. 7E6. 十进制数89.75其对应的二进制可表示为( ). A. B.10 C.11 D.117. 二进制数对应的十六进制数可表示为( ) A.192H BC90

5、H C 1A2H D. CA0H8. 二进制数对应的十六进制数可表示为( )。 A 1D3H B, 1B6H C DBOH D. 666H9. -3的补码是( )。 A B. C D 10. CPU主要的组成部部分为( )。 A运算器,控制器 B加法器,寄存器 C. 运算器,寄存器 D. 运算器,指令译码器11. INTEL 8051 CPU是( )位的单片机。 A 16 B4 C8 D.准16位12. 对于INTEL 8031来说,/EA脚总是( ) A.接地 B.接电源 C. 悬空 D.不用13. 在单片机中,通常将一些中间计算结果放在( )中 A.累加器 B控制器 C. 程序存储器 D.

6、数据存储器14. 程序计数器PC用来( )。 A存放指令 B存放正在执行的指令地址 C. 存放下一条的指令地址 D存放上一条的指令地址15. 指令和程序是以( )形式存放在程序存储器中。 A. 源程序 B. 汇编程序 C. 二进制编码 DBCD码16. 单片机应用程序一般存放在( )中。 A. RAM BROM C. 寄存器 DCPU17. 单片机上电后或复位后,工作寄存器R0是在( )。 A. 0区00H单元 B0区01H单元 C. 1区09H单元 DSFR18. 进位标志CY在( )中。 A. 累加器A B算术逻辑运算部件ALU C程序状态字寄存器PSW D. DPDR19. 单片机805

7、1的XTALl和XTAL2引脚是( )引脚 A. 外接定时器 B外接串行口 C. 外接中断 D.外接晶振20. 8031复位后,PC与SP的值为( )。 A0000H,00H B0000H,07H C0003H,07H D. 0800H,00H21. P0,P1口作输入用途之前必须( )。 A. 相应端口先置1 B相应端口先置0 C外接高电平 D外接上拉电阻22. 8031单片机中既可位寻址,又可字节寻址的单元是( )。 A20H B30H C00H D70H23. 8031单片机中片内RAM共有( )字节。 A128 B256 C4K D64K24. 当标志寄存器PSW的RS0、RS1分别为

8、1和0时,系统选用的工作寄存器组为( )。 A. 组0 B组1 C组2 D. 组325. 8051的内部RAM中,可以进行位寻址的地址空间为( )。 A. 00H2FH B 20H2FH C 00HFFH D. 20HFFH26. 8051的程序计数器PC为16位计数器,其寻址范围是( ) 。 A. 8K B. 16K C 32K D 64K27. 8051单片机中,唯一一个用户不能直接使用的寄存器是( )。 APSW B. DPTR CPC D. B28. 对MCS-51单片机来说,其内部RAM( )。 A.只能位寻址 D只能字节寻址 C既能位寻又能字节寻址 D少部分能位寻址29. 所谓系统

9、总线,指的是( )。 A. 数据总线 B地址总线 C. 内部总线 D外部总线 E控制总线习题和思考题五 1、MCS-51指令系统有几种寻址方式?如果要对特殊功能寄存器进行操作将使用哪种寻址方式? 2、在MCS-51程序段中,怎样识别位地址和字节地址? 3、怎样区分内部RAM高128个字节地址以及特殊功能寄存器的地址? 4、MCS-51指令系统按其操作功能分几大类?例:设(70H) = 60H, (60H) = 20H, P1口为输入口,当前输入状态为 B7 H, 执行下面的程序:MOV R0,#70H; (R0) = 70HMOV A,R0;(A) = 60HMOV 01H,R0; (R1)

10、= (70H) = 60HMOV B,R1;(B) = 20HMOV R0,P1; (70H) = B7H结果为:(70H) = B7H(B) = 20H(R1) = 60H (R0) = 70H习题与思考题六1、写出实现以下数据传送的MCS-51指令:1) R7内容传送到R4;2) 外部RAM20H单元内容送R0;3) 外部RAM1000H单元内容送内部RAM30H;4) ROM2000H单元内容送R2;5) 外部RAM0456H的内容送外部RAM0078H单元。2、若(SP)=26H,(A)=37H,(DPTR)=0CFA 8H;执行PUSH A,PUSH DPL, POP A, POP

11、DPL指令后,试指出SP、A、DPTR的数值。3、设R0的内容为32H,A的内容为48H,内部RAM32H内容为80H,40H内容为08H,请指出在执行下列程序段后各单元内容的变化。MOV A, R0MOV R0, 40HMOV 40H, AMOV R0, #40HMOV R0, A例、将30H和31H二单元清0,试编程。 ORG0100H MOV R0,30H ; R0指向30H单元 MOV R0,00; 30H单元清0 INC R0 ; R0加1,指向31H单元 MOV R0,00; 31H单元清0 L:SJMP L ; 停机 END例、将内部RAM中40H与41H二单元内容相乘,乘积存4

12、3H,42H单元中(高字节存在43H单元,低字节存在42H单元);将40H和41H二单元内容相除,商存在44H单元中,余数存在45H单元中,试编程。ORG 0100HMOVA,40H; (40H)被乘数 AMOVB,41H; (41H)乘数BMUL AB ; (A)(B)BAMOV42H,A;MOV43H,B; 积存43H,42H单元中MOVA,40H; (40H)被除数 AMOVB,41H; (41H)除数BDIVAB ; ABMOV44H,A; 商存入44H单元中MOV45H,B; 余数存入45H单元中L:SJMPL ; 停机END习题与思考题七已知(A)=7AH,(R0)=30H,(30

13、H)=A5H, (PSW)=80H,问执行下列各指令后的结果(每条指令相互独立)。(1) XCH A, R0; (A)=; (R0)=(2) XCH A, 30H; (A)=; (30H)=(3) XCH A, R0; (A)=; (R0)=;(30H)=(4) XCHD A, R0; (A)=; (R0)=;(30H)=(5) SWAP A; (A)=(6) ADD A, R0; (A)=; (Cy)=;(OV)=(7) ADD A, 30H; (A)=; (Cy)=;(OV)=(8) ADDC A, 30H; (A)=; (Cy)=;(OV)=(9) SUBB A, 30H; (A)=;

14、(Cy)=;(OV)=(10) SUBB A, #30H; (A)=; (Cy)=;(OV)=例、将40H单元中的内容,低四位送41H单元低四位,高四位送42H单元的高四位,试编程。ORG 0100HMOV A,40H; A (40H)ANLA,0FH; 屏蔽A中高四位,保留低四位MOV 41H,A; 41H 低四位MOV A,40H; A (40H)ANLA,0F0H; 屏蔽A中低四位,保留高四位MOV 42H,A ; 42H 高四位L:SJMPL ; 停机END例:将30H单元中的低四位置1,且不影响高四位的值,试编程。ORG 0010H ORL30H,0FHL:SJMPL END习题与思

15、考题八1、设(A)=B,(R4)=B,请分别写出它们进行“与”、“或”、“异或”操作结果。若要将R4内容取反,试问用什么指令实现?2、试编程将内部RAM26H单元位2、4、6取反后送P1口。例:若A中存放待处理命令编号(07),ROM中存放着标号为PMTB的转移地址表,则执行下列程序,将根据A内的命令编号转向相应的命令处理程序。PM:MOV R1, ARLAADDA, R1;(A)3MOV DPTR, #PMTB; 转移表首址DPTRJMPA+DPTRPMTB:LJMPPM0;转向命令0处理入口 LJMPPM1;. LJMPPM2;. LJMPPM3;. LJMPPM4;. LJMPPM5;.

16、 LJMPPM6;. LJMPPM7;转向命令7处理入口例:延时程序START:SETBP1.1DL:MOV30H, #40HDL0:MOV31H, #0F0HDL1:DJNZ31H, DL1DJNZ30H, DL0CPLP1.1AJMPDL习题与思考题九1、试编一程序将内部RAM 30H3FH单元数据传送到外部RAM首址为0F00H的单元中去。2、有两块数据分别在内部RAM20H29H、30H39H,现将两块数据对换,试编程。3、从内部RAM 24H单元开始存放有30个用ASC码表示的字符和数据,现要找B字符,若找到则转移到其处理程序,若找不到B直至找完则停机。试编程。程序示例 一、 循环程

17、序例1:对数据区的一片单元清零-单重循环程序将30H3FH单元的内容清成零。程序如下:ZZZ:MOVR0, # 30HMOVR7, # 10HMOVA, # 00HLOOP:MOVR0, AINCR0DJNZR7, LOOP例2:软件延时-多重循环程序DMS:MOVR5, # 0EHDD1:MOVR7, # 64HDD2:NOPNOPNOPDJNZR7, DD2DJNZR6, DD1二、 算逻处理程序例1:多字节二进制数加法程序设两个加数分别存放在40H和50H为首址的单元中(先存低位),求这两个数的和,并将和存放到40H为首址的单元中去。如: 被加数 加数(40H)=A7H (50H)=35

18、H(41H)=5BH (51H)=DFH(42H)=2FH (52H)=14H主程序:JAFA:MOVR0,#40HMOVR1,#50HMOVR2,#04HACALLJASUB.加法子程序:JASUB:CLRCJASB1:MOVA, R0 ADDCA, R1 MOVR0, A INCR0 INCR1 DJNZR2, JASB1 RET例2、多字节乘法程序16位乘8位的乘法程序。设被乘数放在R4、R3中,乘数在R2中,求积并将积放于R7、R6、R5中。思路:(R4)(R3)(R2)=(R4)28+(R3)(R2) =(R4)(R2)28+(R3)(R2)CF:MOVA, R2MOVB, R3MU

19、LAB;完成(R3)(R2)MOVR5, A;积的低位R5MOVR6, B;积的高位R6MOVA, R2MOVB, R4MULAB;完成(R4)(R2)ADDA, R6;(R3)(R2)高位加(R4)(R2)低位MOVR6, A;结果送R6保存,进位在C中MOVA, BADDC A, #00H;(R4)(R2)的高位加低位的进位MOVR7, A;结果送R7RET16位乘16位(R3)(R2)(R1)(R0)=(R3)28+(R2)(R1)28+(R0)=(R3)(R1)216+(R3)(R0)+(R2)(R1)28 +(R2)(R0)例:被乘数3AD6H,乘数03E8H,结果存入33H30H单

20、元。MOV R0,#30HMOV R2,#3AHMOV R3,#0D6HMOV R6,#03HMOV R7,#0E8HMOV R1,#00HCLR CMUL1:MOV A,R3MOV B,R7MUL ABMOV R0,AMOV R4,BMUL2:MOV A,R2MOV B,R7MUL ABADD A,R4MOV R4,AMOV A,BADDC A,#00HMOV R5,AMUL3:MOV A,R3MOV B,R6MUL ABADD A,R4INC R0MOV R0,AMOV A,BADDC A,R5MOV R5,AJNC MUL4MOV R1,#01HMUL4:MOV A,R2MOV B,R6

21、MUL ABADD A,R5INC R0MOV R0,AMOV A,BADDC A,R1INC R0MOV R0,A三、数制转换程序例1、 将A中的1位十六进制数转换为ASCII码思路:数字09的ASCII码分别是30H39H;英文大写字母AF的ASCII码分别是41H46H。当16进制数10,需要加30H;当16进制数10,需要加37H。例2、 单字节十六进制整数转换成十进制整数(BCD码)将40H单元中一字节的十六进制整数转换成十进制数,分别存入31H30H单元中(高字节在后),试编程。思路:一字节十六进制数最大值为FFH,即十进制数为255(3位)。由此可见,一字节二位十六进制数转换成十

22、进制数时可有3位。例3、 单字节二进制小数转换成十进制小数(BCD码)一个n位小数的十进制表达式为:x= a-110-1 + + a-n10-n把x乘以10,所得到的整数部分即为十进制小数的最高位,即a-1,再把小数部分乘以10得a-2,这样执行n次后,便得到所有的a-i(i=1,2,n)。设二进制小数在A中,转换后的十进制小数存放在30H、31H、32H单元中。MOV R0, #30H LP:MOV B, #10MOV R7, #03H MUL ABMOV R0, BINC R0DJNZ R7, LPRET四、 散转程序设计入口地址表256个单元的情况,根据(R2)转移。JMP4:MOVDP

23、TR, #TBL4MOVA, R2ADDA, R2;(R2)2AJNCNADDINCDPH;(R2)2256 NADD:MOV R3, A;暂存MOVC A, A+DPTR ;地址高8位XCHA, R3INCAMOVC A, A+DPTR ;地址低8位MOV DPL, AMOV DPH, R3CLR AJMPA+DPTR TBL4:DW PRG0DW PRG1 . TBL4 +100H: DW PRG128 . DW PRGn五、子程序调用中参数的传递方法1、用堆栈传递参数 MAIN: PUSH70H;起始地址PUSH71H;数据长度ACALL SUBRTNEXT:SUBRT:POPDPH;

24、NEXTHDPHPOPDPL; NEXTLDPLPOPR7 ;数据长度POPR0 ;起始地址SUB1:MOV A, # 00HLOOP:MOV R0, AINCR0DJNZR7, LOOPPUSHDPLPUSHDPHRET2、利用堆栈指针传递 MAIN: ACALL PRINTDB “THIS IS AN EXAMPLE”DB0AH, 0DH, 00HNEXT: PRINT:POPDPH;把参数首址弹出,POPDPL;作为数据指针PPP1:MOV A, # 00HMOVC A, A+DPTR;取出欲打印的字符INCDPTR;字符指针加1JZPEND;判是否为结束字符PPP2: SJMP PPP

25、1PEND:JMPA+DPTR习题与思考题十1、什么叫做伪指令?伪指令与汇编程序有什么区别?2、编写实验二、三、四、五中相应的程序。例:应用 T0 产生 1ms 定时,并使 P1.0 输出周期为 2ms 的方波,设晶振为 6MHZ。1)求计数初值X:(TH0,TL0初值计算)因为 fosc6MHZ,所以 Tcy2us(6106)=210-6s=2us(213X)210-610-3X7692( 01100)B(TH0)=F0H (TL0)=0CH2)方式字TMOD(TMOD)00H3)程序用查询 TF0 的状态来控制 P1.0 的输出,在 P1.0 端得到周期为 2ms 的方波。TART:MOV

26、 TMOD, # 00H;不必MOV TL0, # 0CH;置初值MOV TH0, # 0F0HSETB TR0;启动T0计数LOOP:JBCTF0, PTF0AJMP LOOPPTF0:MOV TL0, # 0CHMOV TH0, # 0F0HCPLP1.0;P1求反AJMP LOOP例:若从T0引脚输入低频负脉冲信号,要求0每次发生负跳变时,从 P1.0 输出一个 500us的同步脉冲,设fosc6MHZ1)TH0. TL0. TH1. TL1初值设定T0:计数方式,使发生负跳变时加计数溢出,程序查询到TF0=1时启动T1定时,故初值应为FFH。T1:定时500us(256X)210-65

27、0010-6 X06H所以 (TH1)(TL1)06H2)TMOD(TMOD)26H3)程序:START:MOV TMOD, # 26HMOV TH1, # 06HMOV TL1, # 06HMOV TH0,# 0FFHMOV TL0, # 0FFHSETB TR0LOOP1:JBCTF0, PTF01AJMP LOOP1PTF01:CLR P1.0SETB TR1 LOOP2:JBCTF1, PTF02AJMP LOOP2PTF02:SETB P1.0CLR TR1AJMP LOOP1例 设内部RAM20H单元和30H 单元中分别存放了两个8位的无符号数 X、Y, 若XY 则让P1.0管脚连

28、接的LED亮;若XY 则让P1.1管脚连接的LED亮。方法1:两个数据做减法SUBB,可根据借位CY来判断两个数的大小!方法2:两个数据做比较CJNE,再根据是否相等和借位CY来判断两个数的大小!方法1编程:X DATE 20H Y DATE 30H ORG 0000H MOV A,X CLR C SUBB A,Y JC L1 CLR P1.0 SJMP FINISHL1: CLR P1.1FINISH: SJMP $ END方法2编程:X DATE 20H Y DATE 30H ORG 0000H MOV A,X CJNE A,Y,L0 L0:JC L1 CLR P1.0 SJMP FINI

29、SHL1: CLR P1.1FINISH: SJMP $ END例:由串行接口发送带偶校验位的ASC码数据块。设数据位于内部RAM 30H3FH单元,fosc=12M,串行口采用方式1,T1用作波特率发生器,SMOD=0,发送的波特率要求为 1200 b/s.1) T1初值计算: 波特率 = 2SMODT1溢出率32 X = 204 = CCH) 发送程序 TSTART:MOV TMOD, # 20H;T1方式2、定时器方式MOV TL1, # 0CCH;置T1初值MOV TH1, # 0CCHMOV SCON, # 40H;置串行口方式1MOV R0, # 30H;R0地址指针,指向首址MO

30、V R7, # 10H;R7计数器,置字节数SETB TR1;启动T1 LOOP:MOV A, R0;取待发送的一个字节MOV C, P;取奇偶标志,奇“1”偶“0”MOV A.7, C;加偶校验位MOV SBUF, A;启动发送 WAIT:JNB TI, WAIT;等发送完毕CLR TI;清TI标志,准备下次发送INC R0;指向下一字节地址DJNZ R7, LOOP;未发完继续RET3) 接收程序 RSTART:MOV TMOD, # 20H;T1方式2、定时器方式MOV TL1, # 0CCH;置T1初值MOV TH1, # 0CCHMOV R0, # 40H;R0地址指针,指向首址MO

31、V R7, # 10H;R7计数器,置字节数SETB TR1;启动T1 LOOP:MOV SCON, # 50H;置方式1,并启动接受 WAIT:JNB RI, WAIT;等接受完毕MOV A, SBUF;取已接受字节到AMOV C, P;取奇偶标志JC ERROR;若有错,转出错处理程序ANL A, # 7FH;未出错,去偶校验位 MOV R0, A;存接受的字节CLR RI;清RI标志,准备下次接受INC R0;指向下一字节地址DJNZ R7, LOOP;未接受完继续RET习题与思考题十五1、单片机访问外部RAM或扩展I/O口的指令共有哪几条?2、一个8031应用系统,外扩两片2716EP

32、ROM,请画出扩展电路图。3、一个8751应用系统,需扩展一片6116RAM作为数据存储器,地址从0000H开始,请画出扩展电路图。对于该系统,若要将片内EPROM中自100H单元开始的10个字节的内容依次移到片外RAM的100H单元开始的10个字节中去,编写该程序段。例 拨盘输入程序:将千、百、十、个 位依次读入存放在 8031 片内RAM30H33H单元。RDS:MOVR0, # 30H;存放单元首址MOVR2, # 7FH;控制字(千位);输入方式MOVR3, # 04H;读4个BCD码LOOP:MOVA, R2MOVP1, AMOVA, P1;读入BCD码ANLA, # 0FH;屏蔽高

33、4位MOVR0, A;送入存储单元INCR0;指向下一个存储单元MOVA, R2;准备下一片拨盘的控制端置0RRAMOVR2, ADJNZR3, LOOPRET习题与思考题十六(P187、201)1、什么是DAC0832接口的单缓冲方式?双缓冲方式?它们各占用8031外部RAM几个单元?软件编程有什么区别?2、用8031单片机和DAC0832组成单缓冲工作方式产生梯形波。斜边采用步幅为1的线形波,幅度从00H到80H,水平部分靠调用延时程序来维持,写出梯形波产生程序。3、若梯形波的水平部分用8031内部定时器来产生,程序应如何修改?4、若8031和ADC0809的连接采用图5-30的方式,用8

34、031内部定时器来控制对模拟信号的采集,要求每分钟采集一次,写出对8路信号采集一遍的程序。5、静态显示电路和动态显示电路各有什么特点?例:信号灯的控制1、要求:(1) 利用单片机的定时查询与中断方式,实现对信号灯的复杂控制。(2) 使P1口的8盏灯由左至右,由右至左轮流电量一次2程序1)定时器查询方式ORG0000HCONT: MOVR2,#07HMOVA,#0FEHNEXT:MOVP1,AACALLDELAYRLADJNZR2,NEXTMOV R2,#07HNEXT1:MOVP1,ARRAACALLDELAYDJNZR2,NEXT1SJMPCONTDELAY: MOV R3,#14H;置50

35、ms计数循环初值MOVTMOD,#10H;设定时器1为方式1MOVTH1,#3CH;置定时器初值MOVTL1,#0B0HSETBTR1;启动T1LP1:JBCTF1,LP2 ;查询计数溢出SJMPLP1;未到50ms继续计数LP2:MOVTH1,#3CH ;重新置定时器初值MOVTL1,#0B0HDJNZR3,LP1 ;未到1s继续循环RET;返回主程序END2)定时器中断方式ORG0000H;程序入口AJMP0100H;指向主程序ORG001BH;定时器T1中断入口AJMPCONT;指向中断服务程序ORG0100HMAIN:MOVTMOD,#10H;置T1为工作方式1MOVTH1,#3CH;

36、置50ms定时初值MOVTL1,#0B0HSETBEA;CPU开中断SETBET1;定时器T1开中断SETBTR1;启动T1CLR08H;清1s计满标志位MOVR3,#14H;置50ms循环初值DISP:MOVR2,07HMOVA,#0FEHNEXT:MOVP1,AJNB08H,$;查询1s时间到否CLR08H;清标志位RLADJNZR2,NEXTMOVR2,#07HNEXT1: MOV P1,AJNB08H,$CLR08HRRADJNZR2,NEXT1SJMPDISPCONT:MOVTH1,#3CH;重置50ms定时初值MOVTL1,#0B0HDJNZR3,EXIT;判1s定时到否MOVR3

37、,#14H;重置50ms循环初值SETB08H;标志位置1EXIT:RETIEND 例 将定时器T0扩展为外部中断源。解:将定时器T0设定为方式2(自动恢复计数初值),TH0和TF0的初值均设置为FFH,允许T0中断,CPU开放中断,源程序如下:MOVTMOD,#06H MOVTH0,#0FFHMOVTL0,#0FFHSETBTR0SETBET0SETBEA T0引脚每输入一个负跳变,TF0都会置1,向CPU请求中断 T0脚相当于边沿触发的外部中断源输入线。中断服务程序如下:AJMPINT0;转向中断服务程序入口 INT0: PUSH PSW ;保护现场 PUSH ACC JB P1.0,EXT0 ;中断源查询并转相应中断服务程序 JB P1.1,EXT1 JB P1.2,EXT2 JB P1.3,EXT3 EXIT: POP ACC ;恢复现场 POP PSW RETIEXT0:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁