freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)的智能ic卡讀寫(xiě)器設(shè)計(jì)-資料下載頁(yè)

2024-12-01 17:50本頁(yè)面

【導(dǎo)讀】倍地增長(zhǎng),每天都要處理許多與個(gè)人有關(guān)的信息,而這些信息管理十分不便。實(shí)際生活中IC卡的應(yīng)用范圍非常廣泛,它有助于解決問(wèn)題。IC卡讀寫(xiě)器是IC卡和計(jì)算。核心對(duì)SLE4442卡進(jìn)行讀寫(xiě)控制。接觸式IC卡是IC卡領(lǐng)域的一項(xiàng)新興技術(shù),它是射頻識(shí)。首先在緒論中介紹了課題的開(kāi)發(fā)意義及功能概述。圖,論述了本次畢業(yè)設(shè)計(jì)所應(yīng)用的各硬件接口技術(shù)和各個(gè)接口模塊的功能及工作過(guò)程。本系統(tǒng)是以單片機(jī)的基本語(yǔ)言匯編語(yǔ)言來(lái)進(jìn)行軟件設(shè)計(jì),指令的執(zhí)行速度快。最后具體描述了各個(gè)功能模塊的軟、硬件調(diào)試。本文撰寫(xiě)的主導(dǎo)思想是軟、1.1系統(tǒng)的提出及研究意義。SLE4442卡的插入/退出識(shí)別與上電/下電復(fù)位過(guò)程;SLE4442卡的邏輯加密。效的辦法,IC卡將成為人們聯(lián)網(wǎng)身份識(shí)別和實(shí)現(xiàn)電子支付手段。其影響面是前所未有的。按卡與外界數(shù)據(jù)傳輸?shù)男问絹?lái)分,有接觸式IC卡和非接觸式IC卡兩種。當(dāng)前廣泛使用的是接觸式IC卡,本文對(duì)其進(jìn)行了詳細(xì)介紹。

  

【正文】 a=P1^6。 /*I/O 口定義 */ sbit ICOUT=P3^2。 /*拔卡信號(hào) */ sbit ICIN=P3^3。 /*插卡信號(hào),與上同接卡座微動(dòng)開(kāi)關(guān) */ sbit COMM=P3^4。 /*正在通信指示 */ sbit BELL=P3^5。 /*蜂鳴器控制 */ sbit PWR=P1^4。 /*IC 卡座電源控制 */ /*波特率選擇 */ sbit BAUD=P1^2。 /*0: 2400; 1: 4800*/ /*24c01~ 24c16 讀 /寫(xiě)驅(qū)動(dòng)程序 */ sbit a0=ACC^0。 /*定義 ACC 的位,利用 ACC 操作速度最快 */ sbit a1=ACC^1。 sbit a2=ACC^2。 sbit a3=ACC^3。 sbit a4=ACC^4。 sbit a5=ACC^5。 sbit a6=ACC^6。 sbit a7=ACC^7。 /*讀 /寫(xiě)數(shù)據(jù)緩沖區(qū) ,24c01 最多為 128B*/ uchar buf[16]。 /*這里定義有效讀入數(shù)據(jù)最多為 16B,用戶根據(jù)需要定 */ uchar flag。 /*全局標(biāo)志字節(jié) */ /*標(biāo)志定義 */ sbit ICWR=flag^0。 /*IC 卡在讀 /寫(xiě)狀態(tài)標(biāo)志 */ sbit ONCOMM=flag^1。 /*系統(tǒng)與上位機(jī)在通信狀態(tài)標(biāo)志 */ sbit RST=flag^2。 /*系統(tǒng)熱復(fù)位標(biāo)志 */ void startic(void) { sda=1。 scl=1。 delay(2)。 sda=0。 delay(6)。 /*scl 為高狀態(tài)下, sda 的下降沿跳變 啟動(dòng) */ scl=0。 delay(6)。 } void stopic(void) { sda=0。 scl=1。 delay(6)。 sda=1。 /*在 scl=1,sda 的 0到 1 跳變結(jié)束 */ delay(6)。 scl=0。 sda=0。 } void ackic(void) { sda=0。 delay(3)。 scl=1。 delay(3)。 scl=0。 sda=1。 } /*讀寫(xiě)節(jié)函數(shù),無(wú)應(yīng)答信號(hào) */ unsigned char rd24(void) { sda=1。 scl=1。a7=sda。scl=0。 scl=1。a6=sda。scl=0。 scl=1。a5=sda。scl=0。 scl=1。a4=sda。scl=0。 scl=1。a3=sda。scl=0。 scl=1。a2=sda。scl=0。 scl=1。a1=sda。scl=0。 scl=1。a0=sda。scl=0。 sda=1。scl=1。sci=0。 return(ACC)。 } /*寫(xiě)字節(jié)函數(shù) */ Void wd24(unsigned char dd) { ACC=dd。 sda=a7。scl=1。scl=0。 sda=a6。scl=1。scl=0。 sda=a5。scl=1。scl=0。 sda=a4。scl=1。scl=0。 sda=a3。scl=1。scl=0。 sda=a2。scl=1。scl=0。 sda=a1。scl=1。scl=0。 sda=a0。scl=1。scl=0。 sda=1。scl=1。 while(sda= =1)。 SCL=0。 } /*隨機(jī)地址讀字節(jié)函數(shù), address 為欲讀單元地址 */ { unchar x; startoc()。 wd24(0a0)。 wd24(address)。 startic()。 wd24(0a1)。 x=rd24()。 stopic()。 return(x)。 } /*從指定地址開(kāi)始順序讀塊地址數(shù)據(jù),數(shù)據(jù)存入全局緩沖區(qū) buf 中, n為數(shù)據(jù)字節(jié)數(shù) */ Uchar readbytes(uchar address,uchar n) { uchar a,y。 for(y=0。yn。y++) { A=readbuter(address+y)。 Buf[y]=a。 } } /**/ /*字節(jié)寫(xiě)入模式寫(xiě)函數(shù),其中阿對(duì) address 為單元地址, dd 為數(shù)據(jù) */ void wrirebyte(uchar address,uchar dd) { Startic()。 Wd24(0a0)。 Wd24(address)。 Wd24(dd)。 Stopic()。 } /*串行通信子程序 */ /*波特率 2400, 8位數(shù)據(jù)位, 1位停止位,無(wú)校驗(yàn)位 */ /*先用握手字節(jié) y,然后發(fā)送 x個(gè)數(shù)據(jù) */ /*待發(fā)送數(shù)據(jù)在 trdata 緩沖區(qū)中 */ Void m(uchar x,uchar y) { uchar i,a。 uint j。 while(1) { l1: while(RI= =0); RI=0; a=SBUF。 if(a!=y)goto l1。 for(i=0。ix。i++) { SBUF=trdata[i]。 While(T1= =0); TI=0; } For(j=0。j12500。j++)。 } } /*主程序初始化函數(shù) */ void init( void) { RST=0。 /*系統(tǒng)熱復(fù)位標(biāo)志清除,只有拔卡才能置位 */ PWR=1。 /*關(guān)閉 IC 卡電源 */ ICWR=0。 /*清有卡標(biāo)志 */ ONCOMM=0。 /*清正在通信標(biāo)志 */ EX0=1。 /*準(zhǔn)許 INT0 中斷 */ TMOD=0X20。 SCON=0X50。 /*串行口工作方式 */ TH1=0Xf3。TL1=0Xf3。 If(BAUD= =0) { PCON=0X80。 /*波特率設(shè)置為 2400*/ } else { PCON=0X00。 /*波特率設(shè)置為 4800*/ } TR1=1。 EA=1。 /*開(kāi)放中斷 */ } /*將緩沖區(qū)數(shù)據(jù) 16B發(fā)往上位機(jī) */ /*波特率 2400, 8位數(shù)據(jù)位, 1 位停止位,無(wú)校驗(yàn)位 */ /*待發(fā)送數(shù)據(jù)在 buf緩沖中 */ void transfer(void) { uchar I。 uint j。 for(i=0。i16。i++) { SBUF=buf[i]。 WHILE(TI= =0)。 TI=0。 for(j=0。j1000。j++)。 } } /*接收 16B 存入緩沖區(qū) */ /*波特率 2400, 8位數(shù)據(jù)位, 1 位停止位,無(wú)校驗(yàn) 位 */ /*緩沖區(qū)為 buf*/ void receive(void) { uchar i,a。 for(i=0。i16。i++) { while(RI= =0)。 RI=0。 a=SBUF。 buf[i]=a。 } } /*將緩沖區(qū)中的 n字節(jié)寫(xiě)入 IC 卡 address 開(kāi)始的區(qū)域 */ Void receive(void) { uchar x,y。 for(y=0。yn。y++) { Writbyte(address+y,buf[y])。 delay(10)。 /*寫(xiě)之間的延時(shí)時(shí)間間隔,以保證寫(xiě)入 */ } } /*拔卡中斷程序,主要完成 IC 卡下電及讀 /寫(xiě)器軟復(fù)位 */ void int0( void) interrupt 0 using 1 { while(! ICOUT)。 /* 延時(shí)去抖 */ delay(10)。 if(! ICOUT) /*確實(shí)拔卡則進(jìn)行以下處理 */ { If(ICWR|ONCOMM) { PWR=1; /*關(guān)閉 IC 卡電源 */ BELL=0; /*否則,蜂鳴一聲返回 */ delay(10)。 BELL=1。 RST=1。 /*設(shè)置熱復(fù)位標(biāo)志,以便熱復(fù)位 */ } } } /*延時(shí)函數(shù),延時(shí) ms 數(shù)由 N決定,但不同的系統(tǒng)需要調(diào)整相應(yīng)參數(shù) */ void delay(uchar n) { uchar i,j,k。 for(k=0。kn。k++) for(i=0; i〈 100; i++〉 for(j=0。j255。j++)。 } Void main(void) { uchar a。 fuwei: init()。 /*系統(tǒng)初始化 */ while(! ICIN)。 /*等待 IC 卡插入 */ delay(10)。 /*軟件去抖并等待 IC 卡穩(wěn)定 */ while(! ICIN)。 /*確認(rèn) IC 卡插入 */ ICwr=1。 /*設(shè)置讀 /寫(xiě)標(biāo)志(有卡,以便避免帶電插拔) */ /*開(kāi)始讀 IC卡 16B 并存入緩沖區(qū) */ PWR=0; /*IC 卡上電,以便讀卡 */ readbytes(0,16)。 PWR=1。 /*關(guān) IC 卡電源 */ /*等待與上位機(jī)建立通信聯(lián)系 */ ONCOMM=1; /*設(shè)置正在通信標(biāo)志 */ While(RI= =0)。 RI=0。 a=SBUF。 switch(a) { case 0xaa: SBUF=0xaa。 while(! TI)。 /*向上位機(jī)回送 AA*/ TI=0。 transfer()。 /*將緩沖區(qū)數(shù)據(jù)發(fā)往上位機(jī) */ break。 case 0xbb: SBUF=0xbb。 while(! TI)。 /*向上位機(jī)回送 BB*/ TI=0。 /*上位機(jī)在發(fā)送前必須適當(dāng)延時(shí),以等待下位機(jī)準(zhǔn)備好 */ receive()。 /*接收數(shù)據(jù)存放在緩沖區(qū) */ PWR=0。 /*IC 卡上電 */ writeic(0,16)。 /*將數(shù)據(jù)寫(xiě)入 IC 卡,并回讀比較*/ PWR=1; /*IC 卡下電 */ Break。 Default: SBUF=0Xcc。 /*如果握手信號(hào)不是 AA, BB,則 */ While(! TI)。 /*向上位機(jī)回送 CC*/ TI=0。 } ONCOMM=0。 /*清正在通信標(biāo)志 *
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1