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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1947|回復: 0
打印 上一主題 下一主題
收起左側

語音三線串口控制程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:340557 發表于 2018-6-28 10:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
AVR16語音三線串口控制程序

單片機源程序如下:
  1. #include <iom16v.h>
  2. #include <macros.h>
  3. #include <eeprom.h>
  4. #define  uchar  unsigned char
  5. #define  uint   unsigned int
  6. #define  ulong   unsigned long
  7. #define  mclk  16000000       //定義時鐘頻率
  8. const address[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c};//0—9,0a中放現在的溫度為,0b中放點,0c中放攝氏度
  9. #define rst PB0              //復位
  10. #define cs PB1               //片選端
  11. #define clk PB2              //時鐘
  12. #define data PB3            //數據位
  13. #define busy  PINB&0X10         //忙信號PB4
  14. #define rst1                   PORTB|=(1<<PB0)
  15. #define rst0                 PORTB&=~(1<<PB0)
  16. #define cs1                   PORTB|=(1<<PB1)
  17. #define cs0                 PORTB&=~(1<<PB1)
  18. #define clk1                   PORTB|=(1<<PB2)
  19. #define clk0                 PORTB&=~(1<<PB2)
  20. #define data1           PORTB|=(1<<PB3)
  21. #define data0                 PORTB&=~(1<<PB3)
  22. uchar a,b,c;
  23. void Port_init(void)
  24. {
  25.   DDRB=0XEF;
  26.   PORTB=0XFF;
  27. }
  28. /********延時區域*********/
  29. void delay_nus(uint x) //n微妙延時程序
  30. {
  31.          unsigned  int i;
  32.          for(i=x;i>0;i--)
  33.          {asm("nop");
  34.           asm("nop");
  35.           asm("nop");
  36.           asm("nop");
  37.           asm("nop");
  38.           asm("nop");
  39.           asm("nop");
  40.           asm("nop");
  41.           asm("nop");
  42.           asm("nop");
  43.           asm("nop");
  44.           asm("nop");
  45.           asm("nop");
  46.           asm("nop");
  47.           asm("nop");
  48.           asm("nop");
  49.          }
  50. }

  51. void delay_1ms(void)  //一毫秒延時程序  
  52. {
  53.          unsigned int i;
  54.          for(i=0;i<2286;i++);                //晶振數*143-2
  55. }

  56. void delay_nms(unsigned int x)
  57. {
  58.           
  59.          unsigned int i;
  60.          for(i=x;i>0;i--)
  61.          {
  62.                   delay_1ms();
  63.          }
  64. }
  65. /****************************************
  66. 函數名:void send_com(uchar add)
  67. 功能:發碼播放,add為語音地址
  68. *****************************************/
  69. void send_com(uchar add)
  70. {
  71.         uchar  i;
  72.         rst1;
  73.         rst0;
  74.         delay_nms(5);
  75.         rst1;
  76.         delay_nms(20);
  77.         cs0;
  78.         delay_nms(5);
  79.         for(i=0;i<8;i++)
  80.         {
  81.                  clk0;
  82.                 if(add&1)
  83.                 data1;
  84.                 else       
  85.                 data0;
  86.                 delay_nus(300);
  87.                 clk1;
  88.                 delay_nus(300);
  89.                 add=add>>1;
  90.         }
  91.         cs1;
  92. }
  93. /******************************************
  94. 函數名:void wendujisuan()
  95. 功能:溫度處理
  96. *****************************************/
  97. void wendujisuan(uint m1)
  98. {
  99.    a=m1/100;
  100.    b=m1%100/10;
  101.    c=m1%100;
  102. }



  103. /******************************************
  104. 函數名:void sound()
  105. 功能:播報溫度
  106. *****************************************/
  107. void sound()
  108. {
  109.        
  110.         while(!busy);
  111.         send_com(0x0a);//播放"現在的溫度為"
  112.         delay_nms(500);
  113.         while(!busy);
  114.         send_com(a);
  115.         delay_nms(500);
  116.     while(!busy);
  117.         send_com(b);
  118.         delay_nms(500);
  119.         while(!busy);
  120.         send_com(11);
  121.         delay_nms(500);
  122.         while(!busy);
  123.         send_com(c);
  124.         delay_nms(500);
  125.         while(!busy);
  126.         send_com(12);
  127.         delay_nms(500);
  128.         while(!busy);
  129. }
  130. void main()  
  131. {
  132.   Port_init();
  133.   while(1)
  134.   {
  135.   wendujisuan(325);
  136.   sound();
  137.   }
  138. }
復制代碼

所有資料51hei提供下載:
語音三線串口16M好使.zip (1.09 KB, 下載次數: 9)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕在线电影观看 | 欧美中文字幕在线观看 | 亚洲欧美日韩在线 | 日韩精品成人 | 欧美一区二区大片 | 久久亚洲欧美日韩精品专区 | 亚洲成人一区二区 | 欧美欧美欧美 | 亚洲高清在线观看 | 免费a级毛片在线播放 | 久久中文字幕一区 | 国产高清毛片 | 一区二区三区视频在线免费观看 | 欧美久久国产 | 日韩久久久久久 | 欧美一区二区三区国产 | xx视频在线观看 | 日本特黄a级高清免费大片 特黄色一级毛片 | 欧美成人a∨高清免费观看 老司机午夜性大片 | 在线免费观看成人 | 一区二区三区在线 | 九九热精品在线 | 黄色成人av | 亚洲欧洲日韩精品 中文字幕 | 成人精品国产免费网站 | 九九亚洲 | 欧美日韩一区二区电影 | 久久久成人网 | 天堂影院av | 超碰综合 | 亚洲一区在线播放 | 欧美精品在线免费观看 | av在线一区二区三区 | 91精品国产综合久久精品 | 网站黄色在线免费观看 | 日韩中文字幕在线观看 | 国产精品九九九 | 国产精品久久av | 日韩a | 精品自拍视频 | 国产精品久久久久久久久久妞妞 |