AT91SAM7S64+LCD1602

以前的老文章,回味下 

 

    本人是新手,以前自學過凌陽的61A單片機,參加了今年的電子設計大賽,一直想等比賽完就開始專攻ARM,剛剛接觸ARM,發現不會的東西太多了,就拿這個AT91SAM7S64+1602來說吧,調試了幾天才調出來。下面來總結一下吧
    我是在http://www.eehome.cn/simple/index.php?t11364.html瞭解的1602的使用方法,雖然他使用的是51,但我覺得移植到AT91SAM7S64不是很困難。

 先來看看我寫的LCD1602.C吧,裏面存放1602的底層功能函數  


這段代碼在看完那個1602的使用方法後過了一兩天才寫出來,很多還借鑑了其他高手的代碼,程序燒進去,一直不好用,最後才發現是PIO_SODR這個寄存器惹的禍,我原以爲讓PIO_SODR=0x0000000F,IO口的低四位就能輸出高電平,其餘IO口輸出低電平,可我用Jlink調試卻發現,是其他位保持原狀態不變,就只有低四位輸出高電平,最後在每個函數的最後面加了“PIO_CODR = 0x00000FFF”,才使1602成功工作。後來我查了下,原來寫這個寄存器的時候,如果某一位爲1,就會將該位對應的io置高(如果該io被作爲輸出),寫0的位沒有效果,也就是不影響原來io狀態,這個和單片機有些區別,希望大家不要和注意點~~~
曬曬效果圖


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章