製作基於AIDA64的監控副屏

屏幕比較小,能顯示的東西也不多。不過嘞,本文主要是想幫助有意向做AIDA64副屏的同學,提供一些思路和值得注意的地方,希望能幫助大家少走彎路吧!


先來講講電路

我所用的方案是STC15W408AS單片機,配合CH340芯片來實現的。其實引腳不用那麼多,主要是我之前還剩挺多這個單片機,於是就打算用它來開發了。

失敗品

哎,一路上困難重重,失敗了好多次,重新打板了好多次,都是些很傻寶的錯誤,什麼開窗孔沒鏡像啊,原理圖邏輯錯了啊之類,很弱智的低級錯誤,但是!有個錯誤必須重視,就是這個電路一定要加自動下載電路,原因我後面會說。

oled屏的正面

oled屏的背面

屏幕我選的是1.3寸的oled模塊,主要我之前也已經有心理準備了,知道會有重重困難,所以纔沒有搞單屏幕而是買模塊,其次我確實比較懶,不用模塊的話,要多焊幾個電阻電容。之後還要塗膠水粘電路板上。總之就是調試起來非常不方便。

PCB電路板的原理圖

這個是原理圖,其中U1是STC單片機,P1是OLED屏幕的接口,採用的是SPI通信。P2是micro_usb接口,P3是程序燒錄口,SW1是單片機的復位按鈕。U2是CH340,U2中的RTS引出的那一坨電路是自動下載電路。所以實際使用中,其實P2和SW1用不上,只是留了個後手,萬一自動下載電路失靈了,還能手動連串口工具下載,或者按按鈕來手動下載。哦對了,C2我覺得0.1uf有點小,我覺得1uf或者10uf的會比較好,自動下載電路參考網上的,不過自己也稍微修改了一丁點兒。自動下載電路的作用不僅僅是能自動下載程序,我發現單片機上電後首次通信需要重啓單片機,就好像重新下載單片機一樣,而自動下載電路能讓單片機自動重啓。所以才需要增加自動下載電路。

PCB圖

3D PCB正面

3D PCB背面

這是PCB圖,線走的比較隨意,也沒啥特別注意的,元件都放一個面,另一個面是貼屏幕的。然後開3個窗,給屏幕模塊上的電阻電容讓位。詳情請看 olde 背面那張圖。

成品側面

兩個板子焊接點正面

兩個板子焊接點背面

兩個板子的孔對齊直接焊住。相當於兩個板子拼在一起,這樣也沒多厚。


接下來講講和電腦通信的原理

通過網友提供的信息,我們能知道AIDA64用串口方式通信時,波特率爲9600,起始位爲1。

網友提供的信息

接着是設置AIDA64,讓它能發送串口數據

點擊文件-設置,然後設置如圖

LCD端口決定了電腦會以哪個USB口發送數據

然後剩下的就是如何知道它發的是啥數據了。我用虛擬串口助手讓電腦自己和自己通信,以此來抓數據。

虛擬串口助手

設置的AIDA64和抓到的數據

這是我抓到的數據,我們可以發現每個數據包都會以0XFE爲開始,80是第一行,C0是第二行。之後就是ASCII碼了,比如第一行,我第一個框框寫的是C,對應的ASCII是0X43。第二行第一個是G,對應的是0X47。AIDA64可能原本就是爲了和LCD單色屏而弄的數據。抓到了數據,就知道代碼該如何編寫了。

串口通信的代碼

oled初始化代碼

寫代碼時,能抄就抄,比如oled代碼。不能抄的就手擼。比如串口通信中斷的代碼。


文章到這裏就結束了,第一次寫文章,思路可能有點亂,請輕點罵

更多遊戲資訊請關註:電玩幫遊戲資訊專區

電玩幫圖文攻略 www.vgover.com