freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-電子萬(wàn)年歷設(shè)計(jì)-在線瀏覽

2025-02-02 23:21本頁(yè)面
  

【正文】 一個(gè),自鎖開關(guān)一個(gè)。 圖 21 電源電路 單片機(jī)最小系統(tǒng)模塊 本模塊主要有 STC89C52 及其復(fù)位電路和時(shí)鐘電路等外圍電路組成。 ALE/PROG(P30):地址鎖存允許信號(hào) 電子萬(wàn)年歷設(shè)計(jì) 5 PSEN(P29):外部存儲(chǔ)器讀選通信號(hào) EA/VPP(P31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令。 PO 口( P39~ P32): 8位雙向 I/O 口線,名稱為 ~ P1 口( P1~ P8): 8 位準(zhǔn)雙向 I/O 口線,名稱為 ~ P2 口( P21~ P28): 8位準(zhǔn)雙向 I/O 口線,名 稱為 ~ P3 口( P10~ P17): 8位準(zhǔn)雙向 I/O 口線,名稱為 ~ 復(fù)位電路 單片機(jī)復(fù)位是使 CPU 和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài) , 并從這個(gè)狀態(tài)開始工作。 89系列單片機(jī)的復(fù)位信號(hào)是從 RST引腳輸人到芯片的施密特觸發(fā)器中的。當(dāng) STC89C52進(jìn)行復(fù)位時(shí), PC初始化為 0000H,使 STC89C52單片機(jī)從程序存儲(chǔ)器的 0000H單元開始執(zhí)行程序。系統(tǒng)復(fù)位電路如圖 23所示。晶振的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào), AT89C52 內(nèi)部有一個(gè)用于構(gòu)成片內(nèi)振蕩器的高增益反相放大器 , 振蕩器產(chǎn)生的信號(hào)送到 CPU, 作為 CPU的時(shí)鐘信號(hào) ,驅(qū)動(dòng) CPU產(chǎn)生執(zhí)行指令功能的機(jī)器周期。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器 , 振蕩電路的連接如下圖所示,外接石英晶體或陶瓷諧振器以及電容 C1 和 C2構(gòu)成并聯(lián)諧振電路 , 接在放大器的反饋回路中。系統(tǒng)振蕩電路如下圖 24所示: 圖 24 晶振電路 顯示模塊設(shè)計(jì) 液晶顯示器具有體積小、功耗低、直觀、清晰、顯示操作簡(jiǎn)單,采用 LCD 顯示克服了 LED 數(shù)碼管顯示單一的缺點(diǎn),使設(shè)計(jì)的電子萬(wàn)年歷更具有可觀賞性,本設(shè)計(jì)用的是 1602LCD 顯示, 1602 型 LCD 工作電壓為 +5v,可以顯示 2行 16 個(gè)字符,有 8位數(shù)據(jù)總線 D0D7 和 RS,R/W,EN 三個(gè)控制端口,可直接與單片機(jī)接口相接,電源直接與電源電路相接,使用單片機(jī)的 P0口和 P2 口與 1602 進(jìn)行通信。 寫指令:輸入: RS=L, RW=L, E=高脈沖, DB0~ DB7=指令碼;輸出:無(wú) 寫數(shù)據(jù):輸入: RS=H, RW=L, E=高脈沖, DB0~ DB7=數(shù)據(jù); 輸出:無(wú) (關(guān)于 E=高脈沖:開始時(shí)初始化 E 為 0,然后置 E為 1,再將 E 置為 0) 1602LCD 與單片機(jī)的連接電路 本設(shè)計(jì)中用的是單片機(jī)的 P0口和 P2 口與 1602LCD 進(jìn)行通信具體電路圖如圖 26所示。 向 1602 寫入數(shù)據(jù)時(shí),先將 1602LCD 的 RS()引腳置為高電平, RW()、 E( )等置為 低電平,再將數(shù)據(jù)從 DB0~ DB7( P0)傳給 1602LCD,再將 E置為高電平后再置為低電平, 1602LCD 檢測(cè)到 CE的高脈沖后就將 DB0~ DB7 數(shù)據(jù)口上的數(shù)據(jù)讀取,這樣就完成了一次數(shù)據(jù)的寫入。它可以對(duì)年、月、日、周、日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。采用雙電 源進(jìn)行供電,即使電源掉電后通過(guò) 3V 的紐扣電池仍能維持 DS1302 精確走時(shí)。 電子萬(wàn)年歷設(shè)計(jì) 9 圖 27 DS1302引腳圖 各引腳的功能為: 5V電源。 X1 X2 是外接晶振腳 ( 的晶振) 電源地( GND) CE/RST:復(fù)位腳,輸入信號(hào),在讀、寫數(shù)據(jù)期間,必須為高。 I/O:數(shù)據(jù)輸入 /輸出口。 Vcc1:備用電池端。 表 23 DS1302相關(guān)寄存器 年 星期 月 日 時(shí) 分 秒 讀 寫 8DH 8CH 8BH 8AH 89H 88H 87H 86H 85H 84H 83H 82H 81H 80H DS1302 與單片機(jī)接口電路 本設(shè)計(jì)中用的是單片機(jī)的 P2口的 、 、 與 DS1302 進(jìn)行通信具體電路圖如圖 28: 電子萬(wàn)年歷設(shè)計(jì) 10 圖 28 DS1302與單片機(jī)接口電路 工作過(guò)程: DS1302 的 3號(hào)引腳接的是 32768HZ 的晶振,可以為 DS1302 的提供精確走時(shí)。第二個(gè)字節(jié)就是要進(jìn)行讀或?qū)懙臄?shù)據(jù)了。緊接著就是傳一個(gè)字節(jié)的數(shù)據(jù)給DS1302,操作和前面一樣,當(dāng)傳完數(shù)據(jù)后,單片機(jī)將 CE置為低電平,操作結(jié)束。如此反復(fù)操作 8次,將一個(gè)字節(jié)的數(shù)據(jù)讀入單片機(jī)。而進(jìn)行讀操作時(shí)是在 SCLK 高電平時(shí) DS1302 放數(shù)據(jù)到 IO上,將 SCLK 置為低電平后(即下降沿),單片機(jī)就可從 IO 上讀取數(shù)據(jù)。 按鍵設(shè)置模塊 按鍵設(shè)置模塊采用四個(gè)按鍵與 、 、 、 相接,另一端接地,接口電路如圖 210 所示。 3 系統(tǒng)軟件設(shè)計(jì) 軟件是系統(tǒng)的靈魂,在軟件的支配下硬件電路才能正常工作,整個(gè)系統(tǒng)才能實(shí)現(xiàn)既定的功能。由于 STC89C52不具有 SPI三線接口,所以必須通過(guò)程序來(lái)模擬 SPI 通信,對(duì) DS1302 進(jìn)行讀、寫操作。 C語(yǔ)言簡(jiǎn)潔緊湊、靈活方便,運(yùn)算符豐富,語(yǔ)言限制寬松,程序設(shè)計(jì)自由度大,且程序生成的代碼質(zhì)量高,程序執(zhí)行效率高,所以本設(shè)計(jì)的軟件選擇用 C51 編寫。 主程序流程圖 系統(tǒng)的主程序流程圖如上圖,開機(jī)后程序進(jìn)行初始化設(shè)置,初始化設(shè)置包括設(shè)置單機(jī)的定時(shí)中斷、定時(shí)器工作方式,以及 DS1302和 1602LCD的初始化設(shè)置。當(dāng) SET 鍵( K1)按下后程序進(jìn)入設(shè)置程序,當(dāng)?shù)搅唆[鐘時(shí)間并且開了鬧鐘則進(jìn)入鬧鐘程序。具體工作過(guò)程如下: 將數(shù)據(jù)寫入 DS1302:在進(jìn)行操作之前單片機(jī)先得將 CE、 SCLK 置低電平,再將 CE置高電平,然后單片機(jī)將控制字的位 0 放到 I/O 上,將 SCLK 置高電平, DS1302 檢測(cè)到 SCLK 的上升沿后就會(huì)讀取 I/O 上的數(shù)據(jù),然后單片機(jī)將 SCLK 置為低電平,再將控制字的位 1放到 I/O上,再將 SCLK置為高電平,如此反復(fù)操作 8次,就將一個(gè)字節(jié)的控制字的 8個(gè)位全部傳給了 DS1302。 從 DS1302 讀數(shù)據(jù): 單字節(jié)讀操作的一開始寫控制字的過(guò)程和上面的單字節(jié)寫操作是一樣,但是單字節(jié)讀操作在寫控制字的最后一個(gè)位, SCLK 還處于高電平時(shí),DS1302 就將數(shù)據(jù)放到 I/O 上,單片機(jī)將 SCLK 置為低電平后數(shù)據(jù)鎖存,單機(jī)機(jī)就可以讀取 I/O 上的數(shù)據(jù)。讀與寫操作的不同的地方就在于,進(jìn)行寫操作時(shí)是在 SCLK 低電平時(shí)單片機(jī)將數(shù)據(jù)放到 IO 上,當(dāng)SCLK 上升沿時(shí), DS1302 讀取。這樣就完成一次控制字 寫入和數(shù)據(jù)的讀取。流程圖如下 圖 32 LCD顯示流程圖 向 1602 寫入指令時(shí),單片機(jī)先將 1602LCD 的 RS()、 RW()、 E( )等引腳置 為低電平,再將指令碼從 DB0~ DB7( P0)傳給 1602LCD,再將 E置為高電平后再置為低電平, 1602LCD 檢測(cè)到 CE的高脈沖后就將 DB0~ DB7 數(shù)據(jù)口上的指令碼讀取,這樣就完成了一次指令的寫入。 向 1602 寫入指令 向 1602 寫入數(shù)據(jù) 1602LCD 顯示 電子萬(wàn)年歷設(shè)計(jì) 15 鬧鐘程序 本程序比較簡(jiǎn)單,先判斷實(shí)時(shí)時(shí)間的小時(shí)和分鐘是否與設(shè)定的鬧鐘的小時(shí)分鐘相等且實(shí)時(shí)時(shí)間的秒鐘為 0,再判斷鬧鐘是否處于開狀態(tài),若為關(guān)狀態(tài)則不執(zhí)行命令,若為開狀態(tài)則調(diào)用鬧鐘程序單片機(jī)將 置為低電平, PNP 導(dǎo)通蜂鳴器發(fā)出響聲,并在1602LCD 上顯示“ TIME UP!”。詳細(xì)程序如下: if((hours==houra)amp。(minutes==minutea)amp。(seconds==0)) { if(alarmmode!=0) { Write_(0x01)。 Write_Address(0x03)。T39。 Write_Date(39。)。M39。 Write_Date(39。)。 Write_Date(39。)。P39。 Write_Date(39。)。 baojing()。 delay1ms(5)。 display_Time( )。 時(shí) 時(shí)鐘調(diào)整程序 程序流程圖如下圖 32 所示。本程序主要由一個(gè) switch 語(yǔ)句實(shí)現(xiàn),每次 當(dāng)設(shè)置鍵( K1)按下時(shí)即 口為低電平時(shí)變量 mode 加 1, mode=1 時(shí)調(diào)用小時(shí)調(diào)整函數(shù)可以對(duì)小時(shí)進(jìn)行調(diào)整, mode=2 時(shí)調(diào)用分鐘調(diào)整函數(shù)可以對(duì)分鐘進(jìn)行調(diào)整, mode=3 時(shí)調(diào)用秒調(diào)整函數(shù)可以對(duì)秒進(jìn)行調(diào)整, mode=4 時(shí)調(diào)用年調(diào)整函數(shù)可以對(duì)年進(jìn)行調(diào)整, mode=5 時(shí)調(diào)用月調(diào)整函數(shù)可以對(duì)月進(jìn)行調(diào)整, mode=6 時(shí)調(diào)用日調(diào)整函數(shù)可以對(duì)日進(jìn)行調(diào)整, mode=7 時(shí)調(diào)用鬧鐘小時(shí)調(diào)整函數(shù)可以對(duì)鬧鐘小時(shí)進(jìn)行調(diào)整, mode=8時(shí)調(diào)用鬧鐘分鐘調(diào)整函數(shù)可以對(duì)鬧鐘分鐘進(jìn)行調(diào)整, mode=9 時(shí)調(diào)用鬧鐘開關(guān)調(diào)整函數(shù)可以對(duì)鬧鐘開關(guān)進(jìn) 行設(shè)置, mode=10 時(shí)調(diào)用星期調(diào)整函數(shù)可以對(duì)星期進(jìn)行調(diào)整,當(dāng)mode=11 時(shí)將 mode 重新置為 1。 等待按鍵按下 設(shè)置鍵有效進(jìn)入鬧鐘開關(guān)設(shè)置 減鍵有效 加鍵有效 鬧鐘開關(guān)狀態(tài)取反 等待按鍵按下 設(shè)置鍵( k1)有效進(jìn)入星期設(shè)置 減鍵有效 加鍵有效 星期減 1 星期加 1 退出設(shè)置 退出鍵( k4)有效 電子萬(wàn)年歷設(shè)計(jì) 19 畢業(yè)設(shè)計(jì)總結(jié) 在做畢業(yè)設(shè)計(jì)之前我做了比較多的準(zhǔn)備,看了很多的資料和網(wǎng)絡(luò)教程,深入學(xué)習(xí)了單片機(jī), 1602LCD 液晶顯示器, DS1302 時(shí)鐘芯片 元件的應(yīng)用。 通過(guò)這次制作畢業(yè)設(shè)計(jì) ,我發(fā)現(xiàn)在現(xiàn)實(shí)設(shè)計(jì)中還需要注意很多的細(xì)節(jié) ,包括程序設(shè)計(jì)和硬件設(shè)計(jì)都要我們小心仔細(xì)。在寫程序時(shí),要不斷的調(diào)試程序,根據(jù)實(shí)物情況檢查程序的問題所在有事半功倍的效果。在此期間遇到過(guò)很多的困難,但經(jīng)過(guò)自己的不屑努力,以及老師和同學(xué)的幫助,終于擊破各個(gè)難點(diǎn),達(dá)到的所需的效果也因?yàn)檫@次設(shè)計(jì), 我也在這次實(shí)訓(xùn)中學(xué)會(huì)了很多東西,總結(jié)出自已的一套解決問題的方法,這讓我覺得自已有了很大的收獲,為今后的學(xué)習(xí)和工作打下了堅(jiān)定的基礎(chǔ)。北京:機(jī)械工業(yè)出版社, 2021 [8] Stephen G Kochan 著 .Programming in ANSI C. Hagden Kooks Indianapolis:Indiana ,1994 [9]8bit Microcontroller With 8K Bytes Flash AT89C52. ATMEL,1999 電子萬(wàn)年歷設(shè)計(jì) 21 附錄 I:系統(tǒng)硬件電路 電子萬(wàn)年歷設(shè)計(jì) 22 電子萬(wàn)年歷設(shè)計(jì) 23 附錄Ⅱ:源程序代碼 include include define uint unsigned int define uchar unsigned char uchar code displaywele[]={Happy Every Day}。 //數(shù)字代碼 uchar mode,amode,alarmmode=1,minutes,hours,minutea,seconds,houra=12。 sbit SCLK=P2^3。 //DS1302 數(shù)據(jù)輸入 sbit RST=P2^5。 //DS1302 設(shè)置模式選擇位 sbit ADD=P1^5。 //減小 sbit CANL=P1^7。 for( 。i) { for(j=0。j++) {。 for(i=0。i++)。 //位定義,定義 位 fmp void baojing(void) { while(1) { beep=0。 電子萬(wàn)年歷設(shè)計(jì) 24 break。 SCLK=0。 for(i=0。i++) { IO=dateamp。 SCLK=1。 SCLK=0。 date=1。 SCLK=0。 Write1302(cmd)。 Write1302(date)。 RST=0。 delaynus(2)。i8。 if(IO==1) date|=0x80。 delaynus(2)。 電子萬(wàn)年歷設(shè)計(jì) 25 delaynus(2)。 } uchar ReadSet1302(uchar cmd)//根據(jù)命令讀取 1302 相應(yīng)的值 { uchar date。 SCLK=0。 Write
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1