資源描述:
《曼砌斯特解碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、/**********************************************曼徹斯特編碼調(diào)制的非接觸ID卡通用讀卡程序編制ID卡每位的脈寬為512us,每半位的脈寬256usCPU為Atmel公司的AT89S52芯片,晶振11.0592MHz讀卡采用邊沿檢測方式,只要跳變邊沿脈寬在要求的脈寬范圍內(nèi)就是合法脈寬每位脈寬要求490us-530us,半位要求為230us-280us,可根據(jù)調(diào)試更改定時器時間2010年3月11日東北大學(xué)通信與智能控制工作室/******************頭文件********************/#inc
2、lude#include#include/******************宏定義*********************/#defineucharunsignedchar#defineuintunsignedint#defineulintunsignedlongint//#defineSYSCLK11059200//使用外部晶振11.0592MHz//#defineBAUD_RATE2400//這里沒有采用//#defineTCLKSYSCLK/12////#defineTIME_COUNT(
3、-(TCLK/BAUD_RATE))//+0x20////#defineT1_1B_HTIME_COUNT>>8////#defineT1_1B_LTIME_COUNTsbitRF_DATA_IN=P3^2;//讀卡卡號輸入端,這里為外部0終端,最好改為普通的I/OsbitRF_LED_ON=P1^4;//原理機(jī)電平提取端,這里接在了原理機(jī)74HC14的第二次取反后sbitRUN_LED=P2^4;//測試用sbitRUN_LED1=P2^3;//測試用sbitRUN_LED2=P2^5;//測試用sbitRUN_LED3=P2^6;//測試燦?sbitDI
4、DA=P2^2;//蜂鳴器接口,高電平時蜂鳴,低電平時停止蜂鳴/****************全局變量**********************/ucharRead_RF_Data[11];//從卡號輸入端讀取的暫存數(shù)據(jù)ucharCard_ID[10];//卡號暫存數(shù)組uchardataID_Data[6];//暫存經(jīng)效驗后的正確數(shù)據(jù)uintdataTIMER_1=0;//判斷定時時用ucharRX0_DAT=0;//硬件串口接收到的字節(jié)數(shù)據(jù)ucharSUART0_RXD[10];//硬件串口接收ID號數(shù)組ucharSUART0_NUM=0;//硬件串口
5、計數(shù)變量bitCheck_Data_bit;//效驗請求標(biāo)志位bitCheck_Data_Ok=0;//校驗正確標(biāo)志位/****************函數(shù)列表***********************/voidRecive_RF_Data(void);voidCheck_Data(void);voidwatchdog_init(void);voidClern_Number(void);voiddogFeed(void);voiddelay0_2ms(uintcount);voidUART_TXD(ucharData[],ucharNum);//這里兩個
6、發(fā)送函數(shù)是一樣的,由于出現(xiàn)了語法錯誤,這里定義為了兩個voidUART0_TXD(ucharData[],ucharNum);/**********************************************初始化程序**********************************************/voidData_start(void){TMOD=0x21;//T0方式1,T1工作于方式2TH1=0x00;//初始化T1計時器TL1=0x00;TR1=0;SCON=0x50;//串行口初始化//PCON=0x80;//SMOD位設(shè)置
7、TH0=0x00;//初始化T0計時器TL0=0x04;//這里從0x0004開始,參考程序中是這個數(shù)值,改為從其他數(shù)開始也可以TR0=0;ES=1;//開放串行口中斷EA=1;//開放總中斷}/**********************************************I/O初始化程序,這里根據(jù)需要可修改**********************************************/voidPORT_Init(void){P0=0xFF;//P1=0xFF;//P2=0xF0;//蜂鳴器引腳采用的是P2.2,電路圖中是P2.3
8、,P2.2為高時蜂鳴器蜂鳴,為低時停止蜂鳴,這點注意