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

正文內(nèi)容

基于單片機(jī)的時鐘設(shè)計(jì)_畢業(yè)論文(編輯修改稿)

2025-08-14 18:43 本頁面
 

【文章內(nèi)容簡介】 2 鍵切換到分鐘位,按 K1 鍵進(jìn)行分鐘調(diào)整,分位設(shè)置好后,再按 K2 鍵保存時間設(shè)定值,并返回顯示時間,按所設(shè)定的時間值進(jìn)行計(jì)時。 ( 3)連續(xù)按 K3 鍵顯示 3路定時及其開關(guān)狀態(tài),當(dāng)顯示某一路定時時, 3 秒后自動返回時間顯示, 3 秒內(nèi)按 K2 鍵進(jìn)入定時設(shè)置,設(shè)置同日期( 6位顯示00 為當(dāng)路定時關(guān),顯示 01為當(dāng)路定時開)。當(dāng)路定時設(shè)置完后按 K2 鍵保存定時設(shè)定值并返回時間顯示。 ( 4)按 K4 鍵顯示實(shí)時溫度和濕度, 5 秒后自動返回時間顯示。 4 系統(tǒng)硬件設(shè)計(jì) 芯片的選擇 本設(shè)計(jì)選用 AT89S52 芯片,它是一種低功耗、高性能 CMOS 8 位微控制器,具有 8K( 0000H~ 1FFFH)在線系統(tǒng)可編程 Flash 存儲器。片上 Flash 允許程序存儲器在線編程,也適于常規(guī)編程器。在單芯片上,擁有靈巧的 8 位 CPU 和在線系統(tǒng)可編程 Flash,使得 AT89S52 為眾多嵌入式控制應(yīng)用系統(tǒng)提供靈活、高效的解決方案。 AT89S52 具有以下標(biāo)準(zhǔn)功能: 8K( 0000H~ 1FFFH) Flash, 256 字節(jié)( 00H~FFH)數(shù)據(jù)存儲器( RAM), 64K( 0000H~ FFFFH)程序存儲器( ROM), 32 位 I/O口線,看門狗 定時器, 2 個數(shù)據(jù)指針,三個 16 位定時器 /計(jì)數(shù)器,一個 6 向量 2級中斷結(jié)構(gòu),全雙工串行口內(nèi)晶振及時鐘電路。 其中,數(shù)據(jù)存儲器( RAM)用于存放各種運(yùn)算的中間結(jié)果,作緩存和數(shù)據(jù)暫存,以及設(shè)置特征標(biāo)志等。 AT89S52 的片內(nèi)數(shù)據(jù)存儲器用位尋址方式,最大尋址范圍為 256 字節(jié)( 00H~ FFH)。按使用情況不同可分成低 128 字節(jié)( 00H~ 7FH)和高 128 字節(jié)( 80H~ FFH)。其中低 128 字節(jié)為真正的 RAM 存儲器,高 128 字節(jié)為特殊功能寄存器( SFR)區(qū),如累加器 ACC、程序狀態(tài)字 PSW、數(shù)據(jù)指針 DPTR、程序計(jì)數(shù)器 PC等。整個片內(nèi) RAM 區(qū)分布如圖 41所示。 7 圖 41 片內(nèi) RAM 區(qū) 實(shí)驗(yàn)板電路原理圖 實(shí)驗(yàn)板電路結(jié)構(gòu)框圖如圖 42所示,原理電路圖如圖 43 所示。 圖 42 實(shí)驗(yàn)板結(jié)構(gòu)框圖 圖 43 實(shí)驗(yàn)板原理圖 8 功能電路分析 時鐘電路 實(shí)驗(yàn)板的時鐘振蕩源電路如圖 44 所示。其中 JT 為 的晶振,改變兩電容 CB 的值即可對此晶振頻率進(jìn)行調(diào)節(jié)。該電路提供單片機(jī)工作所需的振蕩頻率,計(jì)算定時器初值即需此晶振頻率,在通信時也需知道晶振頻率,以對波特率進(jìn)行計(jì)算。 圖 44 時鐘電路 復(fù)位電路 如圖 45 所示為實(shí)驗(yàn)板的復(fù)位電路,當(dāng) RESET 信號為低電平時,實(shí)驗(yàn)板為工作狀態(tài),當(dāng) RESET 信號為高電平時,實(shí)驗(yàn)板為復(fù)位或下載程序狀態(tài)。由于AT89S52 具有 ISP 的功能,即可以通過并口線直接將程序下載到單片機(jī)內(nèi),因此, AT89S52 具有兩種狀態(tài),下載程序狀態(tài)和運(yùn)行狀態(tài)。該復(fù)位電路能實(shí)現(xiàn)上電自動復(fù)位,也能手動復(fù)位,一般復(fù)位時 RESET 應(yīng)保持 20毫秒以上高電平,此復(fù)位時間由接地電容控制。 圖 45 復(fù)位電路 鍵盤電路 如圖 46所示為陣列按鍵電路, 各設(shè)置及轉(zhuǎn)換信號由此電路輸入,實(shí)驗(yàn)板提供了 16 個按鍵,由 P1口經(jīng) SN74F244(驅(qū)動芯片)輸出擴(kuò)展成 4 4的陣列按鍵,~ 為行線, ~ 為列線。 SN74F244 有一片選信號線 G ,當(dāng)此口線為低電平時, A1~ A4 與 Y1~ Y4接通,反之, A1~ A4 與 Y1~ Y4 斷開。 此鍵盤用掃描工作方式,若有鍵按下,則相應(yīng)位端口被拉低為低電平,由于本系統(tǒng)只用了 4 個按鍵,所以只需對 4 個按鍵進(jìn)行掃描。掃描時,先置 口為高電平,向 P1 口送 0EFH( MOV P1, 0EFH),再置 口為低電平,讀 P1口( MOV A, P1),最后判斷 P1 口低 4 位哪位是低電平,若某位為低電平,則相應(yīng)按鍵被按下,如 為低電平( =0),則 K1鍵被按下。 9 圖 46 陣列按鍵 數(shù)碼顯示電路 如圖 47 所示為數(shù)碼顯示電路,實(shí)驗(yàn)板使用了 6 個共陽數(shù)碼管, P0 口為段碼信號線, B1~ B6為位控線,是 P1 口經(jīng) SN74F573(反向驅(qū)動芯片,即輸入為高電平,則輸出為低電平,反之則輸出為高電平,該芯片也有一片選信號 C,當(dāng)此信號為高電平時有效)反向得到,再 由 B1~ B6 控制晶體管 Q1~ Q6,以達(dá)到控制每位數(shù)碼管的目的。 系統(tǒng)采用動態(tài)顯示,先向 P0 口送第一位數(shù)碼管需要顯示的段碼值,再給 P1口送 0FEH,延時 1毫秒使第一位數(shù)碼管顯示,又向 P0 口送第二位數(shù)碼管需要顯示的段碼值, P1 口送 0FDH,延時 1 毫秒,使第二位數(shù)碼管顯示。依次遞推,直到最后一位數(shù)碼管,然后再循環(huán)。改變延時時長可以調(diào)節(jié)數(shù)碼管顯示的亮度,由于單片機(jī)執(zhí)行速度很快(微秒級),所以看上去數(shù)碼管一直亮著。 圖 47 數(shù)碼顯示電路 蜂鳴器電路 其硬件原理圖如圖 48所示。此電路用于定時時發(fā)出 提示音。 SPEAKER與 口相連,當(dāng) SPEAKER 輸出高電平時蜂鳴器不響,而 SPEAKER 輸出低電平時蜂鳴器發(fā)出響聲。只需控制 SPEAKER 輸出高低電平的時間和變化頻率,就可以讓蜂鳴器發(fā)出不同的聲音。此電路用于產(chǎn)生定時器提示音。 圖 48 蜂鳴器電路 10 5 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)的軟件設(shè)計(jì)也是工具系統(tǒng)功能的設(shè)計(jì)。單片機(jī)軟件的設(shè)計(jì)主要包括執(zhí)行軟件(完成各種實(shí)質(zhì)性功能)的設(shè)計(jì)和監(jiān)控軟件的設(shè)計(jì)。單片機(jī)的軟件設(shè)計(jì)通常要考慮以下幾個方面的問題: ( 1)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨(dú)立的部分,設(shè) 計(jì)出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理; ( 2)培養(yǎng)良好的編程風(fēng)格,如考慮結(jié)構(gòu)化程序設(shè)計(jì)、實(shí)行模塊化、子程序化。既便于調(diào)試、鏈接,又便于移植和修改; ( 3)建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù); ( 4)繪制程序流程圖; ( 5)合理分配系統(tǒng)資源 ; ( 6)為程序加入注釋,提高可讀性,實(shí)施軟件工程; ( 7)注意軟件的抗干擾設(shè)計(jì),提高系統(tǒng)的可靠性。 數(shù)據(jù)單元分配 數(shù)據(jù)存儲單元分配 數(shù)據(jù)存儲單元分配如下表所示: 項(xiàng)目 秒 分 時 日 月 年 存儲單元 30H 31H 32H 33H 34H 35H 項(xiàng)目 定時1:開關(guān) 定時 1:分 定時 1:時 定時2:開關(guān) 定時 2:分 定時 2:時 存儲單元 36H 37H 38H 39H 3AH 3BH 項(xiàng)目 定時3:開關(guān) 定時 3:分 定時 3:時 存顯示首地址 堆棧起始單元 存儲單元 3CH 3DH 3EH 3FH 50H 標(biāo)志位單元分配 標(biāo)志位單元( 20H)分配如下表所示: 位單元 項(xiàng)目 位單元 項(xiàng)目 01H 2 位數(shù)碼管閃爍標(biāo)志位 08H 定時 1 顯示標(biāo)志位 02H 09H 定時 2 顯示標(biāo)志位 03H 4 位數(shù)碼管閃爍標(biāo)志位 0AH 定時 3 顯示標(biāo)志位 04H 0BH 定時 1 響鈴標(biāo)志位 05H 6 位數(shù)碼管顯示標(biāo)志位 0CH 定時 2 響鈴標(biāo)志位 06H 0DH 定時 3 響鈴標(biāo)志位 07H 日期顯示標(biāo)志位 0EH 總響鈴標(biāo)志位 計(jì)時時鐘實(shí)現(xiàn)的基本方法 時鐘的最小計(jì)時單位是秒,使用定時器的方式 1,最大的定時時間也只能達(dá) 11 到 131 毫秒??砂讯〞r器的定時時間定為 50 毫秒,這樣,計(jì)數(shù)溢出 20 次即可得到時鐘的最小計(jì)時單位─秒。計(jì)數(shù) 20 次可以用軟件實(shí)現(xiàn),對定時器溢出次數(shù)進(jìn)行計(jì)數(shù),計(jì)滿 20 次 即為 1秒。從秒到分,從分到時,以及日、月、年都是通過軟件累加并進(jìn)行比較的方法實(shí)現(xiàn)的。 實(shí)現(xiàn)時鐘程序設(shè)計(jì)步驟 系統(tǒng)采用模塊化結(jié)構(gòu),主程序只需調(diào)用各個子程序模塊即可實(shí)現(xiàn)相應(yīng)功能。其模塊結(jié)構(gòu)圖如圖 51所示。 圖 51 程序各模塊方框圖 主程序模塊設(shè)計(jì) 整個程序進(jìn)行模塊化設(shè)計(jì),主程序只需調(diào)用相應(yīng)的程序即可。主程序流程如圖 52所示。 圖 52 主程序流程圖 計(jì)時子程序模塊的實(shí)現(xiàn) 當(dāng) T0 中斷時,執(zhí)行本程序,因 T0 設(shè)為 50 毫秒中斷,故中斷 20次為 1秒。中斷程序分別有 20 次計(jì)數(shù)( 1秒), 60 次計(jì)數(shù)( 1 分), 60 次計(jì)數(shù)( 1 小時), 24次計(jì)數(shù)( 1 天), 2 2 31 次計(jì)數(shù)( 1 個月), 12 次計(jì)數(shù)( 1 年)。當(dāng)前位到設(shè)定數(shù)值時寫 0 或 1,下一位加 1。由于本世紀(jì)是 21 世紀(jì),年位前兩位是 4的倍數(shù),故判斷閏年時只需對年的后兩位進(jìn)行計(jì)算,能被 4 整除為閏年,否則為平年,年位只進(jìn)行加 1,大于 99 時又重新開始。計(jì)時中斷流程圖如圖 53 所示。 12 圖 53 計(jì)時子程序流程圖 圖 54 顯示子程序流程圖 顯示子程序模塊的實(shí)現(xiàn) 顯示原理在前面已給予了說明,流程圖如圖 54所示。 時鐘設(shè)定子程序模塊的實(shí)現(xiàn) 當(dāng)設(shè)定時間時,斷開 T0 中斷,秒單元清 0,進(jìn)入時、分單元設(shè)定。設(shè)定好后重裝 T0 初值,開 T0中斷。流程圖如圖 55所示。 圖 55 時鐘設(shè)定子程流程圖 日期、定時設(shè)定子程序模塊的實(shí)現(xiàn) 日期、定時的設(shè)定同時鐘設(shè)定。定時設(shè)定時,把時鐘的秒位換成定時標(biāo)志位,“ 00”為當(dāng)路定時關(guān),“ 01”為當(dāng)路定時開 ,流程圖與時鐘設(shè)定程序相似。 程序說明 定時器初值計(jì)算 因定時器工作于方式 1,需要 50ms 的中斷,所以計(jì)數(shù)初值 : 13 χ =216 t fosc/ 12=65536 50 103 106/ 12=19456 表示成十六進(jìn)制為χ =4C00H,故( TH0) =4CH,( TL0) =00H。 程序初始化 程序初始化時,清相應(yīng)內(nèi)存單元( 20H~ 4FH 共 48 個單元),送時間( 00 時00 分 00 秒)、日期( 07 年 10 月 01 日)初值,送定時器 T0、 T1 初值, TH0= TH1=4CH,TL0= TL1=00H,特殊寄存器( SP=50H、 TMOD=11H)值等。 誤差分析及校正 當(dāng) T0 中斷時,需重裝定時初值,且要加上從斷開 T0中斷到允許 T0中斷共有 13 個周期,以減小誤差,故理論重裝定時初值為( TH0) =4CH,( TL0) =13H。但該外接晶振電路的晶振頻率可調(diào),可能出現(xiàn)誤差,所以實(shí)際不是這個值。 經(jīng)調(diào)試,當(dāng)定時初值為( TH0) =4CH,( TL0) =06H 時, 24小時約慢 2秒,所以每當(dāng)計(jì)時 24 小時之后,給秒單元( 30H)送 02H,使秒累加時從 2 加起, 24小時就少加 2秒,即可使 時間得到校正。 實(shí)現(xiàn)閃動設(shè)定 閃動可選用段碼送 00H 實(shí)現(xiàn),也可禁止當(dāng)前位顯示,選通位送 0實(shí)現(xiàn)。本設(shè)計(jì)選用后者實(shí)現(xiàn)閃動,用定時器 T1 進(jìn)行控制。 實(shí)現(xiàn)連續(xù)加 1 先判斷鍵是否松開,若松開,則只執(zhí)行一次加 1程序段,進(jìn)行單次加 1;若未松開則連續(xù)執(zhí)行加 1程序段,實(shí)現(xiàn)連續(xù)加 1。每執(zhí)行一次加 1程序段就調(diào)用顯示子程序進(jìn)行延時,以對調(diào)節(jié)速度進(jìn)行控制。本系統(tǒng)以 5Hz 的速度連續(xù)加 1,這樣能快速對時間、日期、定時進(jìn)行設(shè)定。 定時音與顯示相沖突問題及解決方案 由于蜂鳴器響時 口的電平呈高頻變化 ,頻率 1K~ 2K,其間隙時間為~ 1毫秒,小于 6 毫秒,因顯示時每個數(shù)碼管顯示 1毫秒,至少需要 6 毫秒,故蜂鳴器響時無法進(jìn)行顯示。為解決此問題,可增加鎖存器,采用靜態(tài)顯示;也可增加一語音芯片,既可解決此問題,也可把定時音換成音樂或語音提示,或增加其它功能,使系統(tǒng)功能更強(qiáng)。 6 設(shè)計(jì)程序 ORG 0000H LJMP START ORG 000BH LJMP INTT0
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1