![單詞記憶測試器程序設計 [單片機開機次數記憶器的設計及實現]_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/23/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e1.gif)
![單詞記憶測試器程序設計 [單片機開機次數記憶器的設計及實現]_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/23/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e2.gif)
![單詞記憶測試器程序設計 [單片機開機次數記憶器的設計及實現]_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/23/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e3.gif)
![單詞記憶測試器程序設計 [單片機開機次數記憶器的設計及實現]_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/23/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e4.gif)
![單詞記憶測試器程序設計 [單片機開機次數記憶器的設計及實現]_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-12/23/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e/8ecafbf0-6460-4d9a-9dcf-f74ecf51859e5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單詞記憶測試器程序設計 單片機開機次數記憶器的設計及實現信息與電氣工程學院 單片機應用系統(三級項目) 設計說明書 (2014/2015學年第二學期) 題 目 :開機次數記憶器設計及實現 專業班級 :電子信息工程班 學生學號 :學生姓名 :指導教師 :設計周數 :2周 設計成績 :2015年X月X日 1、 項目設計 1.1 設計要求 (1)以單片機AT89C52為核心,使用24C02串行EEPROM進行存儲開機次數;(2)用LCD1602顯示存儲的開機次數;(3)單片機復位一次,從24C02中讀取數據,然后加1;(4)在此基礎上可以拓展對一組密碼數據存儲對比后,才能進入正常界面。1.2 設計目
2、的 (1)培養學生正確的設計思想,理論聯系實際的工作作風,嚴肅認真、實事求是的科學態度和勇于探索的創新精神。(2)鍛煉學生自學軟件的能力及分析問題、解決問題的能力。(3)通過課程設計,使學生在理論計算、結構設計、工程繪圖、查閱設計資料、標準與規范的運用和計算機應用方面的能力得到訓練和提高。(4)鞏固、深化和擴展學生的單片機理論知識。(5)培養學生的團隊合作能力。2、項目設計正文 2.1方案設計 2.1.1設計思路 此次項目設計的目的是實現單片機開機次數的記憶及顯示功能,即其復位斷電關機都能準確的將開機次數顯示在LCD1602顯示屏上。根據對項目設計要求和實際應用的分析,選用以單片機AT89C5
3、2為核心,使用24C02串行EEPROM進行存儲開機次數的方法,使C52單片機的P2.0口和P2.1口分別控制24C02的數據線SDA和時鐘信號線SCK來完成數據的讀寫功能,然后用LCD1602顯示屏將24C02中存儲的數據顯示出來。具體設計實現的邏輯流程圖如圖1所示:圖1 邏輯實現流程圖 2.1.2主要元器件 (1) 處理器AT89C52,引腳圖如圖2所示:圖2 AT89C52單片機引腳圖 AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易
4、失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業中有著廣泛的應用。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2 個讀寫口線,AT89C52可以按照常規方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的 Flash存儲器可有效地降低開發成本。(2) 外部存儲器24C02 串行E2PROM是基于I2C-BUS 的存儲器件,遵循二線制協議,由于其具有接口方便,體積小,數據掉電不丟失等
5、特點,在儀器儀表及工業自動化控制中得到大量的應用。具有以下幾大特點:1.寬范圍的工作電壓1.8v5.5v 2.低電壓技術:1mA典型工作電流 1uA典型待機電流 3.儲存器組織結構 4.2線串行接口,完全兼容I2C總線 5.施密特觸發輸入噪聲抑制 6.硬件數據寫保護 7.內部與周期(最大5ms) 8.自動遞增地址 9.可按照字節寫 10.esd保護大于2.5kV 11.高可靠性:擦寫壽命:100萬次 數據保持時間:100年 12.無鉛工藝,符合RoHS標準 2.2單元電路設計 2.2.1處理器AT89C52引腳的選擇 本次項目設計選擇的引腳分別為P0口、P2口、RES端口。P0 口是一組8 位
6、漏極開路型雙向I/O 口, 也即地址/數據總線復用口。作為輸出口用時,每位能吸收電流的方式驅動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8 位)和數據總線復用,在訪問期間激活內部上拉電阻。在Flash編程時,P0 口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。P2口 是一個帶有內部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口P2 寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內部存在上
7、拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。訪問外部程序存儲器或16 位地數據存儲器(例如執行MOVX DPTR 指令)時,P2 口送出高8 位地址數據。在訪問8 位地址的外部數據存儲器(如執行MOVXRI 指令)時,P2 口輸出P2鎖存器的內容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。P2.0口和P2.1口分別控制24C02的數據線SDA和時鐘信號線SCK來完成數據的讀寫功能。RST為復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。單片機引腳圖連接選擇如圖3所示:圖3 單片機的引腳連接圖 2.2.2 RC復位電路 復位電路圖如圖4
8、所示:圖4 復位電路圖 系統復位的工作過程是在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著VCC對電容的充電過程而逐漸回落,即RST端的高電平持續時間取決于電容的充電時間。為了保證系統能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。在圖4的復位電路中,當VCC掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內部電路的限制作用,這個負電壓將不會對器件產生損害。另外,在復位期間,端口引腳處于隨機狀態,復位后,系統將端口置為全“1”態。如果系統在上電時得不到有效的復位,則程序計數器PC將得不到一個合適的初值,CPU可能會從一個未被定義的位置開始執行程
9、序。2.2.3 LCD1602顯示屏的連接 LCD1602各引腳的功能如下:第1腳:VSS為電源地 第2腳:VDD接5V電源正極 第4腳:RS為寄存器選擇,高電平1時選擇數據寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端。第714腳:D0D7為8位雙向數據端。單片機的P2.5,P2.6,P2.7分別接LCD1602的RS、RW、E端口,如圖5所示:圖5 LCD1602顯示屏的連接 2.2.4 24C02的連接 C52單片機的P2.0口和P2.1口分別控制24C02的數據線SDA和時鐘
10、信號線SCK來完成數據的讀寫功能,具體電路圖如圖6所示:圖6 24C02 的連接 2.2.5 整體電路 系統整體仿真電路和實物操作電路如圖7和圖8所示:圖7 整體仿真電路圖 圖8 仿真實物圖 2.3系統實現程序 #include #include sbit SDA = P20; /AT24C01串行數據 5腳 sbit SCL = P21; /AT24C01串行時鐘 6腳 int time=0; int time2=0; typedef unsigned char uint8; /* defined for unsigned 8-bits integer variable 無符號8位整型變量
11、*/ typedef signed char int8; /* defined for signed 8-bits integer variable 有符號8位整型變量 */ typedef unsigned char BYTE; typedef unsigned int WORD; typedef bit BOOL ; sbit rs = P26; sbit rw = P25; sbit ep = P27; BYTE code dis1 = “TIME“; BYTE dis210=“0123456789“; BYTE dis310=“0123456789“; delay(BYTE ms) /
12、 延時子程序 BYTE i; while(ms-) for(i = 0; i 250; i+) _nop_(); _nop_(); _nop_(); _nop_(); BOOL lcd_bz() / 測試LCD忙碌狀態 BOOL result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (BOOL)(P0 & 0x80); ep = 0; return result; lcd_wcmd(BYTE cmd) / 寫入指令數據到LCD while(lcd_bz(); rs = 0; rw = 0; ep
13、 = 0; _nop_(); _nop_(); P0 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; lcd_pos(BYTE pos) /設定顯示位置 lcd_wcmd(pos | 0x80); lcd_wdat(BYTE dat) /寫入字符顯示數據到LCD while(lcd_bz(); rs = 1; rw = 0; ep = 0; P0 = dat; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _no
14、p_(); _nop_(); _nop_(); _nop_(); ep = 0; lcd_init() /LCD初始化設定 lcd_wcmd(0x38); delay(1); lcd_wcmd(0x0c); delay(1); lcd_wcmd(0x06); delay(1); lcd_wcmd(0x01); /清除LCD的顯示內容 delay(1); /2402程序2 void AT2401_Delay() ; void busy() BYTE temp; temp=0x00; rs=0; rw=1; ep=1; while(temp&0x80)=0x80) ep=0; _nop_(); e
15、p=1; _nop_(); void AT2401_Start()/啟動信號 SDA=1; AT2401_Delay(); SCL=1; AT2401_Delay(); SDA=0; AT2401_Delay(); void AT2401_Stop()/停止信號 SDA=0; AT2401_Delay(); SCL=1; AT2401_Delay(); SDA=1; AT2401_Delay(); void AT2401_Respons()/響應 uint8 i; SCL=1; AT2401_Delay(); while(SDA=1)&(i250) i+; SCL=0; AT2401_Dela
16、y(); void AT2401_Init()/初始化函數 SDA=1; AT2401_Delay(); SCL=1; AT2401_Delay(); void AT2401_WByte(uint8 date)/寫一個字節 uint8 i,temp; temp=date; for(i=0;i8;i+) temp=temp1; SCL=0; AT2401_Delay(); SDA=CY; AT2401_Delay(); SCL=1; AT2401_Delay(); SCL=0; AT2401_Delay(); SDA=1; AT2401_Delay(); uint8 AT2401_RByte()
17、/讀一個字節 uint8 i,k; SCL=0; AT2401_Delay(); SDA=1; AT2401_Delay(); for(i=0;i8;i+) SCL=1; AT2401_Delay(); k=(k=9) AT2401_WAddr(0x01,0); time2+=1; time+=1; if(time29&time=9) time=0; time2=0 ; AT2401_WAddr(0x01, time); AT2401_WAddr(0x02, time2); lcd_pos(4); / 設置顯示位置為第一行的第5個字符 i = 0; while(dis1i != 0) / 顯示
18、字符“TIME“ lcd_wdat(dis1i); i+; lcd_pos(0x49); / 設置顯示位置為第二行第一位字符 dis2time; lcd_wdat(dis2time); / 顯示字符 delay(1); lcd_pos(0x48); / 設置顯示位置為第二行第二位字符 dis2time2; lcd_wdat(dis3time2); / 顯示字符 while(1); 3、 項目設計總結 通過此次課程設計,使我更加扎實的掌握了有關單片機應用系統設計方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐出真知,通過親自動手制作,使我們掌握的知識不再是紙上談兵。課程設計誠然是一門專業課,給我很多專業知識以及專業技能上的提升,同時又是一門講道課,一門辯思課,給了我許多道,給了我很多思,給了我莫大的空間。同時,設計讓我感觸很深。使我對抽象的理論有了具體的認識。通過這次課程設計,我掌握了AT89C52、24C02和LCD1602的基本知識和連接測試,也通過查資料熟悉了外部存儲24C02的工作原理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備現場維修管理制度
- 設備缺陷登記管理制度
- 設想幾種班級管理制度
- 設計服務收費管理制度
- 設計部門人事管理制度
- 診所租賃設備管理制度
- 試驗檢測合同管理制度
- 財務針對部門管理制度
- 財政專用資金管理制度
- 貨物專用運輸管理制度
- 門診護理溝通技巧
- 常見急癥教育課件
- 行測圖形推理1000題庫帶答案
- 2024年深圳市房屋租賃合同(3篇)
- 學校食品安全投訴舉報制度及流程
- 食品感官檢驗:食品感官檢驗的基本條件
- 職業技能等級認定投訴舉報制度
- 5.2 預防犯罪 課件- 2024-2025學年統編版道德與法治八年級上冊
- 路燈控制器課程設計仿真
- 呼吸機霧化吸入療法護理實踐專家共識
- 廣西壯族賀州市2024年小升初考試數學試卷含解析
評論
0/150
提交評論