久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5765|回復: 5
收起左側

單片機89C52 控制ISD4004語音芯片,多段錄放音源碼

[復制鏈接]
ID:303817 發表于 2018-4-9 17:49 | 顯示全部樓層 |閱讀模式
單片機89C52 控制ISD4004語音芯片,多段錄放音
單片機源程序如下:
  1. //AT89c52,ISD4004
  2. //錄制k1鍵要按2次,led1亮,才可以K2播放。
  3. //錄制并播放后,地址變為下一個,可以進行第二段語音的錄放。

  4. #include <reg51.h>
  5. #include <intrins.h>

  6. #define uchar unsigned char
  7. #define uint unsigned int

  8. ////////定義放音命令,定義常量//////
  9. #define ISDPOWERUP 0X20 //ISD4004上電
  10. #define ISDSTOP 0X10         //ISD4004下電
  11. #define OPERSTOP 0X30         //ISD4004停止當前操作
  12. #define PLAYSET 0XE0         //ISD4004從指定地址開始放音
  13. #define PLAYCUR 0XF0         //ISD4004從當前地址開始放音
  14. #define RECSET 0XA0         //ISD4004從指定地址開始錄音
  15. #define RECCUR 0XB0         //ISD4004從當前地址開始錄音


  16. sbit SS=P1^0;
  17. sbit MOSI=P1^1;
  18. sbit SCLK=P1^3;
  19. sbit INT = P1^4;
  20. sbit k1=P3^1;                        ////k1鍵,錄音
  21. sbit k2=P3^2;                        /// k2鍵,放音
  22. sbit k3=P3^3;                        /// k3鍵,停止
  23. sbit LED1=P0^0;
  24. sbit LED2=P0^1;

  25. uint addr;////全局變量,錄放音地址

  26. void delay10ms(uint c)   //延時
  27. {
  28.     unsigned char a, b;
  29.     for (;c>0;c--)
  30.         {
  31.                 for (b=38;b>0;b--)
  32.                 {
  33.                         for (a=130;a>0;a--);
  34.                 }
  35.            
  36.         }      
  37. }

  38. ////////////////放音部分子程序,放音地址由ADDR決定////
  39. void play()
  40. {
  41.         uint y;
  42.     SS=0;
  43.     MOSI=0;//發送開始
  44.     SCLK=0;
  45.     for(y=0;y<8;y++)        //上電
  46.     {
  47.              SCLK=0;
  48.              if((0x20>>y)&0x01)
  49.                         MOSI=1;
  50.              else
  51.                         MOSI=0;
  52.              _nop_();
  53.              _nop_();
  54.              _nop_();
  55.              SCLK=1;
  56.              _nop_();
  57.              _nop_();
  58.              _nop_();
  59.     }//發送結束
  60.     SS=1;//上電結束
  61.     delay10ms(5);
  62.     SS=0;
  63.     MOSI=0;//發送地址
  64.     SCLK=0;
  65.     for(y=0;y<16;y++)
  66.     {
  67.              SCLK=0;
  68.              if((addr>>y)&0x01)
  69.                         MOSI=1;
  70.              else
  71.                         MOSI=0;
  72.              _nop_();
  73.              _nop_();
  74.              _nop_();
  75.              SCLK=1;
  76.              _nop_();
  77.              _nop_();
  78.              _nop_();
  79.     }                        //發送地址結束
  80.     MOSI=0;//放音
  81.     SCLK=0;
  82.     for(y=0;y<8;y++)
  83.     {
  84.              SCLK=0;
  85.              if((0xe0>>y)&0x01)
  86.                         MOSI=1;
  87.              else
  88.                         MOSI=0;
  89.              _nop_();
  90.              _nop_();
  91.              _nop_();
  92.              SCLK=1;
  93.              _nop_();
  94.              _nop_();
  95.              _nop_();
  96.     }
  97.     SS=1;
  98.     SS=0;
  99.     MOSI=0;//放音
  100.     SCLK=0;
  101.     for(y=0;y<8;y++)
  102.     {
  103.              SCLK=0;
  104.              if((0xf0>>y)&0x01)MOSI=1;
  105.              else MOSI=0;
  106.              _nop_();
  107.              _nop_();
  108.              _nop_();
  109.              SCLK=1;
  110.              _nop_();
  111.              _nop_();
  112.              _nop_();
  113.     }
  114.     SS=1;
  115. }
  116. //////////////////////////錄音部分子程序,地址由ADDR決定/////////////////////////
  117. void rec()
  118. {
  119.         uint y;
  120.     SS=0;
  121.     MOSI=0;//發送開始
  122.     SCLK=0;
  123.     for(y=0;y<8;y++)
  124.     {
  125.              SCLK=0;
  126.              if((0x20>>y)&0x01)MOSI=1;
  127.              else MOSI=0;
  128.              _nop_();
  129.              _nop_();
  130.              _nop_();
  131.              SCLK=1;
  132.              _nop_();
  133.              _nop_();
  134.              _nop_();
  135.     }                                //發送結束
  136.     SS=1;                        //上電結束
  137.     delay10ms(5);
  138.     SS=0;
  139.     MOSI=0;                        //發送開始
  140.     SCLK=0;
  141.     for(y=0;y<8;y++)
  142.     {
  143.              SCLK=0;
  144.              if((0x20>>y)&0x01)MOSI=1;
  145.              else MOSI=0;
  146.              _nop_();
  147.              _nop_();
  148.              _nop_();
  149.              SCLK=1;
  150.              _nop_();
  151.              _nop_();
  152.              _nop_();
  153.     }                                //發送結束
  154.     SS=1;                        //上電結束
  155.     delay10ms(5);
  156.     SS=0;
  157.     MOSI=0;                        //發送地址
  158.     SCLK=0;
  159.     for(y=0;y<16;y++)
  160.     {
  161.              SCLK=0;
  162.              if((addr>>y)&0x01)MOSI=1;
  163.              else MOSI=0;
  164.              _nop_();
  165.              _nop_();
  166.              _nop_();
  167.              SCLK=1;
  168.              _nop_();
  169.              _nop_();
  170.              _nop_();
  171.     }                                //發送地址結束
  172.     MOSI=0;
  173.     SCLK=0;
  174.     for(y=0;y<8;y++)
  175.     {
  176.              SCLK=0;
  177.              if((0xa0>>y)&0x01)MOSI=1;
  178.              else MOSI=0;
  179.              _nop_();
  180.              _nop_();
  181.              _nop_();
  182.              SCLK=1;
  183.              _nop_();
  184.              _nop_();
  185.              _nop_();
  186.     }
  187.     SS=1;
  188.     SS=0;
  189.     MOSI=0;
  190.     SCLK=0;
  191.     for(y=0;y<8;y++)
  192.     {
  193.              SCLK=0;
  194.              if((0xb0>>y)&0x01)MOSI=1;
  195.              else MOSI=0;
  196.              _nop_();
  197.              _nop_();
  198.              _nop_();
  199.              SCLK=1;
  200.              _nop_();
  201.              _nop_();
  202.              _nop_();
  203.     }
  204.     SS=1;
  205. }

  206. void stop()
  207. {
  208.     uchar y;
  209.     SS=1;
  210.     SS=0;
  211.     MOSI=0;//放音

  212.     SCLK=0;
  213.     for(y=0;y<8;y++)
  214.     {
  215.              SCLK=0;
  216.              if((0x30>>y)&0x01)MOSI=1;
  217.              else MOSI=0;
  218.              _nop_();
  219.              _nop_();
  220.              _nop_();
  221.              SCLK=1;
  222.              _nop_();
  223.              _nop_();
  224.              _nop_();
  225.     }
  226.     SS=1;
  227. }

  228. void main()
  229. {                                                                                                   
  230.         uchar addressArr[]={0x05,0x1E,0x37};        //地址數組,可以自由添加,實現多段語音錄放。此處為3段。
  231.         uint recNum=0;                                                        //recNum為錄放地址選擇
  232.         P1=0xff;                                                                //初始化
  233.            P2=0xff;
  234.            P3=0xff;
  235.         while(1)
  236.         {
  237.                 LED1=INT;                  
  238.         LED2=0;
  239.         if(k1==0)                                                           //錄制
  240.         {        
  241. ……………………

  242. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
89c52 ISD4004.zip (39.73 KB, 下載次數: 130)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:378322 發表于 2018-10-13 16:19 來自手機 | 顯示全部樓層
有圖沒
回復

使用道具 舉報

ID:848415 發表于 2020-11-28 14:53 | 顯示全部樓層
你好,我下載了你的軟件,你有沒有具體的電路圖啊?
回復

使用道具 舉報

ID:220342 發表于 2021-2-27 17:21 | 顯示全部樓層
只有代碼沒有電路圖,有點坑。對小白來說難實現
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区在线播放 | 午夜小视频免费观看 | 精品一区二区在线观看 | 国产一区二区三区网站 | 久久av网站 | 欧美一级网站 | 日韩视频中文字幕 | 成人av免费 | 午夜精品一区二区三区免费视频 | 亚洲免费久久久 | 日韩1区| 国产福利在线 | 亚洲综合在线播放 | 91精品无人区卡一卡二卡三 | 国产在线观看不卡一区二区三区 | 午夜国产在线 | 精品久久久久久久 | 密桃av| 国产精品18毛片一区二区 | 国产日韩精品一区二区三区 | 亚洲成人久久久 | 99热热热热| 中文字幕一区在线 | 精品免费国产视频 | 国产伦精品一区二区三区四区视频 | 香蕉大人久久国产成人av | 欧美区在线 | 精品国产久 | 中文天堂网 | 欧美日韩国产在线观看 | 国产精品久久久久久久久免费软件 | 欧美群妇大交群中文字幕 | 国产精品成人免费 | 在线天堂免费中文字幕视频 | 国产在线观看 | 日韩精品一区二区三区中文在线 | 国产成人99久久亚洲综合精品 | 欧美乱人伦视频 | 国产精品综合一区二区 | 亚洲视频在线观看免费 | 国产在线一区二区 |