基于51單片機(jī)的萬(wàn)年歷的設(shè)計(jì)_第1頁(yè)
基于51單片機(jī)的萬(wàn)年歷的設(shè)計(jì)_第2頁(yè)
基于51單片機(jī)的萬(wàn)年歷的設(shè)計(jì)_第3頁(yè)
基于51單片機(jī)的萬(wàn)年歷的設(shè)計(jì)_第4頁(yè)
基于51單片機(jī)的萬(wàn)年歷的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程實(shí)訓(xùn)SCMPRACTICALTRAINING實(shí)訓(xùn)設(shè)計(jì)題目TitleOfTraining分院(系別)Department專業(yè)Speciality設(shè)計(jì)作者Author組別Team萬(wàn)年歷的設(shè)計(jì)班級(jí)Class完成日期Date指導(dǎo)教師Advisor目錄第一部分課程設(shè)計(jì)任務(wù)書(shū).0一、課程設(shè)計(jì)題目.0二、課程設(shè)計(jì)時(shí)間.0三、實(shí)訓(xùn)提交方式.0四、設(shè)計(jì)要求.0第二部分課程設(shè)計(jì)報(bào)告.1一、單片機(jī)發(fā)展概況.1二、MCS-51單片機(jī)系統(tǒng)簡(jiǎn)介.1三、設(shè)計(jì)思想.2四、硬件電路設(shè)計(jì).21.總體設(shè)計(jì).22.晶振電路.33.復(fù)位電路.34.DS1302時(shí)鐘電路.35.溫度采集系統(tǒng)電路.46.按鍵調(diào)整電路.47.鬧鐘提

2、示電路.4五、軟件設(shè)計(jì)框圖.5六、程序源代碼.51.主程序.52.溫度控制程序.53.日歷設(shè)置程序.64.時(shí)鐘控制程序.65.顯示設(shè)置程序.7七、結(jié)束語(yǔ).10八、課程設(shè)計(jì)小組分工.10九、參考文獻(xiàn).10第一部分課程設(shè)計(jì)任務(wù)書(shū)一、課程設(shè)計(jì)題目用中小規(guī)模集成芯片設(shè)計(jì)制作萬(wàn)年歷。二、課程設(shè)計(jì)時(shí)間五天三、實(shí)訓(xùn)提交方式提交實(shí)訓(xùn)設(shè)計(jì)報(bào)告電子版與紙質(zhì)版四、設(shè)計(jì)要求(1)顯示年、月、日、時(shí)、分、秒和星期,并有相應(yīng)的農(nóng)歷顯示。(2)可通過(guò)鍵盤自動(dòng)調(diào)整時(shí)間。(3)具有鬧鐘功能。(4)能夠顯示環(huán)境溫度,誤差小于1(5)計(jì)時(shí)精度:月誤差小于20秒。第二部分課程設(shè)計(jì)報(bào)告一、單片機(jī)發(fā)展概況單片機(jī)誕生于20世紀(jì)70年代末,

3、它的發(fā)展史大致可分為三個(gè)階段:第一階段(1976-1978):初級(jí)單片機(jī)微處理階段。該時(shí)期的單片機(jī)具有8位CPU,并行I/O端口、8位時(shí)序同步計(jì)數(shù)器,尋址范圍4KB,但是沒(méi)有串行口。第二階段(1978-1982):高性能單片機(jī)微機(jī)處理階段,該時(shí)期的單片機(jī)具有I/O串行端口,有多級(jí)中斷處理系統(tǒng),15位時(shí)序同步技術(shù)器,RAM、ROM容量加大,尋址范圍可達(dá)64KB。第三階段(1982-至今)位單片機(jī)微處理改良型及16位單片機(jī)微處理階段民用電子產(chǎn)品、計(jì)算機(jī)系統(tǒng)中的部件控制器、智能儀器儀表、工業(yè)測(cè)控、網(wǎng)絡(luò)與通信的職能接口、軍工領(lǐng)域、辦公自動(dòng)化、集散控制系統(tǒng)、并行多機(jī)處理系統(tǒng)和局域網(wǎng)絡(luò)系統(tǒng)。二、MCS-5

4、1單片機(jī)系統(tǒng)簡(jiǎn)介MCS-51系列單片機(jī)產(chǎn)品都是以Intel公司最早的典型產(chǎn)品8051為核心構(gòu)成的。MCS-51單片機(jī)由CPU、RAM、ROM、I/O接口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、內(nèi)部總線等部件組成。8051單片機(jī)的基本性能有:8位CPU;布爾代數(shù)處理器,具有位尋址能力;128B內(nèi)部RAM,21個(gè)專用寄存器;4KB內(nèi)部掩膜ROM;2個(gè)16位可編程二進(jìn)制加1定時(shí)器/計(jì)數(shù)器;32個(gè)(48位)雙向可獨(dú)立尋址的I/O口;1個(gè)全雙工UART(異步串行通信口);5個(gè)中斷源,兩級(jí)中斷結(jié)構(gòu);片內(nèi)振蕩器及時(shí)鐘電路,晶振頻率為12MHz;外部程序/數(shù)據(jù)存儲(chǔ)器尋址空間均為64KB;111條指令,大部分為單字節(jié)指令;

5、單一+5V電源供電,雙列直插40引腳DIP封裝。三、設(shè)計(jì)思想整體設(shè)計(jì)以單片機(jī)技術(shù)為核心,采用C語(yǔ)言進(jìn)行軟件設(shè)計(jì),增加了程序的可讀性和可移植性,為了便于擴(kuò)展和更改,軟件的設(shè)計(jì)采用模塊化結(jié)構(gòu)。程序先向LCD更新時(shí)鐘芯片的時(shí)間與溫度傳感器的時(shí)間,然后進(jìn)行初始化工作。程序由一個(gè)主函數(shù),兩個(gè)定時(shí)器中斷程序,一個(gè)時(shí)鐘設(shè)置子程序,一個(gè)農(nóng)歷設(shè)置子程序,一個(gè)溫度設(shè)置子程序,一個(gè)延時(shí)子程序,一個(gè)調(diào)時(shí)子程序,一個(gè)顯示子程序構(gòu)成。程序通過(guò)按鍵掃描程序來(lái)確定是否調(diào)用中斷程序來(lái)對(duì)時(shí)間進(jìn)行調(diào)整。用一子程序完成時(shí)分的調(diào)整,通過(guò)循環(huán)掃描四個(gè)按鍵的電平變化來(lái)判斷對(duì)應(yīng)按鍵是否按下,并帶有去抖動(dòng)功能,四個(gè)按鍵分別有增加,減小,退出與

6、功能選擇的作用。通過(guò)功能選擇時(shí)鐘設(shè)置與鬧鐘設(shè)置,使用加或減按鍵進(jìn)行預(yù)置,完成后可點(diǎn)退出鍵完成操作??煞譃橐韵聨讉€(gè)功能模塊:1)主程序:定時(shí)器中斷初始化、時(shí)鐘與溫度更新程序與鍵盤監(jiān)控。2)計(jì)時(shí):為定時(shí)器中斷服務(wù)子程序,完成刷新計(jì)時(shí)緩沖區(qū)的功能。3)農(nóng)歷:由陰歷換算對(duì)照表得出陽(yáng)歷并顯示。4)鬧鐘:采用定時(shí)器中斷方式實(shí)現(xiàn)鬧鐘與整點(diǎn)報(bào)時(shí)。5)溫度:由溫度傳感器將溫度傳送到LCD顯示。6)設(shè)置:由按鍵設(shè)置鬧鐘時(shí)間或時(shí)鐘時(shí)間。7)鍵盤掃描:判斷是否有鍵按下,并確定鍵號(hào)。8)LCD顯示:完成8位動(dòng)態(tài)顯示。四、硬件電路設(shè)計(jì)1.總體設(shè)計(jì)系統(tǒng)包括單片機(jī)主控模塊,溫度傳感器采集模塊,日歷時(shí)鐘模塊,按鍵調(diào)整模塊,蜂鳴

7、器模塊,鬧鐘模塊。如圖1所示為系統(tǒng)設(shè)計(jì)圖。日歷時(shí)鐘芯片DS1302溫度傳感器DS18B20蜂鳴器鬧鐘AT89C51單片機(jī)按鍵調(diào)整電路LCD12864圖1系統(tǒng)設(shè)計(jì)圖如圖2所示為系統(tǒng)仿真圖。圖2系統(tǒng)仿真圖2.晶振電路如圖3所示,51單片機(jī)的內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,它的輸入端為XTAL1引腳,輸出端為XTAL2引腳,兩個(gè)跨接石英晶體及兩個(gè)電容就可以構(gòu)成穩(wěn)定的自激振蕩器。電容器通常取30pF左右。圖3晶振電路圖4復(fù)位電路3.復(fù)位電路往單片機(jī)的復(fù)位引腳上輸入24個(gè)時(shí)鐘周期以上的高電平,即執(zhí)行復(fù)位操作。按鍵復(fù)位是指系統(tǒng)在運(yùn)行時(shí),按下一個(gè)開(kāi)關(guān),就能在RST引腳產(chǎn)生一段時(shí)間的高電平,使系統(tǒng)

8、復(fù)位,常見(jiàn)的按鍵復(fù)位電路如圖4所示。對(duì)12MHz晶振頻率而言,電路中C取10pF,R取1K。4.DS1302時(shí)鐘電路DS1302是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)318的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。圖5示出DS1302的引腳排列,其中Vcc1為后備電源,V

9、cc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RSTS置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變

10、為高阻態(tài)。上電動(dòng)行時(shí),在Vcc大于等于之前,RST必須保持低電平。中有在SCLK為低電平時(shí),才能將RST置為高電平,I/O為串行數(shù)據(jù)輸入端(雙向)。SCLK始終是輸入端。圖5DS1302時(shí)鐘芯片圖6溫度采集系統(tǒng)電路5.溫度采集系統(tǒng)電路在本萬(wàn)年歷當(dāng)中溫度的采集采用數(shù)字溫度傳感器DS18B20。它屬于單總線器件,具有線路簡(jiǎn)單,體積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。具有如下的經(jīng)濟(jì)特點(diǎn):(1)只要求一個(gè)端口即可實(shí)現(xiàn)通信。(2)在DS18B20中的每個(gè)器件上都有獨(dú)一無(wú)二的序列號(hào)。(3)實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。(4)

11、測(cè)量溫度范圍在55。C到125。C之間。(5)數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇。(6)內(nèi)部有溫度上、下限告警設(shè)置。如圖6所示。6.按鍵調(diào)整電路按鍵采用4個(gè)獨(dú)立的按鍵,一個(gè)功能鍵、一個(gè)退出鍵、一個(gè)加按鍵、一個(gè)減按鍵通過(guò)這四個(gè)按鍵可以來(lái)合理的設(shè)置時(shí)鐘的調(diào)整和鬧鈴的設(shè)置等。如圖7所示與51單片機(jī)的的連接示意圖。圖7按鍵調(diào)整電路7.鬧鐘提示電路當(dāng)?shù)竭_(dá)整點(diǎn)時(shí)或者當(dāng)前的時(shí)間等于51單片機(jī)中設(shè)置鬧鐘時(shí)間時(shí)蜂鳴器便會(huì)發(fā)出聲音進(jìn)行提示。與單片機(jī)引腳的連接電路如圖8所示。圖8鬧鐘提示電路圖9LCD顯示電路8.LCD顯示電路在本萬(wàn)年歷當(dāng)中12864液晶顯示當(dāng)前的實(shí)時(shí)時(shí)間重要的陰陽(yáng)歷節(jié)日等功能。12864

12、液晶具有如下的特性:1)提供8位,4位并行接口及串行接口可選2)并行接口適配M6800時(shí)序3)自動(dòng)電源啟動(dòng)復(fù)位功能4)內(nèi)部自建振蕩源6416位字符顯示RAM(DDRAM最多16字符4行,LCD顯示范圍162行)(改為半角輸入)2M位中文字型ROM(CGROM),總共提供8192個(gè)中文字型(1616點(diǎn)陣)16K位半寬字型ROM(HCGROM),總共提供126個(gè)西文字型(168點(diǎn)陣)6416位字符產(chǎn)生RAM(CGRAM)1516位總共240點(diǎn)的ICONRAM(ICONRAM)其與單片機(jī)的連接電路如圖9所示。五、軟件設(shè)計(jì)框圖1.主程序流程圖:2.陰陽(yáng)歷轉(zhuǎn)換流程圖:六、程序源代碼1.主程序#inclu

13、de#include#include#include#include#include#include#defineucharunsignedchar#defineuintunsignedint/*sbitbell=P20;溫度控制程序#ifndef_SENSOR#define_SENSOR#defineucharunsignedchar#defineuintunsignedint/*DS18B20管腳配置*/sbitdq=P21;/*DS18B20軟件延時(shí)專用*/voidSensor_Delay(ucharcount)日歷設(shè)置程序#ifndef_SUN_MOON#define_SUN_MOON

14、/*/#defineucharunsignedchar#defineuintunsignedint#include#include/*功能:讀取數(shù)據(jù)表中農(nóng)歷的大月或小月,如果大月返回1,小月返回0*/bitget_moon_day(ucharmonth_p,uintcalendar_address)uchartemp,temp1;temp1=(month_p+3)/8;temp=0 x80(month_p+3)%8);temp=year_codecalendar_address+temp1&temp;if(temp=0)return(0);elsereturn(1);/*功能:輸入BCD的陽(yáng)歷

15、數(shù)據(jù),輸出BCD陰歷數(shù)據(jù)(1901-2099)c_flag:陽(yáng)歷的世紀(jì)標(biāo)志clock_time:時(shí)鐘地址*說(shuō)明:c_flag=0:21世紀(jì)c_flag=1:19世紀(jì)*/voidCalendar_Convert(ucharc_flag,uchar*clock_time)bitflag_month,flag_year;ucharyear,month,day,month_point;時(shí)鐘控制程序#ifndef_REAL_TIMER_DS1302#define_REAL_TIMER_DS1302/*預(yù)定義*/#defineucharunsignedchar#defineuintunsignedint/

16、*DS1302管腳配置*/sbitclock_rst=P24;sbitclock_io=P23;sbitclock_sclk=P22;/*為了編程方便定義的位變量*/sbitACC0=ACC0;sbitACC7=ACC7;#definesecond_address0 x80#defineminute_address0 x82#definehour_address0 x84#defineday_address0 x86#definemonth_address0 x88#defineyear_address0 x8C/*功能:向時(shí)鐘DS1302寫(xiě)入一個(gè)字節(jié)*/voidClock_Write_Byt

17、e(uchartemp)uchari;ACC=temp;for(i=8;i0;i-)clock_io=ACC0;顯示設(shè)置程序#ifndef_LCD_12864#define_LCD_12864/*預(yù)定義*/#defineucharunsignedchar#defineuintunsignedint/*12864管腳配置*/#defineportP1sbitrs=P30;sbitrw=P31;sbite=P32;sbitcs1=P36;sbitcs2=P37;/*函數(shù)名稱:Delay()*功能:延遲時(shí)間=a*1ms*入口參數(shù):*出口參數(shù):無(wú)*/voidDelay(uinta)uchari;whi

18、le(a-)for(i=0;i125;i+);/*函數(shù)名稱:Lcd_Display_On()*功能:LCD顯示開(kāi)*入口參數(shù):無(wú)*出口參數(shù):無(wú)*/voidLcd_Display_On()port=0 x3f;rs=0;rw=0;e=1;e=0;/*功能:LCD顯示關(guān)*/voidLcd_Display_Off()port=0 x3e;rs=0;rw=0;e=1;e=0;/*功能:LCD設(shè)置X坐標(biāo)*/voidLcd_Set_X(ucharx)port=0 xb8|x;rs=0;rw=0;e=1;e=0;/*功能:LCD設(shè)置Y坐標(biāo)*/voidLcd_Set_Y(uchary)port=0 x40|y;rs=0;rw=0;e=1;e=0;/*函數(shù)名稱:Lcd_Set_

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論