gha890826

2020-05-29 8051 speaker(correct)

May 7th, 2020 (edited)
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. T0_COUNT EQU 62500
  2. SPK EQU P3.7
  3. TIMES EQU 30H
  4. H_TMP EQU 31H
  5. L_TMP EQU 32H
  6. ;================================
  7. ORG 0H
  8. JMP SETTING
  9. ORG 0BH
  10. JMP TIMER0_INT
  11. ORG 1BH
  12. JMP TIMER1_INT
  13. ;================================
  14. SETTING:
  15. SETB EA
  16. SETB ET0
  17. SETB ET1
  18. MOV SP,#70H
  19. MOV TMOD,#00010001B
  20. MOV TH0,#(65536-T0_COUNT)/256
  21. MOV TL0,#(65536-T0_COUNT) MOD 256
  22. MOV DPTR,#TABLE
  23. MOV R0,#0
  24. SETB TR0
  25. ;================================
  26. MAIN:
  27. MOV A,R0
  28. MOVC A,@A+DPTR
  29. MOV TIMES,A
  30. CJNE A,#255,SOUND
  31. MOV R0,#0
  32. JMP MAIN
  33. SOUND:
  34. CALL READ_TONE
  35. SOUND1:
  36. MOV A,TIMES
  37. CJNE A,#0,SOUND1
  38. CLR TR1
  39. INC R0
  40. JMP MAIN
  41. READ_TONE:
  42. INC R0
  43. MOV A,R0
  44. MOVC A,@A+DPTR
  45. MOV H_TMP,A
  46. MOV TH1,H_TMP
  47. INC R0
  48. MOV A,R0
  49. MOVC A,@A+DPTR
  50. MOV L_TMP,A
  51. MOV TL1,L_TMP
  52. MOV A,H_TMP
  53. CJNE A,#0,SPK_WORK
  54. CLR TR1
  55. RET
  56. SPK_WORK:
  57. SETB TR1
  58. RET
  59. ;=========================
  60. TIMER0_INT:
  61. PUSH ACC
  62. PUSH PSW
  63. DEC TIMES
  64. MOV TH0,#(65536-T0_COUNT)/256
  65. MOV TL0,#(65536-T0_COUNT) MOD 256
  66. SETB TR0
  67. POP PSW
  68. POP ACC
  69. RETI
  70. ;=============================
  71. TIMER1_INT:
  72. PUSH ACC
  73. PUSH PSW
  74. CPL SPK
  75. MOV TH1,H_TMP
  76. MOV TL1,L_TMP
  77. SETB TR1
  78. POP PSW
  79. POP ACC
  80. RETI
  81. ;=============================
  82. TABLE:
  83. DB 10,251,5
  84. DB 10,0,0
  85. DB 255
  86. ;============================
  87. END
Add Comment
Please, Sign In to add comment