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

正文內(nèi)容

基于89c51電子密碼鎖設(shè)計(jì)附程序-在線瀏覽

2024-10-31 19:59本頁(yè)面
  

【正文】 不同。 ( 3) 矩陣鍵盤的控制實(shí)現(xiàn) 判斷 鍵盤 中有無鍵按下 將全部行線 Y0Y3置低電平,然后檢測(cè)列線的狀態(tài)。若所有列線均為高電平,則 鍵盤 中無鍵按下。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。 P2 = 0x0f。 Tmp = P2 ^ 0x0f。 break。 break。 break。 break。 } P2 = 0xf0。 Tmp = P2 4 ^ 0x0f。 break。 break。 break。 } Beep()。 } Keys_Scan()為鍵盤掃描程序首先讓 P2口高四位為 0,低四位為 1,。然后讓 P2口高四位為 1,低四位為 0,若有按鍵按下,則高四位中會(huì)有一個(gè) 1翻轉(zhuǎn)為 0,低四位不會(huì)變,此時(shí)即可確定被按下的鍵的行位置。 SCL=1。 _nop_()。 _nop_()。 SDA_EEPROM=0。 _nop_()。 _nop_()。 SCL=0。 _nop_()。 SCL=1。 _nop_()。 _nop_()。 SDA_EEPROM=1。 _nop_()。 _nop_()。 SCL=0。 _nop_()。 _nop_()。 SCL=1。 _nop_()。 _nop_()。 SCL=0。 _nop_()。 } void I2C_no_ackownledge(void) { SDA_EEPROM=1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 for(counter=0。counter++) { if(byteamp。 else SDA_EEPROM=0。 SCL=1。 _nop_()。 _nop_()。 第 11 頁(yè) 共 32 頁(yè) SCL=0。 _nop_()。 } _nop_()。 SDA_EEPROM=1。 _nop_()。 SCL=1。 _nop_()。 if(SDA_EEPROM==0)ack=1。 SCL=0。 _nop_()。 uchar counter。 SDA_EEPROM=1。 _nop_()。counter8。 _nop_()。 _nop_()。 SCL=1。 _nop_()。 else temp=temp1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 } bit I2C_send_string(uchar no,uchar address) { uchar counter。counterno。 I2C_sendB(C02_write)。 I2C_sendB(address+counter)。 I2C_sendB(UserPassword[counter])。 delay_ms(20)。 } //讀 EEPROMPassword bit I2C_receive_string(uchar no,uchar address) { uchar counter。counterno。 I2C_sendB(C02_write)。 I2C_sendB(address+counter)。 I2C_start()。 if(ack==0) return(0)。 I2C_no_ackownledge()。 } } 第 12 頁(yè) 共 32 頁(yè) ( 5) 紅外發(fā)射與接收部分: void EX0_ISR (void) interrupt 0 //外部中斷 1服務(wù)函數(shù) { static unsigned char i。 //是否開始處理標(biāo)志位 if(startflag) { if(irtime63amp。irtime=33)//引導(dǎo)碼 TC9012的頭碼, 9ms+ i=0。//存儲(chǔ)每個(gè)電平的持續(xù)時(shí)間,用于以后判斷是 0還是 1 irtime=0。 if(i==33) { irok=1。 } } else { irtime=0。 } } 紅外接收占用了一個(gè)外部中斷,一個(gè)定時(shí)器 0。 break。 break。 break。 break。 break。 break。 break。 break。 break。 break。 break。 break。 } IRcord[0]=0。 //清除輸入數(shù)據(jù) IRcord[2]=0。 //清除輸入數(shù)據(jù) irpro_ok=0。 unsigned char cord,value。 for(i=0。i++) //處理 4個(gè)字節(jié) { for(j=1。j++) //處理 1個(gè)字節(jié) 8位 { cord=irdata[k]。 if(j8) { value=1。 } IRcord[i]=value。 } irpro_ok=1。檢查按鍵無故障、導(dǎo)線無斷線、連線接頭無互相搭聯(lián)后可先寫一個(gè)軟件調(diào)試程序,依次檢查按鍵鍵盤,繼電器,蜂鳴器, LCD1602 液晶屏和紅外遙控的控制程序;若未正常工作,則可能是連線接錯(cuò)。 二)、軟件調(diào)試: 本系統(tǒng)的軟件系統(tǒng)很大,全部采用 C語言編寫,除語法與邏輯差錯(cuò)外, 當(dāng)確認(rèn)程序沒問題時(shí),直接下載到單片機(jī)仿真調(diào)試。 在整個(gè)程序的編寫過程中,研究每個(gè)子程序是否好使,我是通過 Keil C 和proteus 兩個(gè)軟件來實(shí)現(xiàn)的。 Keil C 則幫助我檢查程序是否存在語法錯(cuò)誤之類的問題,還可以生成 hex 文件,供 proteus 軟件仿真使用。最后交通燈的大部分功能都已經(jīng)基本實(shí)現(xiàn),所以進(jìn)行編程調(diào)試了, 硬 件和軟件都能按設(shè)計(jì)要求實(shí)行個(gè)功能。 我們首先從設(shè)計(jì)仿真著手,使用仿真軟件進(jìn)行仿真,進(jìn)行電路的排布,編寫程序,查找搜集資料,通過在圖書館以及在網(wǎng)絡(luò)上的查詢,找到與設(shè)計(jì)有關(guān)電路以及 C語言與單片機(jī)仿真的資料,熟悉并理解各單元電路、元器件的工作原理和基本應(yīng)用及各集成塊的引腳圖和各引腳 的邏輯功能,學(xué)習(xí)知識(shí)與軟件,掌握 C語言與單片機(jī)串行通信技術(shù)的基本原理。運(yùn)用所學(xué)知識(shí)構(gòu)建電路圖,使用虛擬串口對(duì)硬件電路進(jìn)行仿真調(diào)試。 第 15 頁(yè) 共 32 頁(yè) 通過這次的電子設(shè)計(jì)課程,讓我們認(rèn)識(shí)到了一些自己的不足和缺點(diǎn)。這些對(duì)我們以后的學(xué)習(xí)有著很大的幫助,我們很 高興在這次的設(shè)計(jì)中讓我們學(xué)習(xí)到更多的知識(shí)。在電路的設(shè)計(jì)過程程中要求我們要考慮到整個(gè)電路設(shè)計(jì)方案的完整性和合理性。如果只是這一個(gè)元件參數(shù)的設(shè)計(jì)還是比較好做的,但是整個(gè)電路的元件參數(shù)總體設(shè)計(jì)下來可就不是那么的容易了,所以在電子設(shè)計(jì)過程中,我們總結(jié)一定要膽大心細(xì):對(duì)電子產(chǎn) 品功能、電路實(shí)現(xiàn)要敢于創(chuàng)新,在實(shí)施計(jì)劃時(shí)要細(xì)致謹(jǐn)慎,只有這樣,才能提高團(tuán)隊(duì)以及個(gè)人的創(chuàng)新實(shí)踐能力。我們的團(tuán)隊(duì)需要一個(gè)在關(guān)鍵時(shí)刻能夠果斷決策的帶頭人,同時(shí)整個(gè)團(tuán)隊(duì)的每個(gè)成員都要學(xué)著做一個(gè)聆聽者,虛心接受組員的意見與建議,這樣,才能讓整個(gè)團(tuán)隊(duì)在有限的時(shí)間內(nèi)創(chuàng)造出無限的價(jià)值。 八、 參考文獻(xiàn): [1] 馮育長(zhǎng) . 單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)例分析 [M],西安:西安電子科技大學(xué)出版社, 2020 [2] 付家才 . 單片機(jī)控制工程實(shí)踐技術(shù) [M],北京:化學(xué)工業(yè)出版社, 2020 [3] 李曉靜 . 液晶顯示控制器與單片機(jī)的接口及編程 [J],電子技術(shù), 2020 [4] 潘新民,王艷芳 . 微型計(jì)算機(jī)控制技術(shù) [M],北京:電子工業(yè)出版社,2020 [5] 朱清慧,張鳳蕊 等 . Proteus 教程 —— 電子線路設(shè)計(jì)、制版與仿真 [M],北京:清華大學(xué)出版社, 2020 [6] 徐科軍 . 傳感器與檢測(cè)技術(shù) [M],北京:電子工業(yè)出版社, 2020 第 16 頁(yè) 共 32 頁(yè) 附錄: Proteus圖 第 17 頁(yè) 共 32 頁(yè) 附錄:程序 include include include define uint unsigned int define uchar unsigned char // sbit BEEP=P3^0。 sbit rs = P3^5。 //1602 液晶 sbit lcden = P3^7。 //時(shí)鐘 sbit SDA_EEPROM=P3^3。 bit dd。 //IIC 密碼 uchar DSY_BUFFER[8]=。 //使用者密碼 uchar TwoPassword[8]=。 //使用者密碼 uchar KeyNo =16。 //紅外接口標(biāo)志 char code Tab[16]=0123456789ABCDEF。//紅外用全局變量 bit irpro_ok,irok。 unsigned char irdata[33]。 void Ircordpro(void)。 for(x=z。x) for(y=120。y)。 lcden=0。 delayms(1)。 delayms(2)。 } void write_date(uchar date) //1602 液晶寫數(shù)據(jù) { rs=1。 P1=date。 lcden=1。 lcden=0。 wela=0。 write_(0x38)。 write_(0x06)。 write_(0x80)。} //第一行 else{write_(0xC0 + x)。 s++。 //用于計(jì)數(shù) 2 個(gè)下降沿之間的時(shí)間 } void EX0_ISR (void) interrupt 0 //外部中斷 1 服務(wù)函數(shù) { static unsigned char i。 //是否開始處理標(biāo)志位 if(startflag) { if(irtime63amp。irtime=33)//引導(dǎo)碼 TC9012 的頭碼, 9ms+ i=0。//存儲(chǔ)每個(gè)電平的持續(xù)時(shí)間,用于以后判斷是 0 還是 1 irtime=0。 if(i==33) { irok=1。 } } else { irtime=0。 } } void TIM0init(void)//定時(shí)器 0 初始化 { TMOD=0x02。 //重載值 TL0=0x00。 //開中斷 TR0=1。 //指定外部中斷 1 下降沿觸發(fā), INT0 () EX0 = 1。 //開總中斷 } void Ir_work(void) { switch(IRcord[2]) 第 20 頁(yè) 共 32 頁(yè) { case 0x16: KeyNo = 0。//遙控按鍵 0 case 0x0c: KeyNo = 1。//遙控按鍵 1 case 0x18: KeyNo = 2。//遙控按鍵 2 case 0x5e: KeyNo = 3。//遙控按鍵 3 case 0x08: KeyNo = 4。//遙控按鍵 4 case 0x1c: KeyNo = 5。//遙控按鍵 5 case 0x5a: KeyNo = 6。//遙控按鍵 6 case 0x42: KeyNo = 7。//遙控按鍵 7 case 0x52: KeyNo = 8。//遙控按鍵 8 case 0x4a: KeyNo = 9。//遙控按鍵 9 case 0x19: KeyNo = 10。//遙控按鍵 100+ case 0x0d: KeyNo = 11。//遙控按鍵 200+ case 0x15: KeyNo
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1