📄 main.lst
字号:
C51 COMPILER V7.07 MAIN 12/19/2008 15:13:10 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE main.c LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /**************************************************************************
2 SPI总线操作ISD1760的录放音程序。 循环播放!!!!!!!!!!!!!!
3 **************************************************************************/
4 #include <C8051F236.h>
5 #include <intrins.h>
6 #include "SPI.h"
7
8 #define SYSCLK 24000000 // 系统工作频率
9 #define BAUDRATE 9600 // 串口工作波特率
10
11 unsigned char bdata SR0_L;
12 unsigned char bdata SR0_H;
13 unsigned char bdata SR1;
14 unsigned char ID,APCL=0,APCH=0;
15 unsigned char Uart_Temp;
16 unsigned char KEY_Value;
17 sbit HandUp=P1^7;
18 unsigned char Need_to_Send=0;
19 unsigned char Uart_Coun=0;
20 unsigned char Uart_Flag=0;
21 unsigned char serial_rx_buff[8];
22 unsigned char serial_tx_buff[8];
23
24 /**************************************************************************
25 函数初始化
26 **************************************************************************/
27 void SYSCLK_Init(void);
28 void PORT_Init();
29 void UART_Init();
30 void Timer0_Init(void);
31 void Timer1_Init(void);
32 void Interupt_Init(void);
33 void delay_ms(unsigned int);
34 void ISD_Init(void) ;
35 //void ISD_CHK_MEM(void);
36 void ISD_PU(void);
37 void ISD_Stop(void);
38 void ISD_Reset(void);
39 void ISD_PD(void);
40 unsigned char ISD_SendData(unsigned char);
41 //void SendChar(unsigned char);// 调试用的串口发送数据
42 void SendString (unsigned char *str, unsigned char strlen);
43 void RdStatus(void);
44 void ISD_Play();
45 void ISD_FWD();
46 void ClrInt(void);
47 //void ISD_WR_NVCFG(void);
48 void ISD_WR_APC2(unsigned char);
49 //unsigned char RD_DevID(void);
50 //void RdAPC(void);
51 //void Erase_All(void);
52 //void SetERASE(unsigned char);
53 //void SetREC(unsigned char);
54 //void SetPLAY(unsigned char);
55 //void GetToneAdd(unsigned char, unsigned int *ipStartAdd, unsigned int *ipEndAdd);
C51 COMPILER V7.07 MAIN 12/19/2008 15:13:10 PAGE 2
56
57 /**************************************************************************
58 其实只需要放音程序 ??????????????????????????这是最后要的主函数保留
59 功能原型:void ISD_Play(void)
60 功能:放音
61 **************************************************************************/
62 void main()
63 {
64 1 //int i;
65 1 WDTCN = 0XDE; // 此条及下条 禁止看门狗
66 1 WDTCN = 0XAD;
67 1 SYSCLK_Init();
68 1 PORT_Init();
69 1 UART_Init(); // 串口初始化
70 1 Timer0_Init();
71 1 Timer1_Init();
72 1 Interupt_Init();
73 1 ISD_Init();
74 1 HandUp=0;
75 1 KEY_Value=0;
76 1
77 1 while(1)
78 1 {
79 2 if (TL0>50)
80 2 {
81 3 HandUp=1;
82 3 TL0=0;
83 3 TL1=0;
84 3 //播放欢迎词
85 3 //播放功能提示:烧开水按1,做咖啡按2,清洗按3,除垢按4,做蒸汽按5,取消按6
86 3
87 3 //for (i=0;i<=9;i++) //5是播放的段数,这里是顺序播放所有的语音,测试用!!!!!!!!!!
88 3 //{
89 3 // ISD_Play(); //在函数里面已经写了,当播放指令出错时,从新播放
90 3 // while((!(SR1&0x01))||(SR1&0x04)); //当PLAY=1,RDY=0
91 3 // ISD_FWD();
92 3 // while(1);
93 3 //}
94 3 //ISD_PD(); //播放完则下电模式
95 3
96 3 while(TL1<2)
97 3 {
98 4 if (KEY_Value)
99 4 {
100 5 //按键处理
101 5 switch(KEY_Value)
102 5 {
103 6 case 1:
104 6 serial_tx_buff[0]=FRAME_WATER;
105 6 Need_to_Send=1;
106 6 break;
107 6 case 2:
108 6 serial_tx_buff[0]=FRAME_NOW_COFF;
109 6 Need_to_Send=1;
110 6 break;
111 6 case 3:
112 6 serial_tx_buff[0]=FRAME_CLEAN;
113 6 Need_to_Send=1;
114 6 break;
115 6 case 4:
116 6 serial_tx_buff[0]=FRAME_DIRTY;
117 6 Need_to_Send=1;
C51 COMPILER V7.07 MAIN 12/19/2008 15:13:10 PAGE 3
118 6 break;
119 6 case 5:
120 6 serial_tx_buff[0]=FRAME_STEAM;
121 6 Need_to_Send=1;
122 6 break;
123 6 case 6:
124 6 serial_tx_buff[0]=FRAME_RESET;
125 6 Need_to_Send=1;
126 6 break;
127 6 default:
128 6 Need_to_Send=0;
129 6 break;
130 6 }
131 5
132 5 KEY_Value=0;
133 5
134 5 if (Need_to_Send)
135 5 {
136 6 Need_to_Send=0;
137 6 SendString(serial_tx_buff,8);
138 6 //播放正在处理中,请稍候
139 6 delay_ms(12000);
140 6
141 6 if (Uart_Flag)
142 6 {
143 7 Uart_Flag=0;
144 7 Uart_Coun=0;
145 7 if (serial_rx_buff[0]==COFFE_BUSY_STATUS)
146 7 {
147 8 //播放正在工作,继续等待请按1,返回请按其它键,结束请挂机
148 8 while(!KEY_Value)
149 8 {
150 9 if (TL1>2)
151 9 {
152 10 break;
153 10 }
154 9 }
155 8 if (KEY_Value==1)
156 8 {
157 9 KEY_Value=0;
158 9 while(!Uart_Flag)
159 9 {
160 10 if (TL1>2)
161 10 {
162 11 break;
163 11 }
164 10 }
165 9 if (Uart_Flag)
166 9 {
167 10 Uart_Flag=0;
168 10 Uart_Coun=0;
169 10 if (serial_rx_buff[0]==COFFE_IDLE_STATUS)
170 10 {
171 11 //播放咖啡机完成工作,返回
172 11 }
173 10 else if(serial_rx_buff[0]==COFFE_ERROR_STATUS)
174 10 {
175 11 //播放咖啡机状态错误
176 11 }
177 10 else
178 10 {
179 11 //播放状态不能识别
C51 COMPILER V7.07 MAIN 12/19/2008 15:13:10 PAGE 4
180 11 }
181 10 //serial_rx_buff[0]=0x00;
182 10 }
183 9 else
184 9 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -