|
最近突發(fā)奇想寫(xiě)了點(diǎn)關(guān)于時(shí)間的文章,將我學(xué)習(xí)生活中對(duì)時(shí)間的理解寫(xiě)下來(lái),分享給愛(ài)思考的朋友。
設(shè)計(jì)的精髓在于思想。
真正的價(jià)值在于各位自己想出來(lái)的點(diǎn)子,然后通過(guò)設(shè)計(jì)、編碼來(lái)實(shí)現(xiàn)你的點(diǎn)子。22
突破感官---從人生、歷史到單片機(jī):聊一聊時(shí)間的話(huà)題
朱有田 2017/11/5
這篇文章寫(xiě)給對(duì)技術(shù)感興趣、喜歡思考的人、也寫(xiě)給初學(xué)計(jì)算機(jī)、單片機(jī)的人讓我們突破自己的生理感官,重新認(rèn)識(shí)時(shí)間這個(gè)東西。
時(shí)間這個(gè)詞和愛(ài)情一樣,是我們經(jīng)常所要提及,以及永遠(yuǎn)不會(huì)過(guò)時(shí)的話(huà)題。
“曾經(jīng)有一份真誠(chéng)的愛(ài)情放在我面前,我沒(méi)有珍惜等我失去的時(shí)候我才后悔莫及,人世間最痛苦的事莫過(guò)于此。如果上天能夠給我一個(gè)再來(lái)一次的機(jī)會(huì), 我會(huì)對(duì)那個(gè)女孩子說(shuō)三個(gè)字:我愛(ài)你。如果非要在這份愛(ài)上加上一個(gè)期限,我希 望是……一萬(wàn)年!”
1.003.jpg (11.6 KB, 下載次數(shù): 124)
下載附件
2017-1-8 16:01 上傳
《大話(huà)西游》 中周星馳扮演的孫悟空對(duì)紫霞說(shuō)的那段臺(tái)詞已然成為經(jīng)典。今 天我們先不討論愛(ài)情,而來(lái)討論一下:一萬(wàn)年真的很久嗎?
從感官上來(lái)說(shuō),答案是肯定的大家都會(huì)覺(jué)得一萬(wàn)年很久。因?yàn)闊o(wú)論時(shí)間、空間,對(duì)于人的神經(jīng)感官系統(tǒng)來(lái)說(shuō),都有一個(gè)可感受的范圍,而往往超過(guò)感受范 圍的事物,總是很難被人理解和接受,這是普遍現(xiàn)象。我們不理解某個(gè)事物,是 因?yàn)樗茈y被直接感受到,人類(lèi)之所以偉大,是因?yàn)榭傆幸恍〔糠秩四軌蛘J(rèn)識(shí)到 自己感受范圍之外的東西,推動(dòng)科學(xué)文明向前發(fā)展。對(duì)于時(shí)間的感官,我們能夠察覺(jué)到最小單位為秒,最大單位為年。我們常常用秒來(lái)表達(dá)較小的時(shí)間因?yàn)槊腌娛侵苯涌蓴?shù)的,秒就是嘀嗒之間,一件事情很快往往說(shuō)一秒鐘搞定!一件事隨時(shí)隨刻能做到,叫分分鐘的事。另一面,人類(lèi)個(gè)體壽命普遍小于 100 年,10 年對(duì)我們來(lái)說(shuō)就已經(jīng)夠久的了,人生有幾個(gè)十年 呀? 一萬(wàn)年理所當(dāng)然就遙不可及了。本文要討論的是超越我們的感官,先從數(shù)字說(shuō)起。從數(shù)學(xué)角度去理解時(shí)間的刻度時(shí)間在宏觀上是可以無(wú)限延展的,從宇宙誕生那第一秒開(kāi)始,
1 秒,10 秒,100 秒,100000…00 秒一直往前計(jì)時(shí),直到無(wú)窮, 沒(méi)有盡頭。微觀上,時(shí)間又是可以無(wú)限微分的,0.1秒,0.01 秒,0.001 秒,0.0001
秒,0.0000000…001 秒,小數(shù)點(diǎn)后延伸無(wú)數(shù)個(gè) 0,看不到盡頭,無(wú)限靠近 0,卻 永遠(yuǎn)達(dá)不到 0。
一萬(wàn)年真的很久嗎?“久”本身就是一種感官描述,對(duì)于一年而言,一萬(wàn)年 確實(shí)很久,而對(duì)于一億年來(lái)說(shuō),一萬(wàn)年就是剎那間了。在這里我們無(wú)法形容全部 的時(shí)間刻度,只能建立在已知的事物上有限的談?wù)撘幌聲r(shí)間的范圍。
人的生命期(100 年),人類(lèi)進(jìn)化歷史(1000 萬(wàn)年),地球的壽命(46 億年), 用同一個(gè)圖來(lái)表示,是否有相似之處?不出意外的話(huà),我們的人生是這樣的:
1.011.jpg (9.49 KB, 下載次數(shù): 114)
下載附件
2017-1-8 16:01 上傳
看過(guò)紀(jì)錄片或者去過(guò)博物館的都應(yīng)該知道,我們?nèi)祟?lèi)進(jìn)化是這樣的:
1.012.jpg (10.95 KB, 下載次數(shù): 124)
下載附件
2017-1-8 16:01 上傳
我們以及所有祖先的人生在這個(gè)圖里面就是分布在各自位置的一條極細(xì)的豎 線(xiàn)。而整個(gè)人類(lèi)進(jìn)化史對(duì)于地球時(shí)間而言,又是在那個(gè)圖表里面的一條豎線(xiàn)。
1.014.jpg (152.38 KB, 下載次數(shù): 134)
下載附件
2017-1-8 16:01 上傳
再 來(lái)看看微觀時(shí)間的圖表,是否也似曾相識(shí)?
1.016.jpg (19.23 KB, 下載次數(shù): 118)
下載附件
2017-1-8 16:01 上傳
電視機(jī)看起來(lái)那么神奇,其實(shí)它只是一個(gè)圖片顯示器,進(jìn)一步說(shuō),它僅僅是 一個(gè)像素顯示器,它不停的切換靜態(tài)圖像,當(dāng)速度超過(guò)肉眼能夠感知的范圍,我 們就覺(jué)得電視機(jī)的畫(huà)面在連續(xù)不斷的運(yùn)動(dòng)。也就是說(shuō),我們看著電視,我們的眼 睛一直在被電視欺騙。若把時(shí)間調(diào)慢,電視機(jī)就像一臺(tái)自動(dòng)切換的圖片瀏覽器, 再把時(shí)間調(diào)慢,電視機(jī)只是在按次序的點(diǎn)亮屏幕上的一個(gè)點(diǎn)。
來(lái)看一下人們?cè)阪I盤(pán)上敲擊一個(gè)按鍵時(shí)發(fā)生的時(shí)間圖表:
1.017.jpg (25.63 KB, 下載次數(shù): 110)
下載附件
2017-1-8 16:01 上傳
對(duì)于鍵盤(pán)掃描程序而言,人類(lèi)的手指敲擊動(dòng)作實(shí)在太慢了。我們使出最快的 鋼琴手,迅速敲擊按鍵使得按鍵底部的開(kāi)關(guān)閉合約 200 到300 毫秒 ms,那已經(jīng) 非?炝!而這個(gè)時(shí)間對(duì)于計(jì)算機(jī)而言,相當(dāng)于你按下按鍵經(jīng)過(guò)了一個(gè)月才釋放。 這與我們以自己的人生去度量人類(lèi)歷史進(jìn)程的道理是一樣的。
再來(lái)看一 個(gè)栗子:
1.019.jpg (20.33 KB, 下載次數(shù): 129)
下載附件
2017-1-8 16:01 上傳
滬昆高速鐵路由 滬杭客運(yùn)專(zhuān)線(xiàn)、杭長(zhǎng)客運(yùn)專(zhuān)線(xiàn)以及 長(zhǎng)昆客運(yùn)專(zhuān)線(xiàn)組成,途 經(jīng) 上海、杭州、南昌、長(zhǎng)沙、貴陽(yáng)、昆明6座 省會(huì)城市及直轄市,線(xiàn)路全長(zhǎng) 2252 公里,設(shè)計(jì)速度 350km/h,是 中國(guó)東西向線(xiàn)路里程最長(zhǎng)、經(jīng)過(guò) 省份最多的 高速 鐵路。
如果,我們沿著滬昆高鐵布置一根連續(xù)的電纜,在昆明設(shè)置一個(gè)開(kāi)關(guān),在上 海設(shè)置一個(gè)電壓表,我們?cè)噲D在按下開(kāi)關(guān)的時(shí)刻啟動(dòng)計(jì)時(shí),在電壓表針動(dòng)作時(shí)關(guān) 閉計(jì)時(shí),你們考慮一下這個(gè)時(shí)間是多久?受哪些因素影響?本文不深入討論這個(gè) 栗子的具體結(jié)果,而是讓讀者感受到時(shí)間的存在,并不是僅僅只考慮開(kāi)關(guān)合上, 電壓上升的純粹邏輯。
1.020.jpg (6.49 KB, 下載次數(shù): 125)
下載附件
2017-1-8 16:01 上傳
這也是值得思考的一個(gè)問(wèn)題
接下來(lái)看看繼電 器的情況:
1.022.jpg (15.46 KB, 下載次數(shù): 119)
下載附件
2017-1-8 16:01 上傳
如圖,當(dāng)開(kāi)關(guān)按下時(shí)開(kāi)始啟動(dòng)計(jì)時(shí),繼電器線(xiàn)圈得電產(chǎn)生磁力,將銜鐵往下 吸合,使得繼電器的 3 腳經(jīng)過(guò)一段物理距離之后,與 5 腳接觸,計(jì)時(shí)停止,測(cè)得 該繼電器的吸合時(shí)間。同樣,當(dāng)開(kāi)關(guān)斷開(kāi)時(shí)開(kāi)始計(jì)時(shí),繼電器線(xiàn)圈失電失去磁力, 銜鐵在彈簧的拉力下復(fù)位,使得 3 腳與 5 腳分離,計(jì)時(shí)停止,測(cè)得該繼電器的釋 放時(shí)間。
通過(guò)觀察,不難發(fā)現(xiàn):3 腳與 5 腳吸合需要的時(shí)間比 3 腳與 5 腳斷開(kāi)的時(shí)間 要長(zhǎng),即吸合時(shí)間比釋放時(shí)間要長(zhǎng)。
讀者一定疑惑,為什么總是要去考慮時(shí)間,不是只要知道繼電器得電吸合, 失電釋放就行了么!其實(shí)不然,在一些應(yīng)用場(chǎng)景里,你無(wú)法避免時(shí)間因素給項(xiàng)目 造成的困擾和影響。正如繼電器,它的吸合時(shí)間決定了繼電器的動(dòng)作速度,也決 定了繼電器傳遞信號(hào)的延時(shí),假如在繼電器的輸入端加載一個(gè)寬度小于吸合時(shí)間 的脈沖信號(hào),那么該繼電器將沒(méi)有任何輸出,因?yàn)檫沒(méi)有達(dá)到吸合位置,線(xiàn)圈就 已經(jīng)失電了。
接著這個(gè)話(huà)題繼續(xù)舉栗子,請(qǐng)看圖:
1.023.jpg (16.59 KB, 下載次數(shù): 117)
下載附件
2017-1-8 16:01 上傳
假如單個(gè)繼電器的吸合時(shí)間約 50 毫秒 ms,釋放時(shí)間約 25 毫秒 ms,那么圖 中 5 個(gè)繼電器級(jí)聯(lián)控制,從開(kāi)關(guān)按下到最后一個(gè)繼電器吸合時(shí)間為 50×5=250ms, 從開(kāi)關(guān)釋放到最后一個(gè)繼電器釋放的時(shí)間為 25×5=125ms,那么問(wèn)題來(lái)了:假如 第一個(gè)開(kāi)關(guān)只吸合 100 毫秒就斷開(kāi),此刻信號(hào)還沒(méi)有傳遞到最后一個(gè)繼電器,那
么結(jié)果將如何?請(qǐng)燃燒你的大腦..
我們來(lái)看單片機(jī) 的例子,讀者可能會(huì)擔(dān)心單片機(jī)(又稱(chēng)MCU,或微控制器) 過(guò)于專(zhuān)業(yè)而無(wú)法理解。完全沒(méi)必要!在這里我們僅借它談?wù)撘幌掠嘘P(guān)時(shí)間的話(huà)題, 順帶提一下單片機(jī)系統(tǒng)的概念。
1.025.jpg (7.73 KB, 下載次數(shù): 116)
下載附件
2017-1-8 16:01 上傳
8 位單片機(jī)
單片機(jī)顧名思義是集成到一個(gè)芯片里面的計(jì)算機(jī)系統(tǒng),計(jì)算機(jī)系統(tǒng)就意味著 它要跑程序,也就意味著要有人去編寫(xiě)這個(gè)程序。這同時(shí)意味著單片機(jī)本身并沒(méi) 有具體的功能,它是一個(gè)通用件,具體要實(shí)現(xiàn)什么功能取決于你編寫(xiě)的程序。
光是一塊芯片可什么也干不了,首先要有一個(gè)目標(biāo)程序文件,它可以是你親 自編寫(xiě)的,也可以是朋友編寫(xiě)的,總之它在 PC 機(jī)里面是一個(gè)文件。然后我們通 過(guò)連接到電腦的程序燒錄器,打開(kāi)配套的燒錄軟件,將這個(gè)文件導(dǎo)入到單片機(jī)內(nèi)。 (就像把文件復(fù)制到 U 盤(pán)一樣)
1.026.jpg (8.9 KB, 下載次數(shù): 108)
下載附件
2017-1-8 16:01 上傳
編程器(燒錄器)
單片機(jī)內(nèi)已經(jīng)有了程序,接下來(lái)要怎么讓它工作起來(lái)呢?這非常簡(jiǎn)單,首先, 要給單片機(jī)加上一個(gè)晶振(晶振產(chǎn)生的脈沖信號(hào)將驅(qū)動(dòng)單片機(jī)按時(shí)序工作);其 次,當(dāng)然要給單片機(jī)加電;最后給一個(gè)復(fù)位信號(hào)到復(fù)位管腳;它就開(kāi)始運(yùn)行程序 了。這幾個(gè)最基本的要素,集合在一起,也叫最小系統(tǒng),如果不想自己親手做,
在網(wǎng)上能夠輕松淘到。
1.028.jpg (14.76 KB, 下載次數(shù): 120)
下載附件
2017-1-8 16:01 上傳
最小系統(tǒng)
言歸正傳我們切入正題,單片機(jī)系統(tǒng)往往要處理按鍵輸入、數(shù)碼管的顯示、以及其他開(kāi)關(guān)量信號(hào)的輸入和輸出處理。普通的 8 位單片機(jī)一般具備 24 到 32個(gè) IO(輸入輸出)引腳,每個(gè)引腳可以作為輸入,也能作為輸出。假設(shè)單片機(jī)供電電壓為 5V,那么 5V 即代表著程序中的 1 地)。而程序中的 0 相當(dāng)于電壓為 0V(接最簡(jiǎn)單的輸出應(yīng)用:在 P3.7管腳上面連接一個(gè)發(fā)光管的負(fù)極,發(fā)光管的正極通過(guò)限流電阻接電源。如果程序給 P3.7 賦值為 1,那么發(fā)光管兩端電壓都是
5V 電壓差為 0,處于熄滅狀態(tài)。若程序給 P3.7 賦值為 0,那么發(fā)光管正極電壓為 5V,負(fù)極電壓為 0V(接地),電壓差使發(fā)光管點(diǎn)亮。這樣程序就可以控制發(fā)光 管的亮與滅了!最簡(jiǎn)單的輸入應(yīng)用:在 P1.7 管腳上面通過(guò)一個(gè)電阻接電源(上拉電阻),使它默認(rèn)為 5V 然后再將這個(gè)管腳通過(guò)一個(gè)按鈕接地,當(dāng)按鈕按下時(shí),管腳電壓變?yōu)?0V。程序只要從 P1.7 管腳讀取數(shù)值為 0 時(shí),表示該按鍵被按下。
1.037.jpg (23.08 KB, 下載次數(shù): 120)
下載附件
2017-1-8 16:01 上傳
單片機(jī)的輸入和輸出:S1-S4 按鍵輸入,d1-d8 發(fā)光管輸出
回到時(shí)間的話(huà)題,先來(lái)看一下 搖搖棒的例子:
1.039.jpg (10.45 KB, 下載次數(shù): 112)
下載附件
2017-1-8 16:01 上傳
搖搖棒有一排 LED 發(fā)光管
1.040.jpg (17.83 KB, 下載次數(shù): 122)
下載附件
2017-1-8 16:01 上傳
夜里搖動(dòng)搖搖棒的效果
這又是什么原理?這是一個(gè)眼睛被時(shí)間欺騙的經(jīng)典案例!眼見(jiàn)為實(shí)嗎?事實(shí) 告訴你,眼見(jiàn)并非為實(shí),很多東西你看到了卻并非你想的那樣真實(shí)。同樣還有很 多東西是你肉眼看不到的,但看不到并不證明不存在!我們先撇開(kāi)搖搖棒的實(shí)現(xiàn) 原理,來(lái)看看我們眼睛的特性。
1.042.jpg (18.33 KB, 下載次數(shù): 121)
下載附件
2017-1-8 16:01 上傳
關(guān)于人類(lèi)的視覺(jué)延時(shí) ,百度百科這么說(shuō):視覺(jué)暫留(Persistence of vision)
現(xiàn)象是光對(duì)視網(wǎng)膜所產(chǎn)生的視覺(jué)在光停止作用后,仍保留一段時(shí)間的現(xiàn)象,其具體應(yīng)用是電影的拍攝和放映。原因是由 視神經(jīng)的 反應(yīng)速度造成的。是動(dòng)畫(huà)、 電影等視覺(jué)媒體形成和傳播的根據(jù)。視覺(jué)實(shí)際上是靠眼睛的晶狀體成像,感光細(xì) 胞感光,并且將光信號(hào)轉(zhuǎn)換為神經(jīng)電流,傳回大腦引起人體視覺(jué)。感光細(xì)胞的感 光是靠一些感光色素,感光色素的形成是需要一定時(shí)間的,這就形成了視覺(jué)暫停 的機(jī)理。
物體在快速運(yùn)動(dòng)時(shí),當(dāng)人眼所看到的 影像消失后,人眼仍能繼續(xù)保留其影像0.1-0.4 秒左右的圖像,這種現(xiàn)象被稱(chēng)為視覺(jué)暫留現(xiàn)象。是人眼具有的一種性質(zhì)。 人眼觀看物體時(shí),成像于視網(wǎng)膜上,并由視神經(jīng)輸入人腦,感覺(jué)到物體的像。但 當(dāng)物體移去時(shí),視神經(jīng)對(duì)物體的印象不會(huì)立即消失,而要延續(xù) 0.1 -0.4 秒的時(shí)間
人眼的這種性質(zhì)被稱(chēng)為“眼睛的視覺(jué)暫留”。
讀到這里,我想也就不用再解釋搖搖棒的原理了!只要你切換的時(shí)間小于人 眼延時(shí),我們的眼睛就會(huì)被欺騙。接下來(lái)再看一個(gè)異曲同工的小玩意:電動(dòng)版搖 搖棒。
1.048.jpg (13.48 KB, 下載次數(shù): 130)
下載附件
2017-1-8 16:01 上傳
數(shù)碼管是廉價(jià)、簡(jiǎn)便、易于實(shí)現(xiàn)的顯示元件,沒(méi)錯(cuò),其實(shí)就是 7 個(gè)(帶上小 數(shù)點(diǎn)就是 8 個(gè))被做成 條狀和點(diǎn)狀的發(fā)光管。它能夠通過(guò)不同段位的組合顯示 出基本的數(shù)字和字母,真是一項(xiàng)了不起的發(fā)明!
1.050.jpg (9.93 KB, 下載次數(shù): 115)
下載附件
2017-1-8 16:01 上傳
1.051.jpg (15.21 KB, 下載次數(shù): 120)
下載附件
2017-1-8 16:01 上傳
1.052.jpg (12.49 KB, 下載次數(shù): 123)
下載附件
2017-1-8 16:01 上傳
數(shù)碼管的高明之處是碼段的復(fù)用,通過(guò) 7 個(gè)段的排列組合,描繪出數(shù)量超過(guò) 7 種的數(shù)字和字母的象形符號(hào)。如將數(shù)碼管的 BC 點(diǎn)亮,就是數(shù)字 1,如果把 ABGED 點(diǎn)亮,就是數(shù)字 2,非常形象,四歲的孩子都能讀懂。數(shù)碼管和單片機(jī)天然搭配, 前面講到單片機(jī)的 IO 口(輸入輸出口)能夠直接控制發(fā)光管的亮滅,而一個(gè)數(shù) 碼管只是 8 個(gè)發(fā)光管裝在一個(gè)殼子里,數(shù)碼管與單片機(jī)連接是醬紫的:
1.054.jpg (15.23 KB, 下載次數(shù): 102)
下載附件
2017-1-8 16:01 上傳
圖中每個(gè)引腳上都加了電阻,是因?yàn)榘l(fā)光管本身是個(gè)二極管,二極管是不能 直接加電源的,千萬(wàn)別把發(fā)光管當(dāng)燈泡一樣接到電源,那樣會(huì)因?yàn)殡娏鬟^(guò)大而燒 毀。因此要串聯(lián)一個(gè)電阻,以限制通過(guò)發(fā)光管的電流,單個(gè)發(fā)光管的電流在 1-5mA 之間。
現(xiàn)在問(wèn)題來(lái)了,估計(jì)讀者也意識(shí)到這個(gè)問(wèn)題了:一個(gè)數(shù)碼管至少需要 7 個(gè)獨(dú) 立的控制腳,如果一個(gè)系統(tǒng)需要 8 個(gè)甚至更多數(shù)碼管排列進(jìn)行顯示時(shí),那么至少 要 56 個(gè)控制腳,而單片機(jī)管腳十分有限,難道一個(gè)單片機(jī)最多只能接 2 個(gè)數(shù)碼 管? 辦法當(dāng)然有,那就是在時(shí)間上做文章,終于回到時(shí)間的話(huà)題上來(lái)了:) 一般來(lái)說(shuō)一個(gè)系統(tǒng)要實(shí)現(xiàn)的初級(jí)形態(tài)總是最復(fù)雜的,人們通過(guò)線(xiàn)路復(fù)用、空 間復(fù)用、時(shí)間復(fù)用,總之是資源的復(fù)用來(lái)簡(jiǎn)化我們的系統(tǒng)。數(shù)碼管用了 7 個(gè)段, 顯示的內(nèi)容卻遠(yuǎn)遠(yuǎn)超過(guò) 7 種,這是對(duì)發(fā)光管的復(fù)用。一個(gè)發(fā)光管需要 2 根引線(xiàn), 意味著一個(gè)數(shù)碼管至少有 14 根引線(xiàn),由于發(fā)光管的一端總是要接電源正極或地 (負(fù)極),把這些線(xiàn)合并成一根線(xiàn),以減少管腳數(shù)量,是線(xiàn)路的復(fù)用。
1.055.jpg (17.26 KB, 下載次數(shù): 111)
下載附件
2017-1-8 16:01 上傳
把 4 個(gè)數(shù)碼管的控制腳并聯(lián)在一起,形成總線(xiàn)的模式,所有數(shù)碼管都用同一 組單片機(jī) IO 口來(lái)驅(qū)動(dòng)。讀者的第一反應(yīng)是不是:那好像行不通,豈不是所有數(shù) 碼管都顯示相同的內(nèi)容了?
D0 到 D4 能夠控制單個(gè)數(shù)碼管的供電,如果單片機(jī)的程序這樣做:先在 IO 口上輸出 1 的碼型,然后只點(diǎn)亮第 1 個(gè)數(shù)碼管,其他數(shù)碼管都關(guān)閉;第二步,在 IO 口上輸出 2 的碼型,然后只點(diǎn)亮第 2 個(gè)數(shù)碼管;第三步,IO 口上輸出 3 的碼 型,然后只點(diǎn)亮第 3 個(gè)數(shù)碼管;第四步,IO 口上輸出 4 的碼型,然后只點(diǎn)亮第 4 個(gè)數(shù)碼管。接著又回到第一步重復(fù)這些步驟。
沒(méi)錯(cuò)!就是一個(gè)跑馬燈,4 個(gè)數(shù)碼管依次被點(diǎn)亮。如果把時(shí)間因素考慮進(jìn)去, 這個(gè)跑馬燈跑一圈的時(shí)間小于人眼的視覺(jué)延時(shí)時(shí)間,嘿嘿,沒(méi)錯(cuò),眼睛就這樣被 欺騙了。你就會(huì)神奇的感覺(jué)到:4 個(gè)數(shù)碼管同時(shí)亮了!而且還顯示著各自獨(dú)立的 內(nèi)容。
說(shuō)完數(shù)碼管,再來(lái)談一談陣列顯示:
1.057.jpg (7.34 KB, 下載次數(shù): 106)
下載附件
2017-1-8 16:01 上傳
數(shù)碼管雖好,但其變化實(shí)在有限,如果要顯示一個(gè)圖形、圖標(biāo),那非要陣列 莫屬。就拿圖中的最基本的陣列單元來(lái)看,我的哥!八八六十四個(gè) LED 發(fā)光管, 如果要使每個(gè)點(diǎn)都能獨(dú)立顯示,至少需要 65 個(gè)引腳!那還有簡(jiǎn)化的空間嗎?當(dāng) 然,繼續(xù)尋找線(xiàn)路復(fù)用的方法唄!
1.058.jpg (18.65 KB, 下載次數(shù): 116)
下載附件
2017-1-8 16:01 上傳
通過(guò)行列形式進(jìn)行組織無(wú)疑是一種直觀、簡(jiǎn)化的辦法:用 8 根行線(xiàn)與 8 根列 線(xiàn)交叉,每一個(gè)交叉點(diǎn)上連接一個(gè)發(fā)光管,將指定的行線(xiàn)和列線(xiàn)加電,那么它們 所交匯的那個(gè)發(fā)光管就被點(diǎn)亮。那豈不是同時(shí)只能點(diǎn)亮一個(gè),或者一排發(fā)光管? 回憶一下前面的例子,現(xiàn)在輪到欺騙眼睛的伎倆登場(chǎng)(壞笑)!
1.060.jpg (21.45 KB, 下載次數(shù): 124)
下載附件
2017-1-8 16:01 上傳
單片機(jī) 16 個(gè)引腳驅(qū)動(dòng) 64 個(gè) LED 的陣列
以上那么多例子,說(shuō)明一個(gè)事情:平時(shí)我們所感覺(jué)到事情發(fā)生“同時(shí)”性并 不完全是真的。時(shí)間能夠在你眼皮底下變戲法而讓你無(wú)法察覺(jué)!如果你是一個(gè)設(shè) 計(jì)者,要通過(guò)區(qū)區(qū) 16 根線(xiàn)讓 64 個(gè)發(fā)光管“同時(shí)”受控制,拋棄時(shí)間因素話(huà),就 不可避免會(huì)鉆到牛角尖里去!澳窃趺纯赡!”
從時(shí)間的微觀角度去看,很難有什么事情是真正同時(shí)發(fā)生的,你在電腦上看 著文檔,同時(shí)電腦又播放著迷人的音樂(lè),音樂(lè)和顯示器上的內(nèi)容變化都是“同時(shí)” 發(fā)生著,如果真的要同時(shí),那么電腦就要有成千個(gè)處理器,每開(kāi)啟一個(gè)程序,就 要增加使用一個(gè)獨(dú)立的處理器。而事實(shí)上并非如此,個(gè)人電腦一般只有一個(gè)處理 器 而且足以應(yīng)付你“同時(shí)”看文檔和聽(tīng)歌這類(lèi)事。
站在程序的視角,在陣列上顯示一個(gè) B,總共分 8 步:
1.061.jpg (50.59 KB, 下載次數(shù): 111)
下載附件
2017-1-8 16:01 上傳
陣列組織方式,除了在顯示上面派用場(chǎng),在內(nèi)存中、鍵盤(pán)中同樣可以采用類(lèi) 似的方法。比如說(shuō)鍵盤(pán):
1.063.jpg (20.43 KB, 下載次數(shù): 115)
下載附件
2017-1-8 16:01 上傳
不難理解 當(dāng)按鍵 查詢(xún)程序運(yùn)行一個(gè)周期所需要的時(shí)間小于你的手指按下一
個(gè)按鍵的時(shí)間時(shí),無(wú)論你怎么去按下按鍵,都能被程序檢測(cè)到!假如你是超人: 手指按鍵速度超過(guò)程序速度,那當(dāng)然按鍵就不能再響應(yīng)你了:)這種玩弄時(shí)間的 伎倆終于被識(shí)破了(壞笑)。
最后上一個(gè)案例給讀者自己琢磨:
1.066.jpg (14.56 KB, 下載次數(shù): 126)
下載附件
2017-1-8 16:01 上傳
手握一支筆尖帶有一個(gè)感光器 的光筆,當(dāng)光強(qiáng)大于一個(gè)設(shè)定的幅度時(shí),光筆 輸出信號(hào) 1,否則輸出信號(hào) 0,F(xiàn)在要實(shí)現(xiàn)光筆在LED陣列上繪畫(huà)的功能,站在程 序的角度,程序該怎么做?總共分幾步?別忘了利用時(shí)間變戲法哦,別問(wèn)我為什 么不需要觸摸屏,奧秘全在于對(duì)時(shí)間的理解。
舉了那么多栗子夠累的,下面我們來(lái)玩一玩概念。學(xué)概念是最占便宜的行當(dāng), 既能快速理解,又不需要花太大成本,然后搖身一變,就能裝個(gè)專(zhuān)家了!這里當(dāng) 然還是說(shuō)與時(shí)間有關(guān)的事,來(lái)談一談實(shí)時(shí)系統(tǒng)。
實(shí)時(shí)系統(tǒng)是 什么?實(shí)時(shí)是啥意思?立即、馬上的意思?可能差不多吧。但是 立即又是多長(zhǎng)時(shí)間呢?馬上又是多長(zhǎng)時(shí)間呢?了解分時(shí)系統(tǒng)的讀者可能會(huì)本能 的理解字面意思:把系統(tǒng)分為分時(shí)系統(tǒng)和實(shí)時(shí)系統(tǒng)兩大類(lèi),分時(shí)系統(tǒng)是過(guò)時(shí)的老 技術(shù),實(shí)時(shí)系統(tǒng)比較高大上。真是這樣嗎?這些理解會(huì)把人帶到溝里去的。
看看百度怎么說(shuō):一個(gè)實(shí)時(shí)系統(tǒng)是指計(jì)算的正確性不僅取決于程序的邏輯正 確性,也取決于結(jié)果產(chǎn)生的時(shí)間,如果系統(tǒng)的時(shí)間約束條件得不到滿(mǎn)足,將會(huì)發(fā) 生系統(tǒng)出錯(cuò)。所謂“實(shí)時(shí)”,是表示“及時(shí)”,而實(shí)時(shí)系統(tǒng)是指系統(tǒng)能及時(shí)響應(yīng) 外部事件的請(qǐng)求,在規(guī)定的時(shí)間內(nèi)完成對(duì)該事件的處理,并控制所有實(shí)時(shí)任務(wù)協(xié) 調(diào)一致的運(yùn)行。
首先實(shí)時(shí)系統(tǒng)并非一定是計(jì)算機(jī)系統(tǒng),比如執(zhí)行攔截任務(wù)導(dǎo)彈的發(fā)射電路, 要求從按鈕按下到導(dǎo)彈發(fā)射的時(shí)間間隔必須小于一個(gè)值,否則將錯(cuò)過(guò)攔截目標(biāo)而 導(dǎo)致任務(wù)失敗。也就是說(shuō),實(shí)時(shí)系統(tǒng)除了對(duì)功能有要求外,對(duì)時(shí)間也有要求。按 鈕按下能夠使火箭發(fā)射是功能,按下按鈕之后在要求的時(shí)間限制內(nèi)使火箭發(fā)射是 時(shí)間!
既然是“實(shí)時(shí)”表示“及時(shí)”的意思,那難道分時(shí)系統(tǒng)就不及時(shí)了嗎?問(wèn)到 點(diǎn)子上了,事實(shí)上,實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)并非并列相對(duì)的,它們根本就是兩個(gè)不 同的概念。分時(shí)系統(tǒng)主要是指計(jì)算機(jī)操作系統(tǒng),而實(shí)時(shí)系統(tǒng)是一個(gè)大概念,它也 包括操作系統(tǒng)。如果在分時(shí)系統(tǒng)上增加對(duì)時(shí)間的約束管理,使得任務(wù)的執(zhí)行時(shí)間 能夠預(yù)知和可控,那么這個(gè)分時(shí)系統(tǒng)同時(shí)又是一個(gè)實(shí)時(shí)系統(tǒng)。
為了加深認(rèn)識(shí),舉一個(gè)極端的例子:
1.068.jpg (12.7 KB, 下載次數(shù): 118)
下載附件
2017-1-8 16:01 上傳
在一艘游輪安裝有一個(gè)礁石避讓系統(tǒng),這個(gè)系統(tǒng)由聲吶裝置和舵機(jī)控制兩大 部分組成,聲吶裝置探測(cè)半徑為 2 海里,游輪的最高速度20 節(jié)(海里每小時(shí)), 那么從探測(cè)到障礙到游輪觸礁的時(shí)間最快是 6 分鐘,而舵機(jī)轉(zhuǎn)向之后到游輪改變 航道需要 4 分鐘。那就要求礁石避讓系統(tǒng)從接收到障礙信號(hào)到輸出控制舵機(jī)轉(zhuǎn)向 的時(shí)間必須小于 2 分鐘。只要這個(gè) 2 分鐘的要求能夠滿(mǎn)足,那么這個(gè)礁石避讓系 統(tǒng)就是一個(gè)實(shí)時(shí)系統(tǒng)!
實(shí)時(shí)系統(tǒng)在概念上又有強(qiáng)實(shí)時(shí)和弱實(shí)時(shí)之分,或叫硬實(shí)時(shí)和軟實(shí)時(shí)之分:強(qiáng) 實(shí)時(shí)系統(tǒng)(Hard Real-Time):在航空航天、軍事、核工業(yè)等一些關(guān)鍵領(lǐng)域中, 應(yīng)用時(shí)間需求應(yīng)能夠得到完全滿(mǎn)足,否則就造成如飛機(jī)失事等重大地安全事故,
造成重大生命財(cái)產(chǎn)損失和生態(tài)破壞。因此,在這類(lèi)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程中,應(yīng) 采用各種分析、模擬及形式化驗(yàn)證方法對(duì)系統(tǒng)進(jìn)行嚴(yán)格的檢驗(yàn),以保證在各種情 況下應(yīng)用的時(shí)間需求和功能需求都能夠得到滿(mǎn)足。
弱實(shí)時(shí)系統(tǒng)(Soft Real-Time):某些應(yīng)用雖然提出了時(shí)間需求,但實(shí)時(shí)任 務(wù)偶爾違反這種需求對(duì)系統(tǒng)的運(yùn)行以及環(huán)境不會(huì)造成嚴(yán)重影響,如 視頻點(diǎn)播 (Video-On-Demand,VOD)系統(tǒng)、信息采集與檢索系統(tǒng)就是典型的弱實(shí)時(shí)系統(tǒng)。 在VOD系統(tǒng)中,系統(tǒng)只需保證絕大多數(shù)情況下視頻數(shù)據(jù)能夠及時(shí)傳輸給用戶(hù)即可, 偶爾的數(shù)據(jù)傳輸延遲對(duì)用戶(hù)不會(huì)造成很大影響,也不會(huì)造成像飛機(jī)失事一樣嚴(yán)重 的后果。
寫(xiě)在 最后: 其實(shí),在時(shí)間的世界里,沒(méi)有“久”、“立即”、“馬上”、“瞬間”,時(shí)間就是 一個(gè)可以用數(shù)字衡量的東西,我們的直覺(jué)和感官范圍太小,所有的感覺(jué)都建立在 相對(duì)的基礎(chǔ)上。有句諺語(yǔ)說(shuō):飯是要一口一口吃的,事情是一件一件做的,路是 一步一步走的!就是要我們認(rèn)識(shí)到時(shí)間的特性,為什么一些人可以從容面對(duì)和處 理非常多的事,而大部分人總是只能做一件事,事情多了就煩躁,失去頭緒,因 為他潛意識(shí)想所有的事情同時(shí)得到解決,然后就亂了方寸。從微觀的角度,站在 程序的視角也是如此,程序是一個(gè)指令一個(gè)指令的往下執(zhí)行的,語(yǔ)句是一句一句 往下走的,不是所有的功能和信號(hào)都是同時(shí)發(fā)生的!即使你感覺(jué)到它們是同時(shí)發(fā) 生的,那極有可能你被“欺騙”了。
假使一個(gè)程序周期就是一次生命的話(huà),你的人生就是一部進(jìn)化史。當(dāng)一個(gè)鍵 盤(pán)掃描程序全部代碼的意義發(fā)生在某個(gè)方波的下降沿附近的某個(gè)位置時(shí),它掃到 了一個(gè)按鍵。當(dāng)你的人生發(fā)生在人類(lèi)進(jìn)化史上的某個(gè)細(xì)微的角落時(shí),你干了一些 有意義的事情。李白的人生、成吉思汗的人生、耶穌的人生、爺爺?shù)娜松职?的人生、你自己的人生,相對(duì)于地球時(shí)間而言,就如同一個(gè)程序周期發(fā)生在一連 串信號(hào)中某個(gè)方波的溝溝里面,性質(zhì)是一樣的。無(wú)論你怎樣生活,無(wú)論是秉承金 錢(qián)至上還是頓悟出道的理念,無(wú)論你有或沒(méi)有偉大的目標(biāo),無(wú)論你信不信上帝, 時(shí)間就這樣一如既往,讓每個(gè)人的人生成為它的一個(gè)瞬間。
人的聰明,就在于你能夠突破感官,意識(shí)到眼見(jiàn)并非為實(shí),去理解那些你身 體感官永遠(yuǎn)感受不到的事實(shí)。希望本文能夠?qū)ψx者有所啟發(fā)。
本文pdf版本下載(共17頁(yè)):
突破感官-關(guān)于時(shí)間的討論.pdf
(1.52 MB, 下載次數(shù): 59)
2017-1-8 11:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|