當按下SW1時步進電機正轉,按下SW2后步進電機反轉,并可以根據源碼任意調節旋轉速度和每一個脈沖旋轉角度
程序參考源代碼如下:
/C語言程序:/
#include #define uchar unsigned char #define uint unsigned int uchar table_begin; uint maichong; //脈沖 uchar zhuansu; //轉速 uchar flag; //方向 sbit key_fuwei=P3^0; //復位鍵 sbit key_z=P3^1; //正轉鍵 sbit key_f=P3^2; //反轉鍵 sbit key_jia=P3^3; //加速鍵 sbit key_jian=P3^6; //減速鍵 sbit A1=P2^0; sbit A2=P2^1; sbit A3=P2^2; sbit A4=P2^3; void display(); void delayms(xms); void delay(uchar x) {undefined uchar i,j; //延時 for(i=0;i } void fuwei(void) //復位 {undefined flag=2; zhuansu=0; } /*void Display(void) //顯示 {undefined unsigned char b1, b2; b1=zhuansu/10; b2=zhuansu%10; if(flag == 0) //0 P0=0x71;//顯示F else P0=0x79; A1=0; delayms(3); A1=1; P0=0x40; A2=0; //顯示-- delayms(3); A2=1; P0=table2[b1]; A3=0; //顯示十位 delayms(3); A3=1; P0=table2[b2]; A4=0; delayms(3); //顯示個位 A4=1; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 } */ void display() {undefined uchar b1,b2,b3,b4; if(flag0) P0=0x71;//顯示F else P0=0x79; if(flag1) P0=0x7c;//顯示b else P0=0x71; b1=10; b2=0x3f; b3=zhuansu/10; b4=zhuansu%10; //P0=table2; A1=0; //P2.0 delay(1); A1=1; P0=b2; A2=0; //P2.1 delay(1); A2=1; P0=table2[b3]; A3=0; //P2.3 delay(1); A3=1; P0=table2[b4]; A4=0; //P2.4 delay(1); A4=1; } void key() //按鍵掃描 {undefined if(key_fuwei0) { delay(5); if(key_fuwei0) fuwei(); } if(key_z0) { delay(5); if(key_z0) {undefined flag=0; zhuansu=10; while(key_z0); } } if(key_f0) {undefined delay(5); if(key_f0) { flag=1; zhuansu=10; while(key_f0); } } if(key_jia0) { delay(5); if(key_jia0) {undefined zhuansu++; if(zhuansu21) zhuansu=20; while(key_jia0); } } if(key_jian0) { delay(5); if(key_jian0) {undefined zhuansu–; if(zhuansu<=0) zhuansu=0; while(key_jian==0); } } } void dispose() //脈沖函數 {undefined switch(zhuansu) {undefined case 0: flag=2; break; case 1: maichong=300; break; case 2: maichong=295; break; case 3: maichong=290; break; case 4: maichong=280; break; case 5: maichong=260; break; case 6: maichong=240; break; case 7: maichong=200; break; case 8: maichong=180; break; case 9: maichong=160; break; case 10: maichong=120; break; case 11: maichong=80; break; case 12: maichong=70; break; case 13: maichong=60; break; case 14: maichong=40; break; case 15: maichong=35; break; case 16: maichong=30; break; case 17: maichong=25; break; case 18: maichong=20; break; case 19: maichong=15; break; case 20: maichong=10; break; } if(flag0) table_begin=0; else if(flag1) table_begin=4; } void zhuandong(void) {undefined uint i,j; if(zhuansu>0&&zhuansu<=20) {undefined for(j=0+table_begin;j<4+table_begin;j++) {undefined P1=table1[j]; for(i=0;i } } } …………………… …
上一篇:51單片機12864大液晶屏俄羅斯方塊
下一篇:單片機驅動 DS1302時鐘+1602液晶
推薦閱讀
史海拾趣
DFRobot公司于2008年由葉琛創立,當時主要致力于將國外的開源硬件項目引入中國。起初,公司規模較小,團隊由幾位熱愛機器人和開源硬件的工程師組成。他們憑借對技術的熱情和不懈的努力,逐漸在電子行業嶄露頭角。葉琛作為公司的創始人,不僅擁有深厚的工程學背景,還具備前瞻性的商業眼光,為公司的發展奠定了堅實的基礎。
精英電腦(ECS)自1987年成立以來,一直以其卓越的技術創新能力在電子行業中占據一席之地。公司早期專注于主板的研發和生產,憑借其穩定的性能和出色的兼容性,迅速贏得了市場的認可。隨著科技的進步,ECS不斷拓寬產品線,從主板擴展到臺式機、筆記本電腦、平板電腦等多個領域。在技術創新方面,ECS始終堅持自主研發,不斷推出具有行業領先水平的新產品,如采用最新制程技術的主板、搭載高性能處理器的筆記本電腦等。這些創新產品不僅提升了ECS的品牌形象,也為公司帶來了可觀的利潤。
CQR SECURITY公司最初是一家專注于網絡安全技術研發的小型創業公司。在創始人的帶領下,公司團隊攻克了一系列網絡安全難題,開發出了具有高度創新性的安全協議。這一技術突破迅速吸引了業界關注,多家大型企業開始與CQR合作,共同推動產品的商業化應用。隨著合作的深入,CQR逐漸在電子安全領域建立了自己的地位,最終發展成為一家業內知名的安全解決方案提供商。
隨著科技的不斷進步,電子行業也在快速變革。為了應對這一挑戰,Esico-Triton不斷加強研發投入,特別是在人工智能和物聯網領域。公司推出了一系列智能家居和工業自動化產品,以適應市場的需求。同時,Esico-Triton還與多所知名大學和研究機構合作,共同研發新技術,確保公司在行業中的領先地位。
作為物聯網領域的領軍企業之一,Telit(包含GainSpan的技術)不僅致力于技術創新和市場拓展,還積極參與行業標準的制定和生態建設的推動。通過與其他企業和組織的合作與交流,Telit推動了物聯網技術的標準化和規范化發展。同時,它還積極構建物聯網生態系統,與上下游企業建立緊密的合作關系,共同推動物聯網產業的繁榮和發展。這些努力不僅提升了Telit在行業內的地位和影響力,也為整個物聯網產業的發展做出了重要貢獻。
隨著5G技術的興起,CYAN敏銳地捕捉到了市場的變化。公司投入大量研發資源,成功開發出一款基于5G技術的高性能網絡路由器。這款路由器不僅具有超高的數據傳輸速度和穩定性,還具備智能管理和安全保護功能,滿足了市場對高性能網絡設備的需求。
學習FPGA經歷了這么幾個階段 ①、VHDL和Verilog語言的學習,熟悉VHDL和Verilog語言的各種語法。 ②、FPGA的學習,熟悉QuartusII軟件的各種功能,各種邏輯算法設計,接口模塊(RS232,LCD,VGA,SPI,I2c ...… 查看全部問答∨ |
作者博客:http://radiobcl.blog.163.com/ 在FT-80C等電臺的收發切換繼電器后面接收輸入處加個限幅電路:如果沒有合適的兩個背對背連接的硅瞬變吸收二極管(TVS),采用幾組用二極管1N4148串聯的組件正反向并聯也可以對地分流,輸入串聯2W/24V燈泡、 ...… 查看全部問答∨ |
哈哈,看看這個新聞,http://www.expo-shandong.cn/news/gfxw/gfxw902.html 上海計測院利用“鎮院之寶”對上海世博鐘進行時間校正,一款示波器竟也成了“鎮院之寶”,這個示波器到底是哪方利器啊,有了解的出來說說。。 … 查看全部問答∨ |
#include<reg52.h> #include <intrins.h> #define keyborad P0 #define LCD_data P1 //數據口 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();}; #define uc ...… 查看全部問答∨ |
Window CE調試中,在 VS2005的debugger中,只能看到當前Thread的Callstack,如何查看其它Thread的Callstack呢? Window CE調試中,在 VS2005的debugger中,只能看到當前Thread的Callstack,如何查看其它Thread的Callstack呢? 從Threads Window看,除了當前 Thread: A_Thread 能看到停在 A_WndProc function中,并能在 Callstack Window 查看 其他 Threads 都 ...… 查看全部問答∨ |
各位大蝦好! 我需要使用APIC,所以在config.h中加入了定義“#deinfe SYMMETRIC_IO_MODE“,但修改完以后,系統啟動剛過V1.6+++++++++這個畫面就藍屏了,再沒有任何改變。 我用的是pentium M處理器,vxworks5.5.1和tornado2.2.在該這個之前,一切 ...… 查看全部問答∨ |
As far as I am concerned, the only true stupid thing you can do is not to be sure about something and don\'t dare to ask! Remember: the one that asks the question (might) look stupid for 5 minutes; the one that does not dare askin ...… 查看全部問答∨ |
調試程序的時候發現,單步運行的時候接收到的數據是正確的,連續運行的時候數據前一部分是不正確的,后一部分是正確的,不知道問題出在哪里,請高手指點!! 同樣的發送子程序放在其它程序里,在同一個硬件上運行是沒問題的。 程序: send_data( ...… 查看全部問答∨ |
【給力2011】 特價供應EE_FPGA 2.0 + USB Blasterhttp://bbs.eeworld.com.cn/thread-286584-1-1.html [ 本帖最后由 chenzhufly 于 2011-5-5 09:42 編輯 ]… 查看全部問答∨ |
f149串口端口不加驅動芯片,能不能直接由電腦助手檢測到數據,謝謝了 由串口端口直接引出了兩根線連到了輸出端口上,用導線連接到電腦串口上,電平能不能由電腦助手直接檢測到....謝謝了… 查看全部問答∨ |