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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2818|回復(fù): 0
收起左側(cè)

2019電賽f題獲獎(jiǎng)代碼,stm32戰(zhàn)艦開發(fā)板編寫

[復(fù)制鏈接]
ID:588307 發(fā)表于 2020-3-24 16:31 | 顯示全部樓層 |閱讀模式
單片機(jī)源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"                           
  5. #include "lcd.h"  
  6. #include "key.h"  
  7. #include "beep.h"
  8. #include "w25qxx.h"   
  9. #include "ff.h"  
  10. #include "exfuns.h"   
  11. #include "text.h"
  12. #include "2214.h"
  13. #include "myiic.h"
  14. #define count_t 35                       //紙張上限

  15. u8 w=0,K;
  16. int main(void)
  17. {        
  18.         delay_init();                     //延時(shí)函數(shù)初始化         
  19.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級(jí)分組為組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  20.         uart_init(115200);                 //串口初始化為115200        
  21.          LED_Init();                                          //LED初始化
  22.         KEY_Init();                                        //初始化按鍵
  23.         LCD_Init();                                           //初始化LCD   
  24.         font_init();        //漢字初始化
  25.         LCD_Clear(WHITE);           //屏幕清空
  26.         BEEP_Init();         //蜂鳴器初始化
  27.         IIC_Init();          //IIC通訊
  28.         InitMultiFDC2214(); //多通道設(shè)置
  29.         POINT_COLOR=BLUE;
  30.         Show_Str(120,30,240,24,"2019年 電子設(shè)計(jì)大賽",24,0);
  31.         Show_Str(140,98,200,24,"紙張計(jì)數(shù)顯示裝置",24,0);
  32.         POINT_COLOR=BLACK;
  33.         LCD_DrawRectangle(20,70,460,150);     //畫表格
  34.         LCD_DrawRectangle(20,70,460,350);         
  35.         LCD_DrawRectangle(20,150,240,350);        
  36.         Show_Str(30,180,200,24,"通道1:",24,0);
  37.         Show_Str(30,240,200,24,"通道2:",24,0);
  38.         Show_Str(30,300,200,24,"當(dāng)前模式為:",24,0);        
  39.         
  40.         Show_Str(250,180,200,24,"極板狀態(tài):",24,0);
  41.         Show_Str(250,240,200,24,"紙張數(shù):",24,0);
  42.         Show_Str(250,300,200,24,"總重:",24,0);
  43.         
  44.         POINT_COLOR=RED;
  45.         LCD_ShowxNum(355,300,0,1,24,0);          //默認(rèn)紙重
  46.         Show_Str(170,300,200,24,"待機(jī)",24,0);
  47.         
  48.         POINT_COLOR=BLACK;
  49.         Show_Str(90,380,300,24,"學(xué)習(xí)+檢測(cè)",24,0);     //KEY0
  50.         Show_Str(315,380,300,24,"紙重檢測(cè)",24,0); //KEY1
  51.         Show_Str(90,430,300,24,"進(jìn)入學(xué)習(xí)",24,0);     //KEY2
  52.         Show_Str(315,430,300,24,"紙張規(guī)格",24,0); //KEY2
  53.         POINT_COLOR=RED;  
  54.         Show_Str(30,380,300,24,"KEY0:",24,0);            //學(xué)習(xí)模式
  55.         Show_Str(250,380,300,24,"KEY1:",24,0);            //重量檢測(cè)模式
  56.         Show_Str(30,430,300,24,"KEY2:",24,0);           
  57.         Show_Str(250,430,300,24,"KEY3:",24,0);
  58.         POINT_COLOR=BLACK;
  59.         Show_Str(30,480,300,24,"紙張規(guī)格",24,0);        //紙張規(guī)格
  60.         Show_Str(30,530,300,24,"重量",24,0);
  61.         Show_Str(30,580,300,24,"厚度",24,0);
  62.         while(1)
  63.         {
  64.                 u8 key;
  65.                 FDC2214Check();                  //檢測(cè)系統(tǒng)工作狀態(tài)
  66.                 just_test();        //顯示通道值                                       
  67.                 delay_ms(10);               
  68.                 key = KEY_Scan(0);     //獲得鍵值
  69.                
  70.                 if(key == KEY0_PRES)                //進(jìn)入學(xué)習(xí)模式
  71.                 {
  72.                         StudyMode();//學(xué)習(xí)模式
  73.                         K++;
  74.                 POINT_COLOR=BLACK;
  75.                 Show_Str(30,680,300,24,"K 按下次數(shù):",24,0);
  76.                 POINT_COLOR=RED;
  77.                 LCD_ShowxNum(170,680,K,1,24,0);
  78.                 }
  79.          }
  80. }

  81. /***********************學(xué)習(xí)模式***********************/

  82. u16 StudyMode()//獲取數(shù)據(jù),計(jì)算
  83. {
  84.                 u8 keyd,Count;
  85.                 double Ch1,Ch2;
  86.                 int i,j;                                                           //獲取數(shù)據(jù),計(jì)算
  87.                 static        double ab[4][count_t]                                         /*分別對(duì)應(yīng)一通道左值右值二通道左值右值*/;
  88.                 long double sum1 = 0,sum2 = 0,a[2][count_t] = {0};
  89.                 double adf[2][(count_t-1)]                                            /*對(duì)應(yīng)臨時(shí)差值*/;
  90.                 keyd=KEY_Scan(1);
  91.                 POINT_COLOR=BLACK;
  92.                 for(i = 0;i<count_t;)
  93.                 {
  94.                         keyd=KEY_Scan(0);
  95.                         if(keyd==KEY0_PRES)                  //按鍵KEY0按下錄入數(shù)據(jù)
  96.                         {  
  97.                                 K++;        
  98.                                 POINT_COLOR=BLACK;
  99.                                 Show_Str(30,680,300,24,"K 按下次數(shù):",24,0);
  100.                                 POINT_COLOR=RED;
  101.                                 LCD_ShowxNum(170,680,K,1,24,0);                                
  102.                                 for(j=0;j<100;j++)                 //取平均值
  103.                                 {
  104.                                         sum1= sum1+ReadRegfdc2214(0x02);//讀取的通道1的值
  105.                                         sum2= sum2+ReadRegfdc2214(0x04);//讀取的通道2的值
  106.                                 }
  107.                                 a[0][i]=sum1/100;
  108.                                 a[1][i]=sum2/100;
  109.                                 
  110.                                 POINT_COLOR=BLACK;  
  111.                                 Show_Str(170,300,200,24,"學(xué)習(xí)",24,0);
  112.                                 Show_Str(160,500,200,24,"正在學(xué)習(xí)",24,0);
  113.                                 Show_Str(30,530,200,24,"學(xué)習(xí)次數(shù):",24,0);
  114.                                 Show_Str(30,500,300,24,"學(xué)習(xí)狀態(tài):",24,0);
  115.                                 POINT_COLOR=RED;
  116.                                 LCD_ShowxNum(100,180,a[0][i],8,24,0);               //通道一學(xué)習(xí)參數(shù)               
  117.                                 LCD_ShowxNum(100,240,a[1][i],8,24,0);               //通道二學(xué)習(xí)參數(shù)
  118.                                 LCD_ShowxNum(160,530,i+1,2,24,0);                     //學(xué)習(xí)次數(shù)
  119.                                 sum1 = 0;
  120.                                 sum2 = 0;
  121.                                 i++;
  122.                                 keyd = 0;                        
  123.                         }               
  124.                         delay_ms(1);
  125.                 }
  126.                 for(i=1;i<count_t;i++)
  127.                 {
  128.                         adf[0][i-1] = (a[0][i] - a[0][i-1])/2;
  129.                         adf[1][i-1] = (a[1][i] - a[1][i-1])/2;
  130.                 }
  131.                 ab[0][0] = a[0][0] - adf[0][0];
  132.                 ab[2][0] = a[1][0] - adf[1][0];
  133.                 for(i=1;i<count_t;i++)
  134.                 {
  135.                         ab[0][i] = a[0][i] - adf[0][i-1];
  136.                         ab[1][i-1] = a[0][i-1]+adf[0][i-1];
  137.                         ab[2][i]=a[1][i]-adf[1][i-1];
  138.                         ab[3][i-1]=a[1][i-1]+adf[1][i-1];
  139.                 }
  140.                 ab[1][count_t-1] = a[0][count_t-1]+adf[0][count_t-2];
  141.                 ab[3][count_t-1] = a[1][count_t-1]+adf[1][count_t-2];
  142.                 //上下限
  143. /******************************************************************************************************************************
  144. **********************************************分割線***************************************************************************
  145. ******************************************************************************************************************************/
  146.         Show_Str(150,500,300,24,"正在學(xué)習(xí)",24,0);
  147.                 while(1)                             //學(xué)習(xí)模式
  148.                         {
  149.                                 POINT_COLOR=RED;
  150.                                 Show_Str(150,500,300,24,"已完成學(xué)習(xí)",24,0);
  151.                                 keyd=KEY_Scan(0);
  152.                                 
  153.                                 
  154.                                 
  155.                                 if(keyd == KEY0_PRES)          // 錄入數(shù)值
  156.                                 {
  157.                                         K++;
  158.                                         POINT_COLOR=BLACK;
  159.                                         Show_Str(30,680,300,24,"K 按下次數(shù):",24,0);
  160.                                         POINT_COLOR=RED;
  161.                                         LCD_ShowxNum(170,680,K,1,24,0);
  162.                                         Ch2 = ReadRegfdc2214(0x04);  //通道二
  163.                                         Ch1 = ReadRegfdc2214(0x02);  //通道一        
  164.                                         Count=0;
  165.                                         if((Ch1<1873) || (Ch2<1792))Count=0;                  //零張
  166.                                         for(i=0;i<count_t;i++)
  167.                                         {
  168.                                                 if(((ab[0][i]<Ch1)&&(Ch1<ab[1][i])) ||        ((ab[2][i]<Ch2)&&(Ch2<ab[3][i])))          //i張紙
  169.                                                 {
  170.                                                         Count = i+1;
  171.                                                         break;
  172.                                                 }
  173.                                         }
  174.                                         LCD_ShowxNum(350,240,Count,4,24,0);                          //顯示被測(cè)紙張數(shù)
  175.                                         delay_ms(500);
  176.                                         BEEP=1;                                         //發(fā)出蜂鳴聲
  177.                                         LED0=0;                                         //伴隨紅燈閃爍
  178.                                         delay_ms(500);
  179.                                         BEEP=0;
  180.                                         LED0=1;
  181.                                 }
  182.                                 
  183.                                 
  184.                                 
  185.                                 if(keyd == KEY2_PRES) //按下KEY2進(jìn)行紙張標(biāo)準(zhǔn)重量調(diào)節(jié) 一共分為4擋
  186.                                 {        
  187.                                         u8 z;
  188.                                                 w++;                                       
  189.                                                 if(w==5)  w=0;
  190.                                         z=Count*PaperWeight(w); //計(jì)算后的紙張重
  191.                                         POINT_COLOR=BLACK;
  192.                                         LCD_ShowxNum(355,300,z,5,24,0);                     //紙重
  193.                                         LCD_ShowxNum(286,600,PaperWeight(w),3,24,0);        //顯示規(guī)格
  194.                                 }        
  195.                                 
  196.                                 
  197.                                 
  198.                 }
  199. }
復(fù)制代碼

所有資料51hei提供下載:
2019F紙張檢測(cè)程序.7z (1.26 MB, 下載次數(shù): 42)


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美一区二区三区在线看蜜臀 | 91久久精品一区 | 人碰人操 | 日韩在线观看 | 日韩中文字幕第一页 | 欧美不卡一区二区 | 国产成人精品久久二区二区91 | 中文字幕高清av | 国内精品久久精品 | 日韩视频在线一区二区 | 青青草一区| 美日韩免费视频 | 日韩欧美一区二区三区免费观看 | 91高清视频 | 久久精品福利视频 | 欧美视频在线免费 | 一级毛片色一级 | 中文字幕在线三区 | 精品国产欧美日韩不卡在线观看 | 国产一级在线 | 一区二区三区欧美 | 日韩精品一区二区三区视频播放 | 色毛片| 国产性生活一级片 | 五月婷婷激情 | 韩国av一区二区 | 欧美久久一区二区三区 | 午夜综合 | 午夜小视频免费观看 | 午夜影晥 | 国产高清在线观看 | 欧美乱码精品一区二区三区 | 国产伦一区二区三区 | 亚洲天堂色 | 欧美一级毛片免费观看 | 国产激情视频网站 | 久久久久久国产 | 国产成人精品一区二区三区四区 | 美人の美乳で授乳プレイ | 国产99久久精品 | 一区二区三区精品在线 |