<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ISD4004語音程序

          ISD4004語音程序

          作者: 時間:2016-11-11 來源:網(wǎng)絡 收藏
          1. ///////////ISD4004語音播放部分/////////////////////////////
          2. ////當按下P3.5鍵時,從指定地址開始錄音
          3. /// 當按下P3.6鍵時,從指定地址開始放音
          4. /// 當按下P3.7鍵時,停止當前的操作
          5. /// 程序中的錄放停部分已做成子函數(shù),可以直接調用, 只需要輸入錄音的地址就行
          6. // 錄音地址的設定與芯片型號有關系,以ISD4004-16為例,ISD40044-16錄音時間為16
          7. // 分鐘,即16*60=960S, 根據(jù)4004的資料,960秒可分為2400段,也就是1S的段數(shù)為
          8. // 25段,即從,0000-0019H的內容為1S,
          9. ///作者:長沙致望科技電子公司 WWW.CSMCU.COM
          10. ///版本:V1.0(2008.12.1)
          11. //實驗使用注意,按錄音鍵,要切換到放音時,可按停止再放音,也可以先按一下放音鍵,再按一次放音鍵,那可
          12. //原因:本程序在放音前,沒有做停止和下電處理,感興趣的朋友可以直接到停止部分加到放音子函數(shù)中。
          13. #include
          14. #include
          15. #defineucharunsignedchar
          16. #defineuintunsignedint
          17. ////////定義放音命令,定義常量//////
          18. #defineISDPOWERUP 0X20//ISD4004上電
          19. #defineISDSTOP 0X10//ISD4004下電
          20. #defineOPERSTOP 0X30//ISD4004停止當前操作
          21. #definePLAYSET 0XE0//ISD4004從指定地址開始放音
          22. #definePLAYCUR 0XF0//ISD4004從當前地址開始放音
          23. #defineRECSET 0XA0//ISD4004從指定地址開始錄音
          24. #defineRECCUR 0XB0//ISD4004從當前地址開始錄音
          25. sbit SS=P1^4;//LOW IS ACTIVELY
          26. sbit MOSI=P1^5;
          27. //sbit MISO=P1^7;
          28. sbit SCLK=P1^7;
          29. sbit K1=P3^5;
          30. sbit K2=P3^6;
          31. sbit K3=P3^7;
          32. sbitINT=P3^2;
          33. sbit LED1=P1^0;
          34. sbit LED2=P1^3;
          35. voiddelayms(uchar ms);
          36. uint addr;////全局變量//// 放音地址
          37. ////////////////放音部分子程序,放音地址由ADDR決定////
          38. voidplay()
          39. {
          40. uint y;
          41. SS=0;
          42. MOSI=0;//發(fā)送開始
          43. SCLK=0;
          44. for(y=0;y<8;y++)//上電
          45. {
          46. SCLK=0;
          47. if((0x20>>y)&0x01)MOSI=1;
          48. elseMOSI=0;
          49. _nop_();
          50. _nop_();
          51. _nop_();
          52. SCLK=1;
          53. _nop_();
          54. _nop_();
          55. _nop_();
          56. }//發(fā)送結束
          57. SS=1;//上電結束
          58. delayms(50);
          59. SS=0;
          60. MOSI=0;//發(fā)送地址
          61. SCLK=0;
          62. for(y=0;y<16;y++)
          63. {
          64. SCLK=0;
          65. if((addr>>y)&0x01)MOSI=1;
          66. elseMOSI=0;
          67. _nop_();
          68. _nop_();
          69. _nop_();
          70. SCLK=1;
          71. _nop_();
          72. _nop_();
          73. _nop_();
          74. }//發(fā)送地址結束
          75. MOSI=0;//放音
          76. SCLK=0;
          77. for(y=0;y<8;y++)
          78. {
          79. SCLK=0;
          80. if((0xe0>>y)&0x01)MOSI=1;
          81. elseMOSI=0;
          82. _nop_();
          83. _nop_();
          84. _nop_();
          85. SCLK=1;
          86. _nop_();
          87. _nop_();
          88. _nop_();
          89. }
          90. SS=1;
          91. SS=0;
          92. MOSI=0;//放音
          93. SCLK=0;
          94. for(y=0;y<8;y++)
          95. {
          96. SCLK=0;
          97. if((0xf0>>y)&0x01)MOSI=1;
          98. elseMOSI=0;
          99. _nop_();
          100. _nop_();
          101. _nop_();
          102. SCLK=1;
          103. _nop_();
          104. _nop_();
          105. _nop_();
          106. }
          107. SS=1;
          108. }
          109. //////////////////////////lu音部分子程序,地址由ADDR決定/////////////////////////
          110. voidrec()
          111. {uint y;
          112. SS=0;
          113. MOSI=0;//發(fā)送開始
          114. SCLK=0;
          115. for(y=0;y<8;y++)
          116. {
          117. SCLK=0;
          118. if((0x20>>y)&0x01)MOSI=1;
          119. elseMOSI=0;
          120. _nop_();
          121. _nop_();
          122. _nop_();
          123. SCLK=1;
          124. _nop_();
          125. _nop_();
          126. _nop_();
          127. }//發(fā)送結束
          128. SS=1;//上電結束
          129. delayms(50);
          130. SS=0;
          131. MOSI=0;//發(fā)送開始
          132. SCLK=0;
          133. for(y=0;y<8;y++)
          134. {
          135. SCLK=0;
          136. if((0x20>>y)&0x01)MOSI=1;
          137. elseMOSI=0;
          138. _nop_();
          139. _nop_();
          140. _nop_();
          141. SCLK=1;
          142. _nop_();
          143. _nop_();
          144. _nop_();
          145. }//發(fā)送結束
          146. SS=1;//上電結束
          147. delayms(50);
          148. delayms(50);
          149. SS=0;
          150. MOSI=0;//發(fā)送地址
          151. SCLK=0;
          152. for(y=0;y<16;y++)
          153. {
          154. SCLK=0;
          155. if((addr>>y)&0x01)MOSI=1;
          156. elseMOSI=0;
          157. _nop_();
          158. _nop_();
          159. _nop_();
          160. SCLK=1;
          161. _nop_();
          162. _nop_();
          163. _nop_();
          164. }//發(fā)送地址結束
          165. MOSI=0;
          166. SCLK=0;
          167. for(y=0;y<8;y++)
          168. {
          169. SCLK=0;
          170. if((0xa0>>y)&0x01)MOSI=1;
          171. elseMOSI=0;
          172. _nop_();
          173. _nop_();
          174. _nop_();
          175. SCLK=1;
          176. _nop_();
          177. _nop_();
          178. _nop_();
          179. }
          180. SS=1;
          181. SS=0;
          182. MOSI=0;
          183. SCLK=0;
          184. for(y=0;y<8;y++)
          185. {
          186. SCLK=0;
          187. if((0xb0>>y)&0x01)MOSI=1;
          188. elseMOSI=0;
          189. _nop_();
          190. _nop_();
          191. _nop_();
          192. SCLK=1;
          193. _nop_();
          194. _nop_();
          195. _nop_();
          196. }
          197. SS=1;
          198. }
          199. ////////////////////////////////////
          200. ////////////////////////////////
          201. voidstop()
          202. {
          203. uchar y;
          204. SS=1;
          205. SS=0;
          206. MOSI=0;//放音
          207. SCLK=0;
          208. for(y=0;y<8;y++)
          209. {
          210. SCLK=0;
          211. if((0x30>>y)&0x01)MOSI=1;
          212. elseMOSI=0;
          213. _nop_();
          214. _nop_();
          215. _nop_();
          216. SCLK=1;
          217. _nop_();
          218. _nop_();
          219. _nop_();
          220. }
          221. SS=1;
          222. }
          223. ////////////////////////////////////
          224. ////////////////////////////////////void press_key()
          225. voiddelayms(uchar ms)
          226. // 延時子程序
          227. {
          228. uchar j;
          229. while(ms--)
          230. {
          231. for(j=0;j<120;j++);
          232. }
          233. }
          234. ////////////////////////////////
          235. ////////////////////////////////////
          236. voidmain()
          237. {
          238. P1=0xff;
          239. P2=0XFF;
          240. P3=0XFF;
          241. while(1)
          242. {
          243. LED1=INT;
          244. LED2=0;
          245. if(K1==0)
          246. {
          247. delayms(10);
          248. while(K1==0);///松手判斷
          249. LED2=1;
          250. addr=0X05;/////從0X05單元開始
          251. rec();
          252. P1=0XFF;
          253. while(K1==1);
          254. delayms(10);
          255. while(K1==0);///松手判斷
          256. }
          257. if(K2==0)
          258. {
          259. delayms(10);
          260. while(K2==0);
          261. addr=0X05;
          262. play();
          263. P1=0XFF;
          264. }
          265. if(K3==0)
          266. {
          267. delayms(10);
          268. while(K3==0);
          269. LED1=1;
          270. LED2=1;
          271. stop();
          272. P1=0XFF;
          273. }
          274. }
          275. }


          關鍵詞: ISD4004語音程

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();