仿真基本效果
1.按下正轉按鈕,綠燈長亮,電機低速正轉,檔位為1檔。
2.按下正轉按鈕,綠燈長亮,電機低速正轉,檔位為1檔。
3.在未達到最高檔(3檔)的情況下,按下加速按鈕,電機檔位加一,綠燈閃爍8次,每次閃爍的時間間隔為1秒。如果達到最高檔,按下加速按鈕,電機檔位不變。然后判斷電機的轉動方向,如果正轉,綠燈常亮;如果反轉,紅燈常亮。
4.在未達到最低檔位(1檔)的情況下,按下減速按鈕,電機檔位減一,紅燈閃爍8秒,每次閃爍的室間隔為1秒。如果達到最低檔,按下減速按鈕,電機檔位不變。然后判斷電機的轉動方向,如果正轉,綠燈常亮;如果反轉,紅燈常亮。
5.按下停止按鈕,蜂鳴器報警,且所有LED燈滅,電機停止,并使電機檔位置1檔。
仿真原理圖如下
單片機源程序如下:
#include #define uint unsigned int #define uchar unsigned char uchar m; //用來標志速度檔位 uint t; //計數標志 sbit k1=P2^0; //正轉按鈕 sbit k2=P2^1; //反轉按鈕 sbit k3=P2^2; //停止按鈕 sbit k4=P2^3; //加速按鈕 sbit k5=P2^4; //減速按鈕 sbit k6=P1^0; sbit k7=P1^1; //控制電動機的兩個輸入 sbit pwm1=P1^4; //PWM信號從P1^4輸出 void init() ; //定義定時器的初始化函數 void delay(uint x) //延時程序,延時x ms { uint i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } main() { init(); //定時器的初始化 while(1) { if(k1==0) //檢測是否按下正轉按鈕 { delay(10); // 消抖10ms if(k1==0) //如果正轉按鈕按下 { P1=0x01; //IN1=1,IN2=0;控制電動機正轉 P0=0X00; //綠燈常亮 } while(!k1); //判斷按鈕是否松開,不松開一直死循環,松開后跳出循環,繼續執行 } if(k2==0) //檢測是否按下反轉按鈕 { delay(10); //消抖10ms if(k2==0) //如果按下反轉按鈕 { P1=0x02; //IN1=0,IN2=1,控制電動機反轉 P0=0X01; //紅燈常亮 } while(!k2); //判斷按鈕是否松開,不松開一直死循環,松開后跳出循環,繼續執行 } if(k3==0) //檢測是否按下停止按鈕 { delay(10); //消抖10ms if(k3==0) //如果按下停止按鈕 { m=1; //電動機重置為1檔 P1=0X00; //IN1=0.IN2=0,電動機停止 P0=0x02; //蜂鳴器響 delay(1000); //延時1秒 P0=0XFF; //燈全熄滅,蜂鳴器不響 pwm1=0; //PWM輸出低電平 } while(!k3); //判斷按鈕是否松開,不松開一直死循環,松開后跳出循環,繼續執行 } if(k4==0) //檢測加速按鈕是否按下 { delay(10); //消抖10ms if(k4==0) //如果加速按鈕按下 { m++; //檔位加一 if(m<4){ //在不超過最高3檔的情況下,按下加速按鈕,執行以下 for(t=8;t>0;t--){ //綠燈閃爍8次 P0=0x03; delay(500); P0=0X07; delay(500);} } if(k6==1&&k7==0) //如果電動機正轉,綠燈常亮 P0=0X00; else if(k6==0&&k7==1) //如果電動機反轉,紅燈常亮 P0=0X01; else P0=0X07; //如果電動機停止,燈全熄滅 } while(!k4); //判斷按鈕是否松開,不松開一直死循環,松開后跳出循環,繼續執行 } if(k5==0) //檢測減速按鈕是否按下 { delay(10); //消抖10ms if(k5==0) //如果減速按鈕按下 { m--; //檔位減一 if(m>0){ //當檔位未小于一檔,按下減速按鈕,執行以下 for(t=8;t>0;t--){ //紅燈閃爍8次 P0=0x04; delay(500); P0=0X07; delay(500);}} if(k6==1&&k7==0) //如果電動機正轉,綠燈常亮 P0=0X00; else if(k6==0&&k7==1) //如果電動機反轉,紅燈常亮 P0=0X01; else P0=0X07; //如果電動機停止,燈全熄滅 } while(!k5); //判斷按鈕是否松開,不松開一直死循環,松開后跳出循環,繼續執行 } if(m>3)m=3; //檔位最大為3檔 if(m<1)m=1; //檔位最小為1檔 } } void init() //定義定時器的初始化
上一篇:基于單片機的精簡八路搶答器
下一篇:基于51單片機矩陣鍵盤的簡易計算器制作
推薦閱讀
史海拾趣
FMI深知技術創新是企業發展的核心動力。因此,公司一直致力于在石英晶體和晶體振蕩器領域進行技術研發和創新。通過不斷的技術積累和優化,FMI成功開發出了一系列高性能、高穩定性的產品,如壓控溫度補償晶體振蕩器(VCTCXO)、壓控晶體振蕩器(VCXO)、溫度補償晶體振蕩器(TCXO)等。這些產品的推出不僅豐富了FMI的產品線,還進一步提升了公司在行業內的競爭力。
隨著業務規模的不斷擴大,FLIR逐漸將目光投向全球市場。公司在全球范圍內建立了多個生產基地和銷售服務網絡,包括在美國本土的波特蘭、波士頓、圣巴巴拉和波茲曼等城市設立的工廠,以及在瑞典斯德哥爾摩和愛沙尼亞塔林等海外地區設立的分支機構。這些生產基地和銷售服務網絡為FLIR在全球市場的拓展提供了有力支持,使得公司能夠更好地服務于全球客戶,滿足他們多樣化的需求。
Delta非常重視人才的培養和團隊建設。公司建立了完善的培訓體系,為員工提供多元化的培訓和發展機會。同時,Delta還注重團隊協作和溝通,鼓勵員工分享經驗和知識,共同解決問題。這種良好的團隊氛圍和文化,不僅增強了員工的凝聚力和歸屬感,也為公司的發展提供了有力的保障。
Delta非常重視人才的培養和團隊建設。公司建立了完善的培訓體系,為員工提供多元化的培訓和發展機會。同時,Delta還注重團隊協作和溝通,鼓勵員工分享經驗和知識,共同解決問題。這種良好的團隊氛圍和文化,不僅增強了員工的凝聚力和歸屬感,也為公司的發展提供了有力的保障。
Delta Electronics Manufacturing Corp公司始建于上世紀七十年代,起初以生產電源產品為主。在初創階段,公司憑借對技術的深度鉆研和對市場的敏銳洞察,成功研發出一系列高效、穩定的電源產品。這些產品迅速在市場上獲得認可,為Delta在電源領域奠定了堅實的基礎。
Dongguan Jingyue Electronics Co Ltd深知市場拓展的重要性。在立足本土市場的基礎上,公司積極開拓國際市場,通過參加國際展會、建立海外銷售渠道等方式,不斷提升品牌知名度和市場份額。同時,公司還注重品牌建設,通過提升產品質量、優化售后服務等方式,增強消費者對品牌的信任感和忠誠度。
gy8u一上來就希望:大家多交流技術的話題, 非常歡迎gy8u版主,非常歡迎大家討論:比如數據采集…… gy8u版主其人:主要做的工作是做汽車電子的測試,以及整車的測試……… 查看全部問答∨ |
|
晶振頻率11.0592MHZ 源程序如下: 問題是 利用串口調試軟件運行時,反復輸入U后經采樣轉換數據不一致,即模擬信號轉成數字量的值 跳變太大。。。請教專家!!! CS BIT P1.1 &n ...… 查看全部問答∨ |
|
我用的Sensor是200萬的,芯片輸出為1600×1200,而我在應用層只采取了 1600×1130,我不確定是不是這樣引起圖像不同步的原因,還是別的什么原因。 … 查看全部問答∨ |
本人是計算機專業的。由于現在快踏入大三的下學期了,大四下學期也就要找工作了,但我覺得現在自己學的東西還太片面了,也太廣了。所以我想找一門自己感興趣的專業方向作為自己這未來一年的奮斗目標,同時也為了將來的工作需要同,學一門精的課程。 ...… 查看全部問答∨ |
STM32具有12BIT ADC 確實很好,很強大!但也擔心它的精度問題,聽聞有3BIT線形誤差。下面是AT91SAM7S64關于ADC誤差的說明。… 查看全部問答∨ |
|
大家好: 我用 AD633 乘法器做了一個模擬鑒相電路,將 X 和 Y 兩個正弦波相乘,OUT 端得到那下面個視波器波形,輸出大多在 0V 以下,由于電壓刻度每格是 500mV,所以大約是-1.5Vp-p,但我現在碰到一個問題就是不知道要如何將此信號透過低通濾 ...… 查看全部問答∨ |
初觸STM32,一堆的寄存器可謂是頭大,今天閑得蛋疼,理了下RCC寄存器組,共10個寄存器,雖然沒有記下來,但是基本知道該寄存器組的作用。這里也沒具體列出哪個寄存器的某一位是啥作用,但是一眼看去基本知道這個寄存器是可以設置哪些項的,這樣也能 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 迅為IMX6開發板Android應用-AndroidStudio-calculator測試
- 玩轉 ESP32 + Arduino (二十) SIM800L上傳數據到OneNet(新版Mqtts)
- 玩轉 ESP32 + Arduino (二十一) SPIFFS文件系統 (已棄用)
- 玩轉 ESP32 + Arduino (二十二) SIM800L上傳數據到阿里IOT(溫濕度和LBS)(NTP對時)
- 玩轉 ESP32 + Arduino (二十三) 多文件系統及全局變量
- 玩轉 ESP32 + Arduino (二十四) SD卡讀寫
- 玩轉 ESP32 + Arduino (二十五) SSD1306庫驅動OLED
- 玩轉 ESP32 + Arduino(二十六) 按鍵控制庫 OneButton
- 玩轉 ESP32 + Arduino(二十七) ESP對象
- NXP微控制器電路板,針對USB Type C接口設計,評測創意有獎征集,曬心得更有多重好禮!
- 2022 Digi-Key KOL 視頻系列:四翼撲翼機(仿生鳥)原理及設計解析
- 【搶樓贏禮】聊聊“我眼中的ADI實驗室電路”
- 直播已結束【ST 寬禁帶高性能碳化硅(SiC)與氮化鎵(GaN)產品技術及不同應用案例分享】(9:30入場)
- Littelfuse第3期:新型SSA系列雙端超低分流電阻器
- 報名贏京東卡 | 國產FPGA安路科技2024線上新品發布會
- 福祿克首款熱成像萬用表Fluke-279FC 即將上市!填寫問卷贏好禮嘍!
- 打卡最后一周,解鎖TI汽車解決方案。解鎖的數量決定獎品的質量!
- 免費申請評測:和小伙伴們一起暢玩STM32F769I
- 答題贏京東卡|PI InnoSwitch產品系列學習中心