<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 將16X2 LCD連接到AVR微控制器

          將16X2 LCD連接到AVR微控制器

          作者:時間:2023-04-28來源:電子產品世界收藏

          本節課完全是關于(ATMEGA 16)與16X2 的接口問題。Atmega16屬于系列。

          本文引用地址:http://www.ex-cimer.com/article/202304/446098.htm

          電路解釋:

          這與與8051或PIC的接口方式沒有什么不同。水晶振蕩器將向微控制器提供時鐘。連接在晶體上的電容將作為過濾器,幫助晶體產生共振,并以平行共振的方式進行振蕩。

           連接到的3號和2號引腳的電位器將有助于調整LCD的對比度。LCD的4、5和6個引腳,即寄存器選擇、讀/寫和啟用引腳,與Atmega16的PD0、PD1和PD2引腳相連。LCD的數據引腳與Atmega16的33至40引腳相連。

          對ATMEGA16進行編程,以便與16X2 LCD連接:

          你可以從8051單片機的16×2接口一文中得到LCD的簡要信息。正如我前面所說的,編程的基本原理都是一樣的,就是使用微控制器的引腳和寄存器。

          非常重要的是如何向LCD發送數據以及如何向LCD發送命令,假設你要向LCD發送數據,那么你必須在發送數據之前將16×2 LCD的ENABLE引腳調為低電平,當你認為你要發送的數據已經準備好時,再將ENABLE引腳調為高電平,用編碼語言表示為1。如果你把ENABLE引腳變成高電平,那么只有LCD會工作。

           僅僅使ENABLE引腳為高電平是不行的,你必須使REGISTER SELECT引腳(RS引腳)也為高電平,這樣LCD才會接受必須在LCD屏幕上顯示的正常數據,如果你忘記使RS引腳為高電平,它最終會認為用戶在向它發送命令,并使它自己準備好根據命令行事,如使光標移動、清除LCD上的數據、改變光標位置等等。

           最后但并非最不重要的是另一個你需要擔心的針腳--讀/寫針腳,我們都知道任何設備的基本功能都是從讀和寫開始的,讀數據和寫數據是任何外圍設備或系統的主要和重要功能。

          僅僅發送數據和顯示數據并不能完成任務;以可理解的方式安排數據是程序員的重要和關鍵任務。你可以在LCD中安排數據或使LCD按照你的愿望工作,可以通過向LCD發送命令或特殊功能來完成,你可能會想,LCD需要什么類型的命令,光標位置的命令,增加或減少對比度,使光標改變行,如從第一行到第二行等等。 為了向LCD發送命令,你需要使引腳變成高電平和低電平,就像發送數據一樣。為了發送命令,你需要使ENABLE針腳為高電平,REGISTER SELECT針腳(RS針腳)為低電平,也就是程序員所說的0,而讀/寫針腳(R/W針腳)為高電平,你需要記住這個配置來發送命令。

          在顯示數據時,程序員一般使用不同的命令和它們的十六進制代碼。

          1682650753904628.png

          如果我們想簡單說說在LCD上顯示數據的情況

          E=1;使能引腳應該是高電平

          RS=1;寄存器選擇應該是高電平

          R/W=0;讀/寫引腳應該為低電平。

          對于向LCD發送命令

          E=1;使能引腳應該為高電平

          RS=0;寄存器選擇應該是低電平

          R/W=1;讀/寫引腳應該為高電平。

          當你傳遞一個字符串時,最好使用一個字符串指針并遞增這個指針,如果你遞增一個指針,它將自動進入變量的下一個地址,你可以在其中存儲你想顯示的字符。請看下面的例子。

          void write_string(unsigned char *str)   //store address value of the string in pointer *str

          {


          int i=0;


          while(strng[i]!=’看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();