單片機源程序:
/*******************************************************************/
/* 程序名:PWM直流電機調速 */
/* 晶振:11.00592 MHz CPU型號:AT89C51 */
/* 直流電機的PWM波控制,可以直接的調速從0到20級的調速 */
/*****************************************************************/
#include #define TH0_TL0 (65536-1000)//設定中斷的間隔時長 unsigned char count0 = 50;//低電平的占空比 unsigned char count1 = 0;//高電平的占空比 bit Flag = 1;//電機正反轉標志位,1正轉,0反轉 sbit Key_add=P2 ^ 0; //電機減速 sbit Key_dec=P2 ^ 1; //電機加速 sbit Key_turn=P2 ^ 2; //電機換向 sbit PWM1=P2^6;//PWM 通道 1,反轉脈沖 sbit PWM2=P2^7;//PWM 通道 2,正轉脈沖 unsigned char Time_delay; /************函數聲明**************/ void Delay(unsigned char x); void Motor_speed_high(void); void Motor_speed_low(void); void Motor_turn(void); void Timer0_init(void); /****************延時處理**********************/ void Delay(unsigned char x) { Time_delay = x; while(Time_delay != 0);//等待中斷,可減少PWM輸出時間間隔 } /*******按鍵處理加pwm占空比,電機加速**********/ void Motor_speed_high(void) { if(Key_add==0) { Delay(10); if(Key_add==0) { count0 += 5; if(count0 >= 100) { count0 = 100; } } while(!Key_add);//等待鍵松開 } } /******按鍵處理減pwm占空比,電機減速*****/ void Motor_speed_low(void) { if(Key_dec==0) { Delay(10); if(Key_dec==0) { count0 -= 5; if(count0 <= 0) { count0 = 0; } } while(!Key_dec ); } } /************電機正反向控制**************/ void Motor_turn(void) { if(Key_turn == 0) { Delay(10); if(Key_turn == 0) { Flag = ~Flag; } while(!Key_turn); } } /***********定時器0初始化***********/ void Timer0_init(void) { TMOD=0x01; //定時器0工作于方式1 TH0=TH0_TL0/256; TL0=TH0_TL0%256; TR0=1; ET0=1; EA=1; } /*********主函數********************/ void main(void) { Timer0_init(); while(1) { Motor_turn(); Motor_speed_high(); Motor_speed_low(); } } /**************定時0中斷處理******************/ void Timer0_int(void) interrupt 1 using 1 { TR0 = 0;//設置定時器初值期間,關閉定時器 TL0 = TH0_TL0 % 256; TH0 = TH0_TL0 / 256 ;//定時器裝初值 TR0 = 1; if(Time_delay != 0)//延時函數用 { Time_delay--; } if(Flag == 1)//電機正轉 { PWM1 = 0; if(++count1 < count0) { PWM2 = 1; } else PWM2 = 0; if(count1 >= 100) { count1=0; } } else //電機反轉 { PWM2 = 0; if(++count1 < count0) { PWM1 = 1; } else PWM1 = 0; if(count1 >= 100) { count1=0; } } } /************************************************ void Delay(unsigned char x) { Time_delay = x; while(Time_delay != 0);//等待中斷,可減少PWM輸出時間間隔 } Delay(10); if(Time_delay != 0)//延時函數用 { Time_delay--; } 其實這三個部分是相關聯的。 Delay(10)這是延時防抖的這是毫無疑問的,但這個消抖在消抖的同時將一開始只是聲明了下的Time- delay賦值了,賦值還不算他還牽扯到定時器里去了。你看在賦值后Time-delay變成了10,看第二個部分 的while(Time-delay!=10);這個語句正如注釋所說的等待中斷,當等來了中斷后你可以看第三個部 分了,看見了吧終端中有將Time-delay減一,每中斷一次就減一次直到等于0之后。也就是說延時的時長 是十個中斷的時長。注釋中:可減少PWM輸出時間間隔 也就可想而知了。 *****************************************************/
上一篇:51單片機BMP280氣壓和溫度值測試程序
下一篇:單片機+AS608的使用,并帶程序
推薦閱讀
史海拾趣
由于電子行業內江蘇歐密格光電科技股份有限公司(Amicc)的詳細發展故事并不公開透明,并且會涉及到公司內部的具體運營和策略,因此我無法直接提供5個具體的發展故事。但我可以根據公開信息,概括性地描述歐密格光電在電子行業中的幾個重要發展節點和事實。
-
創立與初期發展:江蘇歐密格光電科技股份有限公司成立于2009年,由現任董事長兼總經理盛剛創立。盛剛在創辦公司之前,擁有豐富的工學背景和外貿業務經驗。這為公司早期的技術研發和市場拓展奠定了堅實的基礎。在創立初期,歐密格光電就專注于半導體和光電元器件的生產加工,憑借過硬的技術和品質,逐漸在行業中嶄露頭角。
-
新三板掛牌上市:經過幾年的穩健發展,歐密格光電于2015年成功在新三板掛牌上市。這一舉措不僅為公司帶來了更多的資金支持,也提升了公司的知名度和市場影響力。上市后,歐密格光電進一步加強了技術研發和市場拓展,逐步鞏固了在行業中的地位。
-
質量管理體系建設:歐密格光電高度重視產品質量和企業管理。公司先后通過了ISO9001、ISO14001、ISO45001等多項國際質量管理體系認證,建立了嚴格的質量管理體系。同時,公司還建設了千級至萬級凈化車間,確保產品在生產過程中能夠達到最高品質標準。這些舉措不僅提升了公司的產品質量,也增強了客戶對公司的信任。
-
產品多元化與市場拓展:隨著技術的不斷進步和市場需求的不斷變化,歐密格光電的產品線也逐漸豐富起來。從最初的半導體和光電元器件,逐漸擴展到CHIP LED、PLCC LED、LAMP LED、紅外發射管等多種產品。同時,公司還積極拓展市場,產品廣泛應用于手機、安防、照明、汽車等多個領域,為眾多知名企業提供產品服務。
-
持續創新與技術升級:在競爭激烈的電子行業中,歐密格光電始終保持對創新的追求。公司不斷投入研發資金,引進先進技術和設備,提升產品的技術含量和附加值。同時,公司還積極與高校、科研機構等合作,開展產學研合作,推動技術創新和產業升級。
這些只是歐密格光電在電子行業中的部分發展事實,每個節點都體現了公司的戰略眼光和執行力。當然,公司的發展過程中也面臨過各種挑戰和困難,但正是通過不斷的努力和創新,歐密格光電才能在競爭激烈的市場中脫穎而出,成為行業內的佼佼者。
隨著技術的不斷進步和市場的不斷變化,Boundary Devices不斷拓展其產品線,推出了包括開發板、OEM板和調制解調器等在內的多種產品。這些產品不僅滿足了客戶多樣化的需求,也進一步提升了公司在行業中的競爭力。同時,公司注重創新,不斷投入研發力量,推出了一系列具有自主知識產權的產品,為公司的長期發展注入了新的動力。
Boundary Devices公司成立于2003年,總部位于美國亞利桑那州。創立之初,公司便專注于嵌入式系統硬件的開發與生產,憑借對技術的深刻理解和市場需求的敏銳洞察,Boundary Devices迅速在行業中嶄露頭角。其推出的Boundary Devices插座和適配器,因其兼容性強、性能穩定而備受市場青睞。同時,公司與NXP/Freescale建立了緊密的合作關系,共同推進i.MX系列處理器的應用與發展,為公司的后續發展奠定了堅實的基礎。
為了適應市場的快速變化和公司業務的不斷擴張,Altech公司決定將深圳工廠整體搬遷至廣州南沙。這一搬遷不僅優化了公司的生產布局,還為公司提供了更加廣闊的市場發展空間。搬遷后的工廠引進了先進的生產設備和技術,進一步提升了公司的生產效率和產品質量。
近年來,隨著OLED(有機發光二極管)技術的興起,LED行業面臨著巨大的挑戰。Epistar敏銳地意識到了這一點,開始積極調整戰略方向,加大在OLED技術領域的研發力度。同時,公司還通過優化產品結構、提高生產效率等措施降低成本、提升競爭力。這些努力使Epistar在OLED技術浪潮中保持了穩健的發展態勢。
重慶平洋電子有限公司,自其1998年3月創立之初,便扎根于重慶這片熱土,開始了其在電子行業的探索之旅。當時,電子行業正處于快速發展的階段,市場競爭激烈。然而,公司憑借對市場的敏銳洞察和對技術的執著追求,成功研發出多款電子元器件,逐漸在市場中站穩腳跟。
摘 要:放大線路是非線性電路。因為構成其電路的電子元件是非線性元件。要用他對信號進行不失真地放大,必須設置適當的工作點,使電子器件工作在近似線性區域,這就決定了放大器的分析包括直流分析和交流分析。而非線性器件對直流信號和交流信號所 ...… 查看全部問答∨ |
|
為什么我在EVC下連接不上模擬器啊: C:\\Documents and Settings\\qiangtien\\My Documents\\My Pictures\\err.jpg C:\\Documents and Settings\\qiangtien\\My Documents\\My Pictures\\show1.jpg C:\\Documents and Settings\\qiangtien\\My Do ...… 查看全部問答∨ |
|
我現在有兩個網卡,分別在不同的網絡里,IP地址的分別是通過DHCP服務器自動分配,設計了一套DHCP客戶端申請程序,單個網口可以實現IP地址的動態分配,串行方式兩個網口都可動態獲得IP地址,能不能實現兩個網口同時動態申請IP地址哪?這樣可以節約時 ...… 查看全部問答∨ |
|
高手們: 在ARM中,哪個能寫一個這個程序: 有一個數:123456789ABCDFE 又有一個數987654321FEDCBA 這兩個數如何比較大小? … 查看全部問答∨ |
50分,體系結構方向畢業之后主要從事什么樣的工作啊?待遇如何? 請問體系結構方向(微處理器開發)的碩士,或者博士畢業后能從事什么工作啊?大約的薪水是多少啊? 感覺好象國內這方面的消息很少:) … 查看全部問答∨ |