鄭成文++吳俊杰



之前我們已經意識到,使用四位的二進制組合構成的15個有效狀態,可以很好地表示0~9這10個數字,類似的方法早在計算機出現之前就已經應用在通訊當中了,這就是電報。我們在一些早期的影像中經常會聽到“嘟,嘟-嘟,嘟”這種忽長忽短的電波聲。短時間按下端口A的按鍵時,對應短聲,長時間按下端口A的按鍵,對應長聲。
使用圖1所示的程序模擬電報能夠聽到短的鐘聲和長的鐘聲,而這種一長一短的聲音,則是用聲音的長短表示二進制的1和0兩種狀態。一般用“-”表示長的聲音,相當于1,“.”表示短的聲音,相當于0,那么之前的二進制轉十進制的轉換表可以表示為右表。
而短按和長按的區別在于按下的時間不同,因此需要使用圖2所示的程序,確定短按和長按之間的一個判定標準,這個時間閾值需要實驗測定,按下A端口的瞬間記錄通訊之前的時刻,手松開時用當前的計時器與通訊之前的時間求差,便求出了接通的時間,如圖2所示。
經過10組短按和長按的測定,我們發現短按的最大值和長按的最小值的平均值是0.5秒。這個過程可以通過Excel函數解決,也可以編程序解決,每個人頭腦中對短按和長按的閾值會有區別,因此有必要分別測量。圖3為長按和短按的閾值測定圖。
之后,我們可以通過圖4所示的程序判斷短按還是長按,繼而用一個變量“四位”表示一個四位二進制數,用按鍵A輸入一個四位二進制數,并且存儲在鏈表“四位編碼之中”。
不使用簡單的“如果,否則”結構的原因是為了區別正常操作和虛連、短路等電路故障。至此,我們就制作了一個簡易的發報機,但從通訊的角度來看,編碼只是通訊的開始,接下來是傳輸和解碼。解碼的過程則比較簡單,使用“十進制數=A×8+B×4+C×2+D×1”換算公式即可,如圖5所示。
至此,我們將由短按和長按構成的電報編碼轉化為十進制數,完成了一個從編碼到解碼的過程,但是這始終是在一臺計算機中的內部轉化,要完成一個完整的通訊過程,信息應該從一臺計算機傳輸到另一臺計算機,因此有必要接下來研究兩臺計算機之間的信息的通訊,這個問題將會在后面討論。此外,二進制到十進制數之間的計算公式實際上相當于一個密碼換算規則,這種規則過于簡單,從通訊的角度,容易破解,也不夠安全,這就有必要在后面的研究中研究出更為安全的密碼換算機制。最后,如何提高傳輸信息的效率也是需要進一步研究的問題。通訊是信息技術的一個核心過程,以往的信息技術教學并不能細致地讓學生了解通訊的過程和原理,期望信息技術實驗能夠用實驗的方法,解決這個問題。endprint