亚洲欧美第一页_禁久久精品乱码_粉嫩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);
	  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一区二区三区免费野_久草精品视频
色婷婷综合久久久中文字幕| 国产精品初高中害羞小美女文| 国产一区在线精品| 亚洲欧美日韩精品久久久久| 日韩一级大片在线观看| 97se亚洲国产综合在线| 精品一区二区三区在线视频| 亚洲香肠在线观看| 国产女人aaa级久久久级 | 亚洲精品videosex极品| 日韩欧美综合在线| 欧美一a一片一级一片| 国产精品影视在线观看| 免费观看一级特黄欧美大片| 曰韩精品一区二区| 国产精品美女久久久久aⅴ| 日韩精品资源二区在线| 欧美日韩国产一二三| 91传媒视频在线播放| 成人免费毛片高清视频| 国产在线日韩欧美| 美女在线视频一区| 日韩vs国产vs欧美| 性久久久久久久久| 亚洲国产视频网站| 亚洲综合精品自拍| 亚洲人吸女人奶水| 亚洲素人一区二区| 中文字幕欧美一| 国产精品成人免费精品自在线观看| 久久综合精品国产一区二区三区| 欧美一区二区三区的| 欧美在线一区二区三区| 色综合中文综合网| 国产精品理伦片| 国产欧美一区二区三区在线看蜜臀| 日韩欧美一级特黄在线播放| 在线播放欧美女士性生活| 欧美日韩一区中文字幕| 欧美中文字幕一区二区三区亚洲| 97精品电影院| 91啦中文在线观看| 欧美又粗又大又爽| 精品视频123区在线观看| 91麻豆蜜桃一区二区三区| 94色蜜桃网一区二区三区| 成人黄色在线网站| av资源网一区| 色妞www精品视频| 欧美视频一区二区在线观看| 欧美精品一卡二卡| 欧美电影影音先锋| 欧美www视频| 国产女主播在线一区二区| 日本一区二区在线不卡| 亚洲视频一区在线| 曰韩精品一区二区| 日本视频在线一区| 久久国产剧场电影| 高清av一区二区| 色综合 综合色| 欧美日韩黄色影视| 精品成人在线观看| 国产精品蜜臀在线观看| 亚洲黄色尤物视频| 蜜臀av一区二区在线免费观看| 久久99精品久久久久久动态图| 高清不卡一区二区| 欧美网站一区二区| 欧美不卡123| 国产精品嫩草久久久久| 午夜不卡av在线| 国产乱码精品一区二区三区忘忧草| 国产福利一区在线观看| 色婷婷精品大在线视频| 日韩一区二区三区在线观看| 亚洲国产精品成人综合| 一区二区三区中文在线观看| 麻豆成人免费电影| 97久久超碰国产精品| 69av一区二区三区| 国产精品欧美久久久久一区二区| 午夜精品久久久久久久久久久 | 成人精品鲁一区一区二区| 日本韩国欧美国产| 久久综合色婷婷| 亚洲午夜成aⅴ人片| 国产一区二区三区| 欧美视频你懂的| 国产午夜久久久久| 无吗不卡中文字幕| 成人午夜伦理影院| 欧美一区二区精美| 亚洲精品伦理在线| 国产在线精品不卡| 欧美高清视频www夜色资源网| 亚洲国产高清在线| 另类小说综合欧美亚洲| 一本大道久久a久久精品综合| 精品久久五月天| 性欧美大战久久久久久久久| 成人app网站| 欧美mv日韩mv国产网站| 亚洲成人综合视频| 99久久婷婷国产| 久久久精品2019中文字幕之3| 亚洲大片免费看| 色婷婷av久久久久久久| 中文字幕精品一区二区三区精品| 日韩高清在线不卡| 欧美在线观看一区二区| 中文字幕一区二区三区不卡在线| 韩国精品久久久| 日韩一级欧美一级| 性久久久久久久| 欧美日韩一区二区三区在线| 日韩美女精品在线| 成人动漫一区二区在线| 亚洲精品一区在线观看| 日韩精品1区2区3区| 欧美视频在线一区二区三区| 亚洲私人影院在线观看| 91免费精品国自产拍在线不卡| 国产午夜久久久久| 国产成人亚洲综合色影视| 久久新电视剧免费观看| 精品亚洲国内自在自线福利| 欧美日韩国产经典色站一区二区三区| 亚洲日本青草视频在线怡红院| 成人av一区二区三区| 日本一区免费视频| eeuss鲁片一区二区三区在线看| 国产欧美精品区一区二区三区| 国产精品456| 欧美激情一二三区| 国产成a人亚洲精| 欧美高清在线精品一区| 99久久婷婷国产综合精品| 亚洲欧美日本在线| 色爱区综合激月婷婷| 亚洲一区二区综合| 欧美剧情片在线观看| 日韩av一区二区在线影视| 欧美一区二区播放| 国产在线一区二区综合免费视频| 欧美精品一区二区三区久久久| 精品一区免费av| 国产日韩欧美制服另类| www.亚洲免费av| 亚洲综合在线观看视频| 欧美日韩在线亚洲一区蜜芽| 亚洲国产另类av| 日韩一区二区电影网| 黄网站免费久久| 亚洲国产经典视频| 色诱视频网站一区| 日本免费新一区视频| 久久综合色婷婷| 91香蕉视频mp4| 午夜精品福利一区二区蜜股av| 日韩视频免费观看高清在线视频| 国产一区二区在线视频| 国产精品久久久久婷婷二区次| 色美美综合视频| 久久99久久久久| 国产精品免费av| 91高清在线观看| 欧美aⅴ一区二区三区视频| 久久久三级国产网站| 一本一本久久a久久精品综合麻豆| 午夜久久久久久| 欧美国产日本韩| 91国在线观看| 国产精华液一区二区三区| 亚洲激情图片qvod| 精品久久久影院| 成人av免费在线播放| 丝袜a∨在线一区二区三区不卡| 精品国产乱码久久久久久浪潮 | 色综合天天性综合| 看电影不卡的网站| 亚洲理论在线观看| 精品国产91洋老外米糕| 91黄视频在线观看| 黄网站免费久久| 亚洲第一狼人社区| 国产精品美女久久久久久久| 欧美曰成人黄网| 成人精品小蝌蚪| 国内精品第一页| 亚洲h在线观看| 国产精品乱人伦中文| 日韩一级高清毛片| 在线欧美日韩国产| 国产成人免费网站| 秋霞国产午夜精品免费视频| 亚洲免费观看高清完整版在线观看 | 美日韩一区二区| 一区二区高清在线| 国产精品成人免费|