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

正文內(nèi)容

基于單片機(jī)的作息時(shí)間控制器系統(tǒng)設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2024-10-03 17:58 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 控制,本設(shè)計(jì)是按照學(xué)校作息時(shí)問(wèn)設(shè)定的,模擬了電了鐘顯示時(shí)、分、秒。還根據(jù)學(xué)校的作息時(shí)間按時(shí)打鈴,本系統(tǒng)有 4 個(gè)按鈕,分別用來(lái)調(diào)時(shí)、調(diào)分、秒和強(qiáng)制打鈴及強(qiáng)制關(guān)鈴,以保證始終與標(biāo)準(zhǔn)時(shí)間相吻合。 首先設(shè)計(jì)出本系統(tǒng)的硬件基本框圖,根據(jù)框圖設(shè)計(jì)電氣原理圖,簡(jiǎn)要概述基本原理,按照設(shè)計(jì)技術(shù)參數(shù)設(shè)計(jì)出各部分程序。 系統(tǒng)軟硬件劃分 由于需要最小系統(tǒng)設(shè)計(jì),因此,極大地介于系統(tǒng)的硬件成本,所有能用軟件實(shí)現(xiàn)的功能都用軟件完成,如按鍵 的去抖,采用延時(shí),顯示部分用動(dòng)態(tài)顯示等,這樣硬件部分的設(shè)計(jì)可以采用單片機(jī)最小系統(tǒng),所謂最小系統(tǒng)時(shí)僅有程序存儲(chǔ)器和時(shí)鐘及復(fù)位電路的單片機(jī)系統(tǒng)。 單片機(jī)選型 根據(jù)課題的具體內(nèi)容,任務(wù)要求,計(jì)時(shí)、校時(shí)、定時(shí)、鍵盤(pán)顯示等功能,經(jīng)多方面考慮,所選系統(tǒng)選項(xiàng)用.與 MSC51 單片機(jī)完全兼容的 STC89C52 低功耗單片機(jī)。 總 體 設(shè)計(jì)框圖 圖一 整體框圖 第 三 章 硬件電路設(shè)計(jì) 基本原理概述 本系統(tǒng)主要由主控模塊,時(shí)鐘模塊,顯示模塊,鍵盤(pán)接口模塊等 4 部分構(gòu)成。通過(guò)內(nèi)部定時(shí)產(chǎn)生中斷,從而使驅(qū) 動(dòng)電鈴打鈴。設(shè)定 51 單片機(jī)工作在定時(shí)器工作方式 1 ,每 100ms 產(chǎn)生一次中斷,利用軟件將基準(zhǔn) 100ms 單元進(jìn)行累加,當(dāng)定時(shí)器產(chǎn)生 10 次中斷就產(chǎn)生 lS 信號(hào),這是秒單元加 1 。同理,對(duì)分單元和時(shí)單元計(jì)數(shù)從而產(chǎn)生秒,分,時(shí)的值,通過(guò)六位七段顯示器進(jìn)行顯示。由于動(dòng)態(tài)顯示法需要數(shù)據(jù)所存等硬件,接口較復(fù)雜,考慮顯示只有六位,且系統(tǒng)沒(méi)有其他浮躁的處理程序,所有采用動(dòng)態(tài)掃描 LED 的顯示 ,但 為了能更好的區(qū)分,年月日,時(shí)分秒,在時(shí)間間隔中間加入間隔符號(hào),因此采用 8 位數(shù)碼管。 本系統(tǒng)采用四個(gè)按鍵,當(dāng)時(shí)鐘時(shí)間和設(shè)置時(shí)間一 直時(shí),驅(qū)動(dòng)程序動(dòng)作,進(jìn)行打鈴,每次打鈴 30S 主要 原件參數(shù)及功能簡(jiǎn)介 主控器 STC89C52 STC89C52 公司生產(chǎn)的 STC89C52 單片機(jī)用高性能的靜態(tài) 89C51 設(shè)計(jì),由先進(jìn)工藝制造,并帶有非易失性 FLASH 程序存儲(chǔ)器,它是 種高性能、低功耗的8 位 CMOS 微處理芯片,市場(chǎng)應(yīng)用最多,主要特點(diǎn)有: 有 4K 的 FLASH 程序存儲(chǔ)器 256 字節(jié)內(nèi)部 RAM 電源控制模式:時(shí)鐘可停止和恢復(fù),空閑模式,掉電模式 6 個(gè)中斷源 4 個(gè)中斷優(yōu)先級(jí) 4 個(gè) 8 位 I/O 口 全雙工增強(qiáng)型 UARTLCD1602液晶接口GND1VCC2VO3RS4RW5E6DB07DB18DB29DB310DB411DB512DB613DB714BG/VCC15BG/GND16LCD1LCD1602GNDGNDVCCVCCR42KP00 P01 P02 P03 P04 P05 P06 P07P10 P11 P12 2 個(gè) 16 位定時(shí)、計(jì)數(shù)器 圖二 STC89C52 DS1302 1)性能特性 DS1302 與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線(xiàn): 復(fù)位 ,, 串行時(shí)鐘。時(shí)鐘 /RAM 的讀 /寫(xiě)數(shù)據(jù)以一個(gè)字節(jié)或多達(dá) 31 個(gè)字節(jié)的字符組方式通信。 DS1302 工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小十 1mW 。提供秒分時(shí)日日期。月年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整時(shí)鐘 ,操作可通過(guò) AM/PM 指示決定采用 24 或 12 小時(shí)格式。 2)管腳描 述 XI XZ 晶振管腳 GND 接地 RST 復(fù)位腳 I/O 數(shù)據(jù)輸入 /輸出引腳 SCLK 串行時(shí)鐘 Vcc1, Vcc2 電源供電管腳 DS1302 串行時(shí)鐘芯片 8 腳 DIP DS1302S 串行時(shí)鐘芯片 8 腳 SOIC 200mil DS1302Z 串行時(shí)鐘芯片 8 腳 SOIC 150mil 圖三 DS1302 單元電路的設(shè)計(jì) 顯示電路設(shè)計(jì) 顯示部分采用普通的 STC89C52 顯示 圖四 顯示電路 顯示部分采用 2 塊 4 位數(shù)碼管,即 8 位共陽(yáng)數(shù)碼顯示,由 STC89C52 芯片對(duì)該數(shù)碼管傳送數(shù)據(jù)。而在 P2 口接入 8 個(gè)三極管對(duì)數(shù)碼管的位控進(jìn)行控制。該 顯示采用的是動(dòng)態(tài)顯示,段控和位控都經(jīng)過(guò)反相器,顯示的字形代碼是共陽(yáng)的顯示代碼,位控信號(hào)輸出時(shí)是高電平有效,在校時(shí)時(shí),采用的是點(diǎn)亮小數(shù)點(diǎn)信位調(diào)節(jié)器標(biāo)志,哪位小數(shù)點(diǎn)亮表示調(diào)整的是該 位 的值。 鍵盤(pán)接口電路設(shè)計(jì) 由于鍵盤(pán)只有四個(gè),采用獨(dú)立式按鈕,用查詢(xún)法完成讀健功能。 圖五 按鍵電路 各鍵功能已寫(xiě)入程序,在使用按鍵的時(shí)候,根據(jù)有無(wú)按鍵否,一一進(jìn)行判斷,軟件中采用 if 嵌套模式,因此使各按鍵的功能具有 多樣性和課重復(fù)使用性。因本次實(shí)訓(xùn)的課題,為實(shí)現(xiàn),年月日,時(shí)分秒等時(shí)間的調(diào)試, 系統(tǒng)使用 5 只按鍵,4 只按鍵用來(lái)調(diào)整時(shí)間, 且其中一只在不設(shè)置時(shí)間的情況下可為強(qiáng)制打鈴,另一只單獨(dú)連接,可實(shí)行復(fù)位和強(qiáng)制結(jié)束打鈴。通過(guò)選擇鍵選擇調(diào)整位,選中位閃爍,按增加鍵為選中位加 1,按減少鍵為選中位減 1。按強(qiáng)制打鈴按鈕是實(shí)現(xiàn)強(qiáng)制打鈴或者強(qiáng)制關(guān)閉打鈴。 響鈴電路設(shè)計(jì) 響鈴電路用到了蜂鳴器、三極管、 1K 電阻。蜂鳴器兩端分別接地和三極管。三極管一段電源另一端與電阻相連并接入 STC89C52 的 接口。 圖六 響鈴 電路 總體運(yùn)行進(jìn)程 首先實(shí)現(xiàn) 24 小時(shí)制電子鐘,在 8 位數(shù)碼管顯示,顯示為時(shí)分秒,實(shí)現(xiàn)的格式為: 235959。到達(dá)預(yù)定時(shí)間啟動(dòng)蜂鳴器開(kāi)始打鈴,打鈴的方式分為起床、熄燈和上下課鈴兩種。 系統(tǒng)使用 5 只按鍵, 4 只按鍵用來(lái)調(diào)整時(shí)間, 且其中一只在不設(shè)置時(shí)間的情況下可為強(qiáng)制打鈴 , 另一只單獨(dú)連接,可實(shí)行復(fù)位和強(qiáng)制結(jié)束打鈴 。 通過(guò)選擇鍵選擇調(diào)整位,選中位閃爍,按增加鍵為選中位加 1,按減少鍵為選中位減 1。按強(qiáng)制打鈴按鈕是實(shí)現(xiàn)強(qiáng)制打鈴或者強(qiáng)制關(guān)閉打鈴。 第四章 軟件電路設(shè)計(jì)及流程圖 基本原理概述 主程序首 先是初始化部分,主要是計(jì)時(shí)單元清零,中斷初始化,堆棧指針初始化,啟動(dòng)定時(shí)器工作,然后是調(diào)用顯示子程序。主程序的起始存儲(chǔ)地址是 0000H單元,但由于本系統(tǒng)用了定時(shí)器 T0 的中斷,中斷服務(wù)程序入口地址為 000BH,因此從 0000H 單元起存放一條短調(diào)轉(zhuǎn)指令 AJMP,使真正的主程序從 0300H 單元開(kāi)始存放。 中斷服務(wù)程序設(shè)計(jì) 單片機(jī)內(nèi)部的定時(shí) /計(jì)數(shù)器 T0 定時(shí) 100ms,即 , 10 次中斷即為 1 秒,60 秒為 1 分, 60 分為 1 小時(shí), 24 小時(shí)為一天,如此循環(huán),從而實(shí)現(xiàn)計(jì)時(shí)功能。 編寫(xiě)中斷服務(wù)程序關(guān)鍵要注意 : ,本系統(tǒng)中是累加器 A 和程序狀態(tài)字 PSW 值的保護(hù)。 ,因此時(shí),分,秒單元加 1后要進(jìn)行十進(jìn)制調(diào)整,即要執(zhí)行 DAA 指令,還要注意的是時(shí)計(jì)到 24 就回零,分和秒計(jì)到 60 就回零。 。 顯示程序設(shè)計(jì)和按鍵判斷與按鍵處理程序設(shè)計(jì) 顯示采用的是動(dòng)態(tài)顯示,段控和位控都經(jīng)過(guò)反相器,顯示的字形代碼是共陽(yáng)的顯示代碼,位控信號(hào)輸出時(shí)是高電平有效,在校時(shí)時(shí),采用的是點(diǎn)亮小數(shù)點(diǎn)信位調(diào)節(jié)器標(biāo)志,哪位小數(shù)點(diǎn)亮表示調(diào)整的是該 位 的值。 顯示子程序的第一部分是拆字,顯示緩沖 區(qū)是 2FH— 2AH;第二部分是查字型碼,輸出段控和位控信號(hào),由于采用的是動(dòng)態(tài)顯示,所以每出輸出一位的段控和位控信號(hào)要延時(shí)一定的時(shí)間,使 LED 顯示器顯示的字符時(shí)穩(wěn)定的。 按鍵判斷程序有編寫(xiě)時(shí)應(yīng)注意按鍵的去抖動(dòng),該系統(tǒng)采用的是延時(shí)去抖動(dòng)的方法,延時(shí)是通過(guò)調(diào)用子程序來(lái)實(shí)現(xiàn)的,每個(gè)按鍵按下后都要等待釋放后再返回。 按鍵處理程序中的按鍵式校時(shí)的,所以進(jìn)入按鍵處理程序后就關(guān)閉定時(shí)中斷,對(duì)于動(dòng)能鍵注意設(shè)置顯示標(biāo)志。 流程圖 系統(tǒng)主程序流程圖 圖 7 主程序流程圖 系統(tǒng)定時(shí)中斷流程圖 圖 8 中斷流程圖 第五章 系統(tǒng)程序設(shè)計(jì) 程序設(shè)計(jì)概要 程序名稱(chēng): 基于單片機(jī)的 作息時(shí)間器 系統(tǒng)設(shè)計(jì) 說(shuō)明:實(shí)現(xiàn) 24 小時(shí)制電子鐘, 8 位數(shù)碼管顯示,顯示時(shí)分秒顯示格式:235959(小時(shí)十位如果為 0 則不顯示)。 到預(yù)定時(shí)問(wèn)啟動(dòng)蜂鳴器模擬打鈴,蜂鳴器 BEEP: 。 打鈴方式分起床、熄幻鈴和上、下課鈴兩種。 系統(tǒng)使用 5 只按鍵, 4 只按鍵用來(lái)調(diào)整時(shí)間, 且其中一只 在不設(shè)置時(shí)間的情況下可 為強(qiáng)制打鈴,另一只 單獨(dú)連接,可實(shí)行 復(fù)位和強(qiáng)制結(jié)束打鈴。 鍵 SET_KFY: ;通過(guò)選擇鍵選擇 要調(diào)的時(shí)間 ,選 中位閃爍。 可調(diào)整年月日,時(shí)分秒,周期 和預(yù)設(shè)鬧鐘時(shí)間 。 鍵 SET_KFY:; 通過(guò)選擇鍵選擇調(diào)整位,選中位閃爍 ,且在 1 鍵選擇到設(shè)置鬧鐘時(shí)間時(shí)可跳出預(yù)設(shè)鬧鐘時(shí)間。 增加鍵 ADD_KEY: ;按一次使選中位加 1。 減少鍵 DEC_KEY: ;按一次使選中位位。 1,且具有強(qiáng)制打鈴效果 源程序清單 include //調(diào)用單片機(jī)頭文件 define uchar unsigned char //無(wú)符號(hào)字符型 宏定義 變量范圍 0~255 define uint unsigned int //無(wú)符號(hào)整型 宏定義 變量范圍 0~65535 include //數(shù)碼管段選定義 0 1 2 3 4 5 6 7 8 9 uchar code smg_du[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xBa,0x20,0x28, 0x30,0x25,0xe4,0x23,0x64,0x74,0xff}。 //斷碼 //數(shù)碼管位選定義 uchar code smg_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}。//數(shù)碼管位選定義 uchar dis_smg[8] = {0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xBa}。 uchar smg_i = 8。 //顯示數(shù)碼管的個(gè)位數(shù) bit flag_200ms 。 bit flag_100ms 。 bit flag_500ms。 //500ms 標(biāo)志位 sbit beep = P3^7。 //蜂鳴器定義 bit flag_beep_en。 uint clock_value。 //用作鬧鐘用的 uchar flag_s = 0x03。//控制數(shù)碼管閃爍的變量 uchar flag_nl。 //農(nóng)歷 陽(yáng)歷顯示標(biāo)志位 uchar menu_1,menu_2,menu_i。 sbit dat0 = B^0。 sbit dat1 = B^1。 sbit dat2 = B^2。 sbit dat3 = B^3。 sbit dat4 = B^4。 sbit dat5 = B^5。 sbit dat6 = B^6。 sbit dat7 = B^7。 uchar daling_geshu=0。 uchar fen1,shi1。 //第 1 個(gè)打鈴的時(shí)間 起床 uchar fen2,shi2。 //第 2 個(gè)打鈴的時(shí)間 早自習(xí) uchar fen3,shi3。 //第 3 個(gè)打鈴的時(shí)間 早自習(xí)下 uchar fen4,shi4。 //第 4 個(gè)打鈴的時(shí)間 第一節(jié)上課 uchar fen5,shi5。 //第 5 個(gè)打鈴的時(shí) 間 第一節(jié)下課 uchar fen6,shi6。 //第 6 個(gè)打鈴的時(shí)間 第二節(jié)上課 uchar fen7,shi7。 //第 7 個(gè)打鈴的時(shí)間 第二節(jié)下課 uchar fen8,shi8。 //第 8 個(gè)打鈴的時(shí)間 第三節(jié)上課 uchar fen9,shi9。 //第 9 個(gè)打鈴的時(shí)間 第三節(jié)下課 uchar fen10,shi10。 //第 10 個(gè)打鈴的時(shí)間 第四節(jié)上課 uchar fen11,shi11。 //第 11 個(gè)打鈴的時(shí)間 第四節(jié)下 課 uchar fen12,shi12。 //第 12 個(gè)打鈴的時(shí)間 第五節(jié)上課 uchar fen13,shi13。 //第 13 個(gè)打鈴的時(shí)間 第五節(jié)下課 uchar fen14,shi14。 //第 14 個(gè)打鈴的時(shí)間 第六節(jié)上課 uchar fen15,shi15。 //第 15 個(gè)打鈴的時(shí)間 第六節(jié)下課 uchar fen16,shi16。 //第 16 個(gè)打鈴的時(shí)間 第七節(jié)上課 uchar fen17,shi17。 //第 17 個(gè)打鈴的時(shí)間 第七節(jié)下課 uchar fen18,shi18。 //第 18 個(gè)打鈴的時(shí)間 第八節(jié)上課 uchar fen19,shi19。 //第 19 個(gè)打鈴的時(shí)間 第八節(jié)下課 uchar fen20,shi20。 //第 20 個(gè)打鈴的時(shí)間 晚自習(xí)上課 uchar fen21,shi21。 //第 21 個(gè)打鈴的時(shí)間 晚自習(xí)下課 uchar fen22,shi22。 //第 22 個(gè)打鈴的時(shí)間 熄燈 uchar fen23,shi23。 //第 23 個(gè)打鈴的時(shí)間 uchar fen24,shi24。 //第 24 個(gè)打鈴的時(shí)間 uchar fen25,shi25。 //第 25 個(gè)打鈴的時(shí)間 uchar fen26,shi26。 //第 26 個(gè)打鈴的時(shí)間 include /******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部 eeprom 中 ******************/ void write_eeprom() { SectorErase(0x2020)。 byte_write(0x2020, fen1)。 //第 1 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi1)。 byte_write(0x2020, fen2)。 //第 2 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi2)。 byte_write(0x2020, fen3)。 //第 3 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi3)。 byte_write(0x2020, fen4)。 //第 4 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi4)。 byte_write(0x2020, fen5)。 //第 5 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi5)。 byte_write(0x2020, fen6)。 //第 6 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi6)。 byte_write(0x2020, fen7)。 //第 7 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi7)。 byte_write(0x2020, fen8)。 //第 8 個(gè)打鈴的時(shí)間 byte_write(0x2020, shi8)。 byte_write(0x2020, fen9)。 //第 9 個(gè)打鈴的時(shí)間 byte_write(0x2017, shi9)。 byte_write(0x2018, fen10)。 //第 10 個(gè)打鈴的時(shí)間 byte_write(0x2019, shi10)。 byte_write(0x2020, fen1
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1