這個我本科的時候做過,用模擬示波器、微控制器和一些標準器件完成。示波器設定成XY模式後可以接受X、Y、Z三路模擬訊號輸入,(X,Y)控制座標,Z控制亮度。只要分別產生週期同步的鋸齒波和階梯波作為X和Y輸入,就實現了在示波器螢幕上逐行掃描的效果,然後在微控制器的記憶體里弄一塊區域作為輸出緩衝區,把它的內容逐點同步輸出到Z,也就透過控制亮度實現了圖形輸出。如上圖,所有的同步訊號都由微控制器輸出,我是用硬體電路對行同步訊號整形產生的鋸齒波,階梯波比較麻煩,所以直接拿微控制器的DAC輸出了。這樣弄好之後就能在示波器螢幕上顯示微控制器輸出緩衝區裡的點陣資料了,剩下的怎麼操作點陣資料都是軟體問題,是做個記事本還是做個刺客信條就隨你了。我做的時候就只是在螢幕上顯示了幾個漢字,然後用外接的4x4鍵盤實現了A~F這幾個字母的輸入還有移動游標、換行、刪除、複製貼上等功能,都是用匯編寫的,就這麼點東西快寫吐了。注意一下解析度的限制,為了讓影象不閃爍,螢幕掃描的幀率至少得50Hz吧,在20ms內能掃描幾行就看微控制器系統的時鐘週期了,我用的時鐘週期0.5us,1/4分頻後送到移位暫存器的,所以一屏最多10000個“畫素”,最後設定的90行x96列。鋸齒波發生器:移位暫存器:因為74LS166輸出的高低電平是5V和0V,示波器Z軸的接受範圍是-5V~+5V,所以用運放做了個電壓比較器放大了一下,讓螢幕上亮暗更分明一點。程式流程圖:最後,珍愛生命,遠離彙編。
這個我本科的時候做過,用模擬示波器、微控制器和一些標準器件完成。示波器設定成XY模式後可以接受X、Y、Z三路模擬訊號輸入,(X,Y)控制座標,Z控制亮度。只要分別產生週期同步的鋸齒波和階梯波作為X和Y輸入,就實現了在示波器螢幕上逐行掃描的效果,然後在微控制器的記憶體里弄一塊區域作為輸出緩衝區,把它的內容逐點同步輸出到Z,也就透過控制亮度實現了圖形輸出。如上圖,所有的同步訊號都由微控制器輸出,我是用硬體電路對行同步訊號整形產生的鋸齒波,階梯波比較麻煩,所以直接拿微控制器的DAC輸出了。這樣弄好之後就能在示波器螢幕上顯示微控制器輸出緩衝區裡的點陣資料了,剩下的怎麼操作點陣資料都是軟體問題,是做個記事本還是做個刺客信條就隨你了。我做的時候就只是在螢幕上顯示了幾個漢字,然後用外接的4x4鍵盤實現了A~F這幾個字母的輸入還有移動游標、換行、刪除、複製貼上等功能,都是用匯編寫的,就這麼點東西快寫吐了。注意一下解析度的限制,為了讓影象不閃爍,螢幕掃描的幀率至少得50Hz吧,在20ms內能掃描幾行就看微控制器系統的時鐘週期了,我用的時鐘週期0.5us,1/4分頻後送到移位暫存器的,所以一屏最多10000個“畫素”,最後設定的90行x96列。鋸齒波發生器:移位暫存器:因為74LS166輸出的高低電平是5V和0V,示波器Z軸的接受範圍是-5V~+5V,所以用運放做了個電壓比較器放大了一下,讓螢幕上亮暗更分明一點。程式流程圖:最後,珍愛生命,遠離彙編。