電子萬年歷__單片機(jī)課程設(shè)計(jì).doc_第1頁
電子萬年歷__單片機(jī)課程設(shè)計(jì).doc_第2頁
電子萬年歷__單片機(jī)課程設(shè)計(jì).doc_第3頁
電子萬年歷__單片機(jī)課程設(shè)計(jì).doc_第4頁
電子萬年歷__單片機(jī)課程設(shè)計(jì).doc_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單片機(jī)課程論文 電子萬年歷的設(shè)計(jì)制作Electronic calendar design production 學(xué)生姓名: 學(xué) 號(hào): 年級(jí)專業(yè)及班級(jí):湖南長沙 提交日期:2011年6月 目錄一、摘要2二、 電子萬年歷的設(shè)計(jì)31. 功能要求32. 硬件電路設(shè)計(jì)33. 軟件程序設(shè)計(jì)7三、性能分析10四、總結(jié)11五、參考文獻(xiàn)11六、附錄12一、摘要近年來隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價(jià)格便宜,工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來越廣泛地應(yīng)用于自動(dòng)控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個(gè)領(lǐng)域,單片機(jī)往往是作為一個(gè)核心部件來使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,以作完善。而51系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種,通過本次課程設(shè)計(jì)進(jìn)一步對(duì)單片機(jī)學(xué)習(xí)和應(yīng)用,從而更熟悉單片機(jī)的原理和相關(guān)設(shè)計(jì)并提高了開發(fā)軟、硬件的能力。本設(shè)計(jì)主要設(shè)計(jì)一個(gè)基于80C51單片機(jī)的電子時(shí)鐘,并在LED上顯示相應(yīng)的時(shí)間,通過兩個(gè)控制鍵和44鍵盤來實(shí)現(xiàn)時(shí)間的調(diào)節(jié)功能。應(yīng)用Proteus軟件實(shí)現(xiàn)單片機(jī)數(shù)字時(shí)鐘系統(tǒng)的設(shè)計(jì)與仿真。關(guān)鍵詞:?jiǎn)纹瑱C(jī) 80C51 數(shù)字時(shí)鐘 匯編語言AbstractWith the computer in the social sphere in recent years, the penetration and the development of large scale integrated circuit, microcontroller applications are constantly deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use and so on Therefore particularly suited to and control of the system, more and more widely used in automatic control, intelligent instruments, gauges, data acquisition, military products and household appliances and other fields, SCM is often used as a core component in According to the specific hardware architecture, and application-specific software features object combine to make perfect. The 51 series is the most typical of the microcontroller and the most representative one, through this course designed to further study and application of microcontrollers, which are more familiar with the principles of SCM and related design and development of improved software and hardware capabilities. The design of the main design of a 80C51 microcontroller based electronic clock, and the LED display the corresponding time, by two control keys and 4 4 keyboard to achieve the regulatory function of time. Proteus software application MCU digital clock system design and simulation.Keywords: digital clock 80C51 microcontroller assembly language二、電子萬年歷的設(shè)計(jì)1、 功能要求設(shè)計(jì)一臺(tái)電子萬年歷,主控芯片采用8051單片機(jī),日歷時(shí)鐘芯片采用DALLAS公司推出的高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘DS1302,顯示器采用點(diǎn)陣字符型液晶顯示模塊,分2行顯示,第一行顯示日、月、年,第2行顯示時(shí)、分、秒。2、硬件電路設(shè)計(jì) 下圖a所示為電子萬年歷的硬件電路圖,主要包括8051單片機(jī)、日歷時(shí)鐘芯片DS1302、點(diǎn)陣字符型液晶顯示模塊等。日歷時(shí)鐘芯片Ds302 是一種串行接口的實(shí)時(shí)時(shí)鐘,芯片內(nèi)部具有可編程日歷時(shí)鐘和31個(gè)字節(jié)的靜態(tài)RAM,日歷時(shí)鐘可自動(dòng)進(jìn)行閏年補(bǔ)償,計(jì)時(shí)準(zhǔn)確,接口簡(jiǎn)單,使用方便,工作電壓范圍寬(2.55.5V),功耗低,芯片自身還具有對(duì)備份電池進(jìn)行涓流充電功能,可有效延長備份電池的使用壽命。圖a 電子萬年歷的硬件電路圖 DS1302采用8腳封裝,其引腳排列如圖所示,各引腳功能如下。l Vcc1,Vcc:電源輸入l GND:地l X1,X2:外接32.768KHz石英晶振輸入l RST:復(fù)位通信允許l I/O:數(shù)據(jù)輸入/輸出端l SCLK:串行時(shí)鐘輸入圖b DS1302的引腳排列8051單片機(jī)與DS1302之間采用3線串行通信方式。復(fù)位/通信允許信號(hào)RST接到單片機(jī)的P1.5引腳,RST=1允許通信,RST=0禁止通信;串行時(shí)鐘信號(hào)SCLK接到單片機(jī)的P1.6引腳;數(shù)據(jù)輸入/輸出信號(hào)I/O接到單片機(jī)的P1.7引腳。8051作為主機(jī)通過控制RST、SCLK和I/O信號(hào)實(shí)現(xiàn)兩芯片之間的數(shù)據(jù)傳送。 DS1302芯片的X1和X2端外接32.768KHz的石英晶振Vcc1和Vcc2是電源引腳,單電源供電時(shí)接Vcc1腳,雙電源供電時(shí)主電源接Vcc2,備份電池接Vcc1,如果采用可充電鎘鎳電池,可啟用內(nèi)部涓流充電器在主電壓正常時(shí)向電池充電,以延長電池使用時(shí)間。備份電池也可用1UF以上的超容量電容代替,需要注意備份電池電壓應(yīng)略低于主電源工作電壓。數(shù)據(jù)傳送是以8051單片機(jī)為主控芯片進(jìn)行的,每次傳送時(shí)由8051向DS1302寫入一個(gè)命令字節(jié)開始的,命令字節(jié)的格式入下:D7D6D5D4D3D2D1D01RAM/CKA4A3A2A1A0RD/W命令字節(jié)的最高位必須為1,RAM/CK位為DS1302片內(nèi)RAM/時(shí)鐘選擇位,RAM/CK=1選擇RAM操作,RAM/CK=0選擇時(shí)鐘操作。RD/W為讀寫控制位,RD/W=1為讀操作,表示DS1302接受完命令字節(jié)后,按指定的選擇對(duì)象及寄存器地址,讀取數(shù)據(jù)并通過I/O線傳送給單片機(jī)8051. RD/W=0為寫操作,表示DS1302接受完命令字節(jié)后,緊跟著在接收來自于單片機(jī)8051的數(shù)據(jù)字節(jié),并寫入到DS1302相應(yīng)的寄存器后RAM單元中。A4A0為片內(nèi)日歷時(shí)鐘寄存器后RAM的地址選擇位。DS1302與8051之間通過I/O線進(jìn)行同步串行數(shù)據(jù)傳送,SCLK為串行通信時(shí)的位同步時(shí)鐘,一個(gè)SCLK脈沖傳送一位數(shù)據(jù),每次數(shù)據(jù)傳送時(shí)都以字節(jié)為單位,低位在前,高位在后,傳送一個(gè)字節(jié)需要8個(gè)SCLK脈沖。數(shù)據(jù)傳送可以單字節(jié)方式或多字節(jié)突發(fā)方式進(jìn)行。單字節(jié)方式傳送一次數(shù)據(jù)需要16個(gè)SCLK脈沖,多字節(jié)方式傳送一次數(shù)據(jù)在對(duì)日歷進(jìn)行讀寫時(shí)需要72個(gè)sclk脈沖。單字節(jié)操作方式可保證數(shù)據(jù)傳送時(shí)的安全性和可靠性,多字節(jié)操作方式則可提高數(shù)據(jù)傳送速度,兩種方式可視需要靈活選用。另外,DS1302的外接晶振推薦采用32.768khz,電容推薦值為6pf,由于晶振頻率較低,也可以不接電容,對(duì)計(jì)時(shí)精度影響不大。DS1302共有12個(gè)寄存器,其中7個(gè)寄存器與日歷時(shí)鐘有關(guān),存放的數(shù)據(jù)為BCD碼格式,日歷、時(shí)鐘寄存器地址及其內(nèi)容如表1所示。秒寄存器的第7位為時(shí)鐘暫??刂莆?,該位位1時(shí)暫停時(shí)鐘振蕩器,DS1302進(jìn)入低功耗狀態(tài),該位為0時(shí)啟動(dòng)時(shí)鐘。時(shí)寄存器的第7位為12或24小時(shí)方式選擇,該位為1時(shí)選擇12小時(shí)方式,該位為0時(shí)選擇24小時(shí)方式。在12小時(shí)方式下,時(shí)寄存器的第5位為AM/PM選擇,該位為1時(shí)選擇PM,該位為0時(shí)選擇。在24小時(shí)方式下,時(shí)寄存器的第5位為第2個(gè)小時(shí)位(20-23).表1 DS1302內(nèi)部寄存器地址與內(nèi)容寄存器命令字節(jié)取值范圍寄存器內(nèi)容寫讀76543210秒寄存器80H81H00-59CH10sSEC分寄存器82H83H00-59010minMIN時(shí)寄存器84H85H00-2或01-1212/24010A/pHRHR日寄存器86H87H01-28,29,30,310010DATADATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH00-9910YEARYEAR電子萬年歷的顯示部分采用點(diǎn)陣字符型液晶顯示模塊,以直接方式與8051單片機(jī)進(jìn)行接口。將單片機(jī)的P2.7通過適當(dāng)邏輯門電路組合接到液晶顯示模塊的E端,P0口通過外部鎖存器得到的最低2位地址線A0和A1分別接到液晶顯示模塊的RW和RS端,從而可得到接口有電路的命令寫入地址為7FF0H,命令讀取地址為7FF1H,數(shù)據(jù)操作地址為7FF2H,分別對(duì)這3個(gè)地址進(jìn)行操作即可將DS1302中的日歷時(shí)鐘信息顯示在LCD屏幕上。3、 軟件程序設(shè)計(jì)31 陽歷程序設(shè)計(jì) 因?yàn)槭褂昧藭r(shí)鐘芯片DSl302,陽歷程序只需從DSl302各寄存器中讀出年、周、月、日、小時(shí)、分、秒等數(shù)據(jù),再處理即可。在首次對(duì)DSl302進(jìn)行操作之前,必須對(duì)它進(jìn)行初始化,然后從DSl302中讀出數(shù)據(jù),再經(jīng)過處理后,送給顯示緩沖單元。陽歷程序流程圖見圖36所示。圖3.6 陽歷程序流程圖3.2計(jì)算陽歷天數(shù)程序流程圖圖3.8 計(jì)算陽歷天數(shù)程序流程圖3.3總程序 在8051單片機(jī)片內(nèi)R中開辟30H36H作為萬年歷的秒、分、時(shí)、日、月、周和年計(jì)時(shí)單元,并將初始時(shí)間設(shè)為23:59:55,初始日期設(shè)為07年12月31日第一周。采用8051單片機(jī)內(nèi)定時(shí)器T0來定時(shí)刷新LCD顯示內(nèi)容,T0定時(shí)初始值設(shè)為50ms,以查詢方式檢查T0溢出標(biāo)志,每當(dāng)溢出次數(shù)達(dá)到20時(shí),讀取一次DS1302的日歷時(shí)鐘數(shù)據(jù),同時(shí)對(duì)LCD顯示信息進(jìn)行更新。使用Proteus軟件仿真結(jié)果如下圖:1、 微控制器電路(芯片為AT89C51)仿真總圖:三、性能分析 計(jì)時(shí)器最關(guān)鍵的是計(jì)時(shí)的精度。電子萬年歷中DSl302上最好使用專用的晶振。經(jīng)測(cè)試制作的電子萬年歷,一星期快了3 s左右,誤差較大,實(shí)驗(yàn)設(shè)計(jì)中可換用標(biāo)準(zhǔn)晶振或用軟件進(jìn)行修正。四、總結(jié) 此課題是做一個(gè)簡(jiǎn)單的電子萬年歷,可根據(jù)自己的需求修改相應(yīng)的時(shí)間,由于有了前一段時(shí)間做課程設(shè)計(jì)的基礎(chǔ),應(yīng)用起Proteus軟件時(shí)便顯得得心應(yīng)手,對(duì)程序的編譯,以及生成相應(yīng)的hex文件,將匯編源程序加載等也熟練掌握。而且通過此次做電子萬年歷使我對(duì)單片機(jī)更加感興趣了,雖然我還沒有能力自己編寫程序,但我將會(huì)在以后的學(xué)習(xí)中更加深刻地學(xué)習(xí)它。五、參考資料:【1】徐愛鈞.單片機(jī)原理實(shí)用教程基于proteus虛擬仿真M.北京:電子工出版社,2009【2】侯玉寶,陳忠平,李成群.基于proteus的51系列單片機(jī)設(shè)計(jì)與仿真J.北京:電子工業(yè)出版社,2008【3】趙建領(lǐng),薛園園. 51單片機(jī)開發(fā)與應(yīng)用技術(shù)詳解J.北京:電子工業(yè)出版社,2009附錄附錄1:總電路圖附錄2:程序清單電子萬年歷的軟件程序:;*/T_RST Bit P1.5 ;實(shí)時(shí)時(shí)鐘復(fù)位線引腳T_CLK Bit P1.6 ;實(shí)時(shí)時(shí)鐘時(shí)鐘線引腳T_IO Bit P1.7 ;實(shí)時(shí)時(shí)鐘數(shù)據(jù)線引腳SECOND EQU 30HMINUTE EQU 31HHOUR EQU 32HDAY EQU 33HMONTH EQU 34HWEEK EQU 35HYEARL EQU 36H;*/ ORG 0000HSTART: LJMP MAIN ORG 0060HMAIN: MOV SP,#60H ;修改堆棧;* MOV SECOND,#55H ;初始時(shí)間設(shè)為23:59:55 MOV MINUTE,#59H MOV HOUR,#23H MOV DAY,#31H ;初始日期設(shè)為09年12月31日第一周 MOV MONTH,#12H MOV WEEK,#01H MOV YEARL,#09H LCALL SETDS1302LCALL LCD_INIT ;調(diào)用液晶模塊初始化子程序 MOV R3,#20 MOV TMOD,#01H MOV TH0,#3CH ;置定時(shí)器初值(定時(shí)50ms) MOV TL0,#0B0H SETB TR0 ;啟動(dòng)定時(shí)器0LP1: JBC TF0,LP2 ;查詢計(jì)數(shù)溢出 SJMP LP1 ;未到50 ms繼續(xù)計(jì)數(shù)LP2: MOV TH0,#3CH ;重新置定時(shí)器初值 MOV TL0,#0B0HMOV R2,#81H ;從第1行第2位開始,設(shè)置DDRAM地址LCALL WRTC MOV DPTR,#ZIFU1 ;指向顯示字符代碼首地址MOV R4,#06HLCALL WP1 ;第1行字符代碼寫入DDRAM LCALL DISPYMD ;顯示年月日MOV R2,#0C1H ;設(shè)置第2行DDRAM地址LCALL WRTCMOV DPTR,#ZIFU2 ;指向顯示字符代碼首地址MOV R4,#06HLCALL WP1 ;第1行字符代碼寫入DDRAM LCALL DISPHMS ;顯示時(shí)分秒 DJNZ R3,LP1 ;未到1s繼續(xù)循環(huán) LCALL GET1302 ;每到1s從DS1302讀取一次時(shí)間 mov r3,#20 SJMP lp1ZIFU1: DB Date: ZIFU2: DB Time: ;*DISPHMS:MOV A,HOUR ;時(shí)分秒顯示子程序 SWAP A ANL A,#03HADD A,#30HMOV R2,ALCALL WRTD MOV A,HOUR ANL A,#0FHADD A,#30HMOVR2,ALCALL WRTDMOV R2,#2DHLCALL WRTD MOV A,MINUTE ;顯示分 SWAP A ANL A,#07HADD A,#30HMOV R2,ALCALL WRTD MOV A,MINUTE ANL A,#0FHADD A,#30HMOV R2,ALCALL WRTDMOV R2,#2DHLCALL WRTD MOV A,SECOND ;顯示秒 SWAP A ANL A,#07HADD A,#30HMOV R2,ALCALL WRTD MOV A,SECOND ANL A,#0FHADD A,#30HMOV R2,ALCALL WRTD RET;*DISPYMD:MOV A,YEARL ;年月日顯示子程序 SWAP A ANL A,#03HADD A,#30HMOV R2,ALCALL WRTD MOV A,YEARL ANL A,#0FHADDA,#30HMOVR2,ALCALL WRTDMOV R2,#2DHLCALL WRTD MOV A,MONTH ;顯示月 SWAP A ANL A,#07HADD A,#30HMOV R2,ALCALLWRTD MOV A,MONTH ANL A,#0FHADD A,#30HMOV R2,ALCALL WRTDMOV R2,#2DHLCALL WRTD MOV A,DAY ;顯示日 SWAP A ANL A,#07HADD A,#30HMOV R2,ALCALL WRTD MOV A,DAY ANL A,#0FHADD A,#30HMOVR2,ALCALL WRTD RET ;*SETDS1302: CLR T_RST ;設(shè)置DS1302初始時(shí)間,并啟動(dòng)計(jì)時(shí) nop CLR T_CLK nop SETB T_RST nop MOV B,#8EH ;寫控制命令字 LCALL INPUTBYTE MOV B,#00H ;寫保護(hù)關(guān)閉 LCALL INPUTBYTE SETB T_CLK nop CLR T_RST MOV R0,#SECOND ;內(nèi)存中的時(shí)間首地址 MOV R1,#80H ;DS1302中的時(shí)間首地址 MOV R7,#7 ;字節(jié)數(shù)SETLOOP:CLR T_RST nop CLR T_CLK nop SETB T_RST nop MOV B,R1 ;寫命令字 LCALL INPUTBYTE MOV A,R0 ;設(shè)置時(shí)間 MOV B,A LCALL INPUTBYTE INC R0 INC R1 INC R1 SETB T_CLK nop CLR T_RST nop DJNZ R7,SETLOOP CLR T_RST nop CLR T_CLK nop SETB T_RST nop MOV B,#8EH LCALL INPUTBYTE MOV B,#80H ;開寫保護(hù) LCALL INPUTBYTE SETB T_CLK nop CLR T_RST nop RET;*GET1302: ;從DS1302讀取時(shí)間 MOV R0,#SECOND MOV R1,#81H ;DS1302中讀時(shí)間的首地址 MOV R7,#7GETLOOP:CLR T_RST nop CLR T_CLK nop SETB T_RST nop MOV B,R1 LCALL INPUTBYTE ;寫命令字 LCALL OUTPUTBYTE ;讀時(shí)間 MOV R0,A ;將從DS1302中讀取的時(shí)間從內(nèi)存中保存 INC R0 ;修改地址指針 INC R1 INC R1 SETB T_CLK nop CLR T_RST nop DJNZ R7,GETLOOP RET;*INPUTBYTE:MOV R4,#8 ;向DS1302寫一個(gè)字節(jié)INPUTLOOP:MOV A,B RRC A MOV B,A MOV T_IO,C SETB T_CLK NOP CLR T_CLK DJNZ R4,INPUTLOOP RET;*OUTPUTBYTE:clr

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論