版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、曼徹斯特解碼原則+K-E M系列RFID卡解碼源程序分析作者:日期:曼徹斯特解碼原則+125K EM 4 10 0系列R FID卡解碼源程序分析曼徹斯特解碼原則1.曼徹斯特編碼Encoding),也叫做相位編碼 (P E),是一個(gè)同步時(shí)鐘曼徹斯特編碼 (Ma nchester編碼技術(shù),被物理層使用來編碼一個(gè)同步位流的時(shí)鐘和數(shù)據(jù)。曼徹斯特編碼被用在以 太網(wǎng)媒介系統(tǒng)中。曼徹斯特編碼提供一個(gè)簡單的方式給編碼簡單的二進(jìn)制序列而沒有 長的周期沒有轉(zhuǎn)換級別,因而防止時(shí)鐘同步的丟失,或來自低頻率位移在貧乏補(bǔ)償?shù)哪M鏈接位錯(cuò)誤。在這個(gè)技術(shù)下,實(shí)際上的二進(jìn)制數(shù)據(jù)被傳輸通過這個(gè)電纜,不是作為一個(gè)序列的邏輯1或0來
2、發(fā)送的(技術(shù)上叫做反向不歸零制(NRZ )。相反地,這些位被轉(zhuǎn)換為一個(gè)稍微不同的格式,它通過使用直接的二進(jìn)制編碼有很多的優(yōu)點(diǎn)。曼徹斯特編碼,常用于局域網(wǎng)傳輸。在曼徹斯特編碼中,每一位的中間有一跳變,中間的跳變既作時(shí)鐘信號(hào),又作數(shù)據(jù)信號(hào);從高到低跳變表示” 1 ",從低到高跳變表示0"。還有一種是 差分曼徹斯特編碼,每位中間的跳變僅提供時(shí)鐘定時(shí),而用每位開始時(shí)有無跳變表示"0"或"1",有跳變?yōu)?quot;0",無跳變?yōu)椤?1 ”。對于以上電平跳變觀點(diǎn)有歧義:關(guān)于曼徹斯特編碼電平跳變,在雷振甲編寫的1,計(jì)V網(wǎng)絡(luò)工程師教程>
3、;> 中對曼徹斯特編碼的解釋為:從低電平到高電平的轉(zhuǎn)換表示從高電平到低電平的轉(zhuǎn)換表示0,模擬卷中的答案也是如此,張友生寫的考點(diǎn)分析中也是這樣講的,而計(jì)算機(jī)網(wǎng)絡(luò)(第4版)中(P232頁)則解釋為高電平到低電平的轉(zhuǎn)換為1,低電平到高電平的轉(zhuǎn)換為0。清華大學(xué)的 計(jì)算機(jī)通信與網(wǎng)絡(luò)教程算機(jī)網(wǎng)絡(luò)(第4版)采用如下方式:曼徹斯特編碼從高到低的跳變是0從低到高的跳變是兩種曼徹斯特編碼是將時(shí)鐘和數(shù)據(jù)包含在數(shù)據(jù)流中,在傳輸代碼信息的同時(shí),也將時(shí)鐘同步信號(hào)一起傳輸?shù)綄Ψ?,每位編碼中有一跳變,不存在直流分量,因此具有自 同步能力和良好的抗干擾性能。但每一個(gè)碼元都被調(diào)成兩個(gè)電平,所以數(shù)據(jù)傳輸速率 只有調(diào)制速率的就
4、是說主要用在數(shù)據(jù)同步傳輸?shù)囊环N編碼方式。【在曼徹斯特編碼中,用電壓跳變的相位不同來區(qū)分1和0 ,即用正的電壓跳變表示0,用負(fù)的電壓跳變表示1。因此,這種編碼也稱為相應(yīng)編碼。由于跳變都發(fā)生在每一個(gè)碼元的中間,接收端可以方便地利用它作為位同步 時(shí)鐘,因此,這種編碼也稱為自同步編碼?!?.曼徹斯特編碼(Ma nche st er E n c o ding),也叫做相位編碼(PE);常用于局域網(wǎng)傳輸。0 I 1 I 1 I COlli數(shù)字信尋I I ; I I I I I E,1一在曼徹斯特編碼中,每一位的中間有一跳變,位中間的跳變既作時(shí)鐘信號(hào),又作數(shù)據(jù)信號(hào)。但在 不同的書籍中,曼徹斯特編碼中,電平跳
5、動(dòng)表示的值不同,這里產(chǎn)生很多歧義:1?、在網(wǎng)絡(luò)工程師考試以及與位中間 電平從高至0";?位中間 電平從低到高跳變表示機(jī)網(wǎng)絡(luò)書籍中:?位中間 電平從高到低跳變表示 "1" ; ?位中間電平從低到高跳變表示”0”。?在清華大學(xué)岀版的計(jì)算機(jī)通信與網(wǎng)絡(luò)教程計(jì)算機(jī)網(wǎng)絡(luò)(第4版)也是這么說的,就以此為標(biāo)準(zhǔn)我們就叫這為 標(biāo)準(zhǔn)曼徹斯編碼。至于第一種,我們在這里就叫它 曼徹斯特編碼。但是要記住,在 不同的情況下懂得變通哦,否則會(huì)被老師扣分?jǐn)?shù)的哦。這兩者恰好相反,千萬別弄混淆了。現(xiàn)在我們要講的 就是差分曼徹斯特編碼:?在信號(hào)位 開始時(shí)不改變信號(hào)極性,表示輯"1"在
6、信號(hào)位 開始時(shí)改變信號(hào)極性,表示邏輯” 0" ;?【注意】:如果在最初信號(hào)的時(shí)候,即第一個(gè)信號(hào) 時(shí):?如果中間位電平從低到高 ,則表示0;如果中間位電平從高到低,則表示1;后面的(從第二個(gè)開始)就看每個(gè)信號(hào)位開始時(shí)有沒有跳變來決定:?下面我們來舉個(gè)例子,來比較標(biāo)準(zhǔn)曼徹斯特編碼、曼徹斯特編碼、差分曼徹斯特編(0碼:EM4100系列用的是:曼徹斯特編碼!尸斗£®傳送S舸)觀挺時(shí)穢 LrLfT_n_j"LrLrLJu_u0i_r125K;EM4100系列RFID卡解碼源程序分析1. ?我們知道了曼徹斯特編碼原則,那么反過來的過程就是解碼了。Dilli LU !
7、 U m U 1 m I UI I I ; I I I I I IEM4100系列用的是:曼徹斯特編碼!2.傳統(tǒng)只讀射頻卡讀卡器的設(shè)計(jì)一般采用U2270B或EM4095讀寫基站芯片加MC U模式,其成本高、功耗大。本文介紹一種采用一片74HC4060+LM 2 58/3 58加少量普通元件構(gòu)成的讀卡器電路和處理的程序設(shè)計(jì)方案,電路簡單、功耗小、成本低。74 HC 4 0 60 +L M2 58/358電路為市面上已非常成熟R FI D- 1 25KHZ-I卡且廣泛采用的低功耗、低成本方案。該方案在門禁、保安、考勤、展覽會(huì)、公園、旅店、餐廳等公共場所的門票、優(yōu)惠卡以及生產(chǎn)過程、郵政包裹、航空鐵路
8、運(yùn)輸、產(chǎn)品包裝、交通等部門的物流、電子標(biāo)簽、防偽標(biāo)志、一次性票證等眾多領(lǐng)域上占據(jù)半壁江山。3. 推挽式放大電路輸出後接L C串聯(lián)諧振電路,當(dāng)回路固有諧振頻率與輸入訊號(hào)頻率相等時(shí),電路發(fā)生串聯(lián)諧振。本文只要求對 125kHZ頻率的訊號(hào)放大,所以根據(jù)串聯(lián)諧振公式 Eg 后)計(jì)算電路中元件參數(shù),可得L = 7 3 7uH , C =2200pF。4. 包絡(luò)檢波電路感應(yīng)線圈產(chǎn)生諧振電壓約有2 0 V,所以載波訊號(hào)的電壓也約為20V。對輸入電壓高於500mV檢波,稱為大訊號(hào)檢波,利用二 極體單向?qū)щ娞匦约皺z波負(fù)載 RC充放電過程實(shí)現(xiàn)。RC參數(shù)的確定需要滿足兩個(gè)條件:1不產(chǎn)生隋性失真,一般工程上按fxxg
9、w計(jì)算,f為載波頻率。2.不產(chǎn)生負(fù)峰切割失真,即m壇尺代,m為調(diào)幅系數(shù),R1是交流阻值,R0是直流阻值。聯(lián)立上述兩個(gè)條件,確定檢波電路中R12、C36 分別為 470 kQ、47 0 0 pF。5. 波形整形電路在單晶片處理之前,整形電路將檢波後的訊號(hào)變成單片機(jī)可以識(shí)別的高低電平sL M3 5 8 (LM258 )內(nèi)部整合兩個(gè)運(yùn)放,經(jīng)過兩次整形後可以得到很好的方波訊號(hào)。電路中R16、R1 7、R18、R19起到分壓作用,確定輸出翻轉(zhuǎn)門限為2 .5V; R1 5、R21將同向輸入的電壓疊加在反向輸入端;C5 4、C5 5為耦合電容,能夠隔離直流分量,傳遞交流訊號(hào)。當(dāng) U+大於U +2 .5V時(shí),
10、輸出高電平;當(dāng)U +小於U-+2 . 5V時(shí),輸出低電平。6.讀卡程序是根據(jù)EM4100、E M4001系列射頻卡的特點(diǎn)量身定做的一段程序,射頻卡以曼徹斯特編碼,傳輸一個(gè)資料的時(shí)間t=64/125kH z= 512實(shí)際使用中,一般傳輸時(shí)間為,2 30卩SO .5 t2 8 0u s 280 us 定時(shí)器取樣時(shí)間512卩s所以本文中取樣波形時(shí),定時(shí)器時(shí)間設(shè)定為400 us,保證為取樣留有足夠的時(shí)間。原程序分析:1.定時(shí)器時(shí)間設(shè)定為40 Os# defl neTH 0_ HOxfe/ 定時(shí)器0取樣定時(shí)值設(shè)定為400us#def l ne TL O L O x 8 f/8f 2.定時(shí)器0中斷優(yōu)先級最
11、高:PT 0=1;3.曼徹斯特碼同步頭檢測,9個(gè)1采用逐個(gè)前移檢測法逐個(gè)前移檢測法,即每檢測到一個(gè)數(shù)據(jù),如果是"1",并向數(shù)據(jù)庫寫入1, /如果是"0",就放棄當(dāng)前檢測的數(shù)據(jù),并向當(dāng)前數(shù)據(jù)流方向移動(dòng)一/這樣一來,就保證了不管數(shù)據(jù)流是在何種狀態(tài)下,都能正確無誤地抓取9個(gè)1,同步頭9個(gè)1的提取成功,曼徹斯特碼譯碼器即和當(dāng)前的數(shù)據(jù)流保持了同步,并把余下的55位數(shù)據(jù)全部譯完。?RE M _Buffe r 3=數(shù)據(jù)格式:D10D11D12D1 3 P1xxx八個(gè)4. uch a rR EM_ B uff er 14;/ /曼徹斯特碼解碼后得到最終數(shù)據(jù)的緩存0 1
12、3 /*曼徹斯特碼解碼后的數(shù)據(jù)放在 REMBuf f er :0 1 3;R EM_B uf fe r 0 =0 x ff 數(shù)據(jù)格式:1 111 11 11 同步頭,8 個(gè) 1REM_Bu f f er 1= 0x8x 數(shù)據(jù)格式:1xxx x x x x 同步頭,1個(gè)1,x表示無意義REM_Bu f fer 2=數(shù)據(jù)格式:D 00 D0 1D 02D03 P0xxx 八個(gè)版本位或廠商信息的前四位,x表示無意義;P0為行效驗(yàn)位版本位或廠商信息的后四位,x表示無意義;P 1為行效驗(yàn)位RE M_Bu ff er 4=數(shù)據(jù)格式:D20D21D22D2 3 P 2xx x 三十二個(gè)數(shù)據(jù),x表示無意義;P
13、 2為行效驗(yàn)位R E M_Buf f er5=數(shù)據(jù)格式:D 30 D 31D 3 2D33 P3xxx三十二個(gè)數(shù)據(jù),x表示無意義;P3為行效驗(yàn)位RE M_Buffe r 6:=數(shù)據(jù)格式:D40D4 1 D 4 2D43 P4x xx十二個(gè)數(shù)據(jù),x表示無意義;P4為行效驗(yàn)位REM_B U ffer7=數(shù)據(jù)格式:D5 0 D51D52D 5 3 P5 xxx 三十二個(gè)數(shù)據(jù),x表示無意義;P5為行效驗(yàn)位RE M_B u f fer 8 =數(shù)據(jù)格式:D6 0D6 1D6 2 D6 3 P6xx x三十二個(gè)數(shù)據(jù),x表示無意義;P6為行效驗(yàn)位R E M_ Buffe r 9=數(shù)據(jù)格式:D70D71 D 7
14、2D7 3 P 7x xx三十二個(gè)數(shù)據(jù),x表示無意義;P 7為行效驗(yàn)位REM _Buf f er 10 =數(shù)據(jù)格式:D80D81D82 D 83 P 8xxx 三十二個(gè)數(shù)據(jù),x表示無意義;P8為行效驗(yàn)位R EM_Buffer : 11 = 數(shù)據(jù)格式:D 9 0D 9 1D 9 2D93 P9xxx十二個(gè)數(shù)據(jù),x表示無意義;P 9為行效驗(yàn)位R EM_Buf f er 12:=數(shù)據(jù)格式:PC0P C1PC2PC3 0xxx 四個(gè)列效驗(yàn)位,x表示無意義;0為停止位原程序:/ 125K;EM4 1 00 系列 R F I D 卡解碼/2 00 8 .1 0 .1 5/ /# in elude <
15、 re g52.h>/ 使用 AT89S5 1 /5 2等系列單片機(jī)頭文#i n c lude < ST C 1 2C5 41 0 A D .h >/s tc 系列單片機(jī)專用頭文#i ncl u d e < intrin s.h>#de f ine ui n tu nsi g ned i nt/定義# d e f ine ucharu nsignedchar /定義# d efine TL 0 L0x8f /8f#define u l o n g unsigned long /定義 sbit R EM二P" 1 ;/曼徹斯特編碼輸入端s bit CL K
16、=P3八3;/產(chǎn)生1 25K HZ時(shí)鐘信號(hào)端L ED二P2 人 5; / 紅燈sbits PP二P19/ 喇叭REM_BIT; /曼徹斯特碼高、低邊沿跳變標(biāo)志位,bitE f fi c acy _BIT;待效驗(yàn)標(biāo)志位,b itP_ P C_BIT;/ /行,列效驗(yàn)標(biāo)志位YE S _NO BI T ;/效驗(yàn)正確,或效驗(yàn)錯(cuò)誤標(biāo)志位,/ Y ES_NO_BIT =1表示效驗(yàn)正確;/YES NO BIT= 0表示效驗(yàn)錯(cuò)誤。#def i n e TH0 H0 xfe/定時(shí)器0取樣定時(shí)值設(shè)定為400us/ 3 504 20us/ 3754 5 0 usu ch arU _ D _B uffer5;/ /U
17、s er_Data/用戶數(shù)據(jù)緩存,ul o ng long_D;/方法1,卡號(hào)在 Iong_D 中,不足10位,則在高位前面加 0uchar cha r_D ;方法2,前兩位卡號(hào)在ch a r_D中,u in tint_D; /方法2,卡號(hào)后4位卡號(hào)在in t _D中,ucharvolue; /vo 1 u e為曼徹斯特碼譯碼時(shí)的臨時(shí)運(yùn)算緩存uch arR E M_Buffer1 4 ;/曼徹斯特碼解碼后得到最終數(shù)據(jù)的緩存013/*曼徹斯特碼解碼后的數(shù)據(jù)放在R EM_Buff e r013;RE M_Buf f er 0=0xff 數(shù)據(jù)格式:1111 1111同步頭,8 個(gè) 1RE M_ B
18、uf f er 1 =0x8x 數(shù)據(jù)格式:1 x xx x xxx 同步頭,1 個(gè) 1 ,x表示無意義版本位或廠商信息的前四位,x表示無意義;P 0為行效驗(yàn)位REM_Buff e r2=數(shù)據(jù)格式:D0 0 D01D 02 D 0 3 P0xxx八個(gè)R EM_B uf f er :3=數(shù)據(jù)格式:D1 0 D11D 12D1 3 P1XX X八個(gè)版本位或廠商信息的后四位,X表示無意義 ;P1為行效驗(yàn)位R EM_Buff e r 4 =數(shù)據(jù)格式:D20D21D22D23 P 2x xx十二個(gè)數(shù)據(jù),x表示無意義;P 2為行效驗(yàn)位R E M_B uf fer5=數(shù)據(jù)格式:D 30D31 D 32D 3
19、3P3XXX 三十二個(gè)數(shù)據(jù),X表示無意義;P 3為行效驗(yàn)位RE M_B uf fer 6=數(shù)據(jù)格式:D 40D41D4 2D 43P4 X XX三十二個(gè)數(shù)據(jù),X表示無意義;P4為行效驗(yàn)位REM_B uff e r7=數(shù)據(jù)格式:D5 0 D51D 5 2 D 5XX三十二個(gè)數(shù)據(jù),x表示無意義;P 5為行效驗(yàn)位REM _B u ffer8=數(shù)據(jù)格式:D 6 0D 61 D 6 2 D 63 P 6xxx三十二個(gè)數(shù)據(jù),x表示無意義;P6為行效驗(yàn)位R EM_ B uf f er9=數(shù)據(jù)格式:D7 0 D 7 1 D 7 2D73 P7xxX 三十二個(gè)數(shù)據(jù),X表示無意義;P7為行效驗(yàn)位RE M_Buf
20、fer 1 0=數(shù)據(jù)格式:D80D81D82D83 P 8xxX三十二個(gè)數(shù)據(jù),X表示無意義;P8為行效驗(yàn)位REM_Bu ff er11 =數(shù)據(jù)格式:D 90D 91D92D9 3P9xxx三十二個(gè)數(shù)據(jù),X表示無意義;P 9為行效驗(yàn)位REM_Buffe r 12=數(shù)據(jù)格式:PCOPC1PC2 PC3 0XX X 四個(gè)列效驗(yàn)位,x表示無意義;0為停止位*/uch ar code Di sp Tab : = / 0','1','2 ', '3','4 ','5/ 6'/ 7','8 ',/
21、9 / ,'A/ / B','C','D', / E',/ F'uchar co de Dat a="Data: " ; /數(shù)據(jù) uch ar code UseiData = " User Data: "/用戶數(shù)據(jù) uch a r code Card_1= " Me t ho ds 1 Decimal C ard N u m ber: "/ /方法1:掐頭留尾法提取10位十進(jìn)制卡號(hào): uch ar code C ard _2= "Met hod s 2 D e
22、cim a l Card Number:" /方法2:前兩位+后4位的微根格式,段間以小數(shù)點(diǎn)或豆號(hào)隔開uchar code Disp T ab_2 ='/ H',/ ,'V oid init() /?T MOD =0x2 1;TH1 = 0xfd;/1 1 .059 2 MHz 波特率:9 6 00T L1=0xfd;PCON& =0x 80;SCON=0 x4 0;/A UX R =0x4 0 ;/波特率倍增/ 1 1.0592MH z 1 1 5 200:X JBLJOrtSWL 華邈 01 t(Ol)2|e P /(z iU!n)i.A|ep p
23、Q八"=丄 I g lAB爼.=Q31L =ddS0 4 s 者 HOld/Zs 6三蛍-MWWMto ilB/-i=H0丄d/ T =Nad0= S 36qoxo=o I 丄/So X 0 =OHJ6? for( X =0; xvl 60;x+ +)/*delay () /_nop_();_n op_();nop_();*/oid Time inte r rupt(v o id)in ter r upt 1 II定時(shí)器0中斷T R0=0; /關(guān)閉定時(shí)器0,為曼徹斯特碼提取數(shù)據(jù)定時(shí)器vo id RS 2 32_i n(V oi d)in terru pt 4II 串口中斷?EA=0;
24、?f(RI = =1)11 接收RI=0;7/SBUF_R I_Buf f er :0 = SBU F; /R S2323接收緩沖區(qū)空Ise /if(TI= 1 )/發(fā)送?EA=1;void RS 23 2 ()/通信轉(zhuǎn)輸數(shù)據(jù),發(fā)給PCc har i;ulong mm;7/ ES= 0;?f (R EM_B u ff e r : 0=0 x ff)&&(REM _ Buffe r 1 =0x80) )/同步頭9個(gè)1的判斷,同步頭正確,進(jìn)入數(shù)據(jù)發(fā)送,否則退出?0r(i = 0;iv6;i+ )?BU F = Dat a i ;/""?w hile(Tl二=0
25、);?TI=O;?for(i= 0; i< 13 ; i +)S BUF = Dis p Tab (R E M_Bu f feri/ 1 6);?/ SBUF= REM_E uffer i ; /給 PC 發(fā)送 REM_Buf f er 013個(gè)數(shù)據(jù) ? ?whil e (T I= 0);/TI=1,表示數(shù)據(jù)發(fā)送完畢,?T I= 0;/T I清零,并把余下的數(shù)據(jù)繼續(xù)發(fā)送,直到13個(gè)數(shù)據(jù)全部發(fā)送完。? SBUF = D i spTab(R EM_B uf fer :i% 1 6);w h i le (T I =0);?TI=0;?S BU F =DispTab_21;/'H'
26、;? hi le (T I = =0);?ri = 0;SBUF = D ispTab_20;/' while(TI= 0);?PI=0 ;?SB UF二DispTab_21;/ H'?f or (i =0 ;i< 9 4 ; i+ +)S BUF = Di sp Tab_2 0 ; /""while(TI二=0);? TI=0;? /U_D_B u ffer5: ;/Use r_Data/用戶數(shù)據(jù)緩存, ?fOr( i= 0;i<11; i +)SB UF=Use rD atai;/"" w h i 1 e(TI = = 0
27、);?r I=f o r(i= 0; i<5; i +)?3BU F=D ispTab (U_D_Buffe ri/16);?Qhile (TI =0);?T I =0;? SBUF二DispTab (U_D_Buff e r :i % 16);w h i 1e (TI=0);wh i le(T I =0);?I?I=0;SBU F = Disp T a b_20; /' '知h i l e (TI = = 0);? TI =0;?for(i=0;i<12 0 ; i +)?SBUF =Di s pTab_20 ;/""?while(T I= =
28、 0);?TI=0;f o r (i=0;i<3 1 ;i+)?3BUF=Card_1i;/""?wh il e( TI= = 0);TI = 0;/10位十進(jìn)制卡號(hào) C ard 1?SBU F=D i sp Tab Ion g_D / 100 00000 0 0 ;/102? hile( T I = = 0);?T 1=0;?m m= long_D% 1 0 00000000;?£ BUF二Dis p Ta b m m/10 0 000 0 0 0 ;/9 ? while( T I= =0 );TI = 0;?mm=lon g _D%10 0 0 0 00
29、00;? SBUF=D i spTabmm/1000 0 000;/8 ?Wh i le(T I= 0);TI =0;?m m= lo n g_D%10000000;?SBU F=Di s pTab mm/ 1 000000; /7 ?W h i le(T I = =0);TI = 0;?mm= lo n g_D% 1 0 00 0 00;? SBU F=DispT a bmm/100000;/6whil e (TI = = 0 );mm二mm %100 0 00;?SBU F= Di s pTabmm/1 0 0 00 ;/ 5?Wh ile( TI=0);? TI=0;m m=l o ng
30、_D % 1 0 0 0 0;?SB UF= Di sp Tabmm/1000;/ /4whil e (T I=0);? TI=0;?mm=long_D%l 000;?S B U F=DispTabmm/1 0 0;/ 3? wh i le(T I =0);? TI = 0;?mm=lo ng _D% 1 0 0;?SBUF= D i s pTa b : mm /10 ;/2 ?While(TI=0);TI=0;?3BUF=DispT a b mm% 1 0 ;/1? w hile (TI = =0);TI=0;/ / mill / / /III/ Illi / / III/ /C a rd_
31、2?o r ( i =0; i<106;i+ +)? SBUF二Dis pTab_20;/"" ? ?while(TI= = 0);?fo r(i = 0;i <31;i+) ?SBU F=C ard_2i; I/""?Whi 1 e(TI= 0 );?TI= 0 ;?SBU F=D i s pTabch ar_D /100;/w h i 1 e(TI=0);?ri = 0;? cha_D = c har_D %100;?3BUF =D ispTab c h ar_D /1 0 ;/? w h i 1 e(T I =0);?ri= 0;? S
32、BUF 二Di spT ab char_D% 10 ;/whil e (TI= = 0 );?TI = 0;?3BUF=Di spT ab _22; / /w h i l e (TI = = 0 );? T I= 0;?SB UF=Di s pTab : in t _D/100 0 0; / ?While(TI= = 0);? TI= 0 ;in t_D= in t_ D% 1 0 000;?SBUF=Di s pTa bin t _D/10 0 0; /wh i l e( TI=0 );?TI=0 ;?int _ D = int_ D %1 0 0 0;? SBU F =Di s pTab
33、i nt_D/100;/?wh ile(TI=O);?r I = 0 ;i nt_D= i nt_D%10O ;?S BUF=DispTabint_D/I 0 ;/while(TI= = 0);? TI=0;?SB UF=Di s pTabi nt_D%10;/ ? whi 1 e(T I =0);? TI =0;? f o r (i=0; i <1 0 9;i+)?:?BU F =Dis pTa b_2 0 ;/"" ? ?while( TI = =0);?PI =0 ;? /?/ES=O;vo i d RE Min i t() /射頻接口初始化?C LK =0;
34、/為 74HC4 0 6 0 提供 + 5 V 電源,7 4H C4 060 得電后 輸出1 25 KHZ信號(hào)voi d REM_Proc ess ing()/曼徹斯特碼數(shù)據(jù)提取?jchar i, ii;loop: ?T R0=0;VO l ue = 0 ;for( i =0;i< 9; i+ +)/曼徹斯特碼同步頭檢測,9個(gè)1采用逐個(gè)前移檢測法逐個(gè)前移檢測法,即每檢測到一個(gè)數(shù)據(jù),如果是"1",并向數(shù)據(jù)庫寫入1,/如果是"0 ",就放棄當(dāng)前檢測的數(shù)據(jù),并向當(dāng)前數(shù)據(jù)流方向移動(dòng)一/ /這樣一來,就保證了不管數(shù)據(jù)流是在何種狀態(tài)下,都能正確無誤地抓取9個(gè)1
35、,同步頭9個(gè)1的提取成功,曼徹斯特碼譯碼器即和當(dāng)前的數(shù)據(jù)流保持了同步,并把余下的55位數(shù)據(jù)全部譯完。?彳??whil e (RE M= = 1)? f (TRO=O)? g o to lo op ;? /b r ea k;? TRO= 0;THO 二TH0_H;/ 開啟 4 00us定時(shí)器,TL0=TL0_ L ;?T R0=1;? w hi le(TR0=1);TH 0=TH0_H;/開啟400us定時(shí)器,同步頭逐個(gè)前移檢測T L0=TL0_L;? T RO = 1;?(REM二=0)?g o t o 1 oop;?(iv8 )?:V olue<v =1;?V0 1 ue|=0x01;
36、?( i = = 7)? RE M_Bu f fe r 0=vo 1u e;?RE M_Buf f er 1=0x80;T RO =0;R EM_B I T=0;?/olue= O x00;TH O 二TH0_H ; /400 u s?r L 0=TL0_L;/下降T R 0= 1 ;?or(i = 2; i< 1 3;i+)/曼徹斯特碼解碼?:? ?or(ii=0; 1 iv5;ii+ + ”/曼徹斯特碼解碼? ?wh 1 le(TR0=1);?i f (R EM = =1)? ( RE M_BIT=0) ?hile( R EM= =1); /曼徹斯特碼跳變?yōu)楦唠娖?_n o P();
37、?_n op_();_nop_();?_n o p_();/抗抖動(dòng) ?wh 1 l e (REM=1) ;/?op();?_nop()?_n o p_();?o p_() ;/抗抖動(dòng)whi 1 e(REM=1);/? lue<<= 1 ;/用左移指令把"1 "移入vol u ev o lue 1=0x08;/跳變的瞬間提取數(shù)據(jù),供參考?TL0=TL 0 丄? ?r R 0= 1 ;? ?只EM_BIT =0;/曼徹斯特碼標(biāo)志位置"0"?2? Ise /if(REM_BIT二=1) ?W?i ile( R EM=1) ;/曼徹斯特碼跳變?yōu)楦唠娖?/p>
38、_n o p_();? _nop_ ();?_nop_();? n op_();/航抖動(dòng)? ?While( R EM= = 1); nop _ ()?2nop _ ();?_n o p_();? ?_hop _();抗抖動(dòng)wh i le(REM=1);?v o 1 uevv=1;/用左移指令把"1"移入V ol uev o1 ue|=0 x 0 8;/跳變的瞬間提取數(shù)據(jù),參考仇0 = TL0_ L ;? TH 0=TH0_H;/開啟4 0 0u s定時(shí)器,為下次提取數(shù)據(jù)提供瓜EM_ BI T = 0 ; /曼徹斯特碼標(biāo)志位置"0"7TR0= 1;7777
39、 ?7?2 Ise / i f(R E M = =0)7 if(REM_ BI T=0)TVh il e (REM= = 0);/曼徹斯特碼跳變?yōu)橄陆笛? "opO ;7 7_nop_();7_nop_();?j nop_();/ 抗抖動(dòng)77 7Wh i le (REM=0);77_nop_();7 7?7hop _ ();72- nop_();nop_();/抗抖動(dòng)7 7 whiIe(REM= = 0);77V olu e <<=1;/用左移指令把"0"移入vol u e7 7 ?TH 0=T H0_H ;/開啟400u s定時(shí)器,為下次提取數(shù)據(jù)提?
40、只EM_B IT = 1; /曼徹斯特碼標(biāo)志位置"1"供參考TLO=T LO_L ;?R0=1;?R EM_ BI T =1; /曼徹斯特碼標(biāo)志位置"1" ? ? ls e/i f (RE M _ BIT二=1 )?wh i 1 e (REM = =0);/曼徹斯特碼跳變?yōu)橄陆笛? ?Lnop _ ();?_nop_ ();nop_();? ?_n o p_(); / /抗抖動(dòng)wh ile(REM= O );? ? _n op_();?_?oP_ ();? _nop_ ();? _nop_ ();/抗抖動(dòng)?wh i le(R E M=0);?v olue
41、« =1;/用左移指令把"0"移入vo lue提供參考仇 O =T L 0_L;?TR0=1;?REM_Bu f fer i=volu e;olue=OxO 0 ;void Eff i ca cy ()/數(shù)據(jù)效驗(yàn)?jcha ri,ii,c a che,c ach e_1 ,counter;/count e r= 0 ;f o r(i=2; iv12 ;i + + )/行效驗(yàn)?3oun te r =0;cach e=RE M_B u ffer i ;?3ache_1 =REM_Buff e ri;?or( i i =0 ; i i<4;ii+ )?:? cac
42、he& = 0x80;?艮 c ache=Ox 80)? c o un te r +;?c ac he _1v< = 1;?ache=cache_l ;if( c ounter=0)|(counter=2 )|(co un t er=4)?Effi c acy_B IT = 0 ;el s e if(co unt er= 1)|(counter= 3)?E ffi cacy_B I T=1;cach e=R EM _B u f f er i ;? cache&=0x 0 8;if( c ach e= =0x 0 8)?_PC_BIT二 l ;?e ls eP_P C_BI
43、T=O;? if( E f f icacy_BIT二二PPC_B IT)? Y E S_NO_BI T =1; II表示效驗(yàn)正確? elseYE S _NO_BIT=0; II表示效驗(yàn)錯(cuò)誤?( Y ES_N O_B IT = =0)I/效驗(yàn)錯(cuò)誤,無條件返回? retu r n;ca ch e_1= 0x80;?or(i = 0; i <4;i+)II 列效驗(yàn)? o unt e r=0;?f or(ii=2;iiv12;ii+)ca che二REM_Bufferi ;c ac he& =c a che_ 1 ;i f (cache= cache_1)?c ounter+=1 ;? J ? i f( (co u nt er=0)|(cou n ter= 2 )|(co unt e r=4) | |( counter = =6)1 | (coun te r=8) | |(counte r=10) ? E f ficacy_BIT=O ;el s e i f(co un ter= 1 )|(cou nt er=3 )|(co un ter= = 5 )| | (co un ter = = 7) | (c ounte r=9)?:?Effi c acy_BI T=1;? a ch e = R EM_B
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度生產(chǎn)線承包與品牌合作協(xié)議4篇
- 2025年度物流運(yùn)輸合同與貨物運(yùn)輸服務(wù)購銷印花稅繳納模板4篇
- 2025年度新能源汽車研發(fā)生產(chǎn)合作協(xié)議書3篇
- 2025年度特色手工藝品代購代理合同4篇
- 2024版光纖網(wǎng)絡(luò)建設(shè)與運(yùn)營合同
- 2025年度個(gè)人快件物流配送服務(wù)合同范本大全4篇
- 2025年度個(gè)人擔(dān)保個(gè)人創(chuàng)業(yè)貸款合同2篇
- 2025年度個(gè)人股東股權(quán)轉(zhuǎn)讓協(xié)議范本全面保障股權(quán)轉(zhuǎn)讓合法合規(guī)4篇
- 2025年河南鄭州報(bào)業(yè)集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 二零二五年度智能家居門面商鋪?zhàn)赓U合同4篇
- 骨科手術(shù)后患者營養(yǎng)情況及營養(yǎng)不良的原因分析,骨傷科論文
- GB/T 24474.1-2020乘運(yùn)質(zhì)量測量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實(shí)施方案(一)
- 高血壓患者用藥的注意事項(xiàng)講義課件
- 特種作業(yè)安全監(jiān)護(hù)人員培訓(xùn)課件
- (完整)第15章-合成生物學(xué)ppt
- 太平洋戰(zhàn)爭課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
評論
0/150
提交評論