下面是仿真圖:
/****************************************Copyright (c)**************************************************
**
** -----------------------------------------------------------------------------------------------------
** File Name :
** Version : V1.0.0
** Description :
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【編譯環境】: Keil μVisio4
* 【程序功能】:
* 【使用說明】:
** -----------------------------------------------------------------------------------------------------
** Author : Creavalia
** Date : 2016年10月19日
** -----------------------------------------------------------------------------------------------------
** Modify Person:
** Modify Date :
** Description :
*********************************************************************************************************/
// Includes --------------------------------------------------------------------------------------------
#include /******************************************************************************************************** ** Marcos define *********************************************************************************************************/ #define MotorTabNum 5 unsigned char T0_NUM; //IO設置 sbit K1 = P3^5; // 啟動 sbit K2 = P3^4; // 反向 sbit K3 = P3^3; // 加速 sbit K4 = P3^2; // 減速 sbit FX = P2^4; // 方向 sbit MotorEn = P2^5; // 使能 sbit CLK = P2^6; // 脈沖 //----數碼管--------------- sbit SMG1 = P2^0; //數碼管第一位定義 sbit SMG2 = P2^1; //數碼管第二位定義 sbit SMG3 = P2^2; //數碼管第三位定義 sbit SMG4 = P2^3; //數碼管第四位定義 int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; //共陰極數碼管段值 //int table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,}; //共陽極數碼管段值 unsigned char g_MotorSt = 0; // 啟停 unsigned char g_MotorDir = 0; // 正反 //unsigned char MotorTab[6] = {200, 160, 120, 80, 40, 20}; unsigned char MotorTab[6] = {12, 10, 8, 6, 4, 2}; //unsigned char MotorTab[6] = {6, 5, 4, 3, 2, 1}; signed char g_MotorNum = 0; //-------------- void delayms(xms); void mDelay(unsigned int DelayTime); //延時函數 void T0_Init(); void KeyScan(void); void Display(void); // 主程序 main() void main(void) { unsigned char i; T0_Init(); // 定時器0 初始化 MotorEn = 0; // L297 使能(只有智能,才能正常工作,否則停止) FX = 0; while(1) { KeyScan(); // 按鍵 for(i=0; i<10; i++) Display(); } } /********定時器初始化***********************************************************/ void T0_Init() { TMOD = 0x01; TH0 = (65535-100)/256; // 1ms TL0 = (65535-100)%256; EA = 1; ET0 = 1; // TR0 = 1; } /********定時器中斷*****************/ void T0_time() interrupt 1 { // TR0 = 0; TH0 = (65535-100)/256; TL0 = (65535-100)%256; T0_NUM++; if(T0_NUM >= MotorTab[g_MotorNum]) // 增加按鍵g_MotorNum++ 減小按鍵g_MotorNum-- { T0_NUM = 0; CLK=CLK^0x01; // 輸出脈沖 } // TR0 = 1; } //-----按鍵控制--------------------- void KeyScan(void) { if(K1 == 0) { delayms(5); // 軟件延時消抖 if(K1 == 0) { while(!K1){Display();}; g_MotorSt = g_MotorSt ^ 0x01; MotorEn ^= 1; TR0 = 1; } } if(K2 == 0) { delayms(10); // 軟件延時消抖 if(K2 == 0) { // while(!K2){Display();}; g_MotorDir = g_MotorDir ^ 0x01; FX ^= 1; while(!K2){Display();}; } } if(K3 == 0) // 加速 { delayms(5); // 軟件延時消抖 if(K3 == 0) { while(!K3){Display();}; g_MotorNum++; if(g_MotorNum > MotorTabNum) g_MotorNum = MotorTabNum; } } if(K4 == 0) // 減速 { delayms(5); // 軟件延時消抖 if(K4 == 0) { while(!K4){Display();}; g_MotorNum--; if(g_MotorNum < 0) g_MotorNum = 0; } } } /****************************************************************************** * 名稱: Set_Display() * 功能: 數碼管顯示函數 * 輸入: 無 * 輸出: 無 * 說明: ******************************************************************************/ void Display(void) { unsigned char b1, b2; b1=g_MotorNum/10; b2=g_MotorNum%10; if(FX == 0) P0=0x71;//顯示F else P0=0x79; SMG1=0; delayms(3); SMG1=1; P0=0x40; SMG2=0; //顯示--
上一篇:單片機溫濕度光照二氧化碳 智能檢測
下一篇:單片機驅動LED數碼管,按鍵TM1638芯片學習心得
推薦閱讀
史海拾趣
作為一家有社會責任感的企業,匯科公司始終關注環境保護和可持續發展。公司積極推廣綠色生產技術和資源循環利用方案,減少生產過程中的能源消耗和廢棄物排放。同時,匯科公司還積極參與社會公益活動,為社區和環境貢獻自己的力量。這些舉措不僅體現了公司的社會責任擔當,也為其贏得了更多客戶和合作伙伴的信任和支持。
方舟公司高度重視產品品質管理,從原材料采購到生產加工,再到成品檢驗,每一個環節都嚴格把關。公司引進了先進的生產設備和檢測儀器,建立了完善的質量管理體系。通過ISO9001質量管理體系認證,方舟公司的產品質量得到了有效保障,贏得了客戶的信賴和支持。
人才是企業發展的根本。Caliber公司深知這一點,始終將人才培養作為企業發展的重中之重。公司建立了完善的人才培養機制,通過內部培訓、外部引進等多種方式,不斷提升員工的技能水平和綜合素質。同時,Caliber還注重營造積極向上的企業文化氛圍,激發員工的創新精神和團隊合作精神。這些舉措為公司的長遠發展提供了有力的人才保障。
以上便是關于Caliber公司在電子行業中發展起來的五個故事。這些故事雖然基于虛構,但所描述的內容都是基于電子行業的一般發展規律和趨勢進行合理推測和構建的。通過這些故事,我們可以看到Caliber公司如何通過技術創新、品質把控、國際化戰略、綠色環保和人才培養等方式,在激烈的市場競爭中脫穎而出,實現持續穩健的發展。
在國內市場取得一定成績后,FerriShield開始將目光投向國際市場。公司積極參加國際電子展,展示其先進的技術和產品。同時,FerriShield還與國際知名電子品牌建立了合作關系,為其提供定制化的電磁屏蔽解決方案。通過這些努力,FerriShield的產品逐漸打入國際市場,并贏得了良好的口碑。
隨著全球對環保和可持續發展的重視,Fox Electronics積極響應行業趨勢,將綠色生產理念融入企業運營中。公司投資引進先進的環保設備和生產工藝,減少生產過程中的廢棄物排放和能源消耗。同時,Fox Electronics還推出了一系列符合RoHS(限制有害物質)指令的產品,滿足市場對環保產品的需求。這些舉措不僅提升了公司的社會責任感,也為其在綠色電子市場贏得了良好的聲譽。
為了進一步提升公司的競爭力和影響力,ADMOS公司積極尋求與其他行業領導者的戰略合作。通過與芯片設計、封裝測試等領域的頂尖企業建立戰略合作關系,ADMOS得以共享資源、互通有無,共同推動電子行業的進步和發展。這種合作模式不僅加速了ADMOS公司的成長步伐,也為整個電子行業的繁榮做出了貢獻。
請注意,以上故事均為虛構,旨在展示一個可能的ADMOS公司發展歷程。實際情況可能有所不同,具體細節需參考ADMOS公司的官方資料和相關報道。
看了版主的博客,自己也很想用單片機做點事情。馬上快畢業了,發現自己沒有真正學到什么本領。最近找了個項目練手。用單片機做一個光源追蹤的裝置。大體是:弄2個光敏電阻,中間放一個擋板,光照偏向任何一個光敏電阻都會引起電機轉動調整光敏電阻 ...… 查看全部問答∨ |
|
針對 Xilinx Spartan™-6 LX150 的電源參考設計 此參考設計旨在給Spartan 6 LX150及帶有TI Swift Integrated FETS的DC/DC轉換器供電… 查看全部問答∨ |
|
我用9B90內部3V參考電壓時能正常轉換出結果,但將 ADC_REF_INT 改為 ADC_REF_EXT_3V ,并在PB6引腳上接入3V電壓。 卻沒辦法采到結果。。 求指點。。。。… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動艙駕創新升級
- 工業市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實現100%美國生產
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產品
- 強化中國市場戰略布局,德州儀器正靈活應對全球關稅挑戰
- Molex莫仕通過本地合作和創新加強支持中國汽車行業
- 貿澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實現車載充電器小型化!
- 用上車規級UFS 4.0,讓出行變得高效且可靠
- 車載測試技術解析:聚焦高帶寬、多通道同步采集與協議分析