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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己做的STM32課程設計 超聲波測距用TFT顯示 并語音播報 簡單程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:291789 發表于 2018-3-14 14:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
簡單程序尚有不足請指教

單片機源程序如下:
  1. #include "delay.h"
  2. #include "sys.h"
  3. #include "stm32f10x.h"
  4. #include "RTC_Time.h"
  5. #include <stdio.h>
  6. #include "SPI_TFT.h"
  7. #include "Image.h"
  8. #include "timer.h"
  9. #include "exti.h"
  10. #include "usart.h"         

  11. #define uchar unsigned char
  12. #define uint unsigned int
  13.         

  14. #define BUFLEN      50
  15. #define BUFLEN2     50
  16. #define BUFLEN2     50
  17. #define HEADLEN       5  
  18. #define LEN_OFFSET    2


  19. extern   u16    backing_up,distance_measurement;
  20.   u8  flag_m1=0,flag_m2;  //清屏標志位

  21. //unsigned   int   Color    = YELLOW; // 前景顏色
  22. //unsigned   int   Color_BK = BLUE;   // 背景顏色
  23. extern   int shifenwei,baifenwei,gewei,shiwei,baiwei;
  24. extern  u8  mode_number;
  25. extern  int    number,man;
  26. extern  u16    key_flag,show_flag_2;

  27. extern  float  pinjun;
  28. extern  u16  b,a,show_flag_1,flag_measure,flag_over;
  29. extern int shifenwei,baifenwei,gewei,shiwei,baiwei;
  30. uchar head[HEADLEN] = {0xfd,0x00,0x00,0x01,0x01};
  31. uchar speed[HEADLEN] = {0x5B,0x74,0x30,0x5D,0xB8};

  32. uchar text[BUFLEN] = {"距離目標        厘米"};  
  33. uchar text2[BUFLEN] = {"距離過近"};  
  34. uchar text3[BUFLEN] = {"超出檢測范圍"};  
  35. uchar sound[6] = {0x5B,0x76,0x31,0x30,0x5D,0x84};

  36. void Speech(uchar *buf, uchar len);
  37. int main(void)
  38. {
  39. SystemInit();
  40. NVIC_Configuration();
  41. delay_init();
  42. uart_init(9600);               
  43. InitLcd();
  44. TIM3_Int_Init(39999,72);   //測距最遠距離2m   此時計數器溢出 計數器每走一步1us  記滿40ms
  45. EXTIX_Init();
  46. LCD_clear(BLACK);
  47. Color_BK = BLACK;
  48. start_show();
  49.   while(1)
  50.   {
  51.      mode_chose();
  52.         if(mode_number%2==1)         
  53.   {   flag_m1++;
  54.                 if(flag_m1==1)LCD_clear(BLACK);
  55.                         else{   Reversing();
  56.                      man++;                                             
  57.                            GPIO_SetBits(GPIOB,GPIO_Pin_0);
  58.                            delay_us(20);
  59.                            GPIO_ResetBits(GPIOB,GPIO_Pin_0);
  60.                            delay_ms(100);               
  61.                         }                                                                           
  62.                          if(flag_over==1)   //檢測一次結束
  63.                         {   
  64.                                  number++;                                
  65.                                  flag_over=0;
  66.                                  if(number>4)
  67.                                  {        
  68.                                          number=0;
  69.                                          show_flag_2=1;
  70.                                  }        
  71.                          }
  72.                         if(show_flag_2==1)   //測距顯示
  73.                                 {                 
  74.                                  if(show_flag_1==1)
  75.                                  {
  76.                                  show_flag_1=0;        
  77.                                  juli_date_show();    //數據顯示函數        
  78.          show_flag_2=0;                                                         
  79.                                         }                        
  80.                                  }
  81.                  }               
  82.                  if(mode_number%2==0)
  83.                  {          flag_m1=0;
  84.        if(flag_measure==1)                          
  85.                          { man++;
  86.          flag_m2++;        
  87.          if( flag_m2==1)         LCD_clear(BLACK);
  88.                             else{                        
  89.                    ultrasonic_ranging_show();
  90.                          GPIO_SetBits(GPIOB,GPIO_Pin_0);
  91.                          delay_us(20);
  92.                          GPIO_ResetBits(GPIOB,GPIO_Pin_0);
  93.                          delay_ms(100);               
  94.                          flag_measure=0;
  95.                         }
  96.                           }                                
  97.                          if(flag_over==1)   //檢測一次結束
  98.                         {   
  99.                                  number++;
  100.                                 flag_measure=1;
  101.                                 flag_over=0;
  102.                                  if(number>4)
  103.                                  {        
  104.                                          number=0;
  105.                                          flag_measure=0;
  106.                                          show_flag_2=1;
  107.                                  }        
  108.                          }
  109.                         if(show_flag_2==1)   //測距顯示
  110.                                 {                 
  111.                                  if(show_flag_1==1)
  112.                                  {
  113.                                  show_flag_1=0;        
  114.                                  juli_date_show();    //數據顯示函數        
  115.                                         if(pinjun<3)     Speech(text2,25);
  116.                                          if(pinjun>200)  Speech(text3,25);
  117.                                          if(pinjun>3  &&  pinjun<200)  
  118.                                          {
  119.                                  sprintf(text + 9,"%5.2f",pinjun);  
  120.                      Speech(text,25);
  121.                                            }
  122.                                  delay_ms(20);        
  123.          show_flag_2=0;
  124.          flag_m1=0;                                         
  125.                                         }                        
  126.                                  }                        
  127.                          }
  128.                  }
  129.                
  130.          }         
  131.         


  132. /*****************************************************************
  133. * 名    稱: Speech()
  134. * 功    能: 語音播報陳程序
  135. * 入口參數: 無
  136. * 出口參數: 無
  137. *****************************************************************/
  138. void Speech(uchar *buf, uchar len)
  139. {
  140.         uchar i = 0;         
  141.         uchar xor = 0x00;                           
  142.         head[LEN_OFFSET] = len+ 3;         
  143.         for(i = 0; i < HEADLEN; i++)        
  144.         {
  145.                 xor ^= head[i];
  146.                 USART_SendData(USART1, head[i]);//UART_Trans(head[i]);
  147.                 delay_ms(2);
  148.            }
  149.         for(i = 0; i < len; i++)
  150.         {
  151.                 xor ^= buf[i];
  152.                 USART_SendData(USART1, buf[i]);//UART_Trans(buf[i]);
  153.                 delay_ms(2);
  154.         }
  155.                 USART_SendData(USART1, xor);//UART_Trans(xor);      
  156. }
復制代碼

所有資料51hei提供下載:
TFT  oled 2.rar (330.25 KB, 下載次數: 78)


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

使用道具 舉報

沙發
ID:292119 發表于 2018-6-14 11:49 | 只看該作者
你好,想學習一下語音播報
回復

使用道具 舉報

板凳
ID:444146 發表于 2018-12-12 15:13 | 只看該作者
請問有仿真嗎?
回復

使用道具 舉報

地板
ID:291789 發表于 2019-1-24 15:25 | 只看該作者
songyuan 發表于 2018-6-14 11:49
你好,想學習一下語音播報

我是直接用 語音合成芯片做的  
回復

使用道具 舉報

5#
ID:500602 發表于 2019-4-19 19:30 | 只看該作者
學習學習
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线免费视频 | 在线一区视频 | 久草免费视 | 牛牛热在线视频 | 一区视频在线 | 五月激情婷婷网 | 亚洲欧美综合精品另类天天更新 | 日韩欧美网 | 毛片网站在线观看视频 | 精品视频导航 | 国产日韩精品久久 | 神马影院一区二区三区 | 黄色三级免费网站 | 日韩在线不卡视频 | 国产欧美精品一区 | 国产美女黄色片 | 一级黄a | 久久亚洲国产精品日日av夜夜 | 成人黄色在线观看 | 国产精品久久久久久久7777 | 亚洲精品乱码久久久久久按摩 | 免费看一区二区三区 | 日韩欧美在线视频观看 | 国产一区不卡 | 国产九九精品视频 | 99re国产视频 | 黄色片av| 亚洲天堂色 | 久久国内 | 亚洲一区在线播放 | 免费精品久久久久久中文字幕 | 美女久久久久久久 | 一区二区三区不卡视频 | 国产一区二区三区免费 | 免费观看一级毛片 | 免费特级黄毛片 | 九九热这里只有精品在线观看 | 草草视频在线免费观看 | 欧美性视频在线播放 | 日本在线免费 | 欧美成人一级 |