版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計報告萬年歷學(xué)生姓名:系 別:自動化學(xué)院專 業(yè):測控技術(shù)與儀器班 級:1102目錄1、 方案簡介2、 邏輯總框圖3、 設(shè)計所需的元件4、 單元電路設(shè)計4.1、主控制系統(tǒng)4.2、時鐘振蕩電路4.3、復(fù)位電路 4.4、DS1302時鐘電路4.5、按鍵電路4.6、顯示電路5、 流程圖與軟件設(shè)計5.1、程序流程圖5.2、軟件設(shè)計六、個人心得一、方案簡介:系統(tǒng)分為主控模塊、時鐘電路模塊、按鍵掃描模塊,LCD顯示模塊,電源電路、復(fù)位電路、晶振電路等模塊。主控模塊采用AT89C52單片機(jī),按鍵模塊用四個按鍵,用于調(diào)整時間,顯示模塊采用LCD1602,時鐘電路模塊采用DS1302時鐘芯片實現(xiàn)對時間、日期
2、的操作。二、邏輯總框圖:該電子萬年歷的總體設(shè)計框圖如圖(1)所示。圖(2)電子萬年歷總體仿真圖三、設(shè)計所需的元件:元件名稱 型號 數(shù)量/個單片機(jī) AT89C52 1 時鐘芯片 DS1302 1晶振 12MHz 1晶振 32.768kHz 1電容 30pF 2電容 22uF 1按鍵開關(guān) 4電阻 10K 9滑動變阻器 1K 1電池 1.5V 4LCDLCD16021電源Vcc +5V 1導(dǎo)線 若干四、單元電路設(shè)計:4.1、主控制系統(tǒng)單片機(jī)中央處理系統(tǒng)的方案設(shè)計,選用AT89C52單片機(jī)作為中央處理器,如圖(2)所示。該單片機(jī)除了擁有MCS-51系列單片機(jī)的所有優(yōu)點外,內(nèi)部還具有8K的在系統(tǒng)可編程F
3、LASH存儲器,低功耗的空閑和掉電模式,極大的降低了電路的功耗,還包含了定時器、程序存儲器、數(shù)據(jù)存儲器等硬件,其硬件能符合整個控制系統(tǒng)的要求,不需要外接其他存儲器芯片和定時器件,方便地構(gòu)成一個最小系統(tǒng)。整個系統(tǒng)結(jié)構(gòu)緊湊,抗干擾能力強(qiáng),性價比高。各引腳功能:VCC/GND:供電電源。 P0口:可以被定義為數(shù)據(jù)/地址的低八位,能夠用于外部程序/數(shù)據(jù)存儲器。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1口:標(biāo)準(zhǔn)輸入輸出I/O,P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2口:
4、既可用于標(biāo)準(zhǔn)輸入輸出I/O,也可用于外部程序存儲器或數(shù)據(jù)存儲器訪問時的高八位地址。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:既可以作標(biāo)準(zhǔn)輸入輸出I/O,也可作為AT89C51的一些特殊功能口, 管腳 備選功能 P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(記時器0外部輸入) P3.5 T1(記時器1外部輸入) P3.6 /WR(外部數(shù)據(jù)存儲器寫選通) P3.7 /RD(外部數(shù)據(jù)存儲器讀選通) RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平
5、時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA / VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH
6、編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出4.2、時鐘振蕩電路時鐘振蕩電路圖(3)所示,時鐘振蕩電路用于產(chǎn)生單片機(jī)正常工作時所需要的時鐘信號,電路由兩個30pF的瓷片電容和一個12MHz的晶振組成,并接入到單片機(jī)的XTAL1和XTAL2引腳處,使單片機(jī)工作于內(nèi)部振蕩模式。此電路在加電后延遲大約10ms振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率決定。電路中兩個電容C1、C2的作用使電路快速起振,提高電路的運行速度。圖(3) 時鐘振蕩電路圖 圖
7、(4) 復(fù)位電路4.3、復(fù)位電路復(fù)位電路由電阻和極性電容組成,如圖(4)所示,通過高電平使單片機(jī)復(fù)位,在時鐘電路開始工作后,當(dāng)高電平的時間超過大約2us時,即可實現(xiàn)復(fù)位。此復(fù)位電路為上電復(fù)位,較為簡單。若改進(jìn)可以添加手動復(fù)位的功能,上電復(fù)位發(fā)生在開機(jī)加電時,由系統(tǒng)自動完成,手動復(fù)位通過一個按鍵來實現(xiàn),在程序運行時,若遇到死機(jī),死循環(huán)或程序“跑飛”等情況,通過手動復(fù)位就可以實現(xiàn)重新啟動的操作。手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕和一個電阻。 4.4、DS1302時鐘電路時鐘電路主要由時鐘芯片DS1302、備用電池、晶振等幾部分
8、組成,如圖(6)所示。DS1302采用3線串行接口,占用引腳少,內(nèi)部集成了可編程日歷時鐘,用戶可以根據(jù)需要通過單片機(jī)的控制來自行設(shè)置,支持雙電源供電,可以使用外部主電源和備用電源,備份電源能夠使時鐘芯片繼續(xù)工作。圖(5) DS1302管腳圖 圖(6) DS1302時鐘電路DS1302各引腳的功能為:8: Vcc1:備用電池端;1: Vcc2:5V電源。當(dāng)Vcc2>Vcc1+0.2V時,由Vcc2向DS1302供電,當(dāng)Vcc2< Vcc1時,由Vcc1向DS1302供電;7: SCLK:串行時鐘,輸入; 6: I/O:數(shù)據(jù)輸入輸出口;5: CE/RST:復(fù)位腳;2、3:
9、X1、X2 是外接晶振腳 (32.768KHZ的晶振);4: 地(GND)。DS1302有關(guān)日歷、時間的寄存器:圖(7)DS1302有關(guān)日歷、時間的寄存器1、秒寄存器(81h、80h)的位7定義為時鐘暫停標(biāo)志(CH)。當(dāng)初始上電時該位置為1,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);只有將秒寄器的該位置改寫為0時,時鐘才能開始運行。2、小時寄存器(85h、84h)的位7用于定義DS1302是運行于12小時模式還是24小時模式。當(dāng)為高時,選擇12小時模式。在12小時模式時,位5是 ,當(dāng)為1時,表示PM。在24小時模式時,位5是第二個10小時位3、控制寄存器(8Fh、8Eh)的位7是寫保護(hù)位(W
10、P),其它7位均置為0。在對任何的時鐘和RAM的寫操作之前,WP位必須為0。當(dāng)WP位為1時,寫保護(hù)位防止對任一寄存器的寫操作。也就是說在電路上電的初始態(tài)WP是1,這時是不能改寫上面任何一個時間寄存器的,只有首先將WP改寫為0,才能進(jìn)行其它寄存器的寫操作。DS1302讀寫時序DS1302是SPI總線驅(qū)動方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。DS1302的控制字如圖(8):圖(8)DS1302的控制字圖控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6:如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A4A0):
11、指示操作單元的地址;位0(最低有效位):如為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作。讀數(shù)據(jù):讀數(shù)據(jù)時在緊跟8位的控制字指令后的下一個SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)是從最低位到最高位。寫數(shù)據(jù):控制字總是從最低位開始輸出。在控制字指令輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入也是從最低位(0位)開始。4.5、按鍵電路按鍵電路由四個輕觸開關(guān)組成,如圖(9)所示。按鍵用來調(diào)整時間,其一端直接接到單片機(jī)的端口,另一端接地,當(dāng)按下按鍵時,相應(yīng)的端口變?yōu)榈碗娖?,通過一個與門只要這四個按鍵有一個按下就會在P3.2檢測到一低電平就觸發(fā)外部中斷0進(jìn)入按鍵調(diào)節(jié)
12、程序中,通過與個各鍵相連的端口P3.4_P3.7可以判斷是哪個鍵按下,從而作相應(yīng)的操作。圖(9) 按鍵電路4.6、顯示電路1602液晶也叫1602字符型液晶 它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊 它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。顯示電路采用LCD1602液晶顯示,如圖(10)所示,圖中只畫出了其相應(yīng)的接口,3腳用于調(diào)節(jié)LCD1602的背光,4、5、6為LCD1602的控制口,用于控制其寫入或是讀出指令,7至14腳為LCD1602的數(shù)據(jù)口,將數(shù)傳送到LCD1602中。圖(10) LCD1602顯示電路LCD1602的特性+5V電壓
13、,對比度可調(diào);內(nèi)含復(fù)位電路;提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能;有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM;內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM,8個可由用戶自定義的5X7的字符發(fā)生器CGRAM;基本操作時序: 讀狀態(tài):輸入:RS=L,RW=H,E=H;輸出:DB0DB7=狀態(tài)字 ;寫指令:輸入:RS=L,RW=L,E=下降沿脈沖,DB0DB7=指令碼 ;輸出:無。讀數(shù)據(jù):輸入:RS=H,RW=H,E=H;輸出:DB0DB7=數(shù)據(jù) ;寫數(shù)據(jù):輸入:RS=H,RW=L,E=下降沿脈沖,DB0DB7=數(shù)據(jù) ;輸出:無。五、流程圖與軟件設(shè)計:5.1、程序流程圖
14、主程序首先初始化定時器、LCD1602及DS1302,然后就開始查詢按鍵,有鍵按下則開始調(diào)整時間和日期,若沒有按下,則執(zhí)行下面的時間、日期的顯示,最后依次循環(huán)這些相同的操作,相應(yīng)流程圖如圖(11)所示:圖(12)程序流程圖按鍵的檢測是通過中斷的辦法來實現(xiàn),利用按鍵進(jìn)行間調(diào)整。 K1按下則開始設(shè)置時間及日期,同時在第一行最右端顯示被選擇的對象,第一次按下K1時,設(shè)置年份,若按下K3,則是減1操作,按下K2是加1操作,設(shè)置好年后,第二次按下K1時,則是設(shè)置月份,按K3減,按K2則加1,依次循環(huán)下去,則可以將時間和日期設(shè)置完畢,K4是確定鍵,設(shè)置好按下即可保存設(shè)置了。5.2、軟件設(shè)計軟件總設(shè)計:主程
15、序首先對系統(tǒng)環(huán)境初始化,設(shè)置定時器T0工作模式為16位定時/計數(shù)器模式,置位總中斷允許位EA,并對鍵盤端口置位,再對LCD1602初始化,DS1302初始化。接著掃描鍵盤,在鍵盤程序里面是對時間、日期及鬧鐘的調(diào)整,最下面是時間的顯示。軟件程序編寫:軟件程序編寫的好壞直接影響著系統(tǒng)運行情況的良好。因本程序涉及的模塊較多,所以程序編寫也采用模塊化設(shè)計,C語言具有編寫靈活、移植方便、便于模塊化設(shè)計的特點,所以本系統(tǒng)的軟件采用C51編寫。程序:#include <reg52.h>#include<intrins.h>#define uchar unsigned char#def
16、ine uint unsigned int#define SECOND 0x81#define MINUTE 0x83#define HOUR 0x85sbit rs=P20;sbit rw=P21;sbit ep=P22;sbit DS1302_IO= P10; sbit DS1302_SCLK = P11; sbit DS1302_RST = P12; sbit M=P31; /選擇sbit U=P32; / 加sbit D=P33; / 減sbit W=P34;/確定uchar sel=0;uchar code DIS1="W LP HX TJ WX "uchar c
17、ode DIS2="WANNIANLI"/延時/void delay(uint ms) unsigned int a,b; for(a=0;a<ms;a+) for(b=0;b<124;b+); /*DS1302驅(qū)動*/ / void DS1302_Write(uchar D)uchar i;for(i=0;i<8;i+)DS1302_IO =D&0x01;DS1302_SCLK=1;DS1302_SCLK=0;D=D>>1;uchar DS1302_Read()uchar TempDat=0,i;for(i=0;i<8;i+)T
18、empDat>>=1; if(DS1302_IO) TempDat=TempDat|0x80;DS1302_SCLK=1;DS1302_SCLK=0; return TempDat;void WDS1302(uchar ucAddr, uchar ucDat) DS1302_RST = 0; DS1302_SCLK = 0; DS1302_RST = 1; DS1302_Write(ucAddr); DS1302_Write(ucDat); DS1302_SCLK = 1; DS1302_RST = 0; uchar RDS1302(uchar ucAddr) uchar ucDa
19、t; DS1302_RST = 0; DS1302_SCLK = 0; DS1302_RST = 1; DS1302_Write(ucAddr); ucDat=DS1302_Read(); DS1302_SCLK = 1; DS1302_RST = 0;return ucDat;/DS1302的初始狀態(tài)的時間設(shè)定/void init_1302() WDS1302(0x8e,0x00);/開保護(hù)寄存器 WDS1302(0x80,0x59);/秒 WDS1302(0x82,0x00);/分 WDS1302(0x84,0x10);/時 WDS1302(0x8A,0x05);/星期 WDS1302(0
20、x86,0x22);/日 WDS1302(0x88,0x11);/月 WDS1302(0x8C,0x13);/年 WDS1302(0x90,0xab);/卷電流充電 WDS1302(0x8e,0x80);/關(guān)保護(hù)寄存器 /*1602驅(qū)動*/bit lcd_bz() bit result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (bit)(P0 & 0x80); ep = 0; return result; / void lcd_wcmd(uchar cmd) while(lcd_bz()
21、; rs = 0; rw = 0; ep = 0; _nop_(); _nop_(); P0 = cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep= 0; /void lcd_pos(unsigned char pos) lcd_wcmd(pos | 0x80); /void lcd_wdat(unsigned char dat) while(lcd_bz(); rs = 1; rw = 0; ep = 0; P0 = dat; _nop_(); _nop_(); _n
22、op_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; /void lcd_init() lcd_wcmd(0x38); delay(1); lcd_wcmd(0x0c); delay(1); lcd_wcmd(0x06); delay(1); lcd_wcmd(0x01); delay(1); /*調(diào)時函數(shù)*/ void set_time() signed char address,item; signed char max,mini; if(M=0) sel+; delay(300);/if(sel=7) se
23、l=0; if(sel=2) address=0x82; max=59;mini=0; /分 if(sel=1) address=0x84; max=23;mini=0; /時if(sel=6) address=0x8c; max=99;mini=9; /年if(sel=4) address=0x88; max=12;mini=1; /月if(sel=5) address=0x86; max=31;mini=1; /日 if(sel=3) address=0x8A; max=07;mini=1; /星期M=1; item=(RDS1302(address+1)/16)*10 + (RDS130
24、2(address+1)%16; if(U = 0) delay(200); U=1; item+; if(D = 0) delay(200);D=1; item-; if(W = 0) delay(200); sel=0; W=1; if(item>max) item=mini; if(item<mini) item=max; WDS1302(0x8e,0x00);/允許寫操作 WDS1302(address,(item/10)*16+item%10); /寫入DS1302 /轉(zhuǎn)成BCD碼 WDS1302(0x8e,0x80);/寫保護(hù),禁止寫操作 /*顯示子函數(shù)*/void l
25、cdshow_u(uchar i,uchar y)lcd_wcmd(0x80+i);lcd_wdat(y);void lcdshow_d(uchar i,uchar y)lcd_wcmd(0xC0+i);lcd_wdat(y);/*顯示函數(shù)*/void display(void)uchar x,y; x=RDS1302(HOUR);/時 y=x; x=x>>4; lcdshow_u(6,0x30+x); y=y&0x0f;lcdshow_u(7,0x30+y);lcdshow_u(8,':'); x=RDS1302(MINUTE);/分 y=x; x=x&g
26、t;>4; lcdshow_u(9,0x30+x); y=y&0x0f;lcdshow_u(0x0a,0x30+y);lcdshow_u(0x0b,':'); x=RDS1302(SECOND);/秒 y=x; x=x>>4; lcdshow_u(0x0c,0x30+x); y=y&0x0f;lcdshow_u(0x0d,0x30+y); x=RDS1302(0x8b); y=x; x=x>>4; lcdshow_u(0x0e,0x30+x); y=y&0x0f; lcdshow_u(0x0f,0x30+y); x=RDS1
27、302(0x8d); y=x; x=x>>4; lcdshow_d(8,0x30+x); y=y&0x0f;lcdshow_d(9,0x30+y);lcdshow_d(0x0a,'-'); x=RDS1302(0x89); y=x; x=x>>4; lcdshow_d(0x0b,0x30+x); y=y&0x0f;lcdshow_d(0x0c,0x30+y);lcdshow_d(0x0d,'-'); x=RDS1302(0x87); y=x; x=x>>4; lcdshow_d(0x0e,0x30+x); y=
28、y&0x0f;lcdshow_d(0x0f,0x30+y);/*主函數(shù)*/void main()uchar i;lcd_init();delay(10); lcd_pos(0x03);i = 0; while(DIS1i != '0') lcd_wdat(DIS1i); i+;delay(200); lcd_pos(0x41); i = 0; while(DIS2i != '0') lcd_wdat(DIS2i);delay(200);i+; init_1302();delay(1000);for(i=0;i<17;i+)lcdshow_u(i,'>');delay(150);for(i=0;i<17;i+)lcdshow_d(i,'<');delay(150);lcd_init();delay(10);lcdshow_u(0,'T');lcdshow_u(1,'i');lcdshow_u(2,'m
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國天然礦砂禮品畫數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國雙套螺旋管冷卻器數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國2-氟苯甲醚數(shù)據(jù)監(jiān)測研究報告
- 2025年中國摩托車座架市場調(diào)查研究報告
- 2025至2031年中國阻爆燃管道阻火器行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國營養(yǎng)保濕啫喱水行業(yè)投資前景及策略咨詢研究報告
- CS公司聚醚多元醇庫存管理優(yōu)化研究
- 二零二五年度綠色有機(jī)農(nóng)產(chǎn)品批量收購專項合同3篇
- 二零二五年度宗教場所害蟲防治滅四害服務(wù)合同4篇
- 二零二五年度農(nóng)產(chǎn)品代理采購合同范本16篇
- 開展課外讀物負(fù)面清單管理的具體實施舉措方案
- 2025年云南中煙工業(yè)限責(zé)任公司招聘420人高頻重點提升(共500題)附帶答案詳解
- 2025-2030年中國洗衣液市場未來發(fā)展趨勢及前景調(diào)研分析報告
- 2024解析:第三章物態(tài)變化-基礎(chǔ)練(解析版)
- 北京市房屋租賃合同自行成交版北京市房屋租賃合同自行成交版
- 《AM聚丙烯酰胺》課件
- 系統(tǒng)動力學(xué)課件與案例分析
- 《智能網(wǎng)聯(lián)汽車智能傳感器測試與裝調(diào)》電子教案
- 客戶分級管理(標(biāo)準(zhǔn)版)課件
- GB/T 32399-2024信息技術(shù)云計算參考架構(gòu)
- 人教版數(shù)學(xué)七年級下冊數(shù)據(jù)的收集整理與描述小結(jié)
評論
0/150
提交評論