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

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

?? pp.c

?? ICC刷卡C語言程序
?? C
字號:
/*****************0XDFE4*****************************庫定義*/
#include <iom8v.h>
#include <macros.h>
#include "define.h"
//*******************************************************************寫數據11//
void WriteDataLCM(unsigned char WDLCM)
{
 ReadStatusLCM(); //檢測忙
 PORTB = WDLCM;
 SET_LCD_RS;CLR_LCD_RW;SET_LCD_RS;CLR_LCD_RW;
 CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;
 SET_LCD_E;SET_LCD_E;
}
//********************************************************************寫指令12//
void WriteCommandLCM(unsigned char WCLCM,unsigned char BuysC) //BuysC為0時忽略忙檢測
{
 if (BuysC) ReadStatusLCM(); //根據需要檢測忙
 PORTB = WCLCM;
 CLR_LCD_RS;CLR_LCD_RW; 
 CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;
 SET_LCD_E;SET_LCD_E; 
}
//*******************************************************************讀狀態13//
unsigned char ReadStatusLCM(void)
{
 DDRB=0x00; //輸入
 CLR_LCD_RS;SET_LCD_RW;
 CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;CLR_LCD_E;
 SET_LCD_E;SET_LCD_E;
 while (PINB&0x80); //檢測忙信號
 DDRB=0xff;//變回輸出
 return(PINB);
}
//*************************************************************顯示一個字符14//
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
 Y &= 0x1; X &= 0xF;
 if (Y) X |= 0x40;
 X |= 0x80;
 WriteCommandLCM(X, 1);
 WriteDataLCM(DData);
 WriteCommandLCM(X, 1);
}
//************************************************************顯示ROM字符串15//
void DisplayListChar(unsigned char X, unsigned char Y, const unsigned char *DData,unsigned char Leng)
{
 unsigned char j;
 Y &= 0x01;X &= 0x0F;
 for(j=0;j<Leng;X++,j++)
  {
  if(X<=0xf)DisplayOneChar(X,Y,DData[j]);
  }
}
//************************************************************顯示RAM字符串16//
void DisplayListChar1(unsigned char X, unsigned char Y, unsigned char *DData,unsigned char Leng)
{
 unsigned char j;
 Y &= 0x01;X &= 0x0F;
 for(j=0;j<Leng;X++,j++)
  {
  if(X<=0xf)DisplayOneChar(X,Y,DData[j]);
  }
}		
//****************************************************************LCM初始化17//
void LCMInit(void) 
{
 PORTB = 0;
 WriteCommandLCM(0x38,0); //三次顯示模式設置,不檢測忙信號
 delay_ms(5); 
 WriteCommandLCM(0x38,0);
 delay_ms(5); 
 WriteCommandLCM(0x38,0);
 delay_ms(5); 
 WriteCommandLCM(0x38,1); //顯示模式設置,開始要求每次檢測忙信號
 WriteCommandLCM(0x08,1); //關閉顯示
 WriteCommandLCM(0x01,1); //顯示清屏
 WriteCommandLCM(0x06,1); // 顯示光標移動設置
 WriteCommandLCM(0x0C,1); // 顯示開及光標設置
}

//***************************************************中斷任務//
//*************************************************************接收串口數據21//
void RxUart(void)
    {
	switch(RxUartAddr)
	{
	case(0)://接收關閉
	  {
	  RxUartTemp=UDR;RxUartAddr=0;return;
	  }
	case(1)://接收初始
	  {
	  RxUartLeng=0;RxUartDely=200;RxUartAddr=2;return;
	  }
	case(2)://接收處理
	  {
	  if((UCSRA)&(1<<RXC))
	    {
		RxUartTemp=UDR;RxUartWait=2;RxUartDely=100;
		if(RxUartLeng>=250) return;
		RxUartDbuf[RxUartLeng++]=RxUartTemp;		
	    return;
		}
	  else
	    {
		if(!RxUartWait) return;		
		if(--RxUartDely) return;
		RxUartDely=200;
		if(--RxUartWait) return;
		RxUartAddr=0;return;
		}
	  }
    }		
	}
//***************************************************************輸出三色燈22//
void OutLed(void)
    {
	switch(OutLedAddr)
	{
	case(0)://停止閃爍
	  {
	  OutLedAddr=0;return;
	  }
	case(1)://綠燈閃
	  {
	  if(++OutLedDely<1000) return;
	  OutLedDely=0;PORTC|=0x08;PORTC^=0x06;return;
	  }
    case(2)://紅燈閃
	  {
	  if(++OutLedDely<1000) return;
	  OutLedDely=0;PORTC|=0x06;PORTC^=0x08;return;
	  }
	case(3)://關燈
	  {OutLedDely=0;PORTC|=0x0C;return;}
	}
	}  
//***************************************************************輸出提示聲23//
void OutTone(void)
    {	
	switch(OutToneAddr)
	{
	case(0)://關閉
	  {
	  OutToneAddr=0;return;
	  }
	case(1)://判斷是否開提示聲
	  {
	  if(!OutToneCount) return;
	  OutToneDely=0;OutToneAddr=2;return;
	  }
	case(2):
	  {
	  if(++OutToneDely<400) return;
	  if(!(--OutToneCount)) {PORTC|=0x01;OutToneCount=0;OutToneAddr=1;return;}
	  OutToneDely=0;PORTC^=0x01;return;
	  }
	}
	}  
#pragma interrupt_handler Time2:iv_TIMER2_COMP			
//****************************************************************調用中斷任務//	      	
void Time2(void)
    {
	RxUart();
	OutLed();
	OutTone();
	}		 
//****************************************************單時任務//	
//********************************************************發送ROM數據到串口31//
void TxRomUart(const unsigned char *data,unsigned int leng)
    {
	while(leng)
	  {
	  while(!((UCSRA)&(1<<UDRE)));
	  UDR=*data;data++;leng--;
	  }  
	}  	
//********************************************************發送RAM數據到串口32//
void TxRamUart(unsigned char *data,unsigned int leng)
    {
	while(leng)
	  {
	  while(!((UCSRA)&(1<<UDRE)));
	  UDR=*data;data++;leng--;
	  }  
	}  					
//**************************************************************拷貝ROM數據33//
unsigned char CopyRom(const unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
    {
    while(leng1)
	  { 
	  *data2=*data1;data2++;leng2--;data1++;leng1--;
	  if(!leng2) return 1;
	  }
	return 0;
	}  	
//**************************************************************拷貝RAM數據34//
unsigned char CopyRam(unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
    {
    while(leng1)
	  { 
	  *data2=*data1;data2++;leng2--;data1++;leng1--;
	  if(!leng2) return 1;
	  }
	return 0;
	} 
//**************************************************************比較ROM數據35//
unsigned char CmpsRom(unsigned char *data1,unsigned char leng1,const unsigned char *data2,unsigned char leng2)
    {
	while(leng1)
	  {
	  if(*data1!=*data2) return 1;
	  data1++;data2++;leng1--;leng2--;
	  if(!leng2) return 0;
	  }
	return 1;  
	}	   
//**************************************************************比較RAM數據36//
unsigned char CmpsRam(unsigned char *data1,unsigned char leng1,unsigned char *data2,unsigned char leng2)
    {
	while(leng1)
	  {
	  if(*data1!=*data2) return 1;
	  data1++;data2++;leng1--;leng2--;
	  if(!leng2) return 0;
	  }
	return 1;  
	}	 	
//***************************************************************毫秒級延時37//   
void delay_ms(unsigned int time)
    {
	while(time)
	  {
	  while(TCNT0<(fosc/64/1000));
	  TCNT0=0;
	  time--;	
	  }	
    }		   		 	
//************************************************************ATMEGA8初始化38//
void init_atmega(void)
    {
	SFIOR&=(~(1<<PUD));//上拉SFIOR
	DDRB=0xFF;	
	DDRD=0xF8;//,PD7(E),PD6(RW),PD5(RS),PD4(SPS),PD2(ICC),PD1(TXD),PD0(RXD);
	PORTD=0xFB;
	DDRC=0x0F;//PC4,PC3(REN),PC2(GREEN),PC0(BUZZER)
	PORTC=0x01;
	UCSRB=(1<<RXEN)|(1<<TXEN);
    UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
	UBRRH=(fosc/16/(baud+1))/256;
	UBRRL=(fosc/16/(baud+1))%256;
	TCCR2=0x0a;
	TCNT2=0x00;
	OCR2=fosc/8/2000;//500us
	TIMSK=1<<OCIE2;
	TCCR0=(1<<CS01)|(1<<CS00);//64分頻
	TCNT0=0;
	SEI();
	}
//*****************************************************************接收遠程41//
void RxGsm(void)
    {
	unsigned char i;
	switch(RxGsmAddr)
	{
	case(0)://接收停止
	  {
	  RxGsmAddr=0;return;
	  }
	case(1)://接收初始
	  {
	  if(!(PIND&0x04)&&(RxCalAddr==1))
	  {RxGsmAddr=2;RxUartWait=0;RxUartAddr=1;return;}
	  else return;
	  }
	case(2)://接收是否完成
	  {
	  if(!(PIND&0x04)&&(RxCalAddr==1))
	   {
	   if(RxUartAddr) return;	   
	   if(CmpsRom(RxUartDbuf,RxUartLeng,"DD",2)) {RxGsmAddr=1;OutToneCount=4;return;}//DD 
	   OutToneCount=2;
	   CopyRam(RxUartDbuf+2,RxUartLeng,writecaltemp,16);//寫信息到卡
	   checktemp=0;
	   for(i=2;i<=11;i++){checktemp^=writecal1[i];}
       for(i=0;i<16;i++){checktemp^=writecaltemp[i];} 
	   RxGsmAddr=3;RxUartAddr=1;RxUartWait=20;
	   TxRomUart(writecal1,12);TxRamUart(writecaltemp,16);TxRamUart(&checktemp,1);
	   return;
	   }
	   else {RxGsmAddr=1;return;}
	  }
	case(3)://判斷寫卡是否成功
	  {
	  if(RxUartAddr) return;
	  if(CmpsRom(RxUartDbuf,RxUartLeng,writecal1,2)) {RxCalAddr=1;RxGsmAddr=1;OutToneCount=4;TxRomUart("EEWriteERROR ",13);TxRomUart("                ",16);return;}
	  if(CmpsRom(RxUartDbuf+3,RxUartLeng,writecal1+3,1)) {RxCalAddr=1;RxGsmAddr=1;OutToneCount=4;TxRomUart("EEWriteERROR ",13);TxRomUart("                ",16);return;}
	  TxRomUart("EEWrite   OK ",13);//EE
	  TxRomUart("                ",16);
	  RxGsmAddr=1;return;
	  }
	}  
	}  
//***************************************************************接收卡信息42//
void RxCal(void)
    {
	switch(RxCalAddr)
	{
	case(0)://檢測停止
	  {
	  RxCalAddr=0;return;
	  }
	case(1)://檢測卡是否還在
	  {
	  if(!(PIND&0x04)) return;
	  TxRomUart("EE           ",13);//GG
	  TxRomUart("                ",16);
	  WriteCommandLCM(0x01,1); //清屏
	  DisplayListChar(0, 0, table_1,12);
	  RxCalAddr=2;RxCalDely=0;return;
	  }
	case(2)://檢測100ms去抖動讀卡
	  {
	  if(PIND&0x04) RxCalDely=0;
	  if(++RxCalDely<100) {OutLedAddr=1;return;} 
	  RxCalAddr=3;RxUartAddr=1;OutLedAddr=2;RxUartWait=0;TxRomUart(readcal1,13);TxRomUart("                ",16);
	  return;
	  }
	case(3)://判斷讀卡是否成功
	  {
	  if(RxUartAddr) return;
	  if(CmpsRom(RxUartDbuf,RxUartLeng,readcal1,2)) {TxRomUart("EERead ERROR ",13);TxRomUart("                ",16);RxCalAddr=1;OutToneCount=4;return;}//EE
	  if(CmpsRom(RxUartDbuf+3,RxUartLeng,readcal1+3,1)) {TxRomUart("EERead ERROR ",13);TxRomUart("                ",16);RxCalAddr=1;OutToneCount=4;return;}//EE
	  CopyRam(RxUartDbuf+4,RxUartLeng,NameBuf,7); 
	  CopyRam(RxUartDbuf+11,RxUartLeng,NumBuf,9);
	  TxRomUart("DD",2);//DD
	  TxRamUart(NameBuf,7);
	  //TxRomUart("CC",2);//CC
	  TxRamUart(NumBuf,9);	  
	  TxRomUart("Read    OK ",11);//EE
	  RxCalAddr=4;OutToneCount=2;RxUartAddr=1;//接收處理
	  return;
	  }  
	case(4):
	  {
	  DisplayListChar(0, 0, Name,5);
	  DisplayListChar1(5, 0, NameBuf,7);
	  DisplayListChar(0, 1, Num,4);
	  DisplayListChar1(4, 1, NumBuf,9);
	  RxCalAddr=1;return;
	  }  
	}
	}	
//*********************************************調用分時任務//					
void Time0(void)
    {
	while(TCNT0<(fosc/64/500));//毫秒
	TCNT0=0;
	RxCal();
	RxGsm();//遠程接收
	
	}	
//***************************************************主程序//
void main(void)
{
 unsigned char i,j;
 init_atmega();
 delay_ms(400); //啟動等待,等LCM講入工作狀態
 LCMInit(); //LCM初始化
 delay_ms(10); //延時片刻
 DisplayListChar(0, 0, table_1,12);
 RxCalAddr=2;
 RxGsmAddr=1;
 OutLedAddr=1;
 OutToneAddr=1;
 while(1)
 {
 Time0();
 }
}
   		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区国产盗摄色噜噜| 亚洲一区欧美一区| 欧美视频一区二| 国产精品亚洲人在线观看| 一区二区在线观看免费视频播放| 日韩精品资源二区在线| 97精品国产露脸对白| 久久99精品久久久久久国产越南 | 亚洲h动漫在线| 久久久久久久综合日本| 在线成人av网站| 色又黄又爽网站www久久| 国产一区二区剧情av在线| 亚洲电影欧美电影有声小说| 国产精品三级视频| 精品国产一区二区亚洲人成毛片| 在线视频一区二区三| 成人免费毛片嘿嘿连载视频| 久久福利视频一区二区| 日韩精品国产欧美| 亚洲国产精品一区二区久久 | 天天色图综合网| 亚洲欧美一区二区在线观看| 久久新电视剧免费观看| 日韩西西人体444www| 欧美日韩免费观看一区三区| 色噜噜久久综合| 色综合久久中文字幕| 床上的激情91.| 成人精品小蝌蚪| 粉嫩绯色av一区二区在线观看| 美腿丝袜亚洲三区| 欧美aaa在线| 美日韩一区二区| 看片的网站亚洲| 久久黄色级2电影| 九九九久久久精品| 久久成人免费电影| 精品一区免费av| 韩国女主播一区| 国产精品一色哟哟哟| 国产成人自拍网| 成人免费观看视频| 99国产精品久久久久久久久久久| 成人97人人超碰人人99| 99精品视频在线观看免费| 91蜜桃传媒精品久久久一区二区 | 欧美一区二区三区在线观看视频| 欧美日韩二区三区| 日韩一区二区在线播放| 2021中文字幕一区亚洲| 国产欧美精品区一区二区三区| 国产日韩欧美不卡| 亚洲同性同志一二三专区| 亚洲乱码中文字幕| 亚洲国产视频直播| 奇米精品一区二区三区在线观看一| 久久97超碰色| 成人免费视频免费观看| 色噜噜久久综合| 欧美一个色资源| 国产日韩欧美一区二区三区综合 | 国产精品国产三级国产普通话三级| 中文字幕 久热精品 视频在线| 成人免费在线播放视频| 亚洲一区二区三区美女| 日韩国产精品久久久久久亚洲| 卡一卡二国产精品| 99久久综合精品| 在线综合+亚洲+欧美中文字幕| 精品裸体舞一区二区三区| 久久免费看少妇高潮| 亚洲免费在线播放| 五月天欧美精品| 国产成人精品综合在线观看| 91色综合久久久久婷婷| 成人免费一区二区三区视频 | 国产精品超碰97尤物18| 一二三区精品福利视频| 久久不见久久见免费视频7| 丁香六月久久综合狠狠色| 色www精品视频在线观看| 日韩三级伦理片妻子的秘密按摩| 国产欧美日韩亚州综合| 亚洲综合无码一区二区| 国内外精品视频| 欧美在线影院一区二区| 精品国产精品一区二区夜夜嗨| 亚洲日本va午夜在线影院| 美腿丝袜亚洲一区| 在线看一区二区| 中文字幕久久午夜不卡| 日韩成人午夜电影| 色88888久久久久久影院按摩| 精品日韩一区二区三区免费视频| 中文字幕色av一区二区三区| 麻豆精品国产传媒mv男同 | 久久综合视频网| 亚洲综合男人的天堂| 国产激情一区二区三区桃花岛亚洲| 在线免费观看视频一区| 亚洲国产电影在线观看| 人人爽香蕉精品| 在线观看日韩一区| 国产精品免费丝袜| 国内精品国产成人国产三级粉色| 欧美三级资源在线| 中文字幕一区不卡| 国产一区二区三区香蕉| 日韩一区二区免费电影| 亚洲成av人片一区二区| 色天使色偷偷av一区二区| 中文在线一区二区| 国产激情精品久久久第一区二区| 日韩欧美在线影院| 日韩国产精品久久久久久亚洲| 日本精品一区二区三区四区的功能| 国产亚洲欧洲997久久综合| 免费av网站大全久久| 欧美精品18+| 亚洲线精品一区二区三区| 成人久久18免费网站麻豆| 国产欧美日韩视频在线观看| 国产一区二区调教| 久久久久久影视| 激情久久久久久久久久久久久久久久| 欧美女孩性生活视频| 亚洲va韩国va欧美va| 欧美日韩一卡二卡| 五月开心婷婷久久| 欧美精品vⅰdeose4hd| 日韩制服丝袜先锋影音| 91精选在线观看| 奇米影视在线99精品| 日韩视频中午一区| 久久99久久久欧美国产| 欧美精品一区二区三区在线播放 | 色综合色狠狠天天综合色| 中文字幕一区三区| 97超碰欧美中文字幕| 中文字幕国产一区| eeuss影院一区二区三区| 中文字幕永久在线不卡| 97久久精品人人爽人人爽蜜臀| 亚洲激情综合网| 欧美写真视频网站| 国产成人av影院| 中文字幕av在线一区二区三区| 国产999精品久久久久久绿帽| 国产精品久久久久久一区二区三区| 成人手机在线视频| 亚洲欧美国产77777| 欧美亚洲综合一区| 日产国产高清一区二区三区| 欧美成人免费网站| 丁香婷婷综合五月| 亚洲视频免费观看| 在线播放亚洲一区| 国产成人午夜电影网| 亚洲视频网在线直播| 欧美卡1卡2卡| 国产精品一区一区三区| 国产精品护士白丝一区av| 欧美色区777第一页| 久久国产精品99久久人人澡| 欧美国产1区2区| 在线亚洲欧美专区二区| 蜜桃精品在线观看| 国产精品麻豆一区二区| 欧美在线小视频| 精品一区二区在线播放| 亚洲色图视频免费播放| 欧美一区二区三区免费视频| 国产一区在线看| 亚洲在线视频网站| 日韩欧美成人一区| 91小视频在线免费看| 欧美aⅴ一区二区三区视频| 中文字幕亚洲一区二区av在线 | 亚洲精品一区二区三区香蕉| 91蜜桃网址入口| 国产中文字幕精品| 一区二区激情视频| 国产欧美一区二区三区鸳鸯浴| 欧美日韩视频不卡| 成人av在线电影| 美女网站在线免费欧美精品| 亚洲婷婷综合久久一本伊一区| 欧美一区二区在线观看| 一本大道久久精品懂色aⅴ| 久久精品国产色蜜蜜麻豆| 一区av在线播放| 亚洲国产精品成人综合| 欧美岛国在线观看| 欧美色爱综合网| 色综合一区二区三区| 欧美人体做爰大胆视频| 国产成人精品综合在线观看| 蜜桃视频一区二区| 亚洲综合色网站|