📄 main4.lst
字号:
C51 COMPILER V8.08 MAIN4 11/10/2008 22:15:21 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN4
OBJECT MODULE PLACED IN main4.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE main4.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include <reg51.h>
3 #include "main4.h"
4 #include "ISD4004.c"
*** WARNING C280 IN LINE 196 OF ISD4004.C: 'ovflog': unreferenced local variable
5
6 uchar key_num = 0;
7 uchar ad_l ,ad_h ;
8
9 //普通延时函数
10 void commen_delay(uint k)
11 {
12 1 uint i ,j ;
13 1 for(i = 0 ; i < k ; i ++)
14 1 for(j = 0 ; j < 121 ; j ++)
15 1 ;
16 1 }
17
18 //初始化程序
19 //初始化单片机,并等待按键按下
20 void in_stc()
21 {
22 1
23 1
24 1 P0 = P1 = P2 = P3 = 0xff;//初始化
25 1 isd_pu();//AN键按下,isd上电并延迟50ms
26 1 isd_pd();
27 1 isd_pu();
28 1
29 1 }
30
31 //按键扫描程序
32 //入口:无
33 //出口:按键值key_num
34 //功能:实现按键值的加减,让主函数对按键值做出不同的反应
35 void scan_key()
36 {
37 1 if(up == 0)
38 1 {
39 2 commen_delay(30);
40 2 if(up == 0)
41 2 key_num ++; //键值加
42 2 if(key_num > 11)
43 2 key_num = 0 ;
44 2 }
45 1 if(down == 0)
46 1 {
47 2 commen_delay(30);
48 2 if(down == 0)
49 2 key_num --; //键值减
50 2 if(key_num < 0)
51 2 key_num = 0 ;
52 2 }
53 1
54 1 switch ( key_num )//根据键值key_num判定播放音的起始位置
C51 COMPILER V8.08 MAIN4 11/10/2008 22:15:21 PAGE 2
55 1 {
56 2 case 0 : {ad_l = 0x00; ad_h = 0x00; break;} //开机音乐
57 2 case 1 : {ad_l = 0x40; ad_h = 0x00; break;} //工学院站
58 2 case 2 : {ad_l = 0x80; ad_h = 0x00; break;} //东环路口站
59 2 case 3 : {ad_l = 0xc0; ad_h = 0x00; break;} //雀山公园
60 2 case 4 : {ad_l = 0x00; ad_h = 0x01; break;} //柳州宾馆
61 2 case 5 : {ad_l = 0x40; ad_h = 0x01; break;} //龙潭公园
62 2 case 6 : {ad_l = 0x80; ad_h = 0x01; break;} //东风商场
63 2 case 7 : {ad_l = 0xc0; ad_h = 0x01; break;} //柳侯公园
64 2 case 8 : {ad_l = 0x00; ad_h = 0x02; break;} //华信国际东
65 2 default : break ;
66 2 }
67 1
68 1 /*
69 1 switch ( key_num )//根据键值key_num判定播放音的起始位置
70 1 {
71 1 case 0 : {ad_l = 0x00; ad_h = 0x00; break;} //开机音乐
72 1 case 1 : {ad_l = 0x10; ad_h = 0x00; break;} //工学院站
73 1 case 2 : {ad_l = 0x20; ad_h = 0x00; break;} //东环路口站
74 1 case 3 : {ad_l = 0x30; ad_h = 0x00; break;} //雀山公园
75 1 case 4 : {ad_l = 0x40; ad_h = 0x00; break;} //柳州宾馆
76 1 case 5 : {ad_l = 0x50; ad_h = 0x00; break;} //龙潭公园
77 1 case 6 : {ad_l = 0x60; ad_h = 0x00; break;} //东风商场
78 1 case 7 : {ad_l = 0x70; ad_h = 0x00; break;} //柳侯公园
79 1 case 8 : {ad_l = 0x80; ad_h = 0x00; break;} //华信国际东
80 1 case 9 : {ad_l = 0x90; ad_h = 0x00; break;}
81 1 case 10 : {ad_l = 0xa0; ad_h = 0x00; break;}
82 1 case 11 : {ad_l = 0xb0; ad_h = 0x00; break;}
83 1 default : break ;
84 1 }
85 1 */
86 1 }
87
88 //放录音模式选择及放音选段函数
89 void find_play()
90 {
91 1 if(PR == 1) //如果PR==1则转入录音部分
92 1 {
93 2 if(AN == 0 ) //录音键,录音时按住不放
94 2 {
95 3 // rec(0xb0,0x00); //开始从指定位置录音
96 3 rec(0x90,0x00); //开始从指定位置录音
97 3 }
98 2 }
99 1 else //如果PR=0则转入放音部分
100 1 {
101 2 if(AN == 0) //放音键,按下开始放音
102 2 {
103 3 play(ad_l,ad_h); //从指定位置开始放音
104 3 key_num ++; //自动跳转到下一段
105 3
106 3 if(key_num > 11)
107 3 key_num = 0;
108 3 }
109 2 if(turn == 0) //转弯
110 2 {
111 3 play(0x60,0x00);
112 3 }
113 2 if(brige == 0)//过桥提示语
114 2 {
115 3 play(0x90,0x00);
116 3 }
C51 COMPILER V8.08 MAIN4 11/10/2008 22:15:21 PAGE 3
117 2 if (sit == 0) //让座提示语
118 2 {
119 3 play(0x90,0x00);
120 3 }
121 2
122 2 }
123 1 isd_stop();
124 1 isd_pd();
125 1 }
126
127
128
129 //**********************************************
130 //主程序
131 //功能:1.录音时,按住AN键,LED点亮开始录音,松开AN键即可停止录音
132 //再次按下AN键,LED点亮开始录音第二段,依次类推,直至芯片溢出
133 //按stop键芯片复位
134 //2.放音时,按下AN键,即可播放一段语音,按stop键芯片复位.
135 //***************************************************
136 void main(void)
137 {
138 1 in_stc();//单片机初始化
139 1 LED = 0 ;
140 1 //play(0x20,0x00);
141 1 //key_num++ ;
142 1 while (1)
143 1 {
144 2 LED = 0 ;
145 2 in_stc();//单片机初始化
146 2 scan_key(); //按键扫描,得出键值
147 2 find_play(); //找指定的放音位置
148 2 }
149 1 }
150
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 645 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -