1 / 54

第 11 章 Intel51 微计算机定时器 / 计数器应用

第 11 章 Intel51 微计算机定时器 / 计数器应用. 定时器 T/ 计数器 C 接口的工作原理 定时器 T/ 计数器 C 接口应用设计. 定时器 T/ 计数器 C 接口的工作原理. 定时器 T/ 计数器 C 逻辑电路 定时器 T/ 计数器 C 接口可操作寄存器的定义 定时器 T/ 计数器 C 接口可编程寄存器的编址 计数器的 4 种工作模式 CPU 对定时器 T/ 计数器 C 接口的管理. 定时器 T/ 计数器 C 逻辑电路. 计数器及具体控制电路图. T/C 接口内部控制逻辑电路真值表. T/C 接口可操作寄存器的定义.

vilmos
Télécharger la présentation

第 11 章 Intel51 微计算机定时器 / 计数器应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第11章 Intel51微计算机定时器/计数器应用 定时器T/计数器C接口的工作原理 定时器T/计数器C接口应用设计

  2. 定时器T/计数器C接口的工作原理 定时器T/计数器C逻辑电路 定时器T/计数器C接口可操作寄存器的定义 定时器T/计数器C接口可编程寄存器的编址 计数器的4种工作模式 CPU对定时器T/计数器C接口的管理

  3. 定时器T/计数器C逻辑电路

  4. 计数器及具体控制电路图

  5. T/C接口内部控制逻辑电路真值表

  6. T/C接口可操作寄存器的定义 定时器/计数器控制寄存器TCON TRi(i=0、1)=1 开始计数 TF i(i=0、1)=1 溢出

  7. T/C接口可操作寄存器的定义 计数器工作模式管理寄存器TMOD GATE = 1 由外中断输入控制启动 C/T = 1 计数 M1、M0 工作模式

  8. T/C接口可操作寄存器的定义 计数器TH和TL的读/写操作

  9. T/C接口可编程寄存器的编址

  10. 计数器的4种工作模式

  11. 计数器的4种工作模式——模式2

  12. 计数器的4种工作模式——模式2

  13. 计数器的4种工作模式——模式3

  14. 计数器的4种工作模式——模式3

  15. CPU对T/C接口的管理 1.定时器/计数器独立应用 (1)设置模式寄存器TMOD (2)设置TL和TH,TL=00H,TH=00H (3)启动计数 (4)在达到规定的时间后停止计数器计数 2.定时器/计数器与中断连动应用 (1)设置模式寄存器TMOD (2)设置计数器TL和TH的计数初始值 (3)开放中断 (4)启动计数

  16. 定时器T/计数器C接口应用设计 计数器应用设计 定时器应用设计

  17. 计数器应用设计 1.在确定的时间间隔中记录外部输入脉冲个数

  18. 计数器应用设计 TMOD_W EQU 00001101B ;GATE0 = 1 计数器T0启动受控于INT0 ;C/T0 = 1 计数方式 ;M1 = 0 ,M0 = 1 计数器T0工作在模式1 I_COUNT EQU 00H C_LED EQU P2 DEL_LEN EQU 10H ORG 0000H LJMP START ORG 0030H START: LCALL INIT

  19. 计数器应用设计 MLOOP: MOV A ,#10H LCALL DISP MOV R5 ,#DEL_LEN LCALL DELAY MOV A ,TH0 PUSH A SWAP A ANL A ,#0FH LCALL DISP MOV R5 ,#DEL_LEN LCALL DELAY POP A ANL A ,#0FH LCALL DISP

  20. 计数器应用设计 MOV R5 ,#DEL_LEN LCALL DELAY MOV A ,TL0 PUSH A SWAP A ANL A ,#0FH LCALL DISP MOV R5 ,#DEL_LEN LCALL DELAY POP A ANL A ,#0FH LCALL DISP MOV R5 ,#DEL_LEN LCALL DELAY SJMP MLOOP

  21. 计数器应用设计 INIT: MOV TMOD ,#TMOD_W MOV TH0 ,#I_COUNT MOV TL0 ,#I_COUNT SETB TR0 RET DELAY: MOV R7 ,#00H MOV R6 ,#00H LOOP: DJNZ R7 ,LOOP DJNZ R6 ,LOOP DJNZ R5 ,LOOP RET

  22. 计数器应用设计 DISP: MOV DPTR,#WTAB MOVC A ,@A+DPTR MOV C_LED ,A RET WTAB: DB 0C0H,0F9H,0A4H,0B0H DB 099H,092H,082H,0F8H DB 080H,090H,088H,083H DB 0C6H,0A1H,086H,08EH DB 07FH END

  23. 计数器应用设计 2.计数器与中断连动管理十字路口交通灯

  24. 计数器应用设计 TMOD_W EQU 00000101B ;GATE0 = 0 计数器T0启动只受控于TR0 ;C/T0 = 1 计数方式 ;M1 = 0 ,M0 = 1 计数器T0工作在模式1 I_TH0 EQU 0FFH I_TL0 EQU 0FEH A_LAMP EQU P2 SN_G EQU 10011001B EW_G EQU 01100110B DEL_LEN EQU 10H ORG 0000H LJMP START ORG 000BH LJMP T0_S ORG 0030H START: LCALL INIT MLOOP: MOV A_LAMP ,#SN_G SJMP MLOOP

  25. 计数器应用设计 INIT: MOV TMOD ,#TMOD_W MOV TH0 ,#I_TH0 MOV TL0 ,#I_TL0 SETB ET0 SETB EA SETB TR0 RET DELAY: MOV R7 ,#00H MOV R6 ,#00H LOOP: DJNZ R7 ,LOOP DJNZ R6 ,LOOP DJNZ R5 ,LOOP RET

  26. 计数器应用设计 T0_S: CLR EA MOV A_LAMP ,#EW_G MOV R5 ,#DEL_LEN LCALL DELAY MOV TH0 ,#I_TH0 MOV TL0 ,#I_TL0 SETB EA RETI END

  27. 定时器应用设计 1.测量外部正脉冲的宽度

  28. 定时器应用设计 TMOD_W EQU 00001001B ;GATE0 = 1 计数器T0启动受控于INT0 ;C/T0 = 0 定时方式 ;M1 = 0 ,M0 = 1 计数器T0工作在模式1 I_COUNT EQU 00H PULSE BIT P3.2 C_LED EQU P2 DEL_LEN EQU 10H ORG 0000H LJMP START ORG 0030H START: LCALL INIT WAIT1: JNB PULSE ,WAIT1 WAIT2: JB PULSE ,WAIT2

  29. 定时器应用设计 MOV A ,TH0 PUSH A SWAP A ANL A ,#0FH LCALL DISP MOV R5 ,#DEL_LEN LCALL DELAY POP A ANL A ,#0FH LCALL DISP MOV R5 ,#DEL_LEN LCALL DELAY MOV A ,TL0 PUSH A SWAP A ANL A ,#0FH LCALL DISP

  30. 定时器应用设计 MOV R5 ,#DEL_LEN LCALL DELAY POP A ANL A ,#0FH LCALL DISP MOV R5 ,#DEL_LEN LCALL DELAY SJMP START INIT: MOV TMOD ,#TMOD_W MOV TH0 ,#I_COUNT MOV TL0 ,#I_COUNT SETB TR0 RET

  31. 定时器应用设计 DELAY: MOV R7 ,#00H MOV R6 ,#00H LOOP: DJNZ R7 ,LOOP DJNZ R6 ,LOOP DJNZ R5 ,LOOP RET DISP: MOV DPTR,#WTAB MOVC A ,@A+DPTR MOV C_LED ,A RET WTAB: DB 0C0H,0F9H,0A4H,0B0H DB 099H,092H,082H,0F8H DB 080H,090H,088H,083H DB 0C6H,0A1H,086H,08EH END

  32. 定时器应用设计 CPU执行测量脉冲宽度程序的过程

  33. 定时器应用设计 2.定时器替代软件延时程序

  34. 定时器应用设计 TMOD_W EQU 00000001B ;GATE0 = 0 计数器T0启动只受控于TR0 ;C/T0 = 0 定时方式 ;M1 = 0 ,M0 = 1 计数器T0工作在模式1 I_TH0 EQU 03CH I_TL0 EQU 0B0H A_TIME EQU 40 A_LAMP EQU P2 EW_G EQU 01100110B ORG 0000H LJMP START ORG 000BH LJMP T0_S ORG 0030H START: LCALL INIT MLOOP: SJMP MLOOP

  35. 定时器应用设计 INIT: MOV A_LAMP ,#EW_G MOV R0 ,#0 MOV TMOD ,#TMOD_W MOV TH0 ,#I_TH0 MOV TL0 ,#I_TL0 SETB ET0 SETB EA SETB TR0 RET

  36. 定时器应用设计 T0_S: INC R0 CJNE R0 ,#A_TIME ,EXIT MOV R0 ,#0 XRL A_LAMP ,#0FFH EXIT: MOV TH0 ,#I_TH0 MOV TL0 ,#I_TL0 RETI END

  37. 定时器应用设计 fosc=12MHz (TH)(TL) = 216 –50000s  12MHz / 12 = 15536 =(3C)(B0) 完成40次定时 =延时2秒

  38. 定时器应用设计 3.演奏音乐程序设计

  39. 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 2.5ms 用定时器产生音调 产生200HZ的音频信号 200HZ音频的变化周期为1/200秒=5ms 当P1.0的高电平或低电平的持续时间为2.5ms时 发出200HZ的音调

  40. 乐曲中的数据 音符:对应确定的频率 音符的发音——音频脉冲,算出音频的周期(1/频率),周期除以2(半周期)定时器计时半周期时间,当计时到将输出脉冲的I/O(P1.0)反相 发声持续时间——控制一个音符输出的时间 节拍——的延时是由曲调决定的,相对固定

  41. 各音的频率、定时初值

  42. 各低音的频率、定时初值

  43. 各中音的频率、定时初值

  44. 各高音的频率、定时初值

  45. 拍节定时

  46. 乐曲程序设计 每一音符的时间常数和其相应的节拍常数作为一组,按顺序将乐曲中的所有常数排列成一个表,然后由查表(DPTR)程序依次取出,产生音符并控制节奏,实现演奏效果。 结束符和体止符分别用代码00H和FFH表示,若查表结果为00H,表示停止乐曲;若查表结果为FFH,产生相应的停顿(休止符)效果。 一个定时器控制音符,一个定时器控制节拍。

  47. 程序框图

  48. 乐曲程序 Speaker BIT P1.0 ;输出脉冲 Index EQU 70H ;存放演奏音符数据(与DPTR结合)指针(索引值) TINT_C EQU 71H ;存放节拍定时数值 Note_L EQU 72H ;存放音符数据 Note_H EQU 73H IC_TMP EQU 74H ;临时中断计数器值 N_TEMP EQU 75H T10msH EQU 0EFH ;10毫秒延时参数(节拍定时) T10msL EQU 0D8H

  49. 乐曲程序 ORG 0H LJMP START ORG 000BH ;T0 中断入口地址 LJMP Time0 ;音符输出 ORG 001BH ;T1 中断入口地址 LJMP Time1 ;节拍定时 ORG 30H START: MOV Index,#0H MOV TMOD,#11H ;设定时器0和1为16 位定时 MOV TH1,#T10msH MOV TL1,#T10msL SETB ET0 SETB ET1

  50. 乐曲程序 GETD: CLR EA ;关中断 MOV IC_TMP,#0H ;临时中断计数器清零 MOV A,Index ;取索引值 MOV DPTR,#N_DEL ;取定时节拍数据 MOVC A,@A+DPTR JZ START MOV TINT_C,A ;存定时节拍数据 MOV A,Index MOV DPTR,#NOTET ;取音符数据 MOVC A,@A+DPTR CJNE A,#0FFH,OUTSPK SETB Speaker CLR TR0 JMP LOOP

More Related