📄 voice.lst
字号:
C51 COMPILER V7.02b VOICE 11/16/2005 21:45:17 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE VOICE
OBJECT MODULE PLACED IN Voice.OBJ
COMPILER INVOKED BY: E:\EDATOOLS\KEILC7.0\C51\BIN\C51.EXE Voice.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*****************************************/
2 /* Copyright (c) 2005, 通信工程学院 */
3 /* All rights reserved. */
4 /* 作 者:戴 佳 */
5 /*****************************************/
6
7 #include "voice.h"
8
9 /* 延时t毫秒 */
10 void delay(uint t)
11 {
12 1 uint i;
13 1 while(t--)
14 1 {
15 2 /* 对于11.0592M时钟,约延时1ms */
16 2 for (i=0;i<125;i++)
17 2 {}
18 2 }
19 1 }
20
21 /* 外部中断0服务子程序 */
22 void out_int0() interrupt 0 using 1
23 {
24 1 EX0 = 0; // 关外部中断0
25 1
26 1 PD = 1; // 进入节电状态
27 1
28 1 if(count<2) // 再重播2次,共3次放音
29 1 {
30 2 count++;
31 2 delay(500); // 延时500ms
32 2 P2 = P2&0xFC; // A8=A9=0
33 2 P0 = P0&0x00; // 起始地址为0
34 2 playback(); // 从地址0处播放
35 2 EX0 = 1; // 开外部中断0
36 2 }
37 1 else
38 1 {
39 2 IdleFlag = 1; // 变为空闲状态,可以再次按开始键
40 2 count = 0;
41 2 }
42 1 }
43
44 /* 主程序 */
45 void main()
46 {
47 1 EA = 1; // 开CPU中断
48 1
49 1 count = 0;
50 1 StartFlag = 0;
51 1 IdleFlag = 1;
52 1
53 1 while(IdleFlag==1)
54 1 {
55 2 if (START)
C51 COMPILER V7.02b VOICE 11/16/2005 21:45:17 PAGE 2
56 2 {
57 3 delay(10); // 延时去抖动
58 3 if (START)
59 3 StartFlag = 1; // 开始键按下标志
60 3 }
61 2 if (StartFlag == 1)
62 2 {
63 3 do
64 3 {
65 4 P2 = P2&0xFC; // A8=A9=0
66 4 P0 = P0&0x00; // 起始地址为0
67 4 record(); // 录音开始,存放在地址0处
68 4 }
69 3 while (START); // 开始键松开
70 3
71 3 StartFlag = 0;
72 3
73 3 PR = 1; // 结束录音
74 3 PD = 1; // 进入节电状态
75 3
76 3 delay(500); // 延时500ms再播放录音
77 3
78 3 EX0 = 1; // 开外部中断0
79 3
80 3 P2 = P2&0xFC; // A8=A9=0
81 3 P0 = P0&0x00; // 起始地址为0
82 3 playback(); // 从地址0处进行第一次播放
83 3 IdleFlag = 0; // 当前不空闲,按开始键无效
84 3 }
85 2
86 2 }
87 1 }
88
89 /* 录音函数 */
90 void record(void)
91 {
92 1 CE = 0;
93 1 PD = 0;
94 1 PR = 0;
95 1
96 1 }
97
98 /* 放音函数 */
99 void playback(void)
100 {
101 1 CE = 0;
102 1 PD = 0;
103 1 PR = 1;
104 1 }
105
106
107
108
109
110
111
112
113
114
115
116
117
C51 COMPILER V7.02b VOICE 11/16/2005 21:45:17 PAGE 3
118
119
120
121
122
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 186 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -