在本課中,我們要用一個按鍵來實現跑馬燈的 10 級調速。這又會涉及到鍵的去抖的問 題。 本課的試驗結果是,每按一次按鍵,跑馬速度就降低一級,共 10 級。 這里我們又增加了一個變量 speedlever,來保存當前的速度檔次。 在按鍵里的處理中,多了當前檔次的延時值的設置。 請看程序: ―――――――――――――――― #define uchar unsigned char //定義一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一個 52 標準內核的頭文件 sbit P10 = P1^0; //頭文件中沒有定義的 IO 就要自己來定義了 sbit P11 = P1^1; sbit P12 = P1^2; sbit P13 = P1^3; sbit K1= P3^2; bit ldelay=0; //長定時溢出標記,預置是 0 uchar speed=10; //設置一個變量保存默認的跑馬燈的移動速度 uchar speedlever=0; //保存當前的速度檔次 char code dx516[3] _at_ 0x003b;//這是為了仿真設置的 //一個按鍵控制的 10 級變速跑馬燈試驗 void main(void) // 主程序 { uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//預定的寫入 P1 的值 uchar ledi; //用來指示顯示順序 uint n; RCAP2H =0x10; //賦 T2 的預置值 0x1000,溢出 30 次就是 1 秒鐘 RCAP2L =0x00; TR2=1; //啟動定時器 ET2=1; //打開定時器 2 中斷 EA=1; //打開總中斷 while(1) //主程序循環 { if(ldelay) //發現有時間溢出標記,進入處理 { ldelay=0; //清除標記 P1=ledp[ledi]; //讀出一個值送到 P1 口 ledi++; //指向下一個 if(ledi==4) { ledi=0; //到了最后一個燈就換到第一個 } } if(!K1) //如果讀到 K1 為 0 { for(n=0;n<1000;n++); //等待按鍵穩定 while(!K1); //等待按鍵松開 for(n=0;n<1000;n++); //等待按鍵穩定松開 speedlever++; if(speedlever==10)speedlever=0; speed=speedlever*3; //檔次和延時之間的預算法則,也可以用查表方法,做出 不規則的法則 } } } //定時器 2 中斷 timer2() interrupt 5 { static uchar t; TF2=0; t++; if((t==speed)||(t>30)) //比較一個變化的數值,以實現變化的時間溢出,同時限制了最慢速 度為 1 秒 { t=0; ldelay=1;//每次長時間的溢出,就置一個標記,以便主程序處理 } } ―――――――――――――――――――――― 請打開 lesson11 目錄的工程,編譯,運行,看結果: 按 K1,速度則降低一次,總共 10 個檔次。
上傳時間: 2017-11-06
上傳用戶:szcyclone
劉金琨滑模變結構控制MATLAB仿真第三版書籍兼源代碼。
標簽: MATLAB 滑模變結構 控制 仿真 仿真程序 設計方法
上傳時間: 2019-05-10
上傳用戶:藝術就是派大星
自適應扭轉滑模控制:Lyapunov設計、方法及應用
上傳時間: 2019-07-24
上傳用戶:sjjy0220
基于換相區空間電壓矢量的開關磁阻電機直接轉矩控制系統及方法-公開
上傳時間: 2019-07-26
上傳用戶:sjjy0220
詳細介紹了LED驅動控制電路MXT1628的應用方法,非常適合各工程工作者作為參考應用。
上傳時間: 2021-11-02
上傳用戶:
VM7205 高精度線性鋰電池充電控制電路 鎳鎘,鎳氫,鉛酸,鋰離子容量(mAh),充電速度(C),壽命,安全充電方法:恒流,恒壓,涓流,脈沖
標簽: 鋰電池充電
上傳時間: 2021-12-09
上傳用戶:
提出一種永磁同步電機新的寬范圍弱磁控制策略,根據電機在不同轉速段運行時的轉矩特性,考慮逆變器的輸出電壓能力及電機的電流約束條件,以輸出最大轉矩為目標,分析得出全速范圍內的電流矢量控制算法。該方法將全速段分為四個運行區間,可實現恒轉矩運行與弱磁控制的快速平滑過渡,使系統在額定轉速以下具有恒轉矩輸出,在高速運行時實現恒功率特性。仿真及實驗結果表明,提出的方法可有效拓寬電機的轉速運行范圍,具有較快的動態響應性能。
標簽: 永磁同步電機
上傳時間: 2021-12-12
上傳用戶:
1.STM32 電機控制SDK 概述STM32 電機控制SDK 包含以下項目:? STM32 電機控制固件? STM32 電機控制WB? STM32 電機控制分析儀? 現有文檔? STM32 電機控制固件的參考文檔此軟件包作為將上述所有項目安裝在用戶計算機中的可執行軟件提供。STM32 電機控制 SDK 取決于STM32Cube 和STM32CubeMx。因此,必須在SDK 之前安裝STM32CubeMx 版本4.24.0 或更高版本。有關STM32CubeMx 的更多信息,2.電機控制固件PMSM FOC 軟件庫提供了用于驅動永磁同步電機(PMSM)的高性能、完善的磁場定向控制(FOC)策略實現。借助這種方法可實現電磁轉矩( Te )調節,并在一定程度上,通過控制兩個電流 iqs 和 ids 來實現弱磁控制功能,這兩個電流值由定子的電流經數學變換得來。這種控制方式使PMSM 類似于直流電機控制那樣簡單,即兩個控制電流量分別相當于直流電機的電樞電流和勵磁電流。因此,可以這樣說,FOC 包含與轉子磁通同相位和正交相位的定子電流控制與定向。這也就意味著,要有一種有效的測量定子電流和轉子位置的方法。FOC 算法的結構如圖 5. 基本FOC 算法結構,轉矩控制中所示。3.應用編程接口4電機控制項目的剖析
上傳時間: 2021-12-28
上傳用戶:jason_vip1
設計了基于 ARM 的閉環 PID 恒溫控制系統。 系統以 S5PV210 微處理器為核心構建嵌入式硬件平臺,并在軟件平臺上實現溫度采集、數據處理、 PID 恒溫控制、數據顯示與傳輸等功能。實驗涉及多種通信協議( SPI、串口、 TCP/IP 等)、脈寬調制 PID 控制算法、基于 Linux API 的網絡編程等。該實驗屬于嵌入式系統設計開發,旨在讓學生對嵌入式系統課程有深刻的認識,熟悉嵌入式項目的開發及調試過程,理解閉環 PID控制的原理及實現方法。該實驗包含嵌入式設計的硬件驅動、軟件開發、通信協議等多方面內容,綜合性強,可作為研究生電子設計競賽的實訓實驗。
上傳時間: 2022-01-30
上傳用戶:
基于人工神經網絡實現智能機器人的避障軌跡控制摘 要:利用人工神經網絡中的二級 BP網。模擬智能機器人的兩控制參數(左 、右輪速)間的函數關系。實現避 障軌跡為圓弧或橢圓弧的軌跡控制 。并且通過調整橢圓長、短軸大小。能實現多個及多層障礙物的避障控制.該方法 的突出特點是方法簡單、算法容易實現 。使機器人完成多個及多層避障動作時。不滯后于動態環境里其它機器人(障 礙物)位置的變化.在仿真實驗中。取得了理想的效果. 關鍵詞;BP神經網絡I多個及多層避障控制I橢圓軌跡1 弓I言(Introduction) 在機器人中,避障軌跡的生成是一個重要的問 題.對于不確定的動態環境下的實時避障軌跡生成, 是較為困難的.有關這方面的研究,目前已有許多方 法.一些神經網絡模型被設計出來,產生實時的軌跡 生成.文獻113[23提供的神經網絡模型產生的軌跡 生成僅能處理在靜態環境下及假設空間中沒有障礙 物的情況.[3]提供的神經網絡模型,能為智能機器 人產生導航的避障軌跡,然而模型在計算上相當復 雜.文獻[43提供了Hopfield神經網絡模型,能在動 態環境下產生時實的避障軌跡生成,并在文獻[5] 中,嚴格證明了因該方法生成的軌跡沒有遭受局部 極小點逃離問題.并且文獻[63用兩個神經網絡層疊 加起來,每層構造相似于[43中的網絡結構.它是利 用第二層網絡來發現下一個機器人位置的無監督模 型,然而它卻加倍了計算量,盡管文獻[4,6]提供的 方法能在動態環境下,產生時實避障軌跡,但都具有 較慢的運動速度,在快速變化的環境下不能恰當地 完成動作執行,因為機器人要比較好地完成避障動 作,必須不能滯后于障礙物動作變化
上傳時間: 2022-02-12
上傳用戶:得之我幸78