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

正文內(nèi)容

單片機c語言程序設(shè)計課程設(shè)計_密碼鎖(編輯修改稿)

2025-08-16 20:07 本頁面
 

【文章內(nèi)容簡介】 E ( C L K )6R / W ( S I D )5U 8D 0D 1D 2D 4D 5D 6D 3D 7A 0A 1S 3 0S 2 9S W P BR 7 2 0 KV C CER DW R123U 1 0 AD M 7 4 L S 0 0 J564U 1 0 BD M 7 4 L S 0 0 JY 7E 圖 液晶顯示電路圖 LCD 顯示器各端口地址分配如下: 東北大學課程設(shè)計(論文) 第 3 章 硬件電路設(shè)計及簡要描述 9 L C D 寫 命 令 字 地 址L C D 寫 數(shù) 據(jù) 地 址L C D 讀 狀 態(tài) 字 地 址L C D 讀 數(shù) 據(jù) 地 址0 x 2 0 7 00 x 2 0 7 10 x 2 0 7 20 x 2 0 7 3 圖 LCD 顯示器各端口地址分配 密碼存儲電路 因為考慮到密碼鎖的實際應(yīng)用,要求掉電時密碼不會丟失,所以密碼不儲存在單片機的 RAM 里,而是儲存在外面擴展的 EEPROM 里,因此本文選用AT24C02 芯片單片機通過串口通信。 AT24C02 是 ATMEL 公司生產(chǎn)的 I2C 串行EEPROM 芯片 [4][5],存儲量為 256 字節(jié)。 AT24C02 的操作時序符合標準的 I2C 規(guī)范。通過 SCLK(時鐘線)和 SDA(數(shù)據(jù)線)兩線分別與 89C51 的 和 相連,對芯片進行讀寫操作。 SCLK 為時號, SDA 傳送雙向數(shù)據(jù)信號。 S C L1S D A2A 03A 14A 25W P6A T 2 4 C 0 2U 4G N DV C C1 0 KR 8R e s 21 0 KR 9R e s 2S D AS C L 圖 掉電存儲電路圖 蜂鳴報警電路 按照題目的要求,當連續(xù)三次密碼輸入錯誤時,系統(tǒng)蜂鳴報警,我們采用實驗板上的壓電式蜂鳴器,當 輸出低電平時,三極管導(dǎo)通,蜂鳴器發(fā)音。 東北大學課程設(shè)計(論文) 第 3 章 硬件電路設(shè)計及簡要描述 10 U 1蜂 鳴 器R 55 K9 0 1 2T 6V C CA L E R T 圖 蜂鳴報警電路圖 元件清單 本次設(shè)計所用元件見表 表 元件清單 器件名稱 數(shù)量 89C51 1 個 8279 1 個 6MHz 晶振 1 個 RT12864Hz 1 個 74ALS138 1 個 74LS245 1 個 74LS573 1 個 74LS00 1 個 74LS08 1 個 AT24C02 1 個 電阻 若干 按鍵 18 個 東北大學課程設(shè)計(論文) 第 4 章軟件程序設(shè)計 11 第 4 章 軟件程序設(shè)計 程序流程圖 根據(jù)設(shè)計要求,我們設(shè)計了如下的流程圖,滿足用戶在任何時刻按下任何鍵均有反應(yīng)。 開 始系 統(tǒng) 初 始 化讀 入 原 始 密 碼掃 描 鍵 盤比 較 密 碼顯 示 界 面 2按 下 A 或 者 F ?密 碼 正 確 ?任 意 鍵 按 下 ?開 鎖 ( 紅 滅 綠 亮 )關(guān) 鎖 ( 紅 亮 綠 滅 )YN開 始 輸 入 密 碼YN修 改 密 碼錯 誤 次 數(shù) 加 1 進 功 能 選 擇 界 面 4輸 錯 到 達 三 次 ?AF蜂 鳴 報 警YN顯 示 界 面 1再 次 輸 入 密 碼兩 次 輸 入 一 致N修 改 失 敗 界 面 6修 改 成 功 界 面 7Y圖 主程序流程圖 說明:以上流程圖僅顯示了該密碼鎖的主要功能,一些具體功能的實現(xiàn)在后文子程序中將做具體講解。 東北大學課程設(shè)計(論文) 第 4 章軟件程序設(shè)計 12 系統(tǒng)初始化 系統(tǒng)的初始化包括如下方面: 8279 的掃描模式為編碼掃描; 內(nèi)部定時 /計數(shù)器 T0 的設(shè)定; 液晶顯示屏模式的設(shè)定。 按鍵識別設(shè)計 在系統(tǒng)初始化并讀取密碼完成后,液晶顯示界面 1“狀態(tài): closed 任意鍵輸入密碼 ”,提示用戶可以輸入密碼。此時程序即不斷的掃描按鍵,檢查是否有任意鍵被按下。如果有,則開始輸入密碼,此時液晶屏顯示界面 2“密碼 :”在輸入密碼的時候,難免有輸入錯誤的時候,我們特此設(shè)計了清零鍵,當輸入密碼時,檢測到清零鍵的按下,我們將清除所有輸入的密碼,然后重新進入界面 2 重新輸入密碼,在六位密碼輸入結(jié)束后,我們也設(shè)計了確定鍵,當檢測到確定鍵按下時,開始密碼比較。具體的流程圖如 所示 按 下 清 除 鍵 ?按 下 確 認 鍵 ?清 除 密 碼顯 示 界 面 2輸 入 密 碼輸 入 密 碼比 較 密 碼YNYN 圖 按鍵識別流程圖 東北大學課程設(shè)計(論文) 第 4 章軟件程序設(shè)計 13 圖 界面 1 圖 界面 2 5s 定時設(shè)計 根據(jù)該設(shè)計的附加要求 “第一次輸入密碼與開鎖的時間超過 5s,紅燈閃爍,并發(fā)報警警報 ”。我組對此的理解是在密碼輸入錯誤之后,重新輸入密碼到開鎖的時間不超過 5s。 利用 89C51 內(nèi)部的定時器 T0,用中斷方式進行管理,初值在系統(tǒng)初始化時已經(jīng)設(shè)置好,采用定時器方式 1,每次定時 25ms,設(shè)置變量 time,每次定時中斷, time 自加,當?shù)谝淮蚊艽a輸入錯誤后,便打開定時器中斷,只有在 5s 內(nèi)開鎖成功,中斷才關(guān)閉,否則將紅燈閃爍并蜂鳴報警,顯示為界面 3。 東北大學課程設(shè)計(論文) 第 4 章軟件程序設(shè)計 14 圖 界面 3 密碼修改設(shè)計 為了豐富電子密碼鎖的功能,我們在完成設(shè)計的基本要求之外,額外增添了密碼修改功能。即當用戶密碼輸入正確后,可以進入界面 4——功能選擇模塊,按下 A 鍵便可修改密碼,此時顯示界面 5“新密碼: ”輸入 6 位密碼后按確定鍵,這時顯示界面 6“再次輸入: ”,需要再次輸入密碼進行確認,若兩次輸入密碼一致,則顯示 “Succeeded”新密碼便改好了,若前后兩次輸入不一致,則顯示 “Type Error”,然后返回到功能選擇界面 4。 圖 界面 4 東北大學課程設(shè)計(論文) 第 4 章軟件程序設(shè)計 15 圖 界面 5 圖 界面 6 圖 界面 7 東北大學課程設(shè)計(論文) 參考文獻 16 參考文獻 [1].Intel 8279 date sheet [2].張志,高大志,楊為民等.微控制器原理及接口技術(shù)實驗教程 [M].沈陽:東北大學出版社, 20xx. [3].聞紹飛. C51 單片機實驗指導(dǎo)書 [M].沈陽:東北大學出版社, 20xx. [4].馬忠梅,籍順心.單片機的 C 語言應(yīng)用程序設(shè)計 [M].北京:北京航空航天大學出版社, 20xx. [5].李朝青.單片機原理及接口技術(shù) [M].北京:北京航空航天大學出版社, 20xx. 東北大學課程設(shè)計(論文) 附錄 17 附錄 電子密碼鎖系統(tǒng)程序源代碼 include include include /*****************************************Ports***********************************/ define c8279 XBYTE[0x2021] //8279 命令端口 define d8279 XBYTE[0x2020] //8279 數(shù)據(jù)端口 define wc_ad XBYTE[0x2070] //lcd 寫命令端口 define wd_ad XBYTE[0x2071] //lcd 寫數(shù)據(jù)端口 define rs_ad XBYTE[0x2072] //lcd 讀狀態(tài)端口 define rd_ad XBYTE[0x2073] //lcd 讀數(shù)據(jù)端口 /***********************************Variable Statement***************************/ sbit g_led=P1^0。 //綠燈 sbit r_led=P1^1。 //紅燈 sbit SCL=P1^2。 //24c02 時鐘線 sbit SDA=P1^3。 //24c02 數(shù)據(jù)線 sbit alm=P1^4。 //蜂鳴報警 unsigned char bdata flag=0xff。 //標志位變量 sbit key_flag=flag^7。 //按鍵標志 sbit enter_flag=flag^6。 //enter 鍵標志 sbit perr_flag=flag^5。 //密碼錯誤標志 sbit terr_flag=flag^2。 //輸入錯誤標志 sbit clr_flag=flag^4。 //清除標志 sbit re_flag=flag^3。 //返回退出標志 unsigned char xdata psave[6]。 //存儲的密碼數(shù)組 unsigned char xdata pinput[6]。 //輸入的密碼數(shù)組 unsigned char err_num=0。 //密碼輸入錯誤次數(shù) signed char p_num=0。 //密碼位數(shù) unsigned char err。 //密碼比較差值 unsigned char bdata status。 //lcd 狀態(tài) sbit busy=status^7。 //lcd 忙狀態(tài) bdata char _data。 //24c02 讀寫數(shù)據(jù) sbit h_bit=_data^7。 //24c02 讀寫數(shù)據(jù)高位 sbit l_bit=_data^0。 //24c02 讀寫數(shù)據(jù)地位 unsigned char 。 //8279 讀入鍵值 unsigned int time=0。 //定時器中斷計數(shù) /***********************************Function Statement***************************/ void ini_int(void)。 東北大學課程設(shè)計(論文) 附錄 18 void ini_8279(void)。 void Ini_all(void)。 void dis_1st(void)。 void c_start(void)。 void c_stop(void)。 void ack(void)。 void s_move(char a)。 void delay(int time)。 unsigned char rd_24c02(char a)。 void wr_24c02(char a,char b)。 void lcd_busy(void)。 void ini_lcd(void)。 void pos(unsigned char x,unsigned char y)。 void dis(unsigned char x,unsigned char y,unsigned char *s)。 void clr(void)。 void p_err(void)。 void dis_enter(void)。 void p_rst(void)。 void tm_err(void)。 void read_key(unsigned char *sr,unsigned char x,unsigned char y,unsigned char *s,unsigned char pos)。 void p_cmpr(unsigned char *pw1,unsigned char *pw2,unsigned ch
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1