新聞中心

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

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

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

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

        本文引用地址:http://www.104case.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]!=’

        主站蜘蛛池模板: 萨嘎县| 宁陕县| 隆化县| 葫芦岛市| 潞西市| 永寿县| 奉贤区| 武山县| 兴隆县| 巴彦淖尔市| 濉溪县| 高青县| 东乌珠穆沁旗| 仙桃市| 苏州市| 泽州县| 九寨沟县| 双柏县| 平和县| 徐州市| 麻江县| 柘荣县| 甘德县| 治县。| 黎城县| 舞阳县| 图片| 东台市| 永善县| 顺平县| 十堰市| 扎兰屯市| 武汉市| 和田市| 汪清县| 浦城县| 福安市| 蒙城县| 梨树县| 河曲县| 张北县|