版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì)課 程 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 題 目 電子密碼鎖設(shè)計(jì) 院 系 電子科學(xué)學(xué)院 專業(yè)班級(jí) 學(xué)生姓名 學(xué)生學(xué)號(hào) 指導(dǎo)教師 2011年3月 18 日課程設(shè)計(jì)任務(wù)書(shū)課程 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)題目 電子密碼鎖設(shè)計(jì) 專業(yè)班級(jí) 姓名 學(xué)號(hào) 一、設(shè)計(jì)目的:訓(xùn)練學(xué)生綜合運(yùn)用己學(xué)課程的基本知識(shí),獨(dú)立進(jìn)行單片機(jī)應(yīng)用技術(shù)開(kāi)發(fā)工作,掌握單片機(jī)程序設(shè)計(jì)、調(diào)試,應(yīng)用電路設(shè)計(jì)、分析及調(diào)試檢測(cè)。二、設(shè)計(jì)要求:1. 應(yīng)用mcs-51單片機(jī)設(shè)計(jì)電子密碼鎖電路;2. 電子密碼鎖電路選用8位控制,連續(xù)三次輸入錯(cuò)誤密碼,密碼鎖輸出報(bào)警信號(hào),輸入正確密碼解除報(bào)警;3. 硬件設(shè)計(jì)根據(jù)設(shè)計(jì)的任務(wù)選定合適的單片機(jī),根據(jù)控制對(duì)
2、象設(shè)計(jì)接口電路。設(shè)計(jì)的單元電路必須有工作原理,器件的作用,分析和計(jì)算過(guò)程;4. 軟件設(shè)計(jì)根據(jù)電路工作過(guò)程,畫(huà)出軟件流程圖,根據(jù)流程圖編寫(xiě)相應(yīng)的程序,進(jìn)行調(diào)試并打印程序清單;5. 原理圖設(shè)計(jì)根據(jù)所確定的設(shè)計(jì)電路,利用protel等有關(guān)工具軟件繪制電路原理圖、pcb板圖、提供元器件清單。三、參考資料:1 單片微型計(jì)算機(jī)與接口技術(shù),李群芳、黃建編著,電子工業(yè)出版社;2 單片機(jī)原理及應(yīng)用,張毅剛編著,高等教育出版社;3 51系列單片機(jī)及c51程序設(shè)計(jì),王建校,楊建國(guó)等編著,科學(xué)出版社;4 單片機(jī)原理及接口技術(shù),李朝青編著,北京航空航天大學(xué)出版社;完成期限 2011.3.142011.3.18 指導(dǎo)教師
3、 專業(yè)負(fù)責(zé)人 2011年 3 月 13 日一、概述電子鎖應(yīng)用: 目前人們對(duì)與家庭的安全普遍都是使用防盜門(mén),由于每個(gè)防盜門(mén)都需要鑰匙進(jìn)行開(kāi)鎖,對(duì)于房鑰匙的管理,總是令人頭疼。又要保證要用的人有鑰匙,又要擔(dān)心鑰匙的丟失。由于管理鑰匙的原因,經(jīng)常人們因?yàn)閬G失鑰匙而造成不可估量的經(jīng)濟(jì)損失。如何更好的對(duì)家庭安全進(jìn)行管理呢?只有對(duì)目前防盜門(mén)的鎖進(jìn)行改變,將目前的機(jī)械鎖改變?yōu)殡娮渔i。通過(guò)這種改進(jìn),除了可以方便的進(jìn)出門(mén),還能夠加強(qiáng)房間的安全,方便自己允許的人進(jìn)入。設(shè)計(jì)思路: 通過(guò)單片機(jī)管理外部輸入的密碼與內(nèi)部設(shè)定密碼的對(duì)應(yīng)與否決定是否開(kāi)關(guān)門(mén)。主要分成下面幾個(gè)部分: 外部輸入系統(tǒng) 門(mén)鎖系統(tǒng) at89c51主要器
4、件包括:at89c51、lcd1602、12m晶振、光電耦合器(擴(kuò)展)、電阻若干、電容若干。主要模塊:?jiǎn)纹瑱C(jī)最小系統(tǒng)、按鍵輸入系統(tǒng)、lcd顯示系統(tǒng)、光電耦合控鎖系統(tǒng)(擴(kuò)展)二、電路設(shè)計(jì)最小系統(tǒng): 主要包括晶振電路與復(fù)位電路。按鍵系統(tǒng): 主要包括按鍵電路與74ls11電路lcd顯示系統(tǒng):主要包括lcd顯示電路與電位器調(diào)節(jié)偏壓電路仿真電路圖:三、器件評(píng)價(jià)at89c51:at89c51是一個(gè)低功耗,高性能cmos 8位單片機(jī),片內(nèi)含8k字節(jié)flash可擦寫(xiě)存儲(chǔ)器(perom)。at89c52器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)80c51和80c52指令集及引腳布局,at89
5、c52的片內(nèi)flash允許程序存儲(chǔ)器通過(guò)傳統(tǒng)編程器反復(fù)編程。由于芯片內(nèi)集成了通用8位中央處理器和flash存儲(chǔ)單元,功能強(qiáng)大的微處理器atmel at89c52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高度靈活、高性價(jià)比的解決方案。 at89c51具有如下特點(diǎn):8k bytes flash存儲(chǔ)器、256 bytes的ram、32個(gè)i/o口、3個(gè)16位定時(shí)/計(jì)數(shù)器,6個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷、1個(gè)全雙工串行通信口、片內(nèi)時(shí)鐘振蕩器。 此外,at89c52設(shè)計(jì)和配置了振蕩頻率可為0hz并可通過(guò)軟件設(shè)置省電模式。at89c52在空閑模式下,cpu暫停工作,而ram、定時(shí)/計(jì)數(shù)器、串行口和外中斷系統(tǒng)可繼續(xù)工作,
6、掉電模式凍結(jié)振蕩器并保存ram的數(shù)據(jù),停止芯片其它功能直至硬件復(fù)位。lcd1602:1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(cgrom)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“a”的代碼是01000001b(41h),顯示時(shí)模塊把地址41h中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“a”。 (1602顯示地址)74ls11:74ls11是三與門(mén)芯片,一共有14個(gè)引腳,一共可以有3個(gè)輸出,引腳圖如下:四、程序設(shè)計(jì)lcm_rs bit p3.7 ;/定義接口lcm_rw bit p3.
7、6lcm_e bit p3.5lcm_data equ p1 ;數(shù)據(jù)接口jian equ p2 ;按鍵接口org 0000h ;從0000h處開(kāi)始sjmp main ;跳轉(zhuǎn)到main處org 0003h ;外部0中斷l(xiāng)jmp jianweiorg 0030h ;主程序從0030h處開(kāi)始main:mov sp,#70h ;初始化堆棧指針指向70hsetb ie0setb ex0mov r1,#00hmov r2,#00hmov r3,#00hmov r4,#00hmov r5,#00hmov r6,#00hmov ie,#81hlcall initial ;調(diào)用啟動(dòng)lcm子程序進(jìn)行初始化lcal
8、l cls ;調(diào)用清除lcm子程序mov a,#80h ;向a送立即數(shù)80h設(shè)定顯示地址為第一行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line1 ;將第一行字符串的啟始地址送如dptr中l(wèi)call disp ;調(diào)用顯示字符串到lcm子程序mov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line2 ;將第二行字符串的啟始地址送如dptr中l(wèi)call disp ;調(diào)用顯示字符串到lcm子程序mov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行
9、第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line3 ;將第三行字符串的啟始地址送如dptr中l(wèi)call dispmov jian,#0f8hsetb easjmp $ ;程序動(dòng)態(tài)停機(jī)initial: ;lcd初始化設(shè)定mov lcm_data,#01hacall write_rsmov lcm_data,#38hacall write_rsmov lcm_data,#0fhacall write_rsmov lcm_data,#06hretwrite_rs: ;寫(xiě)指令到lcm子程序clr lcm_eclr lcm_rsclr lcm_rwsetb lc
10、m_emov lcm_data,alcall delay1retwrite_data: ;寫(xiě)數(shù)據(jù)到lcm子程序clr lcm_esetb lcm_rsclr lcm_rwsetb lcm_emov lcm_data,alcall delay1retcls:mov a,#01h ;清除lcm子程序lcall write_rsretdisp: ;顯示子程序push acc ;將a的內(nèi)容壓棧disp_loop: clr a ;a清零movc a,a+dptr ;查表將字符串內(nèi)容送入ajz end_disp ;若查到的內(nèi)容為0則終止查表lcall write_data ;調(diào)用寫(xiě)數(shù)據(jù)到lcm子程序inc
11、 dptr ;dptr加1指向下一個(gè)對(duì)象sjmp disp_loop ;跳轉(zhuǎn)到disp_loop循環(huán)執(zhí)行end_disp: pop acc ;彈出壓棧內(nèi)容至aretdelay1: ;延時(shí)子程序mov a,r6push accmov r6,#200 d1:mov r7,#248d2:djnz r7,d2djnz r6,d1pop accmov r6,aretjianwei: ;查詢是否按鍵lcall delay1 ;軟件去抖動(dòng)mov p2,#0ffhclr p2.0jnb p2.5,key13jnb p2.4,key12jnb p2.3,key11setb p2.0clr p2.1jnb p2.
12、5,key23jnb p2.4,key22jnb p2.3,key21setb p2.1clr p2.2jnb p2.5,key33jnb p2.4,key32jnb p2.3,key31mov jian,#0f8hretikey33: ;jnb跳轉(zhuǎn)地址不夠,加入一個(gè)長(zhǎng)跳轉(zhuǎn)ljmp key333key32:ljmp key322key23:ljmp key233key31:ljmp key311key11:mov r0,#01hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line11lcal
13、l displcall savekey12:mov r0,#02hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line12lcall displcall savekey13:mov r0,#03hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line13lcall displcall savekey21:mov r0,#04hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行
14、第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line21lcall displcall savekey22:mov r0,#05hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line22lcall displcall savekey233:mov r0,#06hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序lcall displcall savekey311:mov r0,
15、#07hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line31lcall displcall savekey322:mov r0,#08hmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line32lcall displcall savekey333:mov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dpt
16、r,#line33lcall displcall quedingmov jian,#0f8hsave: ;將寫(xiě)入密碼按順序存放mov a,r1jz s1mov a,r2jz s2mov a,r3jz s3mov a,r4jz s4mov a,r5jz s5mov a,r6jz s6mov jian,#0f8hretis1:mov a,r0mov r1,amov jian,#0f8hretis2:mov a,r0mov r2,amov jian,#0f8hretis3:mov a,r0mov r3,amov jian,#0f8hretis4:mov a,r0mov r4,amov jian,#0
17、f8hretis5:mov a,r0mov r5,amov jian,#0f8hretis6:mov a,r0mov r6,amov jian,#0f8hretiqueding: ;確認(rèn)鍵,輸入密碼與保存密碼比較mov dptr,#passwordclr amovc a,a+dptrclr csubb a,r1jnz errclr ainc dptrmovc a,a+dptrclr csubb a,r2jnz errclr ainc dptrmovc a,a+dptrclr csubb a,r3jnz errclr ainc dptrmovc a,a+dptrclr csubb a,r4jnz
18、 errclr ainc dptrmovc a,a+dptrclr csubb a,r5jnz errclr ainc dptrmovc a,a+dptrclr csubb a,r6jnz errmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#neirong ;將留言符串的啟始地址送如dptr中l(wèi)call disp ;調(diào)用顯示字符串到lcm子程序mov r1,#00hmov r2,#00hmov r3,#00hmov r4,#00hmov r5,#00hmov r6,#00hmov r7,#00
19、hsss: djnz r7,sssmov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#line3 ;將第三行字符串的啟始地址送如dptr中l(wèi)call dispretierr: ;密碼錯(cuò)誤程序mov a,#0c0h ;向a送立即數(shù)0c0h設(shè)定顯示地址為第二行第一列l(wèi)call write_rs ;調(diào)用寫(xiě)指令到lcm子程序mov dptr,#cuowu ;將第二行字符串的啟始地址送如dptr中l(wèi)call dispmov r1,#00hmov r2,#00hmov r3,#00hmov r4,#00hmov
20、 r5,#00hmov r6,#00hmov r7,#00hmov jian,#0f8hretiline1: db welcome ,00h ;第一行字符串line2: db use ,00h ;第二行字符串line3: db input password ,00h ;輸入密碼password: db 03h,08h,03h,02h,02h,04h ;軟件設(shè)置密碼neirong: db your message ,00h ;輸入留言cuowu: db sorry wrong ,00h ;錯(cuò)誤提示信息line11: db this is key 1 ,00hline12: db this is
21、key 2 ,00hline13: db this is key 3 ,00hline21: db this is key 4 ,00hline22: db this is key 5 ,00hline23: db this is key 6 ,00hline31: db this is key 7 ,00hline32: db this is key 8 ,00hline33: db sure? ,00h五、心得體會(huì) 熟悉lcd1602的初始化,最重要的是要熟悉lcd1602的使能位e,早期寫(xiě)的程序總是不能實(shí)現(xiàn)其功能,在于忽略了lcd是在e從低到高開(kāi)始執(zhí)行,而在從高到低這段時(shí)間中才是運(yùn)行其功能的時(shí)間段。所以對(duì)lcd1602的熟練使用在于熟悉它的時(shí)序圖。 按鍵掃描采用的是外部0中斷后進(jìn)行掃描,運(yùn)用了一片74ls11芯片。查鍵程序主要是兩個(gè)思路:1. 中斷后賦予鍵值,延時(shí)一段時(shí)間,再回鍵值,判斷是否改變并決定是否堆棧。再根據(jù)讀回的鍵值跳轉(zhuǎn)到相應(yīng)的程序。2. 中斷后依次拉低列向電平,判斷行向電平是否被拉低而進(jìn)行跳轉(zhuǎn)。第一次我們采用的是第一種方法,其缺點(diǎn)比較明顯,鍵值的計(jì)算比較繁瑣,而且程序也比較冗余。相比第二種方法要來(lái)的簡(jiǎn)單。所以個(gè)人建議以后查詢按鍵可以按第二種思路。 延時(shí)的選擇有總體上說(shuō)兩種,一種是采用內(nèi)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海技術(shù)服務(wù)合同的賠償范圍
- 標(biāo)準(zhǔn)全款購(gòu)房合同格式
- 網(wǎng)店服務(wù)合同的權(quán)益保護(hù)
- 項(xiàng)目服務(wù)合同范式
- 電纜購(gòu)銷協(xié)議樣本
- 標(biāo)準(zhǔn)招標(biāo)文件的流程
- 簡(jiǎn)單耗材采購(gòu)合同格式
- 學(xué)生犯錯(cuò)保證書(shū)撰寫(xiě)要點(diǎn)
- 商業(yè)服務(wù)合同的物聯(lián)網(wǎng)整合
- 房產(chǎn)貸款抵押合同范本
- 2024年公共管理學(xué)考試題庫(kù)及答案
- 借用資質(zhì)簽合同模板
- 退休員工返聘審批表
- 鋁錠購(gòu)銷合同鋁錠銷售合同2024年
- Unit 7 Careers Writing Workshop 申請(qǐng)信講解 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高中英語(yǔ)北師大版2019 選擇性必修第三冊(cè)
- 醫(yī)藥行業(yè)藥品配送優(yōu)化服務(wù)方案
- 廣東省深圳市紅嶺中學(xué)2023-2024學(xué)年七年級(jí)上學(xué)期分班考試語(yǔ)文試題(解析版)
- 2024年新蘇教版五年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)
- Byk助劑說(shuō)明手冊(cè)
- 建筑施工企業(yè)增值稅留抵稅額形成原因及對(duì)策建議
- 2024新外研版初一上英語(yǔ)單詞默寫(xiě)表
評(píng)論
0/150
提交評(píng)論