![超市存物箱模擬裝置設(shè)計(jì)終稿講解_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/11/2dc5a454-c78e-41fd-aa3a-7477ff15053e/2dc5a454-c78e-41fd-aa3a-7477ff15053e1.gif)
![超市存物箱模擬裝置設(shè)計(jì)終稿講解_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/11/2dc5a454-c78e-41fd-aa3a-7477ff15053e/2dc5a454-c78e-41fd-aa3a-7477ff15053e2.gif)
![超市存物箱模擬裝置設(shè)計(jì)終稿講解_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/11/2dc5a454-c78e-41fd-aa3a-7477ff15053e/2dc5a454-c78e-41fd-aa3a-7477ff15053e3.gif)
![超市存物箱模擬裝置設(shè)計(jì)終稿講解_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/11/2dc5a454-c78e-41fd-aa3a-7477ff15053e/2dc5a454-c78e-41fd-aa3a-7477ff15053e4.gif)
![超市存物箱模擬裝置設(shè)計(jì)終稿講解_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/11/2dc5a454-c78e-41fd-aa3a-7477ff15053e/2dc5a454-c78e-41fd-aa3a-7477ff15053e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、本科生畢業(yè)設(shè)計(jì)(論文)本科生畢業(yè)設(shè)計(jì)(論文) 超市存物箱模擬裝置設(shè)計(jì)超市存物箱模擬裝置設(shè)計(jì) 二級(jí)學(xué)院二級(jí)學(xué)院 :* 專專 業(yè)業(yè) : * 年年 級(jí)級(jí) : * 學(xué)學(xué) 號(hào)號(hào) :* 作者姓名作者姓名 : * 指導(dǎo)教師指導(dǎo)教師 : * 完成日期:完成日期:20172017 年年 5 5 月月 15 15 日日 A A 基礎(chǔ)理論基礎(chǔ)理論 B B 應(yīng)用研究應(yīng)用研究 C C 調(diào)查報(bào)告調(diào)查報(bào)告 D D 其他其他 超市存物箱模擬裝置設(shè)計(jì)超市存物箱模擬裝置設(shè)計(jì) 專業(yè)名稱:* 作者姓名:* 指導(dǎo)教師:* 論文答辯小組論文答辯小組 組組 長長: 成成 員員: 論文成績:論文成績: 目錄目錄 1 緒論緒論.1 1.1 研
2、究背景及意義.1 1.2 電子密碼鎖的發(fā)展趨勢.1 1.3 設(shè)計(jì)目標(biāo).1 1.4 芯片方案選擇.1 2 系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì).2 2.1 整體方案設(shè)計(jì).2 2.1.1 系統(tǒng)概述及框圖.2 2.2 最小系統(tǒng)模塊.2 2.2.1STC89C52 簡介.2 2.2.2 最小系統(tǒng)電路.3 2.3 液晶顯示電路.4 2.3.1 1602 液晶簡介.4 2.3.2 液晶顯示模塊電路.4 2.4 按鍵輸入模塊.5 2.5 存儲(chǔ)芯片模塊電路.6 2.5.1 存儲(chǔ)芯片的介紹.6 2.5.2 AT24C02 模塊電路圖.6 2.6 蜂鳴器模塊電路圖.7 2.7 繼電器模塊電路.7 2.8 HX711、壓力傳感
3、器模塊電路圖.8 3 軟件設(shè)計(jì)軟件設(shè)計(jì).9 3.1 程序流程圖設(shè)計(jì).9 3.1.1 總體程序流程圖設(shè)計(jì).9 3.1.2 液晶程序設(shè)計(jì).12 3.1.3 矩陣鍵盤的掃描流程設(shè)計(jì).13 4 電路、程序調(diào)試及硬件組裝電路、程序調(diào)試及硬件組裝.15 4.1 軟件仿真.15 4.2 電路板設(shè)計(jì).18 4.3 元器件的選擇與測量.19 5 總結(jié)及研究展望總結(jié)及研究展望.20 5.1 總結(jié).20 5.2 研究展望.20 參考文獻(xiàn)參考文獻(xiàn).21 致謝致謝 .22 附錄附錄 .23 附錄 A 元件清單.23 附錄 B 原理圖.24 附錄 C PCB 圖.24 附錄 D 實(shí)物圖.25 附錄 E 程序 .25 超市
4、存物箱模擬裝置設(shè)計(jì)超市存物箱模擬裝置設(shè)計(jì) 作者 * 指導(dǎo)老師 * (*,* *) 摘要摘要: :此次設(shè)計(jì)以 STC89C52 單片機(jī)為核心,配以相應(yīng)硬件電路,完成密碼的設(shè)置、存儲(chǔ)、 識(shí)別、驅(qū)動(dòng)繼電器執(zhí)行完成電磁鎖的開關(guān)、通過壓力傳感器完成滿箱提示等功能,主要硬件包 括 STC89C52、蜂鳴器、矩陣鍵盤、1602 液晶、電磁鎖、A/D 轉(zhuǎn)換模塊、壓力傳感器、AT24C02。 單片機(jī)接收鍵入的密碼,并與保存在 EEPROM 中的六位密碼進(jìn)行比較,六位密碼有 100 萬組不同 的組合可以隨便改變,保密性極高,如果密碼無誤,則驅(qū)動(dòng)電磁執(zhí)行器電磁鎖開鎖;如果密碼 輸入不正確,則單片機(jī)通過通信線路向蜂鳴
5、器發(fā)出報(bào)警信號(hào)。 關(guān)鍵詞關(guān)鍵詞:密碼鎖;液晶;矩陣鍵盤;電磁鎖;AT24C02;繼電器;壓力傳感器 Design of Locker Simulator In Supermarket author * Advisor * (School of Information Engineering,Lingnan Normal University,ZhanJiang,524048 China) Abstract:With STC89C52 microcontroller as the core,the hardware circuits of the design including alarm b
6、uzzer,matrix keyboard,LCD1602,electromagnetic lock,ADC module,pressure transducer and AT24C02.This design achieves the functions of password setting,identification and storage, and the operations of rely driver and electromagnetic lock as well as the trumkful prompt of its pressure transducer.The si
7、ngle-chip microcomputer will receive the password and compare it with the six-bit password stored in EEPROM.There are one million different combinations of the six-bit password that can be changed at random,which provides a sound confidentiality.If the password were correct,the single-chip microcomp
8、uter would drive the open of electromagnetic lock;otherwise, SCM would send out the signal of alarming through communication line and the buzzer would raise the alarm. Keywords:Password lock; Liquid crystal display;Matrix keyboard;Electromagnetic lock;AT24C02;Relay driver;pressure transducer 1 1 1 緒
9、論緒論 1.11.1 研究背景及意義研究背景及意義 隨著科技的發(fā)展,信息化節(jié)奏不斷加快,以前的老式機(jī)械鎖已經(jīng)不能滿足需求而 以程序控制的電子密碼鎖,具有記憶、辨識(shí)、報(bào)警等特別的使用功能?;趩纹瑱C(jī) 的電子密碼鎖的研究在保護(hù)財(cái)產(chǎn)和人身安全方面具有深遠(yuǎn)意義。 1.21.2 電子密碼鎖的發(fā)展趨勢電子密碼鎖的發(fā)展趨勢 從目前的技術(shù)水平和市場認(rèn)可程度看,使用最為廣泛的是鍵盤式電子密碼鎖, 相比于鍵盤式電子密碼鎖,由數(shù)字、字符、圖形圖像、人體生物特征和時(shí)間等要素 構(gòu)造的密碼鎖更加安全可靠,組合使用這些信息能夠使防盜鎖獲得高度的保密性, 這樣就增加了更高的安全保險(xiǎn)性,以后將會(huì)朝著這方向深入發(fā)展7。 1.31
10、.3 設(shè)計(jì)設(shè)計(jì)目標(biāo)目標(biāo) (1)用戶存物、用戶取物、管理員取物 (2)管理員修改密碼、存物時(shí)用戶密碼通過 LCD 顯示 (3)存物箱狀態(tài)指示、自動(dòng)開關(guān)箱、有效按鍵聲音提示、密碼輸入提示 (4)密碼正確提示、密碼錯(cuò)誤提示 (5)滿箱提示 1.41.4 芯片方案選擇芯片方案選擇 此次設(shè)計(jì)采用單片機(jī) STC89C52 作為系統(tǒng)控制器。單片機(jī)具有可靠性強(qiáng)、性價(jià)比 搞、電壓低、功耗低、算術(shù)運(yùn)算功能強(qiáng)、軟件編程靈活自由度大,可用軟件編程實(shí) 現(xiàn)各種邏輯功能,本身帶有定時(shí)器、計(jì)數(shù)器,可以用來定時(shí)和計(jì)數(shù),并且其功耗低, 體積小,計(jì)數(shù)成熟和成本低等優(yōu)點(diǎn)。 2 2 2 系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件設(shè)計(jì) 2.12.1 整體方案
11、設(shè)計(jì)整體方案設(shè)計(jì) 2.1.12.1.1 系統(tǒng)概述系統(tǒng)概述及框圖及框圖 整個(gè)系統(tǒng)以 STC89C52 單片機(jī)為核心器件,配合電阻電容晶振等器件,構(gòu)成單片 機(jī)的最小系統(tǒng)。其它模塊圍繞著單片機(jī)最小系統(tǒng)展開。其中包括,顯示設(shè)備使用 1602 液晶,進(jìn)行鎖狀態(tài)和輸入密碼的顯示;密碼輸入設(shè)備采用 4*4 的矩陣鍵盤,16 個(gè)按鍵的數(shù)量足夠滿足此次設(shè)計(jì)的要求;密碼存儲(chǔ)使用 EEPROM 芯片,此次設(shè)計(jì)使用 的 EEPROM 芯片型號(hào)是 AT24C02,通過 IIC 接口和單片機(jī)進(jìn)行數(shù)據(jù)傳輸;發(fā)音設(shè)備采 用有源蜂鳴器,可以發(fā)出按鍵音和報(bào)警音;電磁鎖采用繼電器來驅(qū)動(dòng);滿箱提示使 用壓力傳感器外部輸入和 A/D
12、放大轉(zhuǎn)換芯片轉(zhuǎn)換至單片機(jī)來完成。最后是供電采用 常用的 USB 5V 進(jìn)行供電、電磁鎖供電采用 5V 供電,系統(tǒng)總框架圖如圖 1 所示 圖圖 1 1 系統(tǒng)框圖系統(tǒng)框圖 2.22.2 最小系統(tǒng)模塊最小系統(tǒng)模塊 2.2.1STC89C522.2.1STC89C52 簡介簡介 (1)概述 STC89C52 是一個(gè)電壓低,性能高的單片機(jī),片內(nèi)含 8k bytes 的可屢次擦寫的 Flash 只讀程序存儲(chǔ)器(ROM)和 256 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)。 電源 蜂鳴器模塊 繼電器模塊 密碼存儲(chǔ)模塊電磁鎖模塊 矩陣鍵盤模塊 單片機(jī) 最小系統(tǒng) 1602 液晶模塊 AD 數(shù)模轉(zhuǎn)換模塊 壓力傳
13、感器模塊 3 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 RESET 9 P30/RXD 10 P31/TXD 11 P32/INT0 12 P33/INT1 13 P34/T0 14 P35/T1 15 P36/WR 16 P37/RD 17 XTAL2 18 XTAL1 19 GND 20 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE 30 EA 31 P07 32 P06 33 P05 34 P04 35 P03 36 P02 37 P01 38
14、P00 39 VCC 40 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 RESET 9 P30/RXD 10 P31/TXD 11 P32/INT0 12 P33/INT1 13 P34/T0 14 P35/T1 15 P36/WR 16 P37/RD 17 XTAL2 18 XTAL1 19 GND 20 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE 30 EA 31 P07 32 P06 33 P05 34 P04 35 P03 36 P02 37
15、P01 38 P00 39 VCC 40 U1 STC89C52 12 X1 12M C2 30pF C3 30pF GND GND VCC VCC 1 2 3 4 5 6 7 8 9 R1103 C1 10uF R3 10K GND VCC D0 D1 D2 D3 D4 D5 D6 D7 RS RW EN bp relay SCL SDA P10 P11 P12 P13 P14 P15 P16 P17 STC89C52 有 40 個(gè)引腳,32 個(gè)外部雙向輸入/輸出(I/O)端口,同時(shí)內(nèi)含 2 個(gè) 外中斷口,3 個(gè) 16 位可編程定時(shí)計(jì)數(shù)器,2 個(gè)全雙工串行通信口,2 個(gè)讀寫口線。引 腳如圖
16、2 所示13。 圖圖 2 2 STC89C52STC89C52 引腳圖引腳圖 2.2.22.2.2 最小系統(tǒng)電路最小系統(tǒng)電路 STC89C52 的最小系統(tǒng)如圖 3 所示,整個(gè)最小系統(tǒng)由三個(gè)部分組成,晶振電路部 分、復(fù)位電路部分、電源電路等三個(gè)部分組成。最后一個(gè)是電源部分,采用 5V 的 USB 直接供電,可采用充電寶、電腦 USB 口、移動(dòng)電源等設(shè)備進(jìn)行供電。此外,除 了單片機(jī)最小系統(tǒng)的 3 個(gè)部分之外,這里還多了一些外部電路。由于 STC89C52 的 P0 口是漏極開路輸出,因此在 P0 口接了一個(gè) 10K 的排阻 R1,使得 P0 口可以作為普 通的 I/O 口使用,此次設(shè)計(jì)用 P0 口
17、來做液晶的數(shù)據(jù)口。 圖圖 3 3 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng) 4 2.32.3 液晶顯示電路液晶顯示電路 2.3.12.3.1 16021602 液晶簡介液晶簡介 液晶顯示器是一種顯示器件,具有小體積、輕重量、低功耗等特點(diǎn)。本系統(tǒng)顯 示采用了工業(yè)字符型液晶模塊 1602,可顯示 2 行 16 個(gè)字符,能方便顯示英文字母 大小寫、阿拉伯?dāng)?shù)字、常用符號(hào)等,通過自定義還可顯示簡單的漢字??梢燥@示 2 行標(biāo)準(zhǔn)字符,每行共有 16 個(gè)字符。尺寸、引腳說明如圖 4、表 1 所示8。 圖圖 4 4 液晶尺寸說明液晶尺寸說明 表表 1 1 液晶引腳說明液晶引腳說明 符號(hào)符號(hào)引腳說明引腳說明符號(hào)符號(hào)引腳說明引
18、腳說明 VSS 電源地 D2 數(shù)據(jù) VDD 電源正極 D3 數(shù)據(jù) VL 液晶顯示偏壓 D4 數(shù)據(jù) RS 數(shù)據(jù)/命令選 擇 D5 數(shù)據(jù) R/W 讀/寫選擇 D6 數(shù)據(jù) E 使能信號(hào) D7 數(shù)據(jù) D0數(shù)據(jù) BLA 背光源正極 D1數(shù)據(jù) BLK 背光源負(fù)極 2.3.22.3.2 液晶顯示模塊電路液晶顯示模塊電路 液晶模塊的電路的連接圖如圖 5 所示,第 1 腳和第 2 腳分別接到電路的 GND 和 VCC,這 2 個(gè)腳是液晶工作的電源輸入腳。第 3 腳通過一個(gè) 10K 的電位器連接到地端, 可通過調(diào)節(jié)該電位器來調(diào)節(jié)液晶的對(duì)比度。第 4 腳是液晶的寄存器選擇管腳,接到 單片機(jī)的 P2.7 腳上。第 5
19、 腳是液晶的讀寫信號(hào)管腳,接到單片機(jī)的 P2.6 腳上。第 6 腳是液晶的使能管腳,接到單片機(jī)的 P2.5 腳上。第 7 腳到第 14 腳是液晶的 8 位 5 GND GND VCC VCC RS RW EN D0 D1 D2 D3 D4 D5 D6 D7 R2 103 GND VSS 1 VCC 2 VO 3 RS 4 RW 5 EN 6 D0 7 D1 8 D2 9 D3 10 D4 11 D5 12 D6 13 D7 14 A 15 K 16 LCD 1602 LCD1 1602 P10 P11 P12 P13 P14 P15 P16 P17 雙向數(shù)據(jù)線,接到了單片機(jī)的 P0 口上。第
20、15 腳和第 16 腳是液晶的背光電源腳, 接 VCC 和 GND。當(dāng)使用不帶背光的模塊時(shí),這兩個(gè)引腳懸空不接。 圖圖 5 5 液晶模塊連接圖液晶模塊連接圖 2.42.4 按鍵輸入模塊按鍵輸入模塊 由于此次設(shè)計(jì)輸入?yún)?shù)較多、功能較復(fù)雜,因此采用 4*4 的矩陣鍵盤,如圖 6 所示。只需占用 8 個(gè)單片機(jī)的 IO 口,就可以實(shí)現(xiàn)對(duì) 16 個(gè)按鍵的檢測。在 16 個(gè)按鍵 中,除了 0-9 這 10 個(gè)數(shù)字鍵之外,還有刪除、取消、確定、手動(dòng)關(guān)鎖、修改密碼、 管理員密碼等 6 個(gè)功能按鍵。 按鍵識(shí)別采用兩步掃描判別法:首先判別按鍵所在的行,由 P1 口向鍵盤輸出列 掃描,然后讀入行線狀態(tài)來判斷,然后判
21、別按鍵所在的列,由 P1 口向鍵盤輸出行掃 描,然后讀入列線狀態(tài)來判斷,最后將行和列的狀態(tài)相或得到一個(gè)值,再把該值取 反得到該位置的鍵值10。 圖圖 6 6 矩陣按鍵電路矩陣按鍵電路 6 2.52.5 存儲(chǔ)芯片模塊電路存儲(chǔ)芯片模塊電路 2.5.12.5.1 存儲(chǔ)芯片的介紹存儲(chǔ)芯片的介紹 主要特性如圖 7、表 2、表 3 所示11。 圖圖 7 7 AT24C02AT24C02 封裝圖封裝圖 表表 2 2 AT24C02AT24C02 引腳說明引腳說明 引腳名稱引腳名稱引腳功能引腳功能 A0-A2 器件地址輸入 SDA 串行數(shù)據(jù)輸入輸出 SCL 串行時(shí)鐘輸入 WP 寫保護(hù) VCC 電源 GND 地
22、 表表 3 3 AT24C02AT24C02 主要功能主要功能 2.5.22.5.2 AT24C02AT24C02 模塊電路圖模塊電路圖 存儲(chǔ)芯片 AT24C02 模塊的電路的連接圖如圖 8 所示,第 4 腳和第 8 腳分別接到 了電路的 GND 和 VCC,這兩個(gè)腳是芯片工作的電源、地輸入腳;1、2、3 引腳都連接 到了 GND,因此芯片的 7 位二進(jìn)制地址是 1010000;芯片的第 7 引腳接到了 GND,可 以進(jìn)行正常的讀寫操作,接到 VCC 時(shí)啟動(dòng)寫保護(hù)功能。最后由于 AT24C02 芯片的 工作電壓: 1.8V5.5 輸入引腳經(jīng)施密特觸發(fā)器濾波 抑制噪聲 支持硬件寫 保護(hù) 輸入/輸
23、出引腳 兼容 5V 雙向數(shù)據(jù)傳輸協(xié)議高可靠性 讀寫次數(shù) 1000000 次, 數(shù)據(jù)保存 100 年 二線串行接口兼容 400KHz(1.8V,2.5V,2.7V,3.6 V) 應(yīng)用在內(nèi)部 結(jié)構(gòu): 256*8(2k) 7 A0 1 A1 2 A2 3 GND 4 SDA 5 SCL 6 WP 7 VCC 8 U2 AT24C02 R4 10K R5 10K VCC SCL SDA VCC Q1 8550 GND VCC BEEP1 bp SCL 和 SDA 是漏極開路設(shè)計(jì),因此在連接到單片機(jī)的同時(shí),還要加上 2 個(gè) 10K 的上 拉電阻 1。 圖圖 8 8 存儲(chǔ)芯片存儲(chǔ)芯片 AT24C02AT2
24、4C02 模塊電路模塊電路 2.62.6 蜂鳴器模塊蜂鳴器模塊電路圖電路圖 此次設(shè)計(jì)使用的是有源蜂鳴器。由于蜂鳴器工作時(shí),需要的電流比較大,單片 機(jī)的 IO 口輸出的電流又比較小,所以這里利用三極管的開關(guān)管功能來控制蜂鳴器發(fā) 音,選用的三極管型號(hào)是 PNP 三極管 S8550,而且選用的蜂鳴器屬于有源蜂鳴器, 即在蜂鳴器內(nèi)部已經(jīng)內(nèi)置了震蕩電路,單片機(jī)無需連續(xù)發(fā)出高低電平來驅(qū)動(dòng)它,而 只要輸出高(或低)電平即可,這大大簡化了單片機(jī)程序的設(shè)計(jì)。由于選用的是 PNP 型而單片機(jī)上電 IO 口默認(rèn)是高電平的,所以上電時(shí)蜂鳴器是不會(huì)發(fā)出鳴叫的。 蜂鳴器電路如圖 9 所示。 圖圖 9 9 蜂鳴器電路蜂鳴器
25、電路 2.72.7 繼電器模塊電路繼電器模塊電路 此次設(shè)計(jì)中采用的繼電器屬于電磁式繼電器。繼電器模塊的電路如圖 10 所示。 繼電器使用的是 5V 電壓觸發(fā)的。由于繼電器由導(dǎo)通到關(guān)斷瞬間,由于工作線圈有電 感的性質(zhì),所以會(huì)在繼電器的線圈的低電壓端產(chǎn)生一個(gè)瞬間電壓尖峰,通常能高達(dá) 8 Q2 S8550 D2 1N4148 GND VCC J2D1 LED R6 1K relay Relay1 數(shù)十倍的線圈額定工作電壓。所以這里接入一個(gè)二極管在繼電器兩端,因?yàn)槎O管 的負(fù)端通常接到 VCC,因此電壓尖峰將被抑制。保護(hù)了板上的電子元件。當(dāng)單片機(jī) 的 IO 口給 PNP 三極管 Q2 一個(gè)低電平后后,
26、三極管導(dǎo)通,繼電器供電,因此繼電器 從斷開變?yōu)殚]合,繼而給連接到 J2 的電磁鎖上電,最終達(dá)到單片機(jī)控制電磁鎖的效 果。為了更加形象的感受到電磁鎖被打開,此外還加了一個(gè)發(fā)光二極管作為電磁鎖 打開的指示燈6。 圖圖 1010 繼電器電路繼電器電路 2.82.8 HX711HX711、壓力傳感器模塊電路圖、壓力傳感器模塊電路圖 此次設(shè)計(jì)滿箱提示功能是當(dāng)存物箱過滿且放不進(jìn)去時(shí),給存物的人以報(bào)警聲音 提示,存物時(shí),如果存物過滿必然會(huì)對(duì)箱壁有擠壓力。在程序上設(shè)置一個(gè)壓力值, 如果外部壓力傳感器采集的壓力值大于設(shè)置的壓力值,證明存物箱存物過滿,蜂鳴 器報(bào)警給存物的人提示。所以設(shè)計(jì)上采用外部壓力傳感器輸入,
27、但是外部壓力傳感 器采集的壓力信號(hào)輸出較小,單片機(jī)并不能識(shí)別壓力傳感器輸出的信號(hào),所以采用 A/D 轉(zhuǎn)換芯片 HX711 將外部壓力傳感器采集的壓力信號(hào)傳到 A/D 轉(zhuǎn)換芯片 HX711 進(jìn) 行增益放大,再經(jīng)過 A/D 轉(zhuǎn)換芯片 HX711 轉(zhuǎn)換成數(shù)字信號(hào),再傳到單片機(jī)上。電路 圖如圖 12 所示壓力傳感器是采用四個(gè)應(yīng)變電阻封裝構(gòu)成引出來的四根線分別是電源 E+、地 E-、信號(hào) A+、信號(hào) A-,并分別接到 A/D 轉(zhuǎn)換芯片 HX711 的 E+、E-、A+、A-端, 最后 A/D 轉(zhuǎn)換芯片 HX711 的信號(hào) DT、信號(hào) SCK 分別接到單片機(jī)的 IO 口,HX711 芯片 管腳如圖 11
28、所示。 9 圖圖 1111 HX711HX711 芯片管腳芯片管腳 圖圖 1212 HX711HX711、壓力傳感器模塊電路圖、壓力傳感器模塊電路圖 3 3 軟件設(shè)計(jì)軟件設(shè)計(jì) 3.13.1 程序流程圖設(shè)計(jì)程序流程圖設(shè)計(jì) 3.1.13.1.1 總體程序流程圖設(shè)計(jì)總體程序流程圖設(shè)計(jì) 系統(tǒng)的軟件總流程圖如圖 13 所示,最開始先進(jìn)行液晶的初始化,包括液晶功能 初始化和液晶顯示內(nèi)容初始化。接著就進(jìn)行密碼初始化,包括檢查密碼存儲(chǔ)芯片是 不是新的,并且把密碼從存儲(chǔ)芯片讀取到單片機(jī),保存在一個(gè)數(shù)組里面。完成初始 化之后,就開始進(jìn)行矩陣鍵盤的掃描,并根據(jù)不同的按鍵掃描返回值,進(jìn)行不同的 任務(wù)處理,這些任務(wù)基本
29、包括開鎖密碼判斷、密碼錯(cuò)誤報(bào)警、修改密碼、管理員恢 復(fù)密碼等。 10 保存新密碼 圖圖 1313 程序流程圖程序流程圖 開始 液晶初始化 密碼初始化 輸入密碼 密碼類型? 正確? 管理員密碼 報(bào)警 恢復(fù)初始密碼 否 是 解鎖密碼 正確?錯(cuò)誤計(jì)次加 1 否 錯(cuò) 3 次? 鎖鍵盤 1 分鐘并報(bào)警 是 否 執(zhí)行開鎖操作 修改密碼? 是 修改密碼程序 是 結(jié)束 否 報(bào)警 執(zhí)行滿箱提示 11 程序設(shè)計(jì)流程說明:首先進(jìn)行液晶初始化、密碼初始化。判斷密碼輸入類型, 如果是解鎖密碼,且輸入密碼正確,執(zhí)行開鎖操作,并且啟動(dòng)外部壓力傳感器輸入 有效,執(zhí)行滿箱提示。如果輸入錯(cuò)誤,錯(cuò)誤次數(shù)達(dá)到三次,鎖住鍵盤 1 分鐘
30、并報(bào)警。 如果輸入的密碼類型是管理密碼,且輸入正確,則恢復(fù)初始化密碼,錯(cuò)誤則報(bào)警。 如果修改密碼,必須在輸入解鎖密碼輸入正確,輸入新密碼,修改密碼成功,并保 存新密碼。部分代碼如下: 1602 液晶初始化代碼: void LcdInit() LcdWriteCmd(0 x38); / 16*2 顯示,5*7 點(diǎn)陣,8 位數(shù)據(jù)口 LcdWriteCmd(0 x0C); / 開顯示 LcdWriteCmd(0 x06); / 地址加 1 LcdWriteCmd(0 x01); / 清屏 密碼初始化代碼 void CodeInit() uchar dat,i; dat=IIcReadDat(10);
31、 if(dat!=88) IIcWriteDat(0,1); / 給 AT24C02 第 0 個(gè)內(nèi)存寫入第一個(gè)密碼“1” IIcWriteDat(1,2); /給 AT24C02 第 1 個(gè)內(nèi)存寫入第一個(gè)密碼“2” IIcWriteDat(2,3); /給 AT24C02 第 2 個(gè)內(nèi)存寫入第一個(gè)密碼“3” IIcWriteDat(3,4); /給 AT24C02 第 3 個(gè)內(nèi)存寫入第一個(gè)密碼“4” IIcWriteDat(4,5); /給 AT24C02 第 4 個(gè)內(nèi)存寫入第一個(gè)密碼“5” IIcWriteDat(5,6); /給 AT24C02 第 5 個(gè)內(nèi)存寫入第一個(gè)密碼“6” IIcW
32、riteDat(10,88); 12 是 顯示一個(gè)字符 定位行列坐標(biāo) 液晶初始化 for(i=0;i6;i+) ArrCodeUnlocki=IIcReadDat(i); 3.1.23.1.2 液晶程序設(shè)計(jì)液晶程序設(shè)計(jì) 程序流程說明:首先進(jìn)行液晶初始化,液晶初始化程序都是固定的模式,之后 確定按鍵是哪個(gè)按下所以要定位行列坐標(biāo),之后顯示一個(gè)字符,如果數(shù)據(jù)顯示完進(jìn) 行下一步,否則回到定位行列坐標(biāo)。如圖 14 所示,部分代碼如下: 圖圖 1414 液晶顯示流程圖液晶顯示流程圖 液晶光標(biāo)定位代碼: void LcdGotoXY(uchar y, uchar x) if(y=0) /第一行 LcdWri
33、teCmd(0 x80+x); if(y=1) /第二行 LcdWriteCmd(0 x80+0 x40+x); row=y; 數(shù)據(jù)顯 示完? 否 13 找到行列的交點(diǎn)按鍵 返回鍵值 掃描是哪一 列 掃描是哪一 行 返回 99,代 表 沒有按鍵按下 否 column=x; 輸出字符代碼: void LcdPrintStr(uchar *str) while(*str!=0) LcdWriteData(*str+); 3.1.33.1.3 矩陣鍵盤的掃描流程矩陣鍵盤的掃描流程設(shè)計(jì)設(shè)計(jì) 程序流程說明:判斷按鍵是否有按下,有按下,則判斷是哪一行,哪一列,并 找到行列的交點(diǎn)按鍵,并返回按鍵值。沒有按鍵
34、按下,則返回 99,代表沒有按鍵按 下。如圖 15 所示。部分代碼如下: 圖圖 1515 矩陣鍵盤掃描流程圖矩陣鍵盤掃描流程圖 有按鍵 按下? 是 14 鍵盤掃描代碼: uchar KeyScanf() uchar ret,temp1,temp2; P1=0 x0f; if(P1!=0 x0f) DelayMs(15); if(P1!=0 x0f) temp1=P1; / 判斷是哪一行按鍵按下 P1=0 xf0; DelayMs(5); temp2=P1; / 判斷是哪一列按鍵按下 ret=temp1|temp2; / 通過行和列的判斷是哪一個(gè)按鍵按下 switch(ret) case 0 x
35、e7: return 1; case 0 x77:return 12; case 0 xd7: return 2; case 0 xeb:return 4; case 0 xb7: return 3; case 0 xdb:return 5; case 0 xbb:return 6; case 0 x7b: return 13; case 0 xed: return 7; case 0 xdd:return 8; case 0 xbd: return 9; case 0 x7d:return 14; case 0 xee: return 10; case 0 xde: return 0; ca
36、se 0 xbe: return 11;case 0 x7e:return 15; return ret; return 99; 15 4 4 電路、程序調(diào)試電路、程序調(diào)試及硬件組裝及硬件組裝 4.14.1 軟件仿真軟件仿真 此次設(shè)計(jì)采用 Keil 進(jìn)行程序仿真,電路采用軟件 Proteus 仿真,在做成成品前, 會(huì)有一個(gè)模擬仿真,做模擬仿真會(huì)帶來很多的方便好處,例如,實(shí)物可以演示的, 在仿真軟件上就可以做到,這樣就省了物力人力的浪費(fèi)。模擬仿真如果驗(yàn)證正確可 行了就可以做實(shí)物成品了。仿真過程就是一個(gè)找錯(cuò)的過程,不斷的驗(yàn)證改正直到正 確。 4.1.14.1.1 程序程序調(diào)試調(diào)試 寫程序不是一次就
37、能成功,而是一個(gè)反復(fù)找錯(cuò)的過程。在寫程序之前,把總設(shè) 計(jì)的流程圖列出來。這樣在寫程序時(shí)就比較有總的框架結(jié)構(gòu)。寫程序就有了順序, 該寫什么就比較清楚。調(diào)程序的前提是熟悉 Keil 軟件和 C 語言,此次程序設(shè)計(jì)大部 分是關(guān)于硬件的程序,會(huì)根據(jù)硬件的資料進(jìn)行程序設(shè)計(jì),這是比較難的點(diǎn),因?yàn)槟?必須通過硬件資料了解硬件的工作原理,才能更好的寫程序。仿真圖如圖 16 所示 圖圖 1616 程序調(diào)試程序調(diào)試 16 4.1.24.1.2 電路的調(diào)試及仿真電路的調(diào)試及仿真 調(diào)試是指系統(tǒng)的調(diào)整、改進(jìn)與測試。本設(shè)計(jì)電路采用 Proteus 進(jìn)行電路仿真測 試,首先設(shè)計(jì)出整體電路圖然后進(jìn)行檢查有沒有錯(cuò)誤,然后將 K
38、eil 軟件上調(diào)試生成 的 HEX 文件下載到仿真電路圖進(jìn)行仿真,整個(gè)模擬仿真如果成功,則表明最后做出 的實(shí)物是成功可行的,不過也不排除在做硬件時(shí)出現(xiàn)錯(cuò)誤。如果仿真不成功,可以 檢查程序、還有電路中的元件參數(shù)以及元件的選取是不是符合。Proteus 仿真如圖 17、18、19、20 所示。 (1)輸入密碼 圖圖 1717 輸入密碼輸入密碼 (2)解鎖成功 圖圖 1818 解鎖成功解鎖成功 17 (3)修改密碼 圖圖 1919 修改密碼修改密碼 (4)輸入管理員密碼初始化密碼成功 圖圖 2020 初始化密碼初始化密碼 18 4.24.2 電路板設(shè)計(jì)電路板設(shè)計(jì) 此次設(shè)計(jì)的 PCB 制版,采用軟件
39、DXP 2004 畫板,要完成電路板設(shè)計(jì)的整個(gè)過程, 必須經(jīng)過原理圖設(shè)計(jì)、PCB 設(shè)計(jì)和制板三個(gè)階段。 (1)繪制原理圖:首先設(shè)計(jì)總的電路圖,總的電路圖也就是有許多元件和導(dǎo)線 構(gòu)成的,元件都是有外形構(gòu)造的以及引腳等。所以在設(shè)計(jì)電路板時(shí),就有元件的封 裝,例如電阻元件,是有兩個(gè)引腳,但是外形大小有很多差別,所以要根據(jù)選購的 元件型號(hào)以及外型情況進(jìn)行具體畫封裝,例如可以選擇直尺量元件引腳間的長度, 再在軟件上選擇封裝,如果軟件上沒有合適的封裝,就需要自己重新畫封裝。繪制 的原理圖如圖 21 所示。 圖圖 2121 繪制原理圖繪制原理圖 (2)繪制 PCB 板:繪制完電路圖以及封裝之后,將原理圖導(dǎo)入
40、圖導(dǎo)入,接下來 進(jìn)行布線,可以選擇自動(dòng)布線,也可以自己布線,盡量選擇自己布線。PCB 圖如圖 22 所示。 19 圖圖 2222 PCBPCB 圖圖 4.4.3 3 元器件的選擇與測量元器件的選擇與測量 此次設(shè)計(jì)的元器件主要有:STC89C52 單片機(jī)、晶振、電阻、電容、按鍵、開關(guān)、 電源座、三極管、蜂鳴器、時(shí)鐘芯片、液晶、繼電器、壓力傳感器、A/D 轉(zhuǎn)換芯片 HX711 等。這些元器件的引腳需要查找資料,了解每個(gè)器件的特性再進(jìn)行焊接。這 些元器件直接根據(jù)型號(hào)到電子元器件市場就很容易買到。其中焊接時(shí)要注意元件正 負(fù)極性,電阻電容大小、芯片引腳順序等細(xì)節(jié)。一般電阻的大小可以通過色環(huán)讀取, 或直接
41、用萬用表進(jìn)行測量;電容和晶振等的大小會(huì)標(biāo)準(zhǔn)在元件本身;元件的正負(fù)可 以遵循長正短負(fù)的原則,一些特殊元件可以通過查找 20 5 5 總結(jié)總結(jié)及研究展望及研究展望 5.15.1 總結(jié)總結(jié) 經(jīng)過三個(gè)多月的努力,畢業(yè)設(shè)計(jì)的任務(wù)基于單片機(jī)的超市存物箱模擬裝置 設(shè)計(jì)已經(jīng)完成。這個(gè)設(shè)計(jì)題目并不是新的,但從中能體現(xiàn)到一個(gè)系統(tǒng)開發(fā)設(shè)計(jì)的過 程,足于讓我受益。能夠從設(shè)計(jì)、論證、畫圖、制板、編程到最終的調(diào)試成功。完 成整個(gè)系統(tǒng)的設(shè)計(jì),我又得到了很好的一次實(shí)踐鍛煉。 設(shè)計(jì)論證和完成設(shè)計(jì)的整個(gè)過程,是將單片機(jī)原理、C 語言程序、模擬電路基 礎(chǔ)與數(shù)字電路基礎(chǔ)、protel PCB 設(shè)計(jì)等多門課程的內(nèi)容有機(jī)地結(jié)合應(yīng)用在了一
42、起。 如果對(duì)于這些課程沒有掌握,那做這個(gè)設(shè)計(jì)必然困難重重,所以在大學(xué)四年期間的 平時(shí)上課時(shí)間以及課下時(shí)間,要多去圖書館充實(shí)自己,不要把時(shí)間浪費(fèi)了。此次畢 業(yè)設(shè)計(jì)的核心是單片機(jī),我所學(xué)專業(yè)也是以單片機(jī)課程為核心的,現(xiàn)在單片機(jī)功能 日益強(qiáng)大,有八位、十六位、三十二位等,但其基本原理是相對(duì)不變的。本次畢業(yè) 設(shè)計(jì)采用八位 STC89C52。雖然本次設(shè)計(jì)任務(wù)的功能較為簡單,但是能夠較全面的涉 及單片機(jī)各項(xiàng)基本知識(shí),提高了自己的單片機(jī)設(shè)計(jì)能力,是一次將理論能力向?qū)嵺` 能力轉(zhuǎn)化的一次鍛煉機(jī)會(huì)。 知識(shí)就是從不懂才去探索學(xué)習(xí)到懂的一個(gè)過程。我是一個(gè)總是喜歡自己去研究 問題,不喜歡和別人探討交流,總是很被動(dòng),不喜
43、歡主動(dòng)去和別人交流,我將在以 后的工作、生活中改變這些缺點(diǎn)。 5.25.2 研究展望研究展望 現(xiàn)在整個(gè)設(shè)計(jì)成品及論文已經(jīng)完成,雖然跟不上目前的社會(huì)背景使用要求,但 是我完成了最終要達(dá)到的目標(biāo)。我從中做了很多努力我收獲很多,除了自己的努力 之外,還有指導(dǎo)老師的殷切指導(dǎo)及同學(xué)的幫助,由于個(gè)人知識(shí)水平有限有很多地方 難免存在不足之處,但是設(shè)計(jì)就是一個(gè)不斷完善的一個(gè)過程。現(xiàn)在來看這個(gè)功能的 實(shí)現(xiàn)還存在著不少可以擴(kuò)展的功能比如加上指紋識(shí)別模塊或者無線刷卡模塊等,都 可以提高本設(shè)計(jì)的適用范圍。 21 參考文獻(xiàn)參考文獻(xiàn) 1 張毅剛.趙光權(quán).張京超.單片機(jī)原理及應(yīng)用:C51 編程+Proteus 仿真J高等教
44、 育出版社,2016, 54-57 2 劉剛. Protel DXP 2004 SP2 M. 電子工業(yè)出版社, 2013, 14-16 3 周旭欣.周淇.單片機(jī)原理及應(yīng)用:基于 keil 及 Proteus 仿真 J北京航空航天 大學(xué)出版社 2016,(03): 4 王千. 實(shí)用電子電路大全M. 電子工業(yè)出版社, 2004, 28-36 5 沈紅衛(wèi). 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析M.北京航空航天大學(xué)出版社, 2005, 35-38 6 余孟嘗.數(shù)字電子技術(shù)基礎(chǔ)簡明教程M.高等教育出版社 2006.7 7 郭海英. 基于單片機(jī)的電子安全密碼鎖的設(shè)計(jì)M. 現(xiàn)代電子技術(shù), 2005,(13) 8 李
45、玉梅. 基于 MSU-51 系列單片機(jī)原理的應(yīng)用設(shè)計(jì)M.國防工業(yè)出版社, 2006, 35-38 9 張麗娜,劉美玲,姜新.51 單片機(jī)系統(tǒng)開發(fā)與實(shí)踐J北京航空航天大學(xué)出版社 2013,(10) 10 陳桂友,單片機(jī)應(yīng)用技術(shù)基礎(chǔ).機(jī)械工業(yè)出版社,2015,(07) 11 葉啟明. 單片機(jī)制作的新型安全密碼鎖J. 家庭電子, 2005, (10): 98-111 12 李玉峰、倪虹霞. MCS-51 系列單片機(jī)原理與接口技術(shù)M.人民郵電出版社 2004, 76-96 13張齊 .朱寧西.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)技術(shù)-基于 C51 的 Proteus 仿真J電子工業(yè) 出版社,2014,(9): 14 H
46、iro Yamasaki.The future of sensor interface electronicsJ.Sensors and actuators A,2011,(56):129-133. 22 致謝致謝 我的四年大學(xué)生活即將結(jié)束,而對(duì)于我的人生只是一小段,接下來我將面臨新 開始新的挑戰(zhàn)。本設(shè)計(jì)的研究工作是在我的指導(dǎo)老師及舍友的精心指導(dǎo)和悉心關(guān)懷 下完成的。從開題報(bào)告到論文結(jié)束,我所取得的每一個(gè)進(jìn)步、編寫的每一段程序都 有舍友、導(dǎo)師的關(guān)心指導(dǎo)。在這次畢業(yè)設(shè)計(jì)中我遇到了很多困難比如,在編寫程序 方面,寫程序是一個(gè)比較枯燥的,所以要有耐心和細(xì)心。在編寫完程序之后,我受 益匪淺。在以后的學(xué)
47、習(xí)工作中,盡自己最大的努力取得更好的成績。 在此我要向我 的指導(dǎo)老師以及我的所有老師致以最由衷的感謝和深深的敬意,在四年的大學(xué)學(xué)習(xí) 期間,有了每位老師的精心教學(xué),使我獲得了很多專業(yè)知識(shí),取得了很大的進(jìn)步。 在這里,我向所有關(guān)心和幫助過我的老師、同學(xué)和朋友表示由衷的謝謝!最后,謝 謝在忙碌之中參加評(píng)閱論文和答辯的各位老師。 23 附錄附錄 附錄附錄 A 元件清單元件清單 元件名稱元件名稱元件數(shù)量元件數(shù)量 STC89C52 1 片 單片機(jī)底座1 個(gè) 12M 晶振1 個(gè) 30pF 電容2 個(gè) 電解電容 10uF1 個(gè) 電阻 1K1 個(gè) 電阻 10K3 個(gè) 排阻 10K1 片 按鍵16 個(gè) 1602
48、液晶1 個(gè) 1602 液晶底座1 個(gè) 10K 電位器1 個(gè) AT24C02 1 個(gè) AT24C02 底座1 個(gè) 有源蜂鳴器1 個(gè) S8550(PNP)三極管2 個(gè) 1N4148 二極管1 個(gè) led 燈1 個(gè) 5V 繼電器1 個(gè) 繼電器端子1 個(gè) 電源開關(guān)1 個(gè) DC3.5 電源座1 個(gè) 電磁鎖供電線1 根 導(dǎo)線若干 電源供電線1 根 電磁鎖1 個(gè) 壓力傳感器一個(gè) A/D 轉(zhuǎn)換芯片 HX711一片 24 附錄附錄 B 原理圖原理圖 附錄附錄 C PCB 圖圖 25 附錄附錄 D 實(shí)物圖實(shí)物圖 附錄附錄 E 程序程序 #include HX711.h #ifndef _MAIN_H_ #defi
49、ne _MAIN_H_ #define uchar unsigned char #define uint unsigned int #define GapValue 430 #define yaliValue 100 #endif /聲明函數(shù) extern void DelayMs(uint time); extern void MingJiao(uint time); extern void Get_yali1(); 26 extern void Get_yali2(); /定義管腳 sbit SDA_P = P21; / 定義 AT24C02 的 SDA 引腳 sbit SCL_P = P
50、20; / 定義 AT24C02 的 SCL 引腳 sbit LcdEn_P = P25; / 1602 液晶的 EN 管腳 sbit LcdRw_P = P26; / 1602 液晶的 RW 管腳 sbit LcdRs_P = P27; / 1602 液晶的 RS 管腳 sbit Relay_P = P32; / 繼電器引腳 sbit Beep_P = P33; / 蜂鳴器引腳 /定義變量 unsigned long yali1 = 0; /用來存放毛皮數(shù)據(jù) long yali2 = 0; /用來存放實(shí)物重量 uchar ArrCodeBuff6; / 密碼輸入緩沖區(qū) uchar ArrCo
51、deUnlock6; / 解鎖密碼 uchar ArrCodeTemp6; / 臨時(shí)數(shù)組(修改密碼時(shí)會(huì)用到) uchar ArrCodeAdmin6=1,2,3,1,2,3;/ 管理員密碼 uchar row,column; / 液晶的當(dāng)前行列坐標(biāo) uchar inputNum=0; / 輸入的密碼位數(shù) uchar inputMode=1; / =1 輸入解鎖密碼,=2 輸入修改密碼 1,=3 輸入解鎖密碼 2 uchar errTime=0; / 密碼輸入錯(cuò)誤的次數(shù) / 延時(shí) 6 微秒 void Delay6us() _nop_(); _nop_(); _nop_(); _nop_(); _
52、nop_(); _nop_(); 27 / 1602 液晶寫命令函數(shù),cmd 就是要寫入的命令 void LcdWriteCmd(uchar cmd) LcdRs_P = 0; LcdRw_P = 0; LcdEn_P = 0; P0=cmd; DelayMs(2); LcdEn_P = 1; DelayMs(2); LcdEn_P = 0; / 1602 液晶寫數(shù)據(jù)函數(shù),dat 就是要寫入的命令 void LcdWriteData(uchar dat) LcdRs_P = 1; LcdRw_P = 0; LcdEn_P = 0; P0=dat; DelayMs(2); LcdEn_P = 1
53、; DelayMs(2); LcdEn_P = 0; void LcdInit() LcdWriteCmd(0 x38); / 16*2 顯示,5*7 點(diǎn)陣,8 位數(shù)據(jù)口 LcdWriteCmd(0 x0C); / 開顯示,不顯示光標(biāo) 28 LcdWriteCmd(0 x06); / 地址加 1,當(dāng)寫入數(shù)據(jù)后光標(biāo)右移 LcdWriteCmd(0 x01); / 清屏 / 液晶光標(biāo)定位函數(shù) void LcdGotoXY(uchar y, uchar x) if(y=0) / 第一行 LcdWriteCmd(0 x80+x); if(y=1) / 第二行 LcdWriteCmd(0 x80+0 x
54、40+x); row=y; column=x; / 液晶輸出字符串函數(shù) void LcdPrintStr(uchar *str) while(*str!=0) LcdWriteData(*str+); / IIC 起始函數(shù) void IIcStart() SDA_P=1; Delay6us(); SCL_P=1; Delay6us(); SDA_P=0; Delay6us(); 29 / IIC 終止函數(shù) void IIcStop() SDA_P=0; Delay6us(); SCL_P=1; Delay6us(); SDA_P=1; Delay6us(); / IIC 寫一個(gè)字節(jié) void
55、IIcWriteByte(uchar dat) uchar i; for(i=0;i8;i+) dat=dat1; SCL_P=0; Delay6us(); SDA_P=CY; Delay6us(); SCL_P=1; Delay6us(); SCL_P=0; Delay6us(); SDA_P=1; Delay6us(); 30 / IIC 讀一個(gè)字節(jié) uchar IIcReadByte() uchar i,temp,dat=0; SCL_P=0; Delay6us(); SDA_P=1; Delay6us(); for (i=0;i8;i+) SCL_P=1; Delay6us(); te
56、mp=SDA_P; Delay6us(); dat=(dat1)|temp; SCL_P=0; Delay6us(); return(dat); / IIC 總線響應(yīng) void IIcRespons() uchar i=0; SCL_P=1; Delay6us(); while(SDA_P=1) 31 SCL_P=0; Delay6us(); / IIC 讀出數(shù)據(jù) uchar IIcReadDat(uchar addr) uchar dat; IIcStart(); / 開始信號(hào) IIcWriteByte(0 xa0); / 寫芯片地址(寫) IIcRespons(); / 等待應(yīng)答 IIcW
57、riteByte(addr); / 寫內(nèi)存地址(0-255) IIcRespons(); / 等待應(yīng)答 IIcStart(); / 開始信號(hào) IIcWriteByte(0 xa1); / 寫芯片地址(讀) IIcRespons(); / 等待應(yīng)答 dat=IIcReadByte(); / 讀取一個(gè)字節(jié)數(shù)據(jù) IIcRespons(); / 等待應(yīng)答 IIcStop(); / 結(jié)束信號(hào) DelayMs(2); / 簡短延時(shí) return dat; / 返回讀取到的數(shù)據(jù) / IIC 寫入數(shù)據(jù) void IIcWriteDat(uchar addr,uchar dat) IIcStart(); / 開
58、始信號(hào) IIcWriteByte(0 xa0); / 寫芯片地址(寫) IIcRespons(); / 等待應(yīng)答 IIcWriteByte(addr);/ 寫內(nèi)存地址(0-255) 32 IIcRespons(); / 等待應(yīng)答 IIcWriteByte(dat); / 寫入數(shù)據(jù) IIcRespons(); / 等待應(yīng)答 IIcStop(); / 結(jié)束信號(hào) DelayMs(2); / 簡短延時(shí) / 矩陣鍵盤掃描程序 uchar KeyScanf() uchar ret,temp1,temp2; P1=0 x0f; if(P1!=0 x0f) DelayMs(15); if(P1!=0 x0f)
59、 temp1=P1; / 判斷出是哪一行按鍵按下 P1=0 xf0; DelayMs(5); temp2=P1; / 判斷出是哪一列按鍵被按下 ret=temp1|temp2; / 通過行和列的值,確定是哪個(gè)按鍵被按下 switch(ret) case 0 xe7: return 1; case 0 xd7: return 2; case 0 xb7: return 3; case 0 x77: return 12; case 0 xeb: return 4; case 0 xdb: return 5; 33 case 0 xbb: return 6; case 0 x7b: return 1
60、3; case 0 xed: return 7; case 0 xdd: return 8; case 0 xbd: return 9; case 0 x7d: return 14; case 0 xee: return 10; case 0 xde: return 0; case 0 xbe: return 11; case 0 x7e: return 15; return ret; return 99; / 液晶顯示密碼 void LcdPrintCode(uchar num) LcdGotoXY(row,column); / 液晶顯示定位 LcdWriteData(num+0 x30);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人股權(quán)投資協(xié)議常用版(三篇)
- 2025年五年級(jí)老師個(gè)人的年度工作總結(jié)(五篇)
- 2025年個(gè)人攝影服務(wù)合同模板(2篇)
- 2025年中學(xué)春季學(xué)期六年級(jí)組工作總結(jié)(四篇)
- 專題01 三角函數(shù)的圖像與性質(zhì)(解析版)
- 2025年個(gè)人飯店承包經(jīng)營合同經(jīng)典版(三篇)
- 木材檢驗(yàn)與運(yùn)輸合同
- 汽車輪胎運(yùn)輸協(xié)議范本
- 天主教堂裝修意向協(xié)議
- 學(xué)校裝修施工合同模板
- GH/T 1030-2004松花粉
- 部編版六年級(jí)下冊(cè)語文第3單元習(xí)作例文+習(xí)作PPT
- 四年級(jí)上冊(cè)英語試題-Module 9 Unit 1 What happened to your head--外研社(一起)(含答案)
- 辦理工傷案件綜合應(yīng)用實(shí)務(wù)手冊(cè)
- 子宮內(nèi)膜異位癥診療指南
- 《高級(jí)計(jì)量經(jīng)濟(jì)學(xué)》-上課講義課件
- 《現(xiàn)代氣候?qū)W》研究生全套教學(xué)課件
- 護(hù)理診斷及護(hù)理措施128條護(hù)理診斷護(hù)理措施
- 情商知識(shí)概述課件
- 九年級(jí)物理總復(fù)習(xí)教案
- 天然飲用山泉水項(xiàng)目投資規(guī)劃建設(shè)方案
評(píng)論
0/150
提交評(píng)論