在w801的SDK中可以看到段式lcd的驅動代碼, 但是卻沒找到相關的demo.請問這個有demo嗎?
段碼顯示確實沒有DEMO,因為段碼顯示沒有標準的顯示規範,比如:一個時間LCD屏,計算器的LCD顯示屏,音響的LCD顯示屏,空調遙控器的LCD顯示屏,都是不通用的,顯示的圖形內容也完全不一致,驅動方法也不一樣。
但段碼顯示原理卻很簡單,就是顯示單元由一個數字或者圖案的各段 和 圖案 的位組合而成。
因此你可以根據你所接的段碼屏的定義,分別劃分好每個位,一個位占用一個IO,每個位的一個段占用一個IO,這樣控制IO的輸出波形從而達到顯示的目的。此時支持把IO複用為GPIO輸出態即可。
舉例,一個4位數顯的段碼屏,每個為由一個8字加小數點組成,則占用8個段的Io。有4位數,則再占用4個位IO.
通過動態輸出的方式,輸出每個數字,比如給第一個位輸出低電平時,同時輸出段的電平,然後停留一段時間(一般20毫秒),然後給下個位輸出低電平,其它位高電平,同時輸出這個位的段電平。。。。依次類推,完成4個數字的動態的輸出,反複的來回掃描輸出就完成了數字的實時顯示。由於LCD液晶具有殘影保留和視覺的停留性質,感覺4個數就同時顯示出來了。
多謝大佬. 我看了驅動代碼是有的. 但是不知道怎麼去初始化引腳, 能麻煩大佬指點一二嗎?
初始化就按 GPIO 的一般輸出化方式就可以,這樣子:
tls_gpio_cfg(WM_IO_PB_01, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
tls_gpio_cfg(WM_IO_PB_02, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
tls_gpio_cfg(WM_IO_PB_02, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
tls_gpio_cfg(WM_IO_PB_03, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
tls_gpio_cfg(WM_IO_PB_04, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
tls_gpio_cfg(WM_IO_PB_05, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING);
.....
就是把全部的段IO和位Io都配置位輸出,然後不停的拉高拉低。就這麼簡單,因為太簡單,所以沒有DEMO。
@lutherluo 謝了, 但是大佬.段碼屏是要求交流供電的, 我如果用普通io去做的話, 就得定時周期的反轉電流方向....唉.那就來吧. 弄它
方波就是交變的,可以看成一個直流疊加了多種頻率的交流,可以直接接到LCD上看看,很多LCD直接就顯示了。有的要求高的,那就加一級耦合電路,把直流濾掉,有的要加高壓,那就掛升壓電路,有的要電流,那就加MOS管增加驅動力。
所以,得看你用的是什麼LCD屏,不同 LCD 差別很大。但這些都不在數字電路範疇了。