




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于51單片機的電子臺歷課程設計摘要本設計是一個基于單片機at89s51的簡易電子臺歷,附有復位電路,時鐘電路,鍵盤電路。復位電路是單片機的初始化操作,除了正常的初始化外,當程序運行出錯后或者操作失誤使系統進入死鎖狀態時,為擺脫困境,也需要能夠通過獨立式鍵盤電路進行啟動,調整,再運行,時鐘電路采用12mhz的晶振,作為系統的時鐘源,具有較高的準確性。在上電或者復位時數碼管顯示年,月,日,時,分,秒。a鍵用于模式調整,形成一個循環,按一次鍵,即對秒調整。再按一次對分調整,如此循環。b鍵用于按下a鍵之后進行加1的操作,按一次加1,c鍵用于減1的操作,按一次減1。能夠完成從00時00分00秒到23時
2、59分59秒的循環計時,過23時59分59秒,日期增加1,當日期達到1個月后,月進位1,滿12個月后,年進位1,年的首2位保持不變,始終為20。單片機并行口的電子臺歷的設計在at89s51的p0口和p2口外接由14個led數碼管(led7led0)構成的顯示器,用p0口作led的段碼輸出口(p0.0p0.7對應于led的adp),p2.7p2.0作led的段碼年月日的位控輸出線(p2.7p2.0對應于led7led0),p1.7p1.0對應時間的數碼管,p3口外接三個按鍵a、b、c(對應于p3.0p3.2)。數碼管為4位一體的共陽極的數碼管,數碼管采用動態掃描法,從右往左依次點亮,顯示數字。關
3、鍵字:單片機、電子臺歷、數碼管abstractthe design is a single electrical calendar basing scmc of at89s51. there are restoration circuit, clock circuit and keyboard circuit. restoration circuit is used as an original operation, besides normal start-up, when the program runs mistakenly and system loses its order ,in
4、order to get rid of the trouble, it also need to restart ,adjust and run through keyboard. clock circuit uses 12mhz crystal as the source of the calendar ,with a high accuracy.when the system starts, the display shows year, month ,day, week and time the a keyboard is used to start and adjust, the b
5、keyboard is used to add 1,when press it ,the date will add 1, the c keyboard is used to minus 1, when press it , the date will minus 1.it can make a cycle from 00:00 to 23:59:59.the display includes 14 leds, the scmc joins the display in the p1, p0 ports and p2 ports, the scmc joins the keyboards in
6、 the p3 scan, lighting the leds from right to left , showing the numbers.keywords:scmc,calendarled 目 錄第1章 前言2第2章 電子臺歷方案介紹及結構圖32.1 方案1 介紹32.2 方案2介紹42.2.1電子臺歷整機電路原理圖42.3 電子臺歷工作原理52.3.1 實現時鐘計時的基本方法52.3.2 電子臺歷的顯示52.3.3 電子臺歷的啟、停及時間調整5第3章 硬件電路單元電路的設計53.1 電源電路53.2 時鐘電路63.3 復位電路63.4 鍵盤/顯示接口電路6第4章 軟件系統的設計7結論
7、10參考文獻11附錄1 電子臺歷整機原理圖11附錄2 pcb原理圖12第1章 前言在修完本學期的課程,經歷了單片機課程設計后,為了更好地檢測自己的水平,進一步鞏固知識,增強應用能力,進行了此次課程設計,我們選定的課題為基于單片機的電子臺歷的設計。本次設計的目的在于利用所學知識和電子領域的生產實踐相互結合起來,認識到產品的原理,硬件制作流程,進一步熟練語言編程,提高畫圖水平,增添我們對學習單片機的興趣,現在進行基于單片機的電子臺歷的畢業設計,無疑是很有現實意義和指導意義的。電子臺歷就是基于單片機發展起來的一種儀表,已經廣泛使用在各個公共場合與家庭中,電子臺歷的品種眾多,前面板形式有很多種,有的除
8、了顯示日期,時間,還安裝了傳感器,能夠顯示溫度等,還有的具有整點報時功能,用微處理器控制,微處理器的品種也很多,此次設計采用的是89s51,數字顯示可以用液晶顯示器,也可以用普通數碼管,數碼管也有一位的,四位一體等之分,還分共陰極和共陽極。大家都知道,數碼管比液晶顯示器的價錢便宜,所以我們大多見到得是數碼管顯示產品。數碼管不能夠顯示漢字,只能夠顯示數字,簡單的字母,所以采用分開顯示的辦法,把漢字刻在顯示數字的數碼管前。有時甚至在顯示星期時,采用7個發光二極管,對應星期,只需來回點亮數碼管就可以達到目的,更加有利于節省成本。目前用于電子產品設計調試的工具有很多,有制圖用的protel軟件,pro
9、tel 設計系統是第一套引入windows環境的eda開發工具,它具有原理圖設計等功能。c語言編譯器用到keil uvision3軟件,keil uvision3集成開發環境ide是一個基于windows的軟件開發平臺,有一個功能強大的編輯器,項目管理器和制作工具。keil uvision3支持所有的keil 工具,包括c編譯器,宏匯編器,鏈接器/定位器和目標文件至hex格式的轉換器。在本次設計中,用到了這3個專業軟件。第2章 電子臺歷方案介紹及結構圖2.1 方案1 介紹方案1:基于intel 8155的電子臺歷的設計利用intel 8155芯片為at89s51擴展并行口,通過intel 81
10、55外接由八個led數碼管(led7led0)構成的顯示器和由3個按鍵a、b、c構成的鍵盤。該系統是以單片機為核心,通過外接鍵盤,顯示電路來實現的。由于外接電路和顯示電路需占用單片機的口線,而單片機的資源是有限的,為在充分利用單片機資源的同時,還能擴展其資源,使設計的整體電路應用范圍更廣泛,因此,可以選擇能擴展單片機口線的芯片為其擴展硬件資源,又由于intel 8155在擴展口線的同時,還能為單片機擴展定時器/計數器和ram資源空間。該方案是采用intel 8155芯片對單片機進行擴展,其顯示部分就與intel 8155接口,數碼管的段控由pa口控制,位控由pb口控制。設計方框圖如下圖2.1所
11、示:at89s51復位電路顯示器驅動電路8155時鐘電路 鍵盤電源電路 圖2.1 電子臺歷整機電路框圖2.2 方案2介紹方案2:基于單片機并行口的電子臺歷的設計電子臺歷整機電路框圖如下圖2.2。整個電路包括復位電路、時鐘電路、電源電路、鍵盤/顯示電路,各電路通過控制器at89s51使其有機的結合起來。顯示器驅動電路at89s51復位電路時鐘電路鍵盤電源電路圖2.2 電子臺歷整機電路框圖本次設計采用方案2,可以減少成本。在at89s51的p0口,p1口和p2口外接由16個led數碼管(led15led0)構成的顯示器,用p0口作led的段碼輸出口(p0.0p0.7)對應于led的adp),p2.
12、7p2.0,p1.0p1.7作led的位控輸出線,p3口外接3個按鍵a、b、c(對應于p3.0p3.2)。本次電子臺歷設計出來使用單片機工作所必須的硬件資源(如連接晶振的引腳xtal1和xtal2,復位引腳reset)外,對單片機的硬件資源還做了具體的安排。(1)p0口:p0.0p0.7作為數碼管顯示器的段控碼驅動74ls244的輸入端。(2)p3口:p3.0p3.2作為a、b、c鍵輸入口。(3)p1,p2口:p1.0p1.7,p2.0p2.7分別控制數碼管led7led0的位控碼驅動74ls244的輸入端。(4)定時/計數器使用定時器0工作方式2實現電子鐘的運行。方式2是8位可自動重新裝載初
13、值的t/c,t/c是16位的,計數寄存器由th高8位和tl低8位構成。在特殊功能寄存器(sfr)中,對應 t/c0為th0和tl0定時器和計數器的初始值通過th0,tl0設置。滿計數值為2t,方式2中th和tl被當作為兩個8位計數器。計數過程中,th寄存為初值并保持不變,由tl進行8位計數。計數溢出是,除產生溢出中斷請求外,還自動將th中初值重裝到tl,即重新裝載。(5)專用寄存器定時器控制寄存器tcon,通過設置該寄存器tr0位的狀態來控制地定時/計數器0的啟動/停止;中斷允許寄存器ie,通過設置該寄存器ea/et0位的狀態來設置定時/計數器0中斷允許/禁止;定時器/計數器工作方式寄存器tm
14、od,設置定時/計數器0的工作方式。2.2.1電子臺歷整機電路原理圖電子臺歷的整機電路原理圖見附錄1。2.3 電子臺歷工作原理2.3.1 實現時鐘計時的基本方法利用單片機的可編程定時/計數器、中斷系統來實現時鐘計數。(1)計數初值計:將定時器設為工作方式2,定時時間為1000s,則計數溢出1000次即得時鐘計時最小單位秒,而1000次計數可用軟件方法實現。假設使用t/c0,方式2,1000s定時,fosc=12mhz。則初值x滿足=28-1000/(12/12)=fd17h。(2)采用中斷方式進行溢出次數累計,計滿1000次為秒計時(1秒);(3)從秒到分和從分到時的計時是通過累加器和數值進行
15、比較實現的。2.3.2 電子臺歷的顯示日期在8位數碼管上顯示,在上電或者復位后顯示,因此,在內部ram中設置顯示緩沖區共8個單元。電子臺歷的時鐘時間在6位數碼管上進行顯示,因此,在內部ram中設置顯示緩沖區共6個單元。2.3.3 電子臺歷的啟、停及時間調整電子臺歷設置3個按鍵通過程序控制來完成電子臺歷的啟、停及時間調整。其功能分別如下:a鍵控制電子臺歷的調整;b鍵調加1;c鍵調減1。當第一次按下a鍵進入對秒的調整,如果按下b鍵(或者c鍵)將進行加1(或者減1)的操作,如果不按b(或者c),再按一次a鍵,即進入對分的調整,再按一次,對時的調整,依次類推。第3章 硬件電路單元電路的設計3.1 電源
16、電路電源電路為整個電路提供電源,是電路設計不可缺少的一部分。電源電路的穩定性決定了整個電路的可靠程度。在本設計中,整個電路需要+5v電源。電源電路是把市電交流220v經過變壓器降壓為交流9v,再通過二極管整流、電容濾波、三端集成穩壓器7805穩壓后輸出+5v直流電源。3.2 時鐘電路時鐘電路用于產生單片機工作所需要的時鐘信號,單片機本身就是一個復雜的同步時序電路,為了保證同步工作方式的實現,電路應在唯一的時鐘信號控制下嚴格地按時序進行工作。時鐘電路是單片機心臟。典型值有6mhz和12mhz,單片機內部有一個高增益反相放大器,xtal1和xtal2分別為其輸入與輸出端,xtal1和xtal2之間
17、跨接晶體振蕩器和微調電容,從而構成一個穩定的自激振蕩器,產生時鐘送至單片機內部的各個部件。時鐘電路產生的震蕩脈沖經過觸發器進行二分頻后,才能成為單片機的時鐘脈沖信號。3.3 復位電路復位是單片機的初始化操作,其主要功能是把pc初始化為00h,使單片機從00h單元開始執行程序。除了進入系統的正常初始化之外,當程序運行出錯或者操作失誤使系統處于死鎖狀態時,為恢復計算機正常工作,也需要按復位鍵來重新啟動。單片機在啟動運行時需要復位,使cpu和其它部件處于一種確定的安全可靠的初始狀態,并從這個狀態開始工作。復位引腳rst,它是史密特觸發輸入,當振蕩器起振后,在引腳上出現2個機器周期以上的高電平,使機器
18、復位,rst為低電平后,退出復位,cpu從初始狀態開始工作。復位后狀態:p0p3:0ffh; sp:07h; 此外其它16個寄存器除了sbuf外都為:00h。根據mcs-51系列單片機內部功能,復位電路有上電自動復位和按鍵手動復位兩種方式。本設計采用前者,即是通過外部復位電路的電容的充電來實現的。而后者是通過時復位端經電阻與vcc電源接通來實現的。mcs-51單片機上電瞬間rst引腳獲得高電平,隨著電容c充電,rst的電平逐漸降低,高電平只要能保持足夠時間(2個機器周期),單片機就可以復位。本設計采用的晶振頻率為12mhz,因此,電路設計如下,選c為22f、r為2k。復位信號持續時間應超過2s
19、才能完成復位操作。3.4 鍵盤/顯示接口電路鍵盤電路如圖3.4所示。本設計中有3個按鍵故采用獨立式按鍵,以單片機p1,0p1.2口線作為鍵盤接口,并通過上拉電阻接到vcc。當有鍵按下時,p1口的相應口線為低電平,無鍵按下時為高電平。鍵盤的每一個鍵就是一個機械開關,鍵按下時,開關閉合,鍵松開時,開關斷開。但是由于機械開關的撞擊作用,開關的動作會產生抖動,約510ms。為保證對按鍵僅溢出處理,應消除抖動的影響,有幾種方法:濾波,利用電容的濾波作用,按鍵按下后,輸出端為低電平;雙穩態消抖。獨立式按鍵是直接用i/o口線構成的單個按鍵電路,其特點是每個按鍵單獨用一根i/o口線,每個按鍵的工作不會影響其他
20、i/o口線的狀態。此電路圖采用的是低電平有效,并且上拉電阻保證了按鍵斷開時,i/o口線有確定的高電平。按鍵的穩定閉合期,一般為510ms。可以由操作人員的按鍵動作確定,一般為十分之幾秒至幾秒時間,為保證cpu對鍵的一次閉合,僅作一次鍵輸入處理,必須要消除抖動對電路的影響。通常去抖動影響的措施有硬、軟兩種。本設計采用的就是軟件去抖動法。顯示電路為電子臺歷提供顯示功能。靜態顯示和動態顯示:靜態就是需要顯示的字符的各段連續通過電流,因而所顯示的字段連續發光。動態顯示就是所需要顯示字段斷續通過電流,因而其發光也是不連續的,在多個字符需要顯示時,可以輪流給每一個字符通電流,逐次把所需要顯示的字符顯示出來
21、,在每點一個顯示器后,必須持續通電一段時間,使之發光穩定,然后再點亮另一個顯示器,如此循環掃描所有的顯示器,由于巡回顯示速度較快,每秒可重復多次(為了不產生閃爍,可每秒掃描20次)。雖然在同一時間只有一個顯示器通電,但由于視覺暫停和發光二極管的余輝效應,可以認為每個顯示器都在穩定地顯示,這種巡回掃描顯示器的操作要靠程序控制,動態顯示的亮度隨電流的平均值的增大而增強,其亮度大體上等于通過同樣大小的直流電流的靜態顯示器的亮度,時間為6位顯示。數碼管顯示為單片機負載,為提高顯示的可靠性需對數碼管進行驅動。第4章 軟件系統的設計主程序:10#includeunsignedcharhour=16,min
22、=5,sec=50;year=10,mon=5,day=5,date=3;unsigned char timer0_tick;#define timer0_count 0xf1b8 /* 65536-12000000/(12*200) */unsignedchar code_seven=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;unsignedchar selec_led=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsignedchar data1=31,29,31,30,31,30,31,31,
23、30,31,30,31;unsignedchar data2=31,28,31,30,31,30,31,31,30,31,30,31;/*-*/void timer0_isr() interrupt 1 tr0=0; tl0=timer0_count & 0x00ff; th0=timer0_count8; tr0=1; timer0_tick+; if(timer0_tick=200) timer0_tick=0;sec+;if(sec=60)sec=0;min+;if(min=60)min=0;hour+;if(hour=24) sec=0;min=0;hour=0;day+;date+;
24、 if(date7) date=1;if(year%4=0&year%100!=0)|year%400=0) if(daydata1mon-1) day=1;mon+; if(mon12) mon=1; year+;else if(daydata2mon-1)day=1;mon+; if(mon12) mon=1; year+; /*-*/void delay() unsigned char j,k;for(j=1;j10;j+)for(k=1;k8; pt0=1; et0=1; tr0=1; ea=1;void delay_ms() unsigned char j,k; for(j=1;j4
25、0;j+) for(k=1;kdata1mon-1)day=1;mon+; if(mon12) mon=1;year+;else if(daydata2mon-1) day=1; mon+; if(mon12) mon=1; year+; while(p1_0=0) display();if(p1_1=0)/調整分+1 delay_ms();if(p1_1=0)mon+;if(mon12)mon=1; year+;if(mon12) hour=0;while(p1_1=0) display();if(p1_2=0)/調整時+1 delay_ms(); if(p1_2=0) year+;whil
26、e(p1_2=0) display(); if(p1_3=0) delay_ms(); if(p1_3=0); p1_4=p1_4;while(p1_3=0) display(); /*/void keyscan1()if(p1_0=0) /調整秒+1delay_ms();if(p1_0=0)sec+; if(sec=0) sec=0;min+; while(p1_0=0) display1();if(p1_1=0)/調整分+1 delay_ms();if(p1_1=0)min+;if(min=60)min=0;hour+;while(p1_1=0) display1();if(p1_2=0)/調整時+1 delay_ms(); if(p1_2=0) hour+;if(hour=24) sec=0; min=0;hour=0; day+; while(p1_2=0) disp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司提成策劃方案(3篇)
- 推門聽課活動方案(3篇)
- 醫院食堂人群管理制度
- 室內小房改造方案(3篇)
- 停水設備檢修方案(3篇)
- 醫院設備故障管理制度
- 建安企業倉儲管理制度
- 關于餐廳衛生管理制度
- 物業地面改造方案(3篇)
- 危險崗位應急管理制度
- 炊事員安全試題及答案
- 計算機基礎考試知識試題及答案集
- 2025年下半年北京市昌平區東小口鎮招聘擬聘用易考易錯模擬試題(共500題)試卷后附參考答案
- 馬幫運輸協議書
- 山東省棗莊市市中學區五校聯考2025屆七年級數學第二學期期末考試模擬試題含解析
- 2025年中考道德與法治三輪沖刺:人工智能+文化建設 考題含答案
- 數字智慧方案未來醫院智慧孿生和空間創新
- 福建廈門雙十中學2025屆物理八下期末質量跟蹤監視試題含解析
- 2025年消防執業資格考試題庫(消防應急救援裝備)消防設備操作規程試題
- 2024-2025學年四川省成都市高一語文下學期期末考試試卷(含答案)
- 制藥生產管理培訓
評論
0/150
提交評論