亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? step.c

?? 基于51的步進電機控制器,含有人機結口程序,軟硬件測試都已通過.是不錯的參考代碼.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include<reg51.h>
#include<stdio.h>
//--------------------------------變量定義-------------------------------------------
//sbit INT_0=P3^2;                        //將p3.2外部中斷0
unsigned int FLAG=0;                    //數碼管閃爍標志位
unsigned int FLAG1=0;                   //顯示切換標志位 1---速度,0---坐標
unsigned int FLAG2=0;                   //電機正反轉切換標志位 1---正轉,0---反轉
unsigned int KEY=0;                     //鍵值
unsigned int circle=1;                  //坐標單位1的步進圈數
int Fm=0;                               //加工點偏差
unsigned int Xe=0;                      //終點橫坐標
unsigned int Ye=0;                      //終點縱坐標
unsigned int Nxy=0;                     //總步數
unsigned int Xi=0;                      //實時橫坐標
unsigned int Yi=0;                      //實時縱坐標
unsigned int SpeedX=0;                  //X電機速度(步/秒)
unsigned int SpeedY=0;                  //Y電機速度(步/秒)
unsigned int time0_tmp=0xe880;          //2ms定時顯示初值
unsigned int time1_tmp=0;               //速度控制定時初值
//unsigned int fosc=12;                   //單片機晶振(MHz)
unsigned int Led1[8]={1,1,1,1,1,1,1,1}; //兩個4位數碼管數值(速度)
unsigned int Led2[8]={1,1,1,1,1,1,1,1}; //兩個4位數碼管數值(坐標)
unsigned char StepX1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};//X步進電機正轉節拍
unsigned char StepY1[]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90};//Y步進電機反轉節拍
unsigned char StepX2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};//X步進電機正轉節拍
unsigned char StepY2[]={0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10};//Y步進電機反轉節拍
unsigned char Led_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x89,0x86};//數碼管0—9,H,E
//unsigned char Led_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x79};//數碼管0—9,A,E

//--------------------------------函數聲明-------------------------------------------
void System_init(void);                 //設定INT0的工作方式,供主程序調用
void delay(unsigned int);               //延時程序
void delay10ms(unsigned int);
//void INT0_int(void);                    //外部中斷0處理程序
void time0_int(void);                   //定時器0中斷
//void time1_int(void);                   //定時器1定時
void Key_Scaning(void);                 //掃描鍵盤
void dispxy(unsigned int,unsigned int,unsigned int);//數碼管顯示子程序
void display(void);                     //數碼管顯示
void Key_Control(void);                 //鍵盤控制
void Go_line(void);                     //直線差補算法---前進
void Back_line(void);                   //直線差補算法---回零
//-----------------------------------------------------------------------------------
main()
{
   System_init();                       //中斷初始化
   while(1)
   {
      Key_Control();                    //鍵盤控制

   }
}
//-----------------------------------------------------------------------------------
// 函數名稱:System_init()
// 函數功能:初始化設置
// 設定INT0的工作方式
//-----------------------------------------------------------------------------------
void System_init(void)
{
   P3=0xfc;                             //鍵盤端口初值		 P3.0  P3.1 置零
   TMOD=0x11;                           //T0、T1都為工作方式1
   TH0=(time0_tmp/256);                 //2ms定時顯示設置
   TL0=(time0_tmp%256);
   TH1=(time1_tmp/256);
   TL1=(time1_tmp%256);
   TR0=1;
   //TR1=1;                                      //開啟定時器0(定時顯示)
   //IT0=0;                               //選擇INT0為電平觸發方式
   
   IP=0x02;                             //將T0中斷設置為高優先級
   IE=0x82;                             //ET1=1(定時中斷1允許),ET0=1(定時中斷0允許),EA=1(系統中斷允許)
}
//-----------------------------------------------------------------------------------
void delay(unsigned int i)
{
   for(;i>0;i--);
}

void delay10ms(unsigned int i)			//延時程序????10ms有問題?????
{
   unsigned int j;
   for(;i>0;i--)
      for(j=0;j<1200;j++);
}
//------------------------------------------------------------------------------------
// 函數名稱:INT0_int()
// 函數功能:外部中斷0處理程序
//------------------------------------------------------------------------------------
/*void INT0_int(void) interrupt 0
{
//   EA=0;
   Key_Scaning();
//   display();
   P3=0xfc;
//   EA=1;
} */
//------------------------------------------------------------------------------------
// 函數名稱:time0_int()
// 函數功能:定時器0中斷服務子程序,定時動態掃描顯示
//------------------------------------------------------------------------------------
void time0_int(void) interrupt 0
{
   EA=0;		 //關中斷
   TH0=(time0_tmp/256);
   TL0=(time0_tmp%256);
   display();
   EA=1;		 //開中斷
}
//------------------------------------------------------------------------------------
// 函數名稱:time0_int()
// 函數功能:定時器1中斷服務子程序,定時掃描鍵盤
//------------------------------------------------------------------------------------
//void time1_int(void) interrupt 1
//{
   //unsigned int j;
  //	 EA=0;
   //j=10000;
   //time1_tmp=65536-20000;
   //TH1=(time1_tmp/256);
  // TL1=(time1_tmp%256);
    //TR1=1;
//	Key_Scaning();
	
//	display();
//	EA=1;

//} 
//-------------------------------------------------------------------------------------
// 函數名稱:Key_Scaning()
// 函數功能:掃描鍵盤
//-------------------------------------------------------------------------------------
void Key_Scaning(void)
{
   unsigned int keytmp,temp;

   P3=0x1c;                             //掃描第一列
   temp=P3;                             //讀出數據,看是否在此行上的某列鍵盤被按下
   keytmp=temp&0x03;                    //P3.0~P3.1
   
   if(keytmp!=0x00)
   {
      delay(1);						    //消抖	==========================1改為100
      P3=0x1c;                        
      temp=P3;
      keytmp=temp&0x03;
      if(keytmp!=0x00)                  //再次判斷是否有鍵按下
      {
         switch(keytmp)
         {
             case 1:
                  KEY=1;  break;        //1列1行()
             case 2:
                  KEY=2;  break;        //1列2行()
             default :
                          break;
         }
      }
   }
   P3=0x2c;                             //掃描第二列
   temp=P3;                             //讀出數據,看是否在此行上的某列鍵盤被按下
   keytmp=temp&0x03;                    //P3.0~P3.1
   if(keytmp!=0x00)
   {
      delay(1);
      P3=0x2c;                          //消抖
      temp=P3;
      keytmp=temp&0x03;
      if(keytmp!=0x00)                  //再次判斷是否有鍵按下
      { 
         switch(keytmp)
         {
            case 1:
                 KEY=3;  break;         //2列1行()
            case 2:
                 KEY=4;  break;         //2列2行()
            default :
                         break;
         }
      }
   }
   P3=0x4c;                             //掃描第三列
   temp=P3;                             //讀出數據,看是否在此行上的某列鍵盤被按下
   keytmp=temp&0x03;                    //P3.0~P3.1
   if(keytmp!=0x00)
   {
      delay(1);
      P3=0x4c;                          //消抖
      temp=P3;
      keytmp=temp&0x03;
      if(keytmp!=0x00)                  //再次判斷是否有鍵按下
      { 
         switch(keytmp)
         {
            case 1:
                 KEY=5;  break;         //3列1行()
            case 2:
                 KEY=6;  break;         //3列2行()
            default :
                         break;
         }
      }
   }
   P3=0x8c;                             //掃描第四列
   temp=P3;                             //讀出數據,看是否在此行上的某列鍵盤被按下
   keytmp=temp&0x03;                    //P3.0~P3.1
   if(keytmp!=0x00)
   {
      delay(1);
      P3=0x8c;                          //消抖
      temp=P3;
      keytmp=temp&0x03;
      if(keytmp!=0x00)                  //再次判斷是否有鍵按下
      { 
         switch(keytmp)
         {
            case 1:
                 KEY=7;   break;        //4列1行()
            case 2:
                 KEY=8;   break;        //4列2行()
            default :
                          break;
         }
      }
   }
}
//------------------------------------------------------------------------------------
// 函數名稱:dispxy()
// 函數功能:數碼管顯示子程序
//------------------------------------------------------------------------------------
void dispxy(unsigned int i,unsigned int j,unsigned int k)
{
   P2=i;                                //選通數碼管
   P0=Led_code[j];                      //送段碼
   delay(k);
}
//------------------------------------------------------------------------------------
// 函數名稱:display()
// 函數功能:數碼管顯示
//------------------------------------------------------------------------------------
void display(void)
{
   Key_Scaning();
  if(FLAG1==1)                         //顯示切換標志位1(顯示速度)
   {
      dispxy(0x01,Led1[0],200-(FLAG==1)*170);
      dispxy(0x02,Led1[1],200-(FLAG==2)*170);
      dispxy(0x04,Led1[2],200-(FLAG==3)*170);
      dispxy(0x08,Led1[3],200-(FLAG==4)*170);
      dispxy(0x10,Led1[4],200-(FLAG==5)*170);
      dispxy(0x20,Led1[5],200-(FLAG==6)*170);
      dispxy(0x40,Led1[6],200-(FLAG==7)*170);
      dispxy(0x80,Led1[7],200-(FLAG==8)*170);
   }
   else                                 //顯示切換標志位0(顯示坐標)
  {
      dispxy(0x01,Led2[0],200-(FLAG==1)*170);
      dispxy(0x02,Led2[1],200-(FLAG==2)*170);
      dispxy(0x04,Led2[2],200-(FLAG==3)*170);
      dispxy(0x08,Led2[3],200-(FLAG==4)*170);
      dispxy(0x10,Led2[4],200-(FLAG==5)*170);
      dispxy(0x20,Led2[5],200-(FLAG==6)*170);
      dispxy(0x40,Led2[6],200-(FLAG==7)*170);
      dispxy(0x80,Led2[7],200-(FLAG==8)*170);
   } 
}
//------------------------------------------------------------------------------------
// 函數名稱:Key_Control()
// 函數功能:鍵盤控制
//------------------------------------------------------------------------------------
void Key_Control(void)
{

   unsigned int i;
   time0_tmp=0xb880;
   if(KEY==1)
   {
      KEY=0;                            //清鍵值
      FLAG=0;                           //數碼管閃爍標志位0(無閃爍)
      FLAG1=0;                          //顯示切換標志位0(顯示坐標)
      Led1[0]=0;Led1[1]=0;Led1[2]=0;Led1[3]=0;Led1[4]=0;Led1[5]=0;Led1[6]=0;Led1[7]=0;
      Led2[0]=0;Led2[1]=0;Led2[2]=0;Led2[3]=0;Led2[4]=0;Led2[5]=0;Led2[6]=0;Led2[7]=0;
      Go_line();                        //前進
   }
   else if(KEY==2)
   {
      KEY=0;                            //清鍵值
      FLAG=0;                           //數碼管閃爍標志位0(無閃爍)
      FLAG1=0;                          //顯示切換標志位0(顯示坐標)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产黄色精品视频| 韩国毛片一区二区三区| 久久综合狠狠综合| 一本色道a无线码一区v| 蜜桃精品视频在线| 亚洲美女少妇撒尿| 精品日韩av一区二区| 在线观看中文字幕不卡| 国产白丝精品91爽爽久久| 午夜精品免费在线观看| 国产精品水嫩水嫩| 欧美草草影院在线视频| 欧美视频中文字幕| 95精品视频在线| 国产激情精品久久久第一区二区| 日韩精品免费视频人成| 亚洲另类中文字| 欧美国产精品专区| 精品少妇一区二区三区日产乱码 | 中文字幕在线不卡视频| 欧美videossexotv100| 欧美日本在线看| 色综合久久九月婷婷色综合| 成人午夜私人影院| 国产成人精品免费在线| 国产一区二区电影| 激情综合一区二区三区| 麻豆极品一区二区三区| 婷婷综合在线观看| 性做久久久久久免费观看| 亚洲丝袜精品丝袜在线| 中文字幕一区av| 国产日韩欧美精品电影三级在线| 精品国产乱码久久久久久浪潮| 欧美伦理影视网| 欧美日韩中文另类| 欧美日韩高清一区二区| 欧美日韩精品电影| 666欧美在线视频| 欧美精品免费视频| 91精品国产福利| 在线播放中文一区| 日韩一本二本av| 日韩亚洲欧美综合| 久久久久久免费| 国产日韩欧美精品一区| 国产精品国产三级国产三级人妇| 国产精品入口麻豆九色| 最新中文字幕一区二区三区| 国产精品久久久久久亚洲毛片| 综合网在线视频| 亚洲精品国产一区二区三区四区在线| 亚洲美女偷拍久久| 亚洲成人手机在线| 老司机精品视频导航| 国产一区不卡精品| gogogo免费视频观看亚洲一| 91蜜桃免费观看视频| 欧美日韩亚洲高清一区二区| 欧美丰满一区二区免费视频| 欧美精品一区二区在线播放| 日本一区二区综合亚洲| 亚洲三级电影全部在线观看高清| 亚洲图片有声小说| 久久激情五月激情| 国产69精品久久久久毛片| 色婷婷久久久久swag精品| 69av一区二区三区| 欧美国产精品v| 亚洲国产一区视频| 国产在线视频一区二区| 色综合天天综合在线视频| 在线不卡欧美精品一区二区三区| 26uuuu精品一区二区| 国产精品国产自产拍在线| 亚洲国产精品影院| 国产精品主播直播| 欧亚一区二区三区| 久久综合九色综合久久久精品综合| 国产精品国产三级国产有无不卡| 舔着乳尖日韩一区| 丁香激情综合国产| 欧美色图12p| 久久久91精品国产一区二区三区| 国产精品久久看| 蜜桃av一区二区三区电影| 99精品国产视频| 日韩色视频在线观看| 亚洲日本青草视频在线怡红院| 蜜桃av一区二区在线观看| 91麻豆swag| 国产日韩欧美a| 天堂精品中文字幕在线| 成人网在线播放| 欧美一区二区视频在线观看| 中文字幕+乱码+中文字幕一区| 视频在线在亚洲| 91麻豆国产香蕉久久精品| 欧美精品一区二区三区在线| 亚洲国产精品久久不卡毛片| 成人深夜福利app| 欧美精品一区二区三区在线播放| 亚洲国产你懂的| 91美女片黄在线| 久久天天做天天爱综合色| 婷婷开心久久网| 91亚洲大成网污www| 国产欧美一区二区精品忘忧草| 日本午夜精品一区二区三区电影| 色激情天天射综合网| 国产欧美日韩在线观看| 久久成人免费网站| 欧美精品亚洲二区| 亚洲午夜成aⅴ人片| 91啪在线观看| 国产精品国产馆在线真实露脸| 国内精品免费**视频| 日韩一卡二卡三卡| 日本免费在线视频不卡一不卡二| 欧美在线观看一区二区| 亚洲免费av高清| 色综合天天综合网天天看片| 综合婷婷亚洲小说| 不卡一区在线观看| 国产精品丝袜久久久久久app| 国产美女一区二区三区| 欧美不卡一二三| 蜜桃视频在线观看一区| 日韩一区二区在线看片| 毛片基地黄久久久久久天堂| 91麻豆精品国产91久久久使用方法 | 国产区在线观看成人精品| 另类小说综合欧美亚洲| 欧美一区二区三区免费| 日韩不卡手机在线v区| 制服丝袜亚洲播放| 亚洲成人综合在线| 欧美男同性恋视频网站| 石原莉奈在线亚洲三区| 在线播放/欧美激情| 日本中文字幕一区| 欧美成人精品福利| 国产乱码精品一区二区三区忘忧草| 日韩欧美色综合网站| 国产一区二区精品久久99| 久久久久青草大香线综合精品| 国产精品99久久久久久久vr| 中文字幕欧美区| 色综合久久天天| 香蕉成人啪国产精品视频综合网 | 久久久久国产成人精品亚洲午夜| 韩国毛片一区二区三区| 国产精品天干天干在线综合| 91捆绑美女网站| 亚欧色一区w666天堂| 欧美成人国产一区二区| 国产成a人无v码亚洲福利| 中文字幕一区二区三区不卡在线| 欧美综合视频在线观看| 日本特黄久久久高潮| 久久无码av三级| 91美女视频网站| 琪琪久久久久日韩精品| 国产女人18毛片水真多成人如厕 | 6080日韩午夜伦伦午夜伦| 精品一区二区免费视频| 国产精品毛片大码女人| 色吧成人激情小说| 免费观看在线色综合| 中文av一区特黄| 欧美无人高清视频在线观看| 久久国产生活片100| 亚洲特黄一级片| 日韩欧美一区二区在线视频| 成人高清免费在线播放| 亚洲444eee在线观看| 久久免费电影网| 欧美性大战久久久久久久蜜臀| 精品亚洲porn| 亚洲午夜成aⅴ人片| 日本一区二区三区四区 | 欧美视频一区二区| 国产精品自拍在线| 亚洲h动漫在线| 国产精品久久久久婷婷二区次| 3d成人h动漫网站入口| 成人午夜在线免费| 免费观看成人av| 亚洲主播在线播放| 国产农村妇女精品| 欧美一区二区三区四区久久| 99久久精品费精品国产一区二区| 老司机午夜精品99久久| 亚洲精品伦理在线| 欧美色图12p| 久久国产精品无码网站| 亚洲色欲色欲www| 欧美二区乱c少妇| 一本久久综合亚洲鲁鲁五月天| 日本亚洲最大的色成网站www|