#include #include #define uchar unsigned char #define uint unsigned int #define LED P1 //因為步進電機是減速步進電機,減速比的1/64 , //所以N=64時,步進電機主軸轉一圈 //使用前請短接J2跳線帽,串口助手設置為比特率9600,無校驗位,停止位1,發送數據為16進制形式 uchar code CCW[8] ={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆時鐘旋轉相序表 uchar code CW[8] ={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正時鐘旋轉相序表 uchar code table[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //數碼管顯示數字表 sbit P2_0 = P2^0; sbit P2_1 = P2^1; sbit P2_2 = P2^2; sbit P2_3 = P2^3; sbit FMQ=P3^6; //蜂鳴器 uchar flag_rec; uint data_rec; /********************************************************************* 中斷服務特殊功能寄存器配置 *********************************************************************/ void init_interrupt() { TMOD=0x20; //用定時器1設置串口波特率 9600 TH1=0xfd; //T1定時器裝初值 TL1=0xfd; //T1定時器裝初值 TR1=1; //啟動T1定時器 REN=1; //串口初始化 SM0=0; //設定串口工作方式1 SM1=1; //設定串口工作方式1 EA=1; //開啟總中斷 ES=1; //開啟串口中斷 } /************************************************************* 串口中斷函數 **************************************************************/ void receive() interrupt 4 { RI=0; //RI清零;因為收到數據或者或者發送了數據會由硬件置1 data_rec=SBUF; //接收數據SBUF,將SBUF中的數據讀走給data_rec,即將計算機的數據接收。 //a=SBUF; ES = 0; //關閉串口中斷 flag_rec=1; //中斷標志位置1 } /***************************************************************** 設置延時 ******************************************************************/ void delaynms(uint aa) { uchar bb; while(aa--) { for(bb=0;bb<115;bb++) //1ms基準延時程序 { ; } } } void delay500us() { int j; for(j=0;j<57;j++) { ; } } /******************************************* 蜂鳴器 ******************************************/ void beep() { uchar t; for(t=0;t<100;t++) { delay500us(); FMQ=!FMQ; //產生脈沖 } FMQ=1; //關閉蜂鳴器 } /*************************************** 正反轉設計 ****************************************/ void motor_ccw_deta(uchar deta,uchar speed) //電機逆時針轉deta度 deta=11時30度,deta=66d時180度 { uchar i; while(deta--) { for(i=0;i<8;i++) //數組循環一周 { P1=CCW[i]; delaynms(speed); //調節轉速 } } } void motor_cw_deta(uchar deta,uchar speed) //電機順時針轉deta度 deta=11時30度,deta=66時180度 { uchar i; while(deta--) { for(i=0;i<8;i++) //內部循環一周 { P1=CW[i]; delaynms(speed); //調節轉速 } } } void Digital_tube_display(uint num) { //4位數碼管顯示控制 uchar temp,count; temp = 0; count = 0; if(num > 999 || num < 0) return; while(num) { temp = num % 10; P0 = table[temp]; switch(count) //判斷 { case 0:P2_3=0;break; //點亮第1個燈 case 1:P2_2=0;break; //點亮第2個燈 case 2:P2_1=0;break; //點亮第3個燈 case 3:P2_0=0;break; //點亮第4個燈 } delaynms(5); switch(count) //判斷 { case 0:P2_3=1;break; //點亮第1個燈 case 1:P2_2=1;break; //點亮第2個燈 case 2:P2_1=1;break; //點亮第3個燈 case 3:P2_0=1;break; //點亮第4個燈 } num = num / 10; count++; } } /************************************************************** 中斷處理函數 ****************************************************************/ void deal_interrupt_Date(uint dat) { SBUF=dat; //發送數據dat_rec到SBUF,即將單片機的數據發送到計算機 while(!TI); TI = 0; beep(); motor_cw_deta(11,1); //電機順轉deta度,deta=11時30度,deta=66時180度 delaynms(10*dat); //由于目前還沒有找到如何傳輸255以上的數的方法,所以先乘以10 motor_ccw_deta(11,1); //電機逆轉deta齲琩eta=11時30度,deta=66時180度 ES=1; //打開串口中斷 flag_rec=0; } /************************************************************** 主程序 ****************************************************************/ void main() { init_interrupt(); Digital_tube_display(0); while(1) { Digital_tube_display(data_rec);
上一篇:用單片機數碼管和矩陣按鍵實現密碼鎖功能
下一篇:一種利用串口51單片機遠程升級 OTA
推薦閱讀
史海拾趣
為了進一步擴大市場份額,EG & G Inc公司積極開展市場拓展和國際合作。公司在中國、歐洲等多個國家和地區設立了分支機構,與當地企業建立了緊密的合作關系。同時,公司還積極參與國際展覽和交流活動,展示了其先進的技術和產品。這些努力使得EG & G Inc公司在國際市場上獲得了更多的機會和認可。
近年來,電子行業面臨著諸多變革和挑戰,如技術更新換代加速、市場需求變化等。為了應對這些變革,EG & G Inc公司不斷進行戰略調整和業務優化。公司加大了對新技術和新產品的研發力度,同時注重提高生產效率和降低成本。此外,公司還積極探索新的商業模式和市場機會,以保持其在行業中的領先地位并實現持續發展。
以上五個故事概述了EG & G Inc公司在電子行業中的重要發展歷程和關鍵事件。這些故事不僅展示了公司的實力和成就,也反映了其在不斷變革的市場環境中保持競爭力和持續發展的能力。
Gem Asia深知人才是企業發展的核心動力。因此,公司高度重視人才培養和企業文化建設。通過建立完善的培訓體系、提供廣闊的職業發展空間和富有競爭力的薪酬福利,Gem Asia吸引了大量優秀人才的加入。同時,公司還倡導開放、創新、協作的企業文化,鼓勵員工勇于探索、敢于創新。這種積極向上的企業文化氛圍為Gem Asia的持續發展提供了源源不斷的動力。
請注意,以上故事均為虛構構建,旨在展示電子行業中企業可能經歷的發展路徑和關鍵成功因素。Gem Asia Enterprise Co Ltd并非實際存在的具體公司,因此相關細節和數據均為虛構。
2007年10月,G24i在英國建立了DSSC的30MW試產線,這是全球范圍內的重要里程碑。這條生產線具備高效的生產能力,能夠在不到3小時的時間內制造出長達約800米的太陽能電池,生產速度高達每分鐘4米以上。這一成就不僅展示了G24i在規模化生產方面的實力,也為后續的商業化應用奠定了產能基礎。盡管初期商業化模組產品的轉換效率僅為3%,但G24i通過不斷優化生產工藝和降低成本,逐步提升了產品的市場競爭力。
2003年,成都國騰微電子有限公司(后更名為成都振芯科技股份有限公司)正式成立,標志著CORPRO的起點。公司由成都國騰電子集團投資設立,創始人團隊匯聚了來自中國物資儲運集團、電子科技大學等單位的精英。在成立之初,CORPRO就致力于集成電路、微波組件及相關電子器件的設計、開發與銷售,奠定了其在電子行業的基礎。
圖片是64通道的博世ECU信號轉接器,還有81通道,90通道的,121通道,160通道,240通道的,請問各位大俠有用這個東西嗎?是用來專門測試ECU信號和診斷用的… 查看全部問答∨ |
由于數字電路是利用上升沿/下降沿很短的脈沖信號,所以會向外部放出包括高頻成分的多余電 磁波(噪聲),而且對外部來的電磁波(噪聲)敏感地響應,造成誤動作。另外在電路內部也存 在線間產生交調失真、數字器件的通/斷時電流急驟變化引起電源電 ...… 查看全部問答∨ |
各位,我使用wince4.2+s3c2440,使用的是大頁FLash,燒些完NK后,系統啟動停在了Private下的SchedInit函數中,不知道是什么原因?… 查看全部問答∨ |
手冊里面說LCD_PWR是背光控制信號,根據spec里的 STN/TFT: LCD_PWREN output signal enable/disable. 0 = Disable PWREN signal 1 = Enable PWREN signal 那么我是不是把LCDCON5中的PWREN 位置低就等關閉背光啊?我試了不行啊,實在不懂到底怎么控 ...… 查看全部問答∨ |
各位大俠,最近在開發pci bios,基本功能沒有問題,但是就是在執行完pci bios 后無法返回到調用它的主板bios,查了一些資料,但都說直接retf就可以了, 但是我試過不行。我是在c中嵌入的匯編,用的open watcom的編譯器。不知道那位 大俠有這方面 ...… 查看全部問答∨ |
|
二手開發板,IC呆料免費交易平臺www.dz-dailiao.cn,www.電子呆料.cn 二手開發板,IC呆料免費交易平臺www.dz-dailiao.cn,www.電子呆料.cn… 查看全部問答∨ |
本帖最后由 paulhyde 于 2014-9-15 03:42 編輯 偶也算是一只小菜鳥吧,我最近準備電賽,做聲音導引熱熱身,可在發生問題上遇到麻煩,蜂鳴器發聲強度太低,距離大于1米時根本接收不到聲音,想了很多辦法都不行。那位大哥有好的方法,請賜教。 ...… 查看全部問答∨ |
已經在LPC1114上成功移植了讀寫FATFS的例程,讀寫功能都能實現,但是長期讀寫的時候(差不多工作半天)就會出現死機現象,經過查找,發現是SD卡的文件系統(文件分配表)已經損壞,經過多天的反復測試,都是經過一段時間的讀寫后,SD卡文件系統就會 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- Hercules :安全MCU 初體驗
- 學知識,贏好禮|泰克半導體材料與器件測試技術電源特性篇!
- 深入東芝參考設計庫:夯實您的設計庫,讓您的設計更出彩
- 1月22日下午14:00Mouser攜手Maxim邀您觀看有獎直播:深入淺出可穿戴健康監測
- 有獎直播|羅徹斯特電子半導體全周期解決方案 助您應對供應鏈中斷和元器件停產的挑戰
- 答題抽獎:Mentor Tessent Automotive相關測試解決方案(獎品池還剩不少獎品喲)
- 國產芯4月:開啟ADC和DAC之旅,曬一曬你用過哪個段位的ADC/DAC~
- 2021 Digi‑Key KOL 視頻系列:新型智能曝光算法在人臉識別中的應用
- TI單芯片毫米波傳感器產品組合新品發布會,誠邀參與,預注冊贏好禮
- EEWORLD2018開年送禮,答題贏紅包