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

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

?? wwork.c

?? 單片機實例書籍
?? C
字號:
//**********************FileName:Work.c**************************//
//**********************ICCAVR6.30編譯****************************//
#include <io8535v.h>
#include <macros.h>
#define uchar unsigned char
#define uint  unsigned int

//引腳信號定義
#define  KEY_0 (PINA&0x01)     //PA0裝票鍵 
#define  KEY_1 (PINA&0x02)     //PA1打印頁碼鍵
#define  KEY_2 (PINA&0x04)     //PA2蓋章鍵 

#define  SONSOR_0 (PINB&0x01)  //PB0前傳感器
#define  SONSOR_1 (PINB&0x02)  //PB1中傳感器
#define  SONSOR_2 (PINB&0x04)  //PB2后傳感器
#define  SONSOR_3 (PINB&0x08)  //PB3紙傳感器
#define  SONSOR_4 (PINB&0x10)  //PB4字輪傳感器
#define  SONSOR_5 (PINB&0x20)  //PB5行走左傳感器
#define  SONSOR_6 (PINB&0x40)  //PB6行走右傳感器

#define  SIGN_ON1   (PORTD=PORTD|0x01) //PD0=1蓋章工作指示燈輸出
#define  SIGN_ON0   (PORTD=PORTD&0xfe) //PD0=0蓋章工作指示燈輸出
#define  SIGN_OFF1  (PORTD=PORTD|0x02) //PD1=1蓋章結束指示燈輸出管腳
#define  SIGN_OFF0  (PORTD=PORTD&0xfd) //PD1=0蓋章結束指示燈輸出管腳
#define  PRINT_ON1  (PORTD=PORTD|0x08) //PD3=1打印頁碼工作指示燈輸出管腳
#define  PRINT_ON0  (PORTD=PORTD&0xf7) //PD3=0打印頁碼工作指示燈輸出管腳
#define  PRINT_OFF1 (PORTD=PORTD|0x10) //PD4=1打印頁碼結束指示燈輸出管腳
#define  PRINT_OFF0 (PORTD=PORTD&0xef) //PD4=1打印頁碼結束指示燈輸出管腳

#define  GRASP_ACT1 (PORTC=PORTC|0x01) //PC0抓紙機械手輸出管腳
#define  GRASP_ACT0 (PORTC=PORTC&0xfe) //PC0抓紙機械手輸出管腳
#define  PRINT_ACT1 (PORTC=PORTC|0x02) //PC1字輪擊打電磁鐵輸出管腳
#define  PRINT_ACT0 (PORTC=PORTC&0xfd) //PC1字輪擊打電磁鐵輸出管腳
#define  SIGN_ACT1  (PORTC=PORTC|0x04) //PC2蓋章擊打電磁鐵輸出管腳
#define  SIGN_ACT0  (PORTC=PORTC&0xfb) //PC2蓋章擊打電磁鐵輸出管腳
#define  M_DIR1     (PORTC=PORTC|0x08) //PC3電機方向輸出管腳
#define  M_DIR0     (PORTC=PORTC&0xf7) //PC3電機方向輸出管腳
#define  M3_pulse1  (PORTC=PORTC|0x10) //PC4字輪電機脈沖輸出管腳
#define  M3_pulse0  (PORTC=PORTC&0xef) //PC4字輪電機脈沖輸出管腳
#define  M2_pulse1  (PORTC=PORTC|0x20) //PC5行走電機脈沖輸出管腳
#define  M2_pulse0  (PORTC=PORTC&0xdf) //PC5行走電機脈沖輸出管腳
#define  M1_pulse1  (PORTC=PORTC|0x40) //PC6裝票電機脈沖輸出管腳
#define  M1_pulse0  (PORTC=PORTC&0xbf) //PC6裝票電機脈沖輸出管腳

uchar KeyDown;  //有功能鍵按下標志
uchar Cancell;  //取消功能鍵標志
uint  u;        //翻頁步進電機的步數變量
uint  b;        //頁碼序號的不同位數之間差值的中間變量    
uchar FunkeyNum;//功能按鍵的標號變量
uchar R_Step;   //頁碼序號之間的距離(數字間距)所需的步進電機的步數

//*****************I/O口初始化*****************************
void IO_Init(void)
{DDRA=0x00;//A口三態輸入
 PORTA=0x00;
 DDRB=0x00;//B口三態輸入
 PORTB=0x00;
 DDRC=0xff;//C口推挽輸出
 PORTC=0xff;
 DDRD=0xfb;//D口推挽輸出,PD2中斷輸入
 PORTD=0xfb;
}
//*************************中斷初始化函數************************//
void INT_Init(void)
{MCUCR=MCUCR&0xfd;//低電平中斷
 GIMSK=GIMSK|0x40;//INT0中斷使能
 SREG=SREG|0x80;//全局中斷使能
}

//***************************短延時函數************************//
void DelayShort(uint j)                        
{uint i;
 for(i=0;i<j;i++) ;  
}

//***************************長延時函數************************//
void DelayLong(uint j)                
{uint i;
 for(i=0;i<j;i++)
   {uint l;
    for(l=0;l<1000;l++);}    
}
//*************************按鍵掃描函數************************//
void FunkeyScan()
{KeyDown=0;
 FunkeyNum=3;
 if(KEY_0==0)
  {DelayLong(10);       //去抖動延時10ms
   if(KEY_0==0)
    {FunkeyNum=0;       //按鍵的標號變量值賦0
     KeyDown=1;}}       //PA0  裝票功能鍵按下
 if(KEY_1==0)
  {DelayLong(10);       //去抖動延時10ms
   if(KEY_1==0)
    {FunkeyNum=1;       //按鍵的標號變量值賦1
     KeyDown=1;}}       //PA1  蓋章功能鍵按下
 if(KEY_2==0)
  {DelayLong(10);       //去抖動延時10ms
   if(KEY_2==0)
    {FunkeyNum=2;       //按鍵的標號變量值賦2
     KeyDown=1;}}       //PA2 打碼功能鍵按下
}
//******************裝票步進電機頻率函數***********************//
void PulseZhuangPiao()     
{
   DelayShort(45);      //裝票步進電機周期45us
   M1_pulse1;           //Pc7=1
   DelayShort(45);      //裝票步進電機周期45us
   M1_pulse0;           //Pc7=0
}
//******************翻頁步進電機頻率函數***********************//
void PulseXingZou()
{
   DelayShort(35);      //翻頁步進電機周期35us
   M2_pulse1;           //Pc6=1
   DelayShort(35);      //翻頁步進電機周期35us
   M2_pulse0;           //Pc6=0
}
//******************字輪步進電機頻率函數***********************//
void PulseZiLun()        
{
   DelayShort(55);      //字輪電機周期55us
   M3_pulse0;           //Pc5=0
   DelayShort(55);      //字輪電機周期55us
   M3_pulse1;           //Pc5=1
}
//***************打印數碼的電磁擊打錘動作函數******************//
void Print_Act()
{
   PRINT_ACT1;           //打字電磁鐵打下      
   DelayLong(5);         //打字電磁鐵打下時間延時20(*1000)us
   PRINT_ACT0;           //打字電磁鐵上升     
   DelayLong(20);        //打字電磁鐵上升時間延時20(*1000)us
}
//***************蓋章的電磁擊打錘動作函數**********************//
void Sign_Act()
{
   SIGN_ACT1;            //蓋章電磁鐵打下     
   DelayLong(20);        //蓋章電磁鐵打下時間延時20(*1000)us
   SIGN_ACT0;            //蓋章電磁鐵打下   
   DelayLong(20);        //蓋章電磁鐵上升時間延時20(*1000)us
}
//***************翻頁電機行走字間距函數************************//
void  Num_Step()
{
   M_DIR0;                //翻頁電機反轉
   for(u=0;u<40;u++)      //翻頁電機行走的字間距即步進電機的40步
    PulseXingZou();       
}
//***************翻頁電機行走抓紙張函數************************//
void Reverse_Step()
{
  unsigned int i;
  for(i=0;i<350;i++)      //居中以后再走100吸紙
   { 
    M_DIR0;               //翻頁電機反轉
    PulseXingZou();       //翻頁電機驅動脈沖輸出
   }
    GRASP_ACT1;           //機械手抓紙
   while(SONSOR_5==0)     //檢測傳感器5
   { 
    M_DIR0;               //翻頁電機反轉
    PulseXingZou();       //翻頁電機驅動脈沖輸出
   }
}
//***************翻頁電機行走上電后復位函數********************//
void Forward_Step()
{
   while(SONSOR_6==0)     //檢測傳感器6
   { 
    M_DIR1;               //翻頁電機正轉
    PulseXingZou();       //翻頁電機驅動脈沖輸出
   }
    M_DIR0;               //翻頁電機反轉
    for(u=0;u<400;u++)    //翻頁電機居中
    {
     PulseXingZou();      //翻頁電機驅動脈沖輸出
    } 
}
//***************字輪電機轉動方向及步數判斷函數1****************//
void  Judge1()           //判斷字輪正反轉
 {
  if(b>10){R_Step=(20-b)*12; M_DIR1;}  
  else {R_Step=b*12; M_DIR0; }  
 }
//***************字輪電機轉動方向及步數判斷函數2****************//
void  Judge2()           //判斷字輪正反轉
{
  if(b>10){R_Step=(20-b)*12; M_DIR0;}  
  else {R_Step=b*12; M_DIR1; }  
}
//***************機械手配合翻頁電機翻頁過程函數*****************//
void MotorZhua_fangZhi()
{Reverse_Step();
 u=0;
 DelayLong(5);           //吸紙延時10*(1000)	 
  while(SONSOR_6==0)     //檢測傳感器6
   {   
      M_DIR1;            //翻頁電機正轉  
      u++;
      PulseXingZou();    //翻頁電機驅動脈沖輸出 
      if(u==380){ GRASP_ACT0;}   //抓紙機械手后翻頁電機往正轉380步放紙
    }
}
//******************裝票步進電機出倉過程函數********************//
void Motor3QianZou()
{
 M_DIR1;                   //裝票步進電機出倉方向
 while(SONSOR_0==0)        //檢測前傳感器                  
      PulseZhuangPiao();   //承票板往前走	 
}
//******************裝票步進電機入倉過程函數********************//
void Motor3HouZhong()
{
 uchar e;
 while(SONSOR_1==0)             //檢測中傳感器
	     {
         M_DIR0;                //裝票步進電機入倉方向
		 PulseZhuangPiao();     //裝票步進電機驅動脈沖輸出
		 }
		 for(e=0;e<55;e++)      //修正傳感器位置誤差55
		 {
		  M_DIR0;               //裝票步進電機入倉方向
		  PulseZhuangPiao();    //裝票步進電機驅動脈沖輸出
          }
}
//*********裝票步進電機入倉后再進入蓋章位置的過程函數***********//
void Motor3HouZou()
{
       M_DIR0;                  //裝票步進電機入倉方向
	while(SONSOR_2==0)          //檢測后傳感器
       PulseZhuangPiao();       //裝票步進電機驅動脈沖輸出
}
//*********************裝票過程函數*****************************//
void Motor3()
{
Motor3QianZou();                //調用裝票步進電機出倉過程函數
Motor3HouZhong();               //調用裝票步進電機入倉過程函數
}
//*******裝票步進電機入倉后再進入蓋章位置的逆過程函數***********//
void Motor3QianZhong()
{uint i;
 M_DIR1;                         //裝票步進電機出方向
 while(SONSOR_1==0)              //檢測中傳感器
	     {
		 PulseZhuangPiao();      //裝票步進電機驅動脈沖輸出
		 }
 for(i=0;i<20;i++)               //修正傳感器位置誤差20
    PulseZhuangPiao();           //裝票步進電機驅動脈沖輸出
}
//***************翻頁電機打印頁碼過程中復位函數*****************//
void Motor1_Fuwei()
{
  Reverse_Step();               //翻頁電機行走抓紙張函數
  DelayLong(5);    
   while(SONSOR_6==0)           //檢測中傳感器5
   { 
    M_DIR1;                     //翻頁電機正轉
   PulseXingZou();              //翻頁電機行驅動脈沖輸出
	}
    M_DIR0;                     //翻頁電機反轉
}
//***************字輪電機打印頁碼過程中復位函數*****************//
void Motor2_Fuwei()
{
   M_DIR0;                      //字輪電機反轉            
   while(SONSOR_4==0)           //檢測字輪定位傳感器
     {
      PulseZiLun();             //字輪電機行驅動脈沖輸出 
     }
}
//***********字輪電機與翻頁電機配合打印頁碼過程函數*************//
void Motor12_Dama()
{
uchar k=0;
uchar p;
while(SONSOR_3==0)              //紙張傳感器為0(有票據)時執行循環
 {
    for(u=0;u<150;u++)          //字輪電機進入打印位置
     {
	  M_DIR0;                   //字輪電機反轉
      PulseXingZou();	        //字輪電機行驅動脈沖輸出
     }                          
     Motor2_Fuwei();            //字輪電機復位 
     p=0;
     if(k<10)                                   
	   {
	     b=k+k;
         Judge1();
		 for(u=0;u<R_Step;u++)     //字輪電機轉到打印位置
         {PulseZiLun(); }     
         Print_Act();
	    }

	  else
	   {
	    b=k/10+k/10;               //取整的余數(個位數的值)
         Judge1();
		 for(u=0;u<R_Step;u++)     //字輪電機轉到打印位置
         {PulseZiLun(); }   
         Print_Act();              //打印個位數
        p=2*(k%10);                //取整的值(十位數的值)
         if(p>b)
		   {
		     b=p-b;
			 Judge1();
		   }
		   else
		   {
		     b=b-p;
		     Judge2();
		    }
		 for(u=0;u<R_Step;u++)    //字輪電機轉到打印位置
         {PulseZiLun(); }   
         Print_Act();             //打印十位數
	   }

     k++;
    MotorZhua_fangZhi();          //翻頁
	 if(Cancell==1)
     goto OUT2;
 }
 OUT2:  
 Cancell=0;                       //取消動作并進行翻頁復位
 for(u=0;u<450;u++) 
     {
	  M_DIR0; 
      PulseXingZou();	   
     }   
}
//**************裝票電機與翻頁電機配合的蓋章過程函數*************//
void MotorGaiZhang()
{
 while(SONSOR_3==0)         //紙張傳感器位為0時執行循環
 { 
   Motor3HouZou();          //進入蓋章位置
   Sign_Act();              //蓋章動作
   Motor3QianZhong();       //進入翻頁位置
   MotorZhua_fangZhi();     //翻頁
    if(Cancell==1)          //檢測取消標志
   goto OUT3;
 }
OUT3: 
 Cancell=0;                 //取消動作
}
//*********************************主程序***********************************//
void main(void)
{ INT_Init();            //初始化中斷	
 begin: 	
	Cancell=0; 
	SIGN_ACT0;           //蓋章擊打電磁鐵1吸起	
    PRINT_ACT0;          //打印頁碼擊打電磁鐵2吸起
    GRASP_ACT0;          //抓紙機械手不動作
	Forward_Step();        //翻頁步進電機復位
	Motor3HouZou();        //承票板往后走
  	Motor3QianZhong();     //承票板往中間走進行復位
 do{do {FunkeyScan();} while(KeyDown==0); 
   	switch(FunkeyNum)
		{case 0:                     //裝票操作             
			    Motor3();                   
				break;									 
         case 1 :                     //蓋章操作
				Motor3QianZou();      //出倉				 
          wait1:
				while(KEY_1!=0);
                while(KEY_1==0) 
                   {DelayLong(50);
                    if(KEY_1==0)
                        Motor3HouZhong(); //入倉
                    else goto wait1;}
				SIGN_ON0;                     
                SIGN_OFF1;              //蓋章進行中指示燈亮
			    Motor3HouZou();         //進入蓋章位置
				MotorGaiZhang();        //蓋章函數調用
			    Motor3QianZhong();		//退出蓋章位置 
                SIGN_ON1;                     
                SIGN_OFF0;              //蓋章結束指示燈亮
				break;
        case 2:                         //打印頁碼
                Motor3QianZou();        //出倉
         wait2: while(KEY_2!=0); 
                while(KEY_2==0) 
                   {if(KEY_2==0)
                     Motor3HouZhong();  //入倉
					else goto wait2;}
				PRINT_ON0;                     
                PRINT_OFF1;             //打印頁碼進行指示燈亮
                Motor1_Fuwei();          
				Motor12_Dama();         //打印頁碼  
				PRINT_ON1;                     
                PRINT_OFF0;             //打印頁結束指示燈亮
				break;
		default:break;}}while(1);
}

//**************************中斷服務程序*******************************//
#pragma interrupt_handler INTHandler:2
void INTHandler()  
{Cancell=1;                             //置位取消標志 
 NOP();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人动漫一区二区在线| 91精品国产91热久久久做人人| 亚洲丰满少妇videoshd| 亚洲欧美成人一区二区三区| 国产精品毛片无遮挡高清| 久久天天做天天爱综合色| 国产欧美视频一区二区| 欧美国产激情一区二区三区蜜月| 亚洲精品在线观| 久久久久久久久久看片| 久久精品一区二区| 久久精子c满五个校花| xfplay精品久久| 欧美韩国日本不卡| 亚洲精品免费一二三区| 亚洲国产成人91porn| 调教+趴+乳夹+国产+精品| 久久精品理论片| 国产精品中文字幕日韩精品| 波多野结衣精品在线| 在线欧美日韩国产| 欧美群妇大交群中文字幕| 91精品国产一区二区| 久久婷婷成人综合色| 中文字幕日本不卡| 日韩电影在线看| 国产成人av资源| 色老汉av一区二区三区| 日韩手机在线导航| 国产精品毛片久久久久久| 亚洲综合在线五月| 青青草国产精品97视觉盛宴| 国产乱子伦一区二区三区国色天香| 成人美女视频在线看| 制服丝袜日韩国产| 中文字幕欧美国产| 国产精品美女久久福利网站| 91精品国产综合久久久久久漫画| 2014亚洲片线观看视频免费| 一区二区三区蜜桃网| 久久国产精品色婷婷| eeuss鲁片一区二区三区在线观看| 99re这里都是精品| 精品国产91乱码一区二区三区| 亚洲女女做受ⅹxx高潮| 九九九精品视频| 欧美性视频一区二区三区| 中文字幕欧美区| 狠狠色综合播放一区二区| 欧美日韩精品一区视频| 国产精品国产三级国产| 国产一区二区三区久久久| 欧美在线观看一二区| 中文av一区二区| 国产精品一区二区在线播放| 日韩午夜在线影院| 亚洲国产综合人成综合网站| www.亚洲激情.com| 日韩午夜小视频| 日韩精品亚洲一区二区三区免费| 成人精品免费看| 久久久www成人免费无遮挡大片| 日韩av不卡一区二区| 欧美综合在线视频| 亚洲欧美怡红院| av一二三不卡影片| 国产精品久久久99| 成人av网站在线观看| 国模娜娜一区二区三区| 日韩久久久精品| 日韩不卡一二三区| 欧美一区二区三区视频在线| 亚洲成人tv网| 欧美日韩国产乱码电影| 亚洲狠狠爱一区二区三区| 91免费视频网址| 亚洲精品国产精华液| 日本电影亚洲天堂一区| 亚洲影院久久精品| 欧美色男人天堂| 日韩vs国产vs欧美| 日韩欧美亚洲一区二区| 极品少妇xxxx偷拍精品少妇| 久久一留热品黄| 成人性生交大合| 成人免费在线视频观看| 91激情五月电影| 午夜精品成人在线视频| 精品视频在线看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产三级欧美三级| 国产成人精品亚洲午夜麻豆| 国产日韩在线不卡| 色视频一区二区| 亚洲高清免费视频| 日韩欧美国产综合一区| 国产精品一卡二卡| 欧美精品一区二区在线播放| 亚洲精品中文在线| 91精品国产福利在线观看| 青青草国产成人99久久| 久久久久九九视频| 在线观看亚洲专区| 激情偷乱视频一区二区三区| 国产精品少妇自拍| 3751色影院一区二区三区| 国产精品亚洲综合一区在线观看| 综合久久综合久久| 欧美日韩精品三区| 国产成人在线视频网址| 亚洲美女少妇撒尿| 日韩欧美在线一区二区三区| 亚洲国产精品精华液ab| 色乱码一区二区三区88| 久久电影国产免费久久电影| 欧美国产日韩一二三区| 欧美日韩国产综合一区二区| 国产成人午夜视频| 日韩黄色免费电影| 中文字幕精品—区二区四季| 欧美日韩精品一区二区| 北岛玲一区二区三区四区| 日韩精品久久久久久| ...xxx性欧美| 国产亚洲精久久久久久| 91精品免费观看| 91视频精品在这里| 国产精品影视在线| 麻豆91免费看| 亚洲大片一区二区三区| 综合色天天鬼久久鬼色| 国产精品女同互慰在线看| 7777精品伊人久久久大香线蕉超级流畅 | 国产精品国模大尺度视频| 欧美日韩国产123区| 99在线精品视频| 国产尤物一区二区在线| 日韩福利视频网| 亚洲一区在线观看免费 | 久久av中文字幕片| 日韩中文字幕1| 偷拍与自拍一区| 亚洲电影一级片| 亚洲一区在线观看视频| 亚洲乱码国产乱码精品精小说| 久久久久国产精品麻豆ai换脸| 日韩美一区二区三区| 91麻豆精品国产91久久久久久| 91福利视频久久久久| 色综合 综合色| 色婷婷香蕉在线一区二区| 99国内精品久久| 一本大道久久a久久精二百| 99vv1com这只有精品| 成人av综合一区| 91亚洲精品久久久蜜桃网站| 99免费精品在线观看| 亚洲精品国产一区二区精华液 | 欧美一区二区在线不卡| 91精品国产日韩91久久久久久| 91精品国产全国免费观看| 欧美一区二区啪啪| 精品国一区二区三区| 久久美女艺术照精彩视频福利播放| 精品毛片乱码1区2区3区| 欧美不卡视频一区| 国产日韩欧美制服另类| 亚洲美女视频一区| 午夜精品久久久久久久99水蜜桃| 美女精品一区二区| 国产精品一区二区视频| 91香蕉视频污| 欧美日韩国产精选| 精品不卡在线视频| 国产精品成人一区二区三区夜夜夜 | 亚洲欧洲色图综合| 亚洲在线一区二区三区| 蜜桃视频一区二区三区在线观看 | 国产精品色眯眯| 亚洲美女精品一区| 三级成人在线视频| 狠狠色丁香婷婷综合久久片| 国产一区二区不卡在线| 亚洲精品伦理在线| 首页国产欧美日韩丝袜| 激情欧美一区二区三区在线观看| 国产精品一区二区在线观看网站| 色综合av在线| 久久久亚洲精华液精华液精华液| 亚洲色图在线播放| 丝袜美腿亚洲一区二区图片| 精品一区二区三区在线观看国产| av电影在线观看完整版一区二区| 欧美视频你懂的| 国产欧美综合在线观看第十页| 亚洲第一久久影院| 国产一区二区三区精品视频| 欧美探花视频资源| 国产精品动漫网站| 狠狠色综合日日|