基于89C51單片機課程設計_第1頁
基于89C51單片機課程設計_第2頁
基于89C51單片機課程設計_第3頁
基于89C51單片機課程設計_第4頁
基于89C51單片機課程設計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、摘要:隨著時代的進步,越來越多的電子廠品趨向于低成本,高性能,耐用性好的方向發(fā)展。特別是趨向于自動化控制的方向走。89c51作為控制芯片是最好不過的選擇啦。它具有強大的功能,并且簡單易于操作,安全性與穩(wěn)定性較高,價格便宜,適合中小型電子廠品開發(fā)中的控制器。就像我們的課程設計,基于89c51單片機的電子時鐘的課程設計。這款課程設計用到的主要材料有89c51單片機,1602液晶顯示屏,矩陣鍵盤,以及一些電容電阻元件等等。使用89c51作為電子時鐘的控制器很簡單,就是由于其經(jīng)濟型與穩(wěn)定性和易操作性。顯示電路上,就在使用7段數(shù)碼管和1602液晶顯示屏上糾結了一陣子。7段數(shù)碼管的好處在于他更適用于室外環(huán)

2、境,但由于其操作復雜等等其他外在原因,最終還是選擇了使用1602做顯示電路。1602不僅操作上臂數(shù)碼管簡單許多,而且使用1602能在很大程度上是電路圖盡量簡化,便于操作與錯誤的檢修。并且1602價格也比較便宜?;?9c51電子時鐘的設計,利用了單片機內(nèi)部的一個自帶定時/計數(shù)器來實現(xiàn)定時功能,并通過內(nèi)部程序,實現(xiàn)對時分秒,年月日這幾個輸出數(shù)值的自增,并且通過編寫程序,實現(xiàn)通過鍵盤控制時分秒,年月日大小的調整,這是必要的功能。最后通過1602液晶顯示電路將時間顯示在其上。這樣的電子時鐘比較精準,其主要誤差來源與晶振的誤差,即使是這樣,他的誤差也只是微妙級別,對于日常生活中的時間計數(shù)是足夠的啦。關

3、鍵詞:89c51單片機 1602液晶顯示屏 矩陣鍵盤 keil軟件目錄1、課程設計任務書與評閱表 32、前言 62、概述 62.1基于89c51電子時鐘設計目的 72.2課程設計的組成部分 3、電子時鐘設計的內(nèi)容 93.1液晶1602顯示電路設計93.2單片機晶振電路與復位電路設計 3.3鍵盤調試電路的設計3.4總體電路設計13.5單片機程序的編寫14、總結234.1遇到的問題與解決辦法4.2體會與收獲5、附錄:參考資料1、前言單片機是什么?單片機又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機系統(tǒng)集成到一個芯片上。概括的講:一塊芯片就成了一臺計算機。它的體積小、質量輕、價格

4、便宜、為學習、應用和開發(fā)提供了便利條件。單片機作為應用最廣泛的控制系統(tǒng)之一,具有體積小,易于控制,價格便宜,安全可靠等等優(yōu)良的性能而被廣泛的關注。無論是小到兒童玩具,到工業(yè)控制系統(tǒng),大到航天航空系統(tǒng)的設計與操作之中,隨處可見單片機的蹤影。大學電子專業(yè),電氣專業(yè),通信等專業(yè)開設單片機課程,對人才的培養(yǎng)無疑是有著重大的意義的。單片機的學習,主要是注重于對單片機內(nèi)部存儲結構,引腳的結構與功能,以及各引腳之間的區(qū)別,用法上面的不同。同樣,單片機是一門技術,需要大量的動手實踐才能真正的掌握其基本原理,才能真正的控制單片機并設計其程序,使其運行在指定的程序之下。課程設計是在校學生素質教育的重要環(huán)節(jié),是理論

5、與實踐相結合的橋梁和紐帶。單片機課程設計,要求學生更多的完成軟硬結合的動手實踐方案,解決目前學生課程設計過程中普遍存在的缺乏動手能力的現(xiàn)象. 單片機課程設計是繼電子技術、和單片機原理及在電氣測控學科中的應用課程之后開出的實踐環(huán)節(jié)課程,其目的和任務是訓練學生綜合運用已學課程“電子技術基礎”、“單片機原理及在電氣測控學科中的應用”的基本知識,獨立進行單片機應用技術和開發(fā)工作,掌握單片機程序設計、調試和應用電路設計、分析及調試檢測。要求學生在實驗室做出產(chǎn)品或仿真調試。所以,個高校開設單片機課程設計課程,不僅是對同學們動手能力的培養(yǎng),同時也是在培養(yǎng)同學們的一種學習方法,堅持時間與理論相結合。2、概述單

6、片機對于學電子或是通信等專業(yè)的學生來說并不陌生,同樣,它的重要性也無需多介紹。當前的工業(yè)控制等等控制類系統(tǒng)正在逐步像自動化方向,以實現(xiàn)自動控制,自動應答緊急情況,自動辨別多重相應并作出相應的答復為目標。當前的許多控制系統(tǒng)也是實現(xiàn)了某一些功能。像常用的控制芯片有atmel公司的89系列單片機,還有更復雜一些的dsp數(shù)字處理芯片,因特爾公司的電腦cpu芯片等等。單片機課程設計主要是將理論與實踐相結合的一次過程,通過自己設計單片機外圍電路,并且編寫相應的控制程序來實現(xiàn)預定的功能。這是一次很好的實踐機會。2.1、基于89c51電子時鐘設計目的學習單片機最重要的方法就是實現(xiàn)理論與實踐相結合的學習方法。有

7、些工程師說過,能利用單片機設計并實現(xiàn)電子時鐘,技能基本上掌握單片機的使用。所以設計電子時鐘的真正目的不在于設計出成品而投入使用,而是在于熟悉單片機的基本功能與編程來實現(xiàn)單片機的控制。作為大學生,以后出去就業(yè)或是繼續(xù)學業(yè),都要有一定的動手能力和實踐能力,而這,便是電子時鐘設計的另一個目的。2.2、課程設計的組成部分1、程序框圖的設計 2、設計功能框圖11.0592mhz晶振復位電路設計 提供外部時鐘震蕩 usb電腦供電模塊顯示模塊單片機控制模塊 電壓 數(shù)據(jù)從單片機提供5v 至1602顯示 通過鍵盤掃描 來實現(xiàn)對時間 的調節(jié)鍵盤控制模塊 分析: 第一部分:通過usb的物理特性,再通過芯片max23

8、2實現(xiàn)在線提供單片機5v電壓。 第二部分:單片機控制模塊,有編寫程序控制單片機引腳點位的變化來時時控制1602的顯示。 第三部分:鍵盤控制模塊,為三個獨立鍵盤,通過鍵盤的通斷來控制i/o管腳電位的高低,實現(xiàn)人機通信。 第四部分:顯示模塊,為1602液晶顯示。3、電子時鐘設計的內(nèi)容 3.1液晶1602顯示電路的設計1602電路連接圖:操作指令與數(shù)據(jù)代碼設定: 操作時序圖:由1602液晶顯示屏的各引腳功能以及時序圖容易知道,在使用1602時1號引腳接地gnd。2號引腳接到電源正極(5v)。3號引腳為一電位器,可使用滑動變阻器來實現(xiàn)其功能。4.、5、6號引腳為液晶的控制信號,ea=1,打開液晶顯示;

9、rs為數(shù)據(jù)/指令寫入端,rs=1,寫入數(shù)據(jù),rs=0則寫入指令。7-14腳為數(shù)據(jù)或指令入口,與單片機的一個i/o口相連。3.2晶振與復位電路設計單片機的工作需要外部固定提供的頻率,才能使單片機正常的工作,復位電路是為了方便單片機調試的時候便于恢復。復位電路由剛開始上電時,電容沖滿電,并斷開,當開關按下,電容放電,給rst一個脈沖,并且時間超過兩個機器周期,失心符為功能。 3.3鍵盤電路的設計 鍵盤為4*4的矩陣鍵盤模式,鍵盤的八只引腳接在單片機的p3口上,通過對鍵盤的逐次掃描來確定是否有鍵被摁下,來返回值達到控制的目的。 3.4總體電路的設計原件清單: 該電路的原件比較簡單,能夠實現(xiàn)電子時鐘的

10、設計。通過按鍵盤能夠實現(xiàn)對年月日,時分秒的控制。使用usb供電。3.5單片機程序設計#include sbit rs=p35;sbit lcden=p34;sbit wr=p36;sbit wela=p26;sbit dula=p27;sbit s9=p30;sbit s13=p31;sbit s17=p32;sbit rd=p37;uchar shi,fen,miao,nian,yue,ri;uchar table0= 2020-12-21; /chushihuauchar table1= 00:00:00;/chushihuauchar table=0123456789;uchar tem

11、p,shi,fen,miao,nian,yue,ri,num;void delay(uchar z)/延時子程序uint i,j;for(i=z;i0;i-)for(j=110;j0;j-);void wrrt_com(uchar a)/指令函數(shù)wrtt_comrs=1;rs=0;wr=1;wr=0;lcden=1;p0=a;lcden=0;delay(5);void wrrt_date(uchar b) /數(shù)據(jù)函數(shù)wrttdaters=0;rs=1;wr=1;wr=0;lcden=1;p0=b;lcden=0;delay(5);void display1(uchar add,uchar da

12、t) /顯示shi fen miao 函數(shù)uchar shi,ge;shi=dat/10;ge=dat%10;wrrt_com(0x80+0x40+add);wrrt_date(tableshi);wrrt_date(tablege);void display2(uchar add,uchar dat) /顯示yue ri函數(shù)uchar shi,ge;shi=dat/10;ge=dat%10;wrrt_com(0x80+add);wrrt_date(tableshi);wrrt_date(tablege);void display3(uchar add,uchar dat) /顯示nian函數(shù)

13、uchar qian,bai,shi,ge;bai=dat/1000;qian=dat/100%10;shi=dat/10%10;ge=dat%10;wrrt_com(0x80+add);wrrt_date(tableqian);wrrt_date(tablebai);wrrt_date(tableshi);wrrt_date(tablege);void init() /初始化時鐘顯示uint i,j;wela=0;dula=0;nian=2012;yue=12;ri=21;shi=0;fen=0;miao=0;temp=0;num=0;rd=0;wrrt_com(0x01);wrrt_com

14、(0x38);wrrt_com(0x0c);wrrt_com(0x06);wrrt_com(0x80);for(i=0;i12;i+)wrrt_date(table0i); /初始化日期寫在1602上delay(1);wrrt_com(0x80+0x40); /初始化shi fen miaofor(j=0;j11;j+)wrrt_date(table1j);delay(1);ea=1;et0=1;tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256;tr0=1; void clock() /時間變化掃描顯示if(miao=60) miao=

15、0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;ri+;display1(3,shi);display1(6,fen);display1(9,miao);if(ri=30)ri=0;yue+;if(yue=30);yue=0;nian+;display3(2,nian);display2(7,yue);display2(10,ri);void keyscan()rd=0;if(s9=0)delay(5);if(s9=0)while(!s9);num+;if(num=1)tr0=0;wrrt_com(0x80+0x40+10);wrrt_com(0x0f)

16、;if(num=2)wrrt_com(0x80+0x40+7);wrrt_com(0x0f);if(num=3)wrrt_com(0x80+0x40+4);wrrt_com(0x0f);if(num=4)wrrt_com(0x80+11);wrrt_com(0x0f);if(num=5)wrrt_com(0x80+8);wrrt_com(0x0f);if(num=6)wrrt_com(0x80+5);wrrt_com(0x0f);if(num=7)tr0=1;wrrt_com(0x0c);num=0;if(num!=0)if(s13=0)delay(5);if(s13=0)while(!s13

17、);if(num=1)miao+;wrrt_com(0x06);display1(9,miao);wrrt_com(0x80+0x40+10);wrrt_com(0x0f);if(miao=60)miao=0;if(num=2)fen+;wrrt_com(0x06);display1(6,fen);wrrt_com(0x80+0x40+7);wrrt_com(0x0f);if(fen=60)fen=0;if(num=3)shi+;wrrt_com(0x06);display1(3,shi);wrrt_com(0x80+0x40+4);wrrt_com(0x0f);if(shi=24)shi=0

18、;if(num=4)ri+;wrrt_com(0x06);display2(10,ri);wrrt_com(0x80+11);wrrt_com(0x0f);if(ri=30)ri=0;if(num=5)yue+;wrrt_com(0x06);display2(7,yue);wrrt_com(0x80+8);wrrt_com(0x0f);if(yue=12)yue=0;if(num=6)nian+;wrrt_com(0x06);display3(2,nian);wrrt_com(0x80+5);delay(1);if(num!=0)if(s17=0)delay(5);if(s17=0)while

19、(!s17);if(num=1)miao-;wrrt_com(0x06);display1(9,miao);wrrt_com(0x80+0x40+10);wrrt_com(0x0f);if(miao=60)miao=0;if(num=2)fen-;wrrt_com(0x06);display1(6,fen);wrrt_com(0x80+0x40+7);wrrt_com(0x0f);if(fen=60)fen=0;if(num=3)shi-;wrrt_com(0x06);display1(3,shi);wrrt_com(0x80+0x40+4);wrrt_com(0x0f);if(shi=24)

20、shi=0;if(num=4)ri-;wrrt_com(0x06);display2(10,ri);wrrt_com(0x80+11);wrrt_com(0x0f);if(ri=30)ri=0;if(num=5)yue-;wrrt_com(0x06);display2(7,yue);wrrt_com(0x80+8);wrrt_com(0x0f);if(yue=12)yue=0;if(num=6)nian-;wrrt_com(0x06);display3(2,nian);wrrt_com(0x80+5);delay(1);void main()init();while(1)if(tr0=1)clock();keyscan(); void timer0() interrupt 1th0=(65536-50000)/256;tl0=(65536-5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論