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

正文內(nèi)容

基于at89c52單片機(jī)的無(wú)限密碼鎖設(shè)計(jì)-資料下載頁(yè)

2024-12-06 02:30本頁(yè)面

【導(dǎo)讀】品研制和開(kāi)發(fā)中首選的控制器。隨著人們生活水平的提高,如何實(shí)現(xiàn)防。性能低,無(wú)法滿(mǎn)足人們的需要,各種電子密碼鎖應(yīng)運(yùn)而生。存儲(chǔ)模塊,無(wú)線(xiàn)開(kāi)鎖模塊,所采用的編程語(yǔ)言是C語(yǔ)言。

  

【正文】 //指針?biāo)肝恢? for(count3=0。count316。count3++) { write_date(table1[count3])。 // 第一行顯示 INPUT THE PASSPORD: delay(5)。 } write_(0x80+0x40)。 for(count3=0。count316。count3++) { write_date(table2[count3])。 //開(kāi)機(jī)顯示 FFFFFFFF delay(5)。 } 存儲(chǔ)和讀出程序設(shè)計(jì) 本設(shè)計(jì)中數(shù)據(jù)的存儲(chǔ)芯片選用的是 AT24C04 ,該芯片是串行的EEPROM,支持 I2C 總線(xiàn)數(shù)據(jù) 傳送協(xié)議。 在本系統(tǒng)中主要用來(lái)做掉電存儲(chǔ)器 ,能將輸入的數(shù)據(jù)存入 AT24C04,也能從 AT24C04 中讀出, 程序流程圖如圖 45 所示。 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 27 圖 45 存儲(chǔ) 和讀出 程序流程圖 存儲(chǔ)程序核心程序代碼如下所示 。 sda=1。 delay(5)。 scl=1。 delay(5)。 for(i=0。i8。i++) { write_add(i,kk)。 delay2(100)。 } for(i=0。i8。i++) { mima[i]=read_add(i)。 delay(5)。 } 開(kāi)始 初始化 AT24C04 向 AT24C04 中寫(xiě)入要存儲(chǔ)數(shù)據(jù)據(jù) 延時(shí) 從 AT24C04 中讀出存儲(chǔ)數(shù)據(jù) 延時(shí) 結(jié)束 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 28 無(wú)線(xiàn)發(fā)送程序 設(shè)計(jì) 將無(wú)線(xiàn)模塊 NRF905 的一端設(shè)置成發(fā)送模式, 程序流程圖如圖 46 所示。 圖 46 無(wú)線(xiàn)發(fā)送程序 無(wú)線(xiàn)發(fā)送 程序核心程序代碼如下所示 。 void TxPacket(uchar tab_key) { uchar i。 //Config905()。 CSN=0。 SpiWrite(WTP)。 // Write payload mand SpiWrite(tab_key)。 // Write 32 bytes Tx data CSN=1。 Delay(1)。 // Spi disable CSN=0。 // Spi enable for write a spi mand SpiWrite(WTA)。 // Write address mand for (i=0。i4。i++) // Write 4 bytes address { 開(kāi)始 初始化 NRF905 設(shè)置成發(fā)送模式 發(fā)送數(shù)據(jù) 結(jié)束 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 29 SpiWrite(TxAddress[i])。 } CSN=1。 // Spi disable TRX_CE=1。 // Set TRX_CE high,start Tx data transmission Delay(1)。 // while (DR!=1)。 TRX_CE=0。 // Set TRX_CE low } 無(wú)線(xiàn)接收程序設(shè)計(jì) 將無(wú)線(xiàn)模塊 NRF905 的另一端設(shè)置成接收模式, 程序流程圖如圖 47 所示。 開(kāi) 始結(jié) 束開(kāi) 鎖報(bào) 警接 收 密 碼 正 確 ?NY初 始 化 n R F 9 0 5接 收 次 數(shù) 加 1次 數(shù) 3 ?N設(shè) 置 接 收 模 式Y(jié) 圖 46 無(wú)線(xiàn)接收程序 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 30 無(wú)線(xiàn)接收 程序核心程序代碼如下所示 。 void RxPacket(void) { uchar i。 Delay(1)。 // TRX_CE=0。 // Set NRF905 in standby mode Delay(100)。 TRX_CE=0。 CSN=0。 // Spi enable for write a spi mand Delay(1)。 SpiWrite(RRP)。 for (i = 0 。i 1 。i++) { TxRxBuf[i]=SpiRead()。 // Read data and save to buffer songyujing } CSN=1。 Delay(10)。 TRX_CE=1。 } 本章小結(jié) 本章主要對(duì)系統(tǒng)的軟件總體設(shè)計(jì)進(jìn)行了論述,并對(duì)各個(gè)功能進(jìn)行分別說(shuō)明, 分析了本系統(tǒng)在軟件部分所做的工作,給出了本系統(tǒng)各部分的程序流程圖以及核心程序代碼。 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 31 第 5章 系統(tǒng)調(diào)試 調(diào)試在整個(gè)設(shè)計(jì)系統(tǒng)占有很重要的位置,調(diào)試首先是測(cè)試整個(gè)系統(tǒng)中各個(gè)模塊的的軟硬件是否好使之后再進(jìn)行整 體連調(diào)看看各功能模塊是不是按照自己最初設(shè)計(jì)的方案下常運(yùn)行。 系統(tǒng)硬件調(diào)試 焊接是實(shí)現(xiàn)硬件電路連接最重要的一步,不僅要考慮器件的擺放位置的美觀性,還要考慮在放置一個(gè)器件時(shí)會(huì)不會(huì)對(duì)它附近的器件有干擾, 在焊接電路板之前,首先 要 對(duì)所用的器件進(jìn)行檢測(cè) (包括焊接電路時(shí)所使用的導(dǎo)線(xiàn)) ,確定器件都是正常后才能往電路板上焊接。在焊接的時(shí)候,要注意不要有虛焊出現(xiàn) ,如果不認(rèn)真的將每點(diǎn)焊好,就會(huì)出現(xiàn)虛焊的現(xiàn)象,到時(shí)只能用萬(wàn)用表每點(diǎn)的查,很是繁鎖。另外 在焊器件的時(shí)候,要一個(gè)一個(gè)模塊的去焊接,以方便焊完調(diào)試。確定無(wú)誤后才進(jìn)行下一個(gè)模 塊焊接。 在焊接時(shí)還要注意有些元器件是有正負(fù) 極性 的 ,焊接時(shí)候不要把正負(fù)極接錯(cuò),以免 上 電后出現(xiàn)短路 從而導(dǎo)致 芯片燒壞的情況。 當(dāng)整個(gè)電路焊接完成后,就需要對(duì)整個(gè)電路的連通性進(jìn)行檢測(cè),最常用的檢測(cè)方式是用萬(wàn)用表,看該連通的地方是否連通,不連通的地方是否存在連通的問(wèn)題,一定要在接通電源前仔細(xì)檢查,否則接通電源后某地方出現(xiàn)短路,會(huì)損毀器件。 最小系統(tǒng)的調(diào)試 為了確保最小系統(tǒng)的準(zhǔn)確無(wú)誤,首先用萬(wàn)用表對(duì)最小系統(tǒng)的各個(gè)引腳的連線(xiàn)情況進(jìn)行了檢查,保證各引腳的接線(xiàn)正常后編寫(xiě)了一段簡(jiǎn)單的測(cè)試單片機(jī)各引腳是否好使的程序,將 P0 口、 P1 口、 P2 口、 P3 口分別寫(xiě)入 0X55然后用萬(wàn)用表測(cè)試 P0- P3 口的各引腳輸出是不是 5V, 1V 跳變?cè)囷@示。對(duì)過(guò)簡(jiǎn)單的程序測(cè)試,證明最小系統(tǒng)是好使的 。 液晶模塊的調(diào)試 液晶模塊的調(diào)試主要是檢查液晶顯示器能是否正常工作,即能是否正常顯示字符。液晶的接線(xiàn)很簡(jiǎn)單, VSS 接地, VDD 接 +5V 電源, VL 接電位 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 32 器, RS 接 , R/W 接地, E 接 , D0- D7 接 - , BLA 接電源 BLK 接地,最初用萬(wàn)用表進(jìn)行檢查各條線(xiàn)路該導(dǎo)通的地方都導(dǎo)通,編寫(xiě)簡(jiǎn)單的在液晶上顯示字符的程序卻不能顯示,液晶只是亮藍(lán)光,多次 重新寫(xiě)入還是不能顯示,重新用萬(wàn)用表對(duì)硬件電路進(jìn)行檢查,發(fā)現(xiàn)其中有一第導(dǎo)線(xiàn)的連接處存在虛焊問(wèn)題。將焊點(diǎn)重新接好后再次將程序?qū)懭霑r(shí),液晶上能正常顯示以設(shè)置好的字符。 以下是簡(jiǎn)單的在液晶顯示器上顯示字符的程序 。 include sbit lcden=P3^0。 //LCD 使能端 sbit lcdrs=P3^2。 //LCD 數(shù)據(jù) /指令( H/L)選擇端 unsigned char mytable0[]=ABCDEF。 unsigned char mytable1[]=A handsome boy!!。 unsigned char num,num0,num1。 void delay(unsigned int z) //延時(shí)子函數(shù) z*1ms { unsigned int x,y。 for(x=z。x0。x) for(y=110。y0。y)。 } void write_(unsigned char c) //寫(xiě)命令子函數(shù) { lcdrs=0。 //低電平選擇為 寫(xiě)指令 P0=c。 //把指令寫(xiě)入 P0 口 delay(5)。 //參考時(shí)序圖 lcden=1。 //開(kāi)使能 delay(5)。 //讀取指令 lcden=0。 //關(guān)閉使能 } void write_data(unsigned char d) //寫(xiě)數(shù)據(jù)子函數(shù) { lcdrs=1。 //高 電平選擇為 寫(xiě)數(shù)據(jù) P0=d。 //把數(shù)據(jù)寫(xiě)入 P0 口 delay(5)。 //參考時(shí)序圖 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 33 lcden=1。 //開(kāi)使能 delay(5)。 //讀取數(shù)據(jù) lcden=0。 //關(guān)閉使能 } void initialize() //LCD 初始化函數(shù) { lcden=0。 write_(0x38)。 //設(shè)置 16x2 顯示, 5x7 點(diǎn)陣顯示, 8 位數(shù)據(jù)接 口 write_(0x0e)。 //00001DCB, D(開(kāi)關(guān)顯示 ), C(是否顯示光標(biāo) ),B(光標(biāo)閃爍,光標(biāo)不顯示 ) write_(0x01)。 //清屏指令 write_(0x06)。 //000001NS, N(地址指針 +1), S(每寫(xiě)完一個(gè)字符,整屏移動(dòng) ) } void main() { initialize()。 //初始化 LCD write_(0x80+0x10)。 //第一行,前頭空 5 格顯示 for(num0=0。num06。num0++) //顯示 6 個(gè)字符 { write_data(mytable0[num0])。 delay(10)。 } write_(0x80+0x50)。 //第二行,從第一格開(kāi)始顯示 for(num1=0。num116。num1++) //顯示 16 個(gè)字符 { write_data(mytable1[num1])。 delay(10)。 } for(num=0。num16。num++) { write_(0x1c)。 //0001(S/C)(R/L)**。 S/C :高電平移動(dòng)字符,低電平移動(dòng)光標(biāo); R/L:高電平左移,低電平右移 哈爾濱工業(yè)大學(xué) 華德應(yīng)用技術(shù)學(xué)院 畢業(yè)設(shè)計(jì) (論文) 34 delay(300)。 } while(1)。 } 鍵盤(pán)輸入部分的調(diào)試 為了減少 I/O 口的使用本系統(tǒng)使用的是 4*4 的矩陣 鍵盤(pán)輸入,在線(xiàn)連接好鍵盤(pán)模塊和液晶顯示模塊后, 同樣是編寫(xiě)了一個(gè)鍵盤(pán)輸入液晶顯示的程序, 經(jīng)過(guò) 多次 調(diào)試后并未出現(xiàn) 太大 問(wèn)題, 最終實(shí)現(xiàn)了液晶和鍵盤(pán)的通信 。 以下是部分 鍵盤(pán)掃描和顯示程序 。 void main() { initialize()。 //初始化 LCD write_(0x80)。 //第一行,前頭空 5 格顯示 for(num0=0。num016。num0++) //顯示 6 個(gè)字符 { write_data(mytable0[num0])。 delay(5)。 } write_(0x80+0x40)。 //第二行,從 第一格開(kāi)始顯示 for(num1=0。num116。num1++) //顯示 16 個(gè)字符 { write_data(mytable1[num1])。 delay(5)。 } while(1) { key_scan()。 write_(0x80+0x40+8)。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1