娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月22日(星期六)

2020年02月22日 | 單片機串口控制步進電機的源程序

發布者:TranquilSmile 來源: eefocus關鍵字:單片機  串口控制  步進電機 手機看文章 掃描二維碼
隨時隨地手機看文章

#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);

[1] [2]
關鍵字:單片機  串口控制  步進電機 引用地址:單片機串口控制步進電機的源程序

上一篇:用單片機數碼管和矩陣按鍵實現密碼鎖功能
下一篇:一種利用串口51單片機遠程升級 OTA

推薦閱讀

 進入2018年,國內手機市場的情況遠比去年更為嚴峻。據中國信息通信研究院最新發布的《2018年1月國內手機市場運行分析報告》顯示,2018年1月,國內手機市場出貨量3906.4萬部,同比下降16.6%;上市新機型51款,同比下降19.0%。  其中智能手機出貨量為3628.2萬部,同比下降19.4%,占同期國內手機出貨量的92.9%,其中Android手機出貨量2945.7萬部。上市智...
近年來,腹內壓(intra-abdominal pressure,IAP)升高及其對心肺功能、腹內重要臟器(如腎臟、胃腸道)功能的影響已成為重癥醫學科及外科醫生關注的研究課題,腹內壓監測也逐漸成為重癥患者的監測項目之一,通過膀胱壓的監測,及時了解病人腹內壓的變化,可以反映諸如多器官功能障礙綜合癥(M0DS,Multiple organ dysfunct1nsyndrome)等的病情嚴重程度和指...
內容說明本實用新型涉及超聲波熱量表流量計領域,尤其涉及一種用于過濾干擾信號的超聲波熱量表流量計。發明背景傳統的超聲波熱量表流量計中,超聲波信號的傳播需要通過壁面反射,如果流量計壁面結垢的話,將改變其壁面反射特性,從而改變超聲波熱量表信號的傳播特性,影響測量。還有一種超聲波流量計在工作過程中它的超聲波信號是通過反射片的反射進行傳播...
未來25年,將是場景時代 什么是品牌? 現代營銷學之父科特勒在《市場營銷學》一書中對品牌做了如下定義: 品牌是銷售者向購買者長期提供的一組特定的特點、利益和服務。 定義很簡單,但其背后的復雜性主要有2點:一是縱向發展,也就是品牌該如何完成從“無聞”到“知名”的成長;二是橫向發展,即如何面對不同時代購買者的不同需求。 因此,成功的品牌必...

史海拾趣

問答坊 | AI 解惑

發動機ECU診斷測試信號轉接器

圖片是64通道的博世ECU信號轉接器,還有81通道,90通道的,121通道,160通道,240通道的,請問各位大俠有用這個東西嗎?是用來專門測試ECU信號和診斷用的…

查看全部問答∨

數字電路中的模擬電路技術

由于數字電路是利用上升沿/下降沿很短的脈沖信號,所以會向外部放出包括高頻成分的多余電 磁波(噪聲),而且對外部來的電磁波(噪聲)敏感地響應,造成誤動作。另外在電路內部也存 在線間產生交調失真、數字器件的通/斷時電流急驟變化引起電源電 ...…

查看全部問答∨

wince4.2系統啟動時停在了SchedInit函數中

各位,我使用wince4.2+s3c2440,使用的是大頁FLash,燒些完NK后,系統啟動停在了Private下的SchedInit函數中,不知道是什么原因?…

查看全部問答∨

2440如何關閉LCD背光!

手冊里面說LCD_PWR是背光控制信號,根據spec里的 STN/TFT: LCD_PWREN output signal enable/disable. 0 = Disable PWREN signal 1 = Enable PWREN signal 那么我是不是把LCDCON5中的PWREN 位置低就等關閉背光啊?我試了不行啊,實在不懂到底怎么控 ...…

查看全部問答∨

請教高手 wdm中,什么是重入?或者說什么情況導致重入?

請教高手 wdm中,什么是重入?或者說什么情況導致重入?…

查看全部問答∨

pci bios 開發的問題

各位大俠,最近在開發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文件系統運行不穩定的問題!!!

已經在LPC1114上成功移植了讀寫FATFS的例程,讀寫功能都能實現,但是長期讀寫的時候(差不多工作半天)就會出現死機現象,經過查找,發現是SD卡的文件系統(文件分配表)已經損壞,經過多天的反復測試,都是經過一段時間的讀寫后,SD卡文件系統就會 ...…

查看全部問答∨

MSP430是否可用于工業控制?

輸出:40路,輸入:20路,都是開關量,變量較多,需大8K的RAM。如何選片?…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 青河县| 吉木乃县| 阳山县| 邢台县| 兴城市| 甘洛县| 凌海市| 安阳市| 龙门县| 牟定县| 福建省| 大冶市| 大竹县| 共和县| 化隆| 平谷区| 梨树县| 铅山县| 遂溪县| 五指山市| 措美县| 海南省| 南溪县| 阳西县| 绩溪县| 卢龙县| 岳普湖县| 林周县| 长顺县| 开远市| 微山县| 阳高县| 曲麻莱县| 汉中市| 井冈山市| 民和| 桃源县| 纳雍县| 肇州县| 工布江达县| 西乌|