




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上信息與電氣工程學院單片機應(yīng)用系統(tǒng)(三級項目)設(shè)計說明書(2014/2015學年第二學期)題 目 : 開機次數(shù)記憶器設(shè)計及實現(xiàn) 專業(yè)班級 : 電子信息工程1202班 學生學號 : 學生姓名 : 指導教師 : 設(shè)計周數(shù) : 2周 設(shè)計成績 : 2015年6月26日1、 項目設(shè)計1.1 設(shè)計要求(1)以單片機AT89C52為核心,使用24C02串行EEPROM進行存儲開機次數(shù);(2)用LCD1602顯示存儲的開機次數(shù); (3)單片機復位一次,從24C02中讀取數(shù)據(jù),然后加1;(4)在此基礎(chǔ)上可以拓展對一組密碼數(shù)據(jù)存儲對比后,才能進入正常界面。1.2 設(shè)計目的(1)培養(yǎng)學生正
2、確的設(shè)計思想,理論聯(lián)系實際的工作作風,嚴肅認真、實事求是的科學態(tài)度和勇于探索的創(chuàng)新精神。(2)鍛煉學生自學軟件的能力及分析問題、解決問題的能力。(3)通過課程設(shè)計,使學生在理論計算、結(jié)構(gòu)設(shè)計、工程繪圖、查閱設(shè)計資料、標準與規(guī)范的運用和計算機應(yīng)用方面的能力得到訓練和提高。(4)鞏固、深化和擴展學生的單片機理論知識。(5)培養(yǎng)學生的團隊合作能力。2、項目設(shè)計正文2.1方案設(shè)計2.1.1設(shè)計思路此次項目設(shè)計的目的是實現(xiàn)單片機開機次數(shù)的記憶及顯示功能,即其復位斷電關(guān)機都能準確的將開機次數(shù)顯示在LCD1602顯示屏上。根據(jù)對項目設(shè)計要求和實際應(yīng)用的分析,選用以單片機AT89C52為核心,使用24C02串
3、行EEPROM進行存儲開機次數(shù)的方法,使C52單片機的P2.0口和P2.1口分別控制24C02的數(shù)據(jù)線SDA和時鐘信號線SCK來完成數(shù)據(jù)的讀寫功能,然后用LCD1602顯示屏將24C02中存儲的數(shù)據(jù)顯示出來。具體設(shè)計實現(xiàn)的邏輯流程圖如圖1所示:圖1 邏輯實現(xiàn)流程圖2.1.2主要元器件(1) 處理器AT89C52,引腳圖如圖2所示:圖2 AT89C52單片機引腳圖AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS
4、-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應(yīng)用。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2 個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復擦寫的 Flash存儲器可有效地降低開發(fā)成本。(2) 外部存儲器24C02串行E2PROM是基于I2C-BUS 的存儲器件,遵循二線制協(xié)議,由于其具有接口方便,體積小,數(shù)據(jù)掉電不丟失等特點,在儀器儀表及工業(yè)自動化控制中
5、得到大量的應(yīng)用。具有以下幾大特點:1.寬范圍的工作電壓1.8v5.5v2.低電壓技術(shù):1mA典型工作電流1uA典型待機電流3.儲存器組織結(jié)構(gòu)4.2線串行接口,完全兼容I2C總線5.施密特觸發(fā)輸入噪聲抑制6.硬件數(shù)據(jù)寫保護7.內(nèi)部與周期(最大5ms)8.自動遞增地址9.可按照字節(jié)寫10.esd保護大于2.5kV11.高可靠性:擦寫壽命:100萬次 數(shù)據(jù)保持時間:100年12.無鉛工藝,符合RoHS標準2.2單元電路設(shè)計2.2.1處理器AT89C52引腳的選擇本次項目設(shè)計選擇的引腳分別為P0口、P2口、RES端口。P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復用口。作為輸出口
6、用時,每位能吸收電流的方式驅(qū)動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0 口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。P2口 是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。訪問外
7、部程序存儲器或16 位地數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVXRI 指令)時,P2 口輸出P2鎖存器的內(nèi)容。Flash編程或校驗時,P2亦接收高位地址和一些控制信號。P2.0口和P2.1口分別控制24C02的數(shù)據(jù)線SDA和時鐘信號線SCK來完成數(shù)據(jù)的讀寫功能。RST為復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。單片機引腳圖連接選擇如圖3所示:圖3 單片機的引腳連接圖2.2.2 RC復位電路復位電路圖如圖4所示:圖4 復位電路圖系統(tǒng)復位的工作過程是在加電時,復位電路通過電容
8、加給RST端一個短暫的高電平信號,此高電平信號隨著VCC對電容的充電過程而逐漸回落,即RST端的高電平持續(xù)時間取決于電容的充電時間。為了保證系統(tǒng)能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。在圖4的復位電路中,當VCC掉電時,必然會使RST端電壓迅速下降到0V以下,但是,由于內(nèi)部電路的限制作用,這個負電壓將不會對器件產(chǎn)生損害。另外,在復位期間,端口引腳處于隨機狀態(tài),復位后,系統(tǒng)將端口置為全“1”態(tài)。如果系統(tǒng)在上電時得不到有效的復位,則程序計數(shù)器PC將得不到一個合適的初值,CPU可能會從一個未被定義的位置開始執(zhí)行程序。2.2.3 LCD1602顯示屏的連接LCD1602各引腳的功能如
9、下:第1腳:VSS為電源地第2腳:VDD接5V電源正極第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。第6腳:E(或EN)端為使能(enable)端。第714腳:D0D7為8位雙向數(shù)據(jù)端。單片機的P2.5,P2.6,P2.7分別接LCD1602的RS、RW、E端口,如圖5所示:圖5 LCD1602顯示屏的連接2.2.4 24C02的連接C52單片機的P2.0口和P2.1口分別控制24C02的數(shù)據(jù)線SDA和時鐘信號線SCK來完成數(shù)據(jù)的讀寫功能,具體電路圖如圖6所示:圖6 24C02 的連接
10、2.2.5 整體電路系統(tǒng)整體仿真電路和實物操作電路如圖7和圖8所示:圖7 整體仿真電路圖圖8 仿真實物圖2.3系統(tǒng)實現(xiàn)程序#include <reg51.h>#include <intrins.h> sbit SDA=P20;/AT24C01串行數(shù)據(jù)5腳 sbit SCL=P21;/AT24C01串行時鐘6腳int time=0;int time2=0;typedef unsigned char uint8; /* defined for unsigned 8-bits integer variable 無符號8位整型變量 */typedef signed char i
11、nt8; /* 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=""BYTE dis310=""delay(BYTE ms)/ 延時子程序BYTE i;while(ms-)for(i
12、= 0; i< 250; i+)_nop_();_nop_();_nop_();_nop_();BOOL lcd_bz()/ 測試LCD忙碌狀態(tài)BOOL result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P0 & 0x80);ep = 0;return result;lcd_wcmd(BYTE cmd)/ 寫入指令數(shù)據(jù)到LCDwhile(lcd_bz();rs = 0;rw = 0;ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_
13、nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;lcd_pos(BYTE pos)/設(shè)定顯示位置lcd_wcmd(pos | 0x80);lcd_wdat(BYTE dat)/寫入字符顯示數(shù)據(jù)到LCDwhile(lcd_bz();rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;lcd_init()/LCD初始化設(shè)定lcd_wcmd(0x38);delay(
14、1);lcd_wcmd(0x0c);delay(1);lcd_wcmd(0x06);delay(1);lcd_wcmd(0x01);/清除LCD的顯示內(nèi)容delay(1);/2402程序2void AT2401_Delay();void busy() BYTE temp; temp=0x00; rs=0; rw=1; ep=1; while(temp&0x80)=0x80) ep=0;_nop_();ep=1;_nop_(); void AT2401_Start()/啟動信號SDA=1;AT2401_Delay();SCL=1;AT2401_Delay();SDA=0;AT2401_D
15、elay();void AT2401_Stop()/停止信號SDA=0;AT2401_Delay();SCL=1;AT2401_Delay();SDA=1;AT2401_Delay();void AT2401_Respons()/響應(yīng)uint8 i;SCL=1;AT2401_Delay();while(SDA=1)&&(i<250)i+;SCL=0;AT2401_Delay();void AT2401_Init()/初始化函數(shù)SDA=1;AT2401_Delay();SCL=1;AT2401_Delay();void AT2401_WByte(uint8 date)/寫一
16、個字節(jié)uint8 i,temp;temp=date;for(i=0;i<8;i+)temp=temp<<1;SCL=0;AT2401_Delay();SDA=CY;AT2401_Delay();SCL=1;AT2401_Delay(); SCL=0;AT2401_Delay();SDA=1;AT2401_Delay();uint8 AT2401_RByte()/讀一個字節(jié)uint8 i,k;SCL=0;AT2401_Delay();SDA=1;AT2401_Delay();for(i=0;i<8;i+)SCL=1;AT2401_Delay();k=(k<<1
17、)|SDA;SCL=0;AT2401_Delay();return k;void AT2401_WAddr(uint8 address,uint8 date)/指定地址寫一個數(shù)據(jù) AT2401_Start();AT2401_WByte(0xa0);AT2401_Respons();AT2401_WByte(address);AT2401_Respons();AT2401_WByte(date);AT2401_Respons();AT2401_Stop();uint8 AT2401_RAddr(uint8 address)/指定地址讀取一個字節(jié)uint8 date;AT2401_Start();
18、AT2401_WByte(0xa0);AT2401_Respons();AT2401_WByte(address);AT2401_Respons();AT2401_Start();AT2401_WByte(0xa1);AT2401_Respons();date=AT2401_RByte();AT2401_Stop();return date;void wr_com(BYTE com) ep=0; rs=0; rw=0; P0=com; _nop_(); ep=1; _nop_(); ep=0;void wr_data(BYTE date) busy(); ep=0; rs=1; rw=0; P
19、0=date; _nop_(); ep=1; _nop_(); ep=0;/ main()BYTE i;lcd_init();/ 初始化LCDAT2401_Init(); time = AT2401_RAddr(0x01);time2 = AT2401_RAddr(0x02);if(time>=9)AT2401_WAddr(0x01,0);time2+=1; time+=1;if(time2>9&&time>=9) time=0; time2=0 ;AT2401_WAddr(0x01, time);AT2401_WAddr(0x02, time2);lcd_p
20、os(4);/ 設(shè)置顯示位置為第一行的第5個字符i = 0;while(dis1i != '0')/ 顯示字符"TIME"lcd_wdat(dis1i);i+;lcd_pos(0x49);/ 設(shè)置顯示位置為第二行第一位字符dis2time; lcd_wdat(dis2time);/ 顯示字符delay(1);lcd_pos(0x48);/ 設(shè)置顯示位置為第二行第二位字符dis2time2;lcd_wdat(dis3time2);/ 顯示字符while(1); 3、 項目設(shè)計總結(jié)通過此次課程設(shè)計,使我更加扎實的掌握了有關(guān)單片機應(yīng)用系統(tǒng)設(shè)計方面的知識,在設(shè)計過程中雖然遇到了一些問題,但經(jīng)過一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中提前考試數(shù)學試卷
- 福建省質(zhì)檢卷數(shù)學試卷
- 高一年泉州統(tǒng)考數(shù)學試卷
- 福州初中五月數(shù)學試卷
- 甘肅15高考數(shù)學試卷
- 教師課件的制作培訓
- 2025年浙江醫(yī)療衛(wèi)生招聘金華義烏市中醫(yī)醫(yī)院招聘4人筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025年年唐都醫(yī)院住培醫(yī)師招錄筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025至2030城市建設(shè)規(guī)劃發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 二一年高考數(shù)學試卷
- 醫(yī)療器械行業(yè)市場部人員崗位職責
- 旅行社導游帶團操作流程
- 部編版小學道德與法治三年級下冊期末質(zhì)量檢測試卷【含答案】5套
- 怎樣當好一名師長
- DB21T 3354-2020 遼寧省綠色建筑設(shè)計標準
- 新生兒復蘇解析課件
- (完整版)重大危險源清單及辨識表
- ABI7500熒光定量PCR儀標準操作規(guī)程
- 語言領(lǐng)域核心經(jīng)驗《學前兒童語言學習與發(fā)展核心經(jīng)驗》
- DB51T 5036-2017 四川省屋面工程施工工藝規(guī)程
- 11級設(shè)計題目寶豐紅四煤礦
評論
0/150
提交評論