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

正文內(nèi)容

課程設(shè)計(jì)-基于at89s52單片機(jī)的液晶顯示電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2024-12-20 09:49 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 能 11 重定位處跳轉(zhuǎn)過(guò)來(lái)的,應(yīng)重啟程序。以下幾個(gè)按鍵的處理程序段開(kāi)頭也有類(lèi)似的 BUFF 值檢測(cè),不再做贅述。 如果密碼長(zhǎng)度小于等于 2,則密碼太短,不進(jìn)行任何比較,直接清空緩沖區(qū)重新檢測(cè),可節(jié)省程序運(yùn)行時(shí)間。 開(kāi)鎖鍵處理 該程序段是程序識(shí)別到開(kāi)鎖鍵被按下后的流程,如圖 46 所示。此段并不需校驗(yàn)密碼,這里只需檢查密碼正確標(biāo)志位PSW_F 的狀態(tài)。如果 PSW_F=1,則前面輸入的密碼正確,可以開(kāi)鎖。 如果 PSW_F=0,說(shuō)明密碼錯(cuò)誤,甚至根本沒(méi)有校驗(yàn)密碼 (輸入密碼后沒(méi)有按確認(rèn)鍵,或者直接按下開(kāi)鎖鍵 ),此時(shí)提示用戶(hù)密碼錯(cuò)誤,無(wú)法開(kāi)鎖。 開(kāi)鎖過(guò)程就是將 口置 0,繼電器得到低電平就會(huì)自動(dòng)吸合,點(diǎn)亮發(fā)光二極管;可以配合液晶顯示器和蜂鳴器發(fā)聲,提示用戶(hù)鎖已被打開(kāi)。整個(gè)過(guò)程可持續(xù)若干時(shí)間,然后 口置 1,清空密碼緩沖區(qū),標(biāo)志位PSW_F 清 0,重新檢測(cè)新的按鍵。 改密鍵處理 如圖 47,可以看出,改密鍵的處理流程跟開(kāi)鎖鍵類(lèi)似,都需檢查密碼正確的標(biāo)志位,只有 PSW_F 被置 1才可以進(jìn)行改密 。不同之處在于,如果密碼正確,程序會(huì)將新密碼第一次的標(biāo)志位 PS_NEW1 置位,這樣在下一次按確認(rèn)鍵時(shí),程序可以判別出此次輸入的密碼是新密碼第一次。 校驗(yàn)新密碼 新密碼的校驗(yàn)用于當(dāng)新密碼第二次的標(biāo)志位 PS_NEW2=1 時(shí),按下確認(rèn)鍵后程序判定當(dāng)前新密碼已經(jīng)輸入兩次,繼而執(zhí)行新密碼校驗(yàn),即判斷兩次輸入的新密碼是否一致。 如圖 48 所示,校驗(yàn)兩次輸入的新密碼是否一致的方法仍然是調(diào)用密碼校驗(yàn)子程序段。然后查詢(xún)密碼正確標(biāo)志位 PSW_F,如果 PSW_F=1,則表明兩次輸入的新密碼一致,可以修改密碼,即可調(diào)用 AT24C02 寫(xiě)子程序保存新密碼。若 PSW_F=0,則兩次輸入不一致,無(wú)法修改密碼;程序提示密碼修改失敗,清空密碼緩沖區(qū),重新測(cè)試按鍵。 因?yàn)樾旅艽a寫(xiě)入存儲(chǔ)器的過(guò)程可能發(fā)生異常,故寫(xiě)入后馬上調(diào)用 AT24C02 讀子程序讀出密碼,然后調(diào)用密碼校驗(yàn)子程序進(jìn)行對(duì)比,即可判斷密碼是否被正確寫(xiě)入。如果 PSW_F=1,則密碼寫(xiě)入無(wú)誤,才提示用戶(hù)修改密碼成功。如果 PSW_F=0,則表明讀出的密碼跟要用戶(hù)準(zhǔn)備修改的密碼不一致,密碼修改異常。此時(shí)程序可嘗試調(diào)用AT24C02 寫(xiě)子程序重新寫(xiě)一遍,再次讀出并對(duì)比。若仍然不一致,則只 能調(diào)用系統(tǒng)初試密碼,這個(gè)密碼是系統(tǒng)最初寫(xiě)入單片機(jī) ROM 內(nèi)部的密碼,僅在 AT24C02 無(wú)法正常讀寫(xiě)的時(shí)候啟用。 系統(tǒng)相關(guān)子程序 跳轉(zhuǎn)初始化 程序出錯(cuò) 開(kāi)始 BUFF=F1? 否 是 密碼正確? 否 是 跳轉(zhuǎn) 至 按鍵測(cè)試 開(kāi)鎖 提示密碼錯(cuò)誤 清空密碼緩沖區(qū) 圖 46 開(kāi)鎖鍵處理流程圖 跳轉(zhuǎn)初始化 程序出錯(cuò) 開(kāi)始 BUFF=F2? 否 是 密碼正確? 否 是 跳轉(zhuǎn)至 按鍵測(cè)試 提示輸入新密碼 提示密碼錯(cuò)誤 清空密碼緩沖區(qū) 圖 47 改密鍵處理流程圖 12 按鍵識(shí)別子程序 按鍵識(shí)別子程序的功能是行列掃描矩陣鍵盤(pán)并識(shí)別按鍵送入 BUFF 值,如圖 49 所示。盡管進(jìn)入子程序的前提條件是按鍵檢測(cè)子程序檢測(cè)到有按鍵被按下,但掃描前仍再次調(diào)用按鍵檢測(cè)子程序;因?yàn)槿藶榘存I的速度再快也會(huì)持續(xù)幾十毫秒,遠(yuǎn)遠(yuǎn)低于程序的處理速度,所以若是用戶(hù)正常按下按鍵,此處的按鍵檢測(cè)子程序仍可檢測(cè)到。此處調(diào)用按鍵檢測(cè)子程序可以防止因按鍵抖動(dòng)產(chǎn)生的不必要識(shí) 別。 前面提到,薄膜按鍵沒(méi)有上拉電阻,掃描行列之前需先給行列寫(xiě) 1。程序的處理方法是在讀行線(xiàn)之前先給 P1口低 4 位送高電平,然后再讀 P1口低 4 位;被按下的按鍵所在行高電平會(huì)因?yàn)樾辛袑?dǎo)通,高電平被拉低;故 P1口低 4 位中低電平所在行就是被按下的行。同理,在讀列線(xiàn)之前先給 P1口高 4 位送高電平,然后再讀出,低電平所在的列就是被按下的列。 確定 BUFF 初值的方法是行掃描時(shí)送該行第一個(gè)按鍵的值入 BUFF, 4 行的首個(gè)按鍵鍵值分別為 00H, 04H,08H, 0CH。然后在列掃描時(shí)給 BUFF 加上按鍵所在列的值,分別加 00H, 01H, 02H, 03H。即可得到 BUFF 初值。至于 BUFF 的重賦值,則在按鍵重定位中根據(jù)初值對(duì)應(yīng)修改。 液晶顯示子程序 液晶顯示子程序在每次更新顯示內(nèi)容時(shí)都會(huì)被調(diào)用,其流程如圖 410 所示。 每次更新顯示內(nèi)容前,需清顯示清空 LCD 原先的顯示內(nèi)容,清屏指令的指令碼為 01H,即將 P0口賦值 01H,然后寫(xiě)入指令寄存器 IR。 LCD1602 要顯示的內(nèi)容是根據(jù)其控制器內(nèi)置的字符碼表,事先列出要顯示的 ASCII 字符串。每次送一個(gè)字符的 ASCII 碼入 P0口,然后寫(xiě)入數(shù)據(jù)寄存器 DR,最后將字符地址加一, LCD1602 會(huì)將寫(xiě)入的 ASCII 碼對(duì)應(yīng)的字符依次顯示出來(lái)。由于顯示字符串的長(zhǎng)度不盡相同,約定每串字符以 00H 結(jié)尾;程序檢測(cè)到字符碼為 00H 時(shí),即停止寫(xiě)入,返回。 LCD 顯示的內(nèi)容在下次更新前會(huì)一直保持。 AT24C02 子程序 AT24C02 的子程序包括從 AT24C02 中讀取信息和將信息寫(xiě)入 AT24C02,首先介紹 AT24C02 的讀程序。 如圖 411 所示,單片機(jī)作為主器件,發(fā)送起始信號(hào)和要尋址的從器件的地址;因?yàn)榇藭r(shí)即隨后的發(fā)送讀取地址操作都是單片機(jī)往 AT24C02 寫(xiě)入控制信息,所以 R/W 要置 0。本設(shè) 計(jì)中只用一個(gè) AT24C02,從器件地址為 0,對(duì)應(yīng)代碼為 0A0H。 AT24C02 接收到信號(hào)后,發(fā)送應(yīng)答信號(hào)。單片機(jī)接收到應(yīng)答信號(hào)后,再發(fā)送要讀取信息在從器件上的地址;本設(shè)計(jì)中從 0 地址開(kāi)始讀,則送 00H。再次接收到從器件的應(yīng)答信號(hào)后,單片機(jī)重新發(fā)送起始信號(hào)和讀模式信號(hào),將 R/W 位置 1,對(duì)應(yīng)代碼為 0A1H,正式開(kāi)始讀取信息。本設(shè)計(jì)中需要連續(xù)讀取 16 字節(jié)的信息,所以選擇連續(xù)讀方式;即是單片機(jī)每接收到一字節(jié)的信息后,存入正確密碼緩沖區(qū) (AT1~AT16),然后產(chǎn)生一個(gè)應(yīng)答信號(hào),告知 AT24C02 要求更多的數(shù)據(jù)。當(dāng)單片 機(jī)不發(fā)送應(yīng)答信號(hào)而發(fā)送停止信號(hào)時(shí)表示讀取結(jié)束。 寫(xiě)入 AT24C02的子程序流程如圖 412所示。單片機(jī)發(fā)送起始信號(hào),接著發(fā)送從器件 AT24C02所在地址 (0A0H)。這里與讀 AT24C02 子程序不同的是,從開(kāi)始到結(jié)束都是單片機(jī)控制 AT24C02 寫(xiě)入信息,所以 R/W 置 1 無(wú)需更改。對(duì)應(yīng)地址上的從器件 AT24C02 接收到地址信號(hào)后發(fā)送應(yīng)答信號(hào)。主器件在接收到應(yīng)答信號(hào)后,發(fā)送要寫(xiě)入信息欲保存在從器件上的地址,本設(shè)計(jì)中從 0 地址開(kāi)始保存,故地址為 00H。單片機(jī)再次接收到從器件的應(yīng)答信號(hào)后即可開(kāi)始寫(xiě)入信息。本設(shè)計(jì)中采用 字節(jié)寫(xiě)模式,即 AT24C02 在每接收一個(gè) 8 位字節(jié)之后響應(yīng)一個(gè)應(yīng)答信號(hào),單片機(jī)在接收到應(yīng)答信號(hào)后認(rèn)為該字節(jié)成功寫(xiě)入,便準(zhǔn)備下一字節(jié)的數(shù)據(jù)。直到所有數(shù)據(jù)發(fā)送完畢,單片機(jī)發(fā)送停止信號(hào),結(jié)束寫(xiě)操作。 5 系統(tǒng)調(diào)試與測(cè)試 系統(tǒng)的軟硬件設(shè)計(jì)都完成后,還不能直接上電運(yùn)行;需要對(duì)系統(tǒng)進(jìn)行詳細(xì)的調(diào)試,以消除在設(shè)計(jì)過(guò)程中出現(xiàn)的各種錯(cuò)誤。單片機(jī)系統(tǒng)的硬件調(diào)試和軟件調(diào)試是不能分開(kāi)的,很多硬件錯(cuò)誤是在軟件調(diào)試中被發(fā)現(xiàn)和糾正的。 13 但通常是先排除明顯的硬件故障以后,再和軟件結(jié)合起來(lái)調(diào)試以進(jìn)一步排除故障。所以硬件的調(diào)試是基礎(chǔ),如果硬件調(diào)試不 通過(guò),軟件設(shè)計(jì)則是無(wú)從做起。 當(dāng)硬件設(shè)計(jì)從布線(xiàn)到焊接安裝完成之后,就開(kāi)始進(jìn)入硬件調(diào)試階段。首先應(yīng)該確認(rèn)電源電壓是否正常,用電壓表測(cè)量接地引腳跟電源引腳之間的電壓,看是否是電源電壓。接下來(lái)就是檢查復(fù)位引腳電壓是否正常。分別測(cè)量按下復(fù)位按鈕和放開(kāi)復(fù)位按鈕的電壓值,看是否正確。然后再檢查晶振是否起振了,一般用示波器來(lái)看晶振引腳的波形,注意應(yīng)該使用示波器探頭的“ X10”檔。另一個(gè)辦法是測(cè)量復(fù)位狀態(tài)下的 IO 口電平,按住復(fù)位鍵不放,然后測(cè)量 IO 口 (沒(méi)接外部上拉的 P0口除外 )的電壓,看是否是高電平,如果不是高電平,則多半 是因?yàn)榫д駴](méi)有起振。另外還要注意的地方是,如果使用片內(nèi) ROM 的話(huà),一定要將 EA 引腳拉高,否則會(huì)出現(xiàn)程序亂跑的情況。如果系統(tǒng)運(yùn)行不穩(wěn)定的話(huà),有時(shí)是因?yàn)殡娫礊V波不好導(dǎo)致的。在單片機(jī)的電源引腳跟地引腳之間接上一個(gè) 的電容會(huì)有所改善。如果電源沒(méi)有濾波電容的話(huà),則需要再接一個(gè)更大濾波電容,例如 220uF 的。遇到系統(tǒng)不穩(wěn)定時(shí),就可以并上電容,越靠近芯片越好。 系統(tǒng)的鍵盤(pán)輸入電路,蜂鳴器發(fā)聲電路, AT24C02 密碼存儲(chǔ)電路,繼電器開(kāi)鎖電路,液晶顯示電路,這幾個(gè)部分在檢查硬件無(wú)誤后,需要結(jié)合軟件調(diào)試??删帉?xiě)單獨(dú)控制 某一部分的程序,運(yùn)行看是否可以正確控制。如蜂鳴器發(fā)聲電路,可編寫(xiě)程序控制單片機(jī) 口電平,上電運(yùn)行看是否正常發(fā)聲。一些無(wú)法直接觀(guān)測(cè)出運(yùn)行效果的電路,如鍵盤(pán)輸入電路和密碼存儲(chǔ)電路,則需結(jié)合液晶顯示器調(diào)試。如鍵盤(pán)輸入電路,需加上按鍵顯示程序顯示被按下按鍵的 BUFF 值。 6 結(jié)論 本設(shè)計(jì)利用單片機(jī) AT89S52 作為主控芯片,配合液晶顯示器 LCD1602,串行傳輸存儲(chǔ)器 AT24C02, 4*4 矩陣薄膜鍵盤(pán),蜂鳴器,繼電器以及其他外圍電路,用單片機(jī)匯編語(yǔ)言編寫(xiě)的控制程序,成功設(shè)計(jì)出一款利用密碼開(kāi)鎖,可以隨時(shí)改密 ,豐富聲光提示信息,具有適用價(jià)值的電子密碼鎖。本系統(tǒng)發(fā)揮出單片機(jī)應(yīng)有的價(jià)值,完成了電子密碼鎖的基礎(chǔ)功能。利用單片機(jī)控制矩陣鍵盤(pán)輸入密碼,液晶顯示器顯示英文字符,繼電器開(kāi)鎖,蜂鳴器發(fā)聲等部件都運(yùn)轉(zhuǎn)良好,密碼鎖運(yùn)行的效果也可以正確呈現(xiàn)。 附 錄 。電子密碼鎖 匯編 源代碼 。******************************** BUFF EQU 6FH 。當(dāng)前輸入的密碼 TIMERS2 EQU 6EH 。密碼輸入錯(cuò)誤的次數(shù) TIMERS EQU 6DH 。輸入數(shù)字的位數(shù) 。密碼輸入緩沖區(qū) PS1 EQU 6CH PS2 EQU 6BH PS3 EQU 6AH PS4 EQU 69H PS5 EQU 68H PS6 EQU 67H PS7 EQU 66H PS8 EQU 65H PS9 EQU 64H PS10 EQU 63H PS11 EQU 62H PS12 EQU 61H PS13 EQU 60H PS14 EQU 5FH PS15 EQU 5EH PS16 EQU 5DH 。AT24C02 讀取緩沖區(qū) AT1 EQU 5CH AT2 EQU 5BH AT3 EQU 5AH AT4 EQU 59H AT5 EQU 58H AT6 EQU 57H AT7 EQU 56H AT8 EQU 55H AT9 EQU 54H AT10 EQU 53H AT11 EQU 52H AT12 EQU 51H AT13 EQU 50H AT14 EQU 4FH AT15 EQU 4EH AT16 EQU 4DH 。新密碼輸入緩沖區(qū) NEW1 EQU 4CH NEW2 EQU 4BH NEW3 EQU 4AH NEW4 EQU 49H NEW5 EQU 48H NEW6 EQU 47H NEW7 EQU 46H NEW8 EQU 45H NEW9 EQU 44H NEW10 EQU 43H NEW11 EQU 42H NEW12 EQU 41H NEW13 EQU 40H NEW14 EQU 3FH NEW15 EQU 3EH NEW16 EQU 3DH PS_NEW1 BIT 20H 。新密碼第一次標(biāo)志位 PS_NEW2 BIT 21H 。新密碼第二次標(biāo)志位 PSW_F BIT 22H 。密碼是否正確的標(biāo)志位 RD_F BIT 23H 。讀取密碼是否成功標(biāo)志 WR_F BIT 24H 。寫(xiě)入密碼是否成功標(biāo)志 。LCD1602 控制位 E BIT 。使能端 ,讀操作時(shí),高電平 14 有效 。寫(xiě)操作時(shí) ,下降沿有效 RW BIT 。讀操作為 0,寫(xiě)操作為 1 RS BIT 。寄存器選擇輸入端 。AT24C02 控制位 SCL BIT SDA BIT ORG 0000H AJMP START ORG 0030H 。******************************** START: 。初始化 MOV SP, 70H MOV TMOD, 11H MOV TH0, 3CH MOV TL0, 0B0H MOV TH1, 3CH MOV TL1, 0B0H MOV P0,01H 。清除屏幕 ,地址計(jì)數(shù)器AC=0,自動(dòng)增一模式 LCALL ENABLE MOV P0,38H 。8 位數(shù)據(jù)總線(xiàn) ,顯示兩行 LCALL ENABLE MOV P0,38H LCALL ENABLE MOV P0,38H LCALL ENABLE MOV P0,06H 。顯示模式 ,AC 自動(dòng)增一 ,顯示不位移 LCALL ENABLE MOV P0,0CH 。開(kāi)顯示 ,不顯示光標(biāo)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1