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

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

?? pp.c.bak

?? ICC刷卡C語言程序
?? BAK
字號:
/*****************0XDFE4*****************************庫定義*/
#include <iom8v.h>
#include <macros.h>
#include <eeprom.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=200;
		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=0;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 1;
	  }
	return 0;  
	}	   
//**************************************************************比較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 1;
	  }
	return 0;  
	}	
//***************************************************************毫秒級延時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)
    {
	switch(RxGsmAddr)
	{
	case(0)://接收停止
	  {
	  RxGsmAddr=0;return;
	  }
	case(1)://接收初始
	  {
	  RxUartAddr=1;RxGsmAddr=2;return;
	  }
	case(2)://接收是否完成
	  {
	  if(RxUartAddr) return;
	  if(CmpsRom(RxUartDbuf,RxUartLeng,"AA",2)) {RxGsmAddr=1;return;}
	  RxGsmAddr=0;return;
	  }
	}  
	}  
//***************************************************************接收卡信息42//
void RxCal(void)
    {
	switch(RxCalAddr)
	{
	case(0)://檢測停止
	  {
	  RxCalAddr=0;return;
	  }
	case(1)://檢測是否有卡
	  {
	  if(!(PIND&0x04)) return;
	  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=20;TxRomUart(readcal1,13);return;
	  }
	case(3)://判斷讀卡是否成功
	  {
	  if(RxUartAddr) return;
	  /*RxUartDbuf[0]=0x31;
	  RxUartDbuf[1]=0x32;
	  RxUartDbuf[2]=0x33;
	  RxUartDbuf[3]=0x34;*/
	  TxRamUart(RxUartDbuf,RxUartLeng);
	  if(CmpsRom(RxUartDbuf,RxUartLeng,readcal1,2)) {RxGsmAddr=1;OutToneCount=4;RxCalAddr=1;return;}
	  //if(CmpsRom(RxUartDbuf+3,RxUartLeng,readcal1+3,1)) {RxGsmAddr=1;OutToneCount=4;RxCalAddr=1;return;}
	  //RxUartAddr=1;RxUartWait=0;
	  //if(!RxUartLeng) return;
	  //TxRomUart(RxUartDbuf,RxUartLeng);
	  /*CopyRam(RxUartDbuf+4,RxUartLeng,NameBuf,11); 
	  CopyRam(RxUartDbuf+15,RxUartLeng,NameBuf,12); */
	  RxCalAddr=1;OutToneCount=2;RxUartAddr=1;//接收處理
	  return;
	  }  
	case(4):
	  {
	  /*DisplayListChar(0, 0, Name);
	  DisplayListChar1(5, 0, NameBuf);
	  DisplayListChar(0, 1, Num);
	  DisplayListChar1(4, 1, NumBuf);*/
	  RxCalAddr=1;return;
	  }  
	}
	}	
//*********************************************調用分時任務//					
void Time0(void)
    {
	while(TCNT0<(fosc/64/500));//毫秒
	TCNT0=0;
	//ScanKey();
	//RxGsm();//遠程接收
	RxCal();
	}	
//***************************************************主程序//
void main(void)
{
 init_atmega();
 delay_ms(400); //啟動等待,等LCM講入工作狀態
 //LCMInit(); //LCM初始化
 //delay_ms(10); //延時片刻
 //TxRomUart("jkkfda",6);
 //DisplayListChar(0, 0, table_1,12);
 RxCalAddr=2;
 OutLedAddr=1;
 //delay_ms(5);
 //DisplayListChar(0, 1, table_2);
 /*
 delay_ms(400); //啟動等待,等LCM進入工作狀態
 WriteCommandLCM(0x08,1); //關閉顯示
 WriteCommandLCM(0x01,1); //顯示清屏
 WriteCommandLCM(0x06,1); // 顯示光標移動設置
 WriteCommandLCM(0x0f,1); // 顯示開及光標設置,閃
 for(i=0;i<8;i++)
 {
  DisplayOneChar(i, 0, table_1[i]); //顯示單個字符
 }
 //WriteCommandLCM(0x07,1); // 顯示光標移動設置
 
 for(i=0;i<8;i++)
 {
  DisplayOneChar(i+8, 0, table_2[i]); //顯示單個字符
 }
 WriteCommandLCM(0x0c,1); // 顯示開及光標設置,不閃
 //ReadDataLCM();//測試用句無意義*/
 while(1)
 {
 Time0();
 }
}
   		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲美女精品一区| va亚洲va日韩不卡在线观看| 国产女人18水真多18精品一级做| 精品成a人在线观看| 美女免费视频一区| 亚洲一区二区高清| 亚洲一区二区三区在线| 亚洲成人精品一区二区| 亚洲一二三区在线观看| 日韩高清国产一区在线| 日韩黄色在线观看| 韩国精品免费视频| 国产mv日韩mv欧美| 丁香桃色午夜亚洲一区二区三区| 国产精品乡下勾搭老头1| 粉嫩av一区二区三区在线播放| 国产精品一区二区不卡| 久久99国产精品久久99果冻传媒| 一区二区三区在线视频免费| 国产亚洲一区二区在线观看| 91精品国产高清一区二区三区| 91久久精品一区二区三区| 中文字幕一区二区不卡| 国产精品无码永久免费888| 欧美精品一区二区三区视频| 911国产精品| 欧美一区日本一区韩国一区| 成人中文字幕合集| 成人sese在线| 成人免费看片app下载| 成人精品电影在线观看| 丰满白嫩尤物一区二区| 国产精品一线二线三线精华| 国产在线播放一区| 韩国一区二区三区| 国产一区二区三区免费看| 视频在线观看一区| 久久国产免费看| 久久国产剧场电影| 国产精品99久久久久久久女警| 精久久久久久久久久久| 蜜臀久久99精品久久久画质超高清| 丝袜美腿亚洲色图| 久久丁香综合五月国产三级网站| 毛片av一区二区| 国产永久精品大片wwwapp| 亚洲愉拍自拍另类高清精品| 亚洲一区二区三区免费视频| 日韩电影网1区2区| 国产成人综合自拍| 91精彩视频在线观看| 秋霞成人午夜伦在线观看| 国产在线麻豆精品观看| 成人精品免费看| 欧美日韩一本到| 久久久久久久网| 在线精品亚洲一区二区不卡| 欧美丰满一区二区免费视频| 日韩欧美123| 亚洲色图制服诱惑| 亚洲综合一区二区三区| 国产一区二三区| av在线不卡免费看| 91麻豆精品国产91久久久使用方法| 亚洲精品一区二区三区四区高清| 日韩一级视频免费观看在线| 国产精品视频你懂的| 亚洲综合在线第一页| 美女网站在线免费欧美精品| 九九九精品视频| 成人免费视频一区| 777奇米成人网| 亚洲欧洲性图库| 黄色日韩三级电影| 色一情一乱一乱一91av| 欧美成人a视频| 一区二区三区精密机械公司| 国产福利一区在线| 国内久久婷婷综合| 91视频国产资源| 久久蜜桃av一区精品变态类天堂| 亚洲精品免费在线播放| 国产永久精品大片wwwapp| 久久久久久免费网| 经典三级视频一区| 国产欧美日韩卡一| 亚洲高清免费一级二级三级| 激情综合一区二区三区| 欧美体内she精高潮| 亚洲精品国久久99热| 国产精品99久久久久久似苏梦涵| 91精品国产色综合久久不卡电影| 一区二区高清免费观看影视大全| 国产成人精品亚洲日本在线桃色 | 午夜精品久久久久久| 成人晚上爱看视频| 久久久五月婷婷| 久久99精品一区二区三区 | 久久er精品视频| 色婷婷精品大在线视频| 一区二区三区视频在线看| 色综合久久精品| 中文字幕永久在线不卡| 在线免费观看成人短视频| 久久久精品综合| 国产综合久久久久影院| 欧美一区二区三区喷汁尤物| 无吗不卡中文字幕| 国产精品一区二区x88av| 精品欧美一区二区三区精品久久 | 一本色道久久综合亚洲91| 亚洲欧洲无码一区二区三区| 麻豆免费看一区二区三区| 欧美一级日韩免费不卡| 日本91福利区| 欧美成人福利视频| 国产成人午夜视频| 中文字幕一区二区三区四区| 制服.丝袜.亚洲.另类.中文| 波多野结衣91| 另类小说综合欧美亚洲| 久久精品一区二区三区不卡 | 亚洲综合999| 制服丝袜日韩国产| 国产一区二区精品久久| 久久影院午夜片一区| 成人av电影在线观看| 亚洲综合色网站| 26uuu精品一区二区三区四区在线| 国产成人精品免费在线| 色综合天天做天天爱| 日韩激情视频在线观看| 日本一区免费视频| 日韩精品一区二区三区老鸭窝| 国产精品羞羞答答xxdd| 亚洲一本大道在线| 欧美激情一区在线| 欧美三片在线视频观看| 色一情一伦一子一伦一区| 国产精品亚洲一区二区三区妖精 | 久久视频一区二区| 欧美日韩国产高清一区二区| 一区二区三区精品| 国产三级三级三级精品8ⅰ区| 国产乱码精品一区二区三区av | 亚洲va天堂va国产va久| 欧美精品一区二区三区很污很色的| 白白色 亚洲乱淫| 日本不卡的三区四区五区| 欧美成va人片在线观看| 五月婷婷色综合| 中文字幕一区视频| 日韩亚洲电影在线| 99国产麻豆精品| 国产麻豆视频精品| 午夜激情综合网| 日韩毛片一二三区| 色综合久久综合| 色婷婷狠狠综合| 91丨porny丨户外露出| 一片黄亚洲嫩模| 国产日韩欧美在线一区| 欧美日韩一级视频| 欧美一区日韩一区| 欧美久久久一区| 日本乱人伦aⅴ精品| 欧美在线影院一区二区| 91色综合久久久久婷婷| 国产成人综合视频| av一区二区不卡| 成人午夜在线视频| 精彩视频一区二区| 日韩和欧美的一区| 亚洲韩国一区二区三区| 亚洲精品视频在线观看免费| 国产欧美一区在线| 国产女同互慰高潮91漫画| 精品国产精品网麻豆系列| 精品视频一区三区九区| 天堂va蜜桃一区二区三区| 亚洲国产精品精华液网站| 亚洲综合色丁香婷婷六月图片| 国产精品美女久久久久久2018| 自拍偷拍欧美激情| 亚洲成a人在线观看| 亚洲国产wwwccc36天堂| 亚洲一区二区三区在线看| 亚洲宅男天堂在线观看无病毒| wwww国产精品欧美| 99re这里都是精品| 久久一二三国产| 久久久激情视频| 国产精品嫩草99a| 亚洲欧美一区二区三区国产精品| 在线91免费看| 色综合久久久网| 国产一区二区三区国产| 国产iv一区二区三区| 岛国一区二区三区| 五月天网站亚洲|