亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 開機(jī)顯示PC機(jī)時(shí)分秒的時(shí)鐘1302 [打印本頁]

作者: zl2168    時(shí)間: 2016-5-5 22:05
標(biāo)題: 開機(jī)顯示PC機(jī)時(shí)分秒的時(shí)鐘1302

實(shí)例92 開機(jī)顯示PC機(jī)時(shí)分秒的時(shí)鐘1302LED數(shù)碼管顯示)

摘自張志良編著《單片機(jī)實(shí)驗(yàn)實(shí)訓(xùn)100例》 ISBN 978-7-5124-1603-1,北航社出版

時(shí)鐘顯示除了用LCD顯示,還可以用LED顯示。

電路設(shè)計(jì)

設(shè)計(jì)時(shí)鐘DS1302LED數(shù)碼管顯示電路如圖7-8所示,電路分成兩部分:左半部分是時(shí)鐘DS1302讀寫控制電路,右半部分是LED數(shù)碼管動態(tài)顯示電路。




時(shí)鐘DS1302讀寫控制電路

時(shí)鐘DS1302讀寫控制電路與實(shí)例90、91中相同,晶振32768HzDS1302 X1X2端連接;VCC2為主電源,接+5V電源;VCC1備用電源,接3.6V鋰電池;串行數(shù)據(jù)輸入/輸出端I/O、串行時(shí)鐘脈沖輸入端SCLK和復(fù)位/片選端分別與80C51 P1.7、P1.6P1.5連接。

LED數(shù)碼管動態(tài)顯示電路

LED數(shù)碼管動態(tài)顯示電路與實(shí)例6566、71、7273中相同,80C51 P1.2P1.0138譯碼輸入端CBAA為低位)連接;譯碼輸出端(低電平有效)作為位碼,選通6位共陰型LED數(shù)碼管;138片選端E1+5V接地,始終有效;80C5174LS377時(shí)鐘端CLK;P2.7接門控端;P0口接數(shù)據(jù)輸入端D0D7377 Q0Q7輸出段碼,與數(shù)碼管筆段a~g、Dp連接。

74LS37774LS138特性已分別在實(shí)例34實(shí)例58中介紹,此處不再重復(fù)。

程序設(shè)計(jì)

7-8電路,要求開機(jī)即能直接顯示PC機(jī)時(shí)分秒數(shù)據(jù),時(shí)分秒數(shù)據(jù)間用小數(shù)點(diǎn)分隔,其中秒數(shù)據(jù)閃爍(亮600ms,暗400ms),并不斷更新。






需要說明的是,T0 4ms中斷有3個(gè)作用:一是用于動態(tài)掃描顯示,每隔4ms更換顯示位;二是用于秒閃爍,4ms計(jì)數(shù),前600ms亮,后400ms暗;三是用于在接近1秒(0.996秒)時(shí)突發(fā)讀時(shí)鐘。然后隔4ms再讀一次,即在0.996s1s兩個(gè)時(shí)點(diǎn)突發(fā)讀時(shí)鐘。若在這兩個(gè)時(shí)點(diǎn)發(fā)現(xiàn)秒數(shù)據(jù)更新,就更新顯示值,爾后4ms計(jì)數(shù)重新開始。既做到及時(shí)更新,又避免在T0每一次4ms中斷時(shí)均去突發(fā)讀時(shí)鐘。為什么不在4ms計(jì)數(shù)1秒時(shí)一次性去突發(fā)讀時(shí)鐘呢?主要考慮4ms計(jì)數(shù)與1302實(shí)時(shí)時(shí)鐘可能(多數(shù))存在時(shí)差,若4ms計(jì)數(shù)1秒小于1302實(shí)時(shí)時(shí)鐘1秒,實(shí)時(shí)時(shí)鐘顯示滯后將超過1秒,而且這種“滯后”幾乎會一直保持下去(需累計(jì)時(shí)差大于一秒后才“正確”一次)。但若在0.996s1s兩個(gè)時(shí)點(diǎn)突發(fā)讀時(shí)鐘,有時(shí)差時(shí),“滯后”只有一次,第二次即被更正,而且這種“正確”幾乎會一直保持下去(需累計(jì)時(shí)差大于4ms后才再“滯后”一次)。

Keil調(diào)試

本題Keil調(diào)試同上例。因涉及外圍元件DS1302,在Keil軟件調(diào)試中無法得到外圍元件的有效信號。因此,僅在Keil中,按實(shí)例1所述步驟,編譯鏈接,語法糾錯(cuò),自動生成Hex文件,并在變量觀察窗口Watch頁中設(shè)置(設(shè)置方法參閱8-30)全局變量b(時(shí)鐘數(shù)據(jù)數(shù)組)和d(時(shí)鐘顯示數(shù)組),獲得數(shù)組b[]d[]的首地址(分別為0x08、0x0f,用于在Proteus仿真中觀測)。

需要注意的是,引用實(shí)例903個(gè)子函數(shù)必須插入,否則Keil調(diào)試將顯示出錯(cuò)。

Proteus仿真

實(shí)例23所述Proteus仿真步驟,打開Proteus ISIS軟件,按7-5選擇和放置元器件,并連接線路,畫出Proteus仿真電路如7-9所示。







鼠標(biāo)左鍵雙擊Proteus ISIS仿真電路中AT89C51,裝入Keil調(diào)試后自動生成的Hex文件。

全速運(yùn)行后,LED顯示屏顯示PC時(shí)分秒實(shí)時(shí)數(shù)據(jù),中間用小數(shù)點(diǎn)分隔,秒數(shù)據(jù)閃爍。

按暫停按鈕,打開80C51片內(nèi)RAM(主菜單“Debug”→“80C51 CPU”→“InternalIDATAMemory -U1”),可看到08H0EH0FH14H已經(jīng)依次存放了時(shí)鐘數(shù)據(jù)數(shù)組b[]和顯示字段碼數(shù)組d[]的即時(shí)數(shù)據(jù),如7-10所示。

終止程序運(yùn)行,可按停止按鈕。

思考與練習(xí)

本例程序中,T0 4ms中斷有什么作用?







歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1