女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何通過使用8位AVR微控制器監控各個控制引腳來讀取LCD屏幕數據

454398 ? 來源:網絡整理 ? 作者:佚名 ? 2019-11-06 10:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:零件和工具

零件和工具

帶LCD屏幕的東西 - 我將使用亞馬遜的這種數字秤

螺絲刀和鉗子 - 打開秤

剪線鉗和剝線鉗 - 剪線和剝線

烙鐵 - 將電線連接到屏幕上

連接線 - 對于這種低電流應用,非常小的規格是好的

萬用表 - 測量電壓/電阻

熱膠槍 - 用于涂層連接和固定物

電路組件

ATmega328p - 用于讀取LCD屏幕的狀態

2 x 0.1uF陶瓷電容 - 去耦帽

1 x 10k ohm電阻 - AVR復位引腳上拉

1 x 22k ohm電阻 - ADC偏置

1 x 100k ohm電阻 - ADC偏置

1 x常開按鈕 - AVR重置按鈕

1 x電壓調節器 - I‘ m使用LD1086 3.3V LDO穩壓器

1 x 10uF鋁電容 - 穩壓器穩定性

1 x 1uF 鋁電容器 - 穩壓器穩定性

公頭連接器 - 將電線連接到面包板

面包板 - 用于原型設計

Perfboard - 如果您正在焊接實際電路

其他項目

AVR程序員 - 我使用Sparkfun的口袋編程

串行啟用LCD屏幕 - 重印我們的內容正在閱讀(來自Sparkfun)

邏輯分析器 - 要查看w LCD引腳正在做。..。..我使用Link Instruments的這個小工具

第2步:打開它

有沒有人打開任何東西?

確保您的設備已拔下/取出所有電池!

尋找將設備固定在一起的螺釘(可能在背面/底部)

拆下任何外殼以露出內部電路

充電電容器可能會造成危險所以一定不要觸摸電路板上的任何東西!

在圖像中,您可以看到數字秤的內部。有一個覆蓋控制器的神秘黑色粘性電路,一些稱重傳感器,零(觸摸傳感器)和單元按鈕,以及LCD屏幕。不久前,這個電路將裝滿許多可以產生相關數據的組件。現在,它是一個單獨的,無法訪問的MCU,帶有一個外部EEPROM芯片。這就像設計師不希望我們這樣做。..。..即使沒有可訪問的數據點,我們也可以通過直接讀取LCD屏幕獲得我們想要的信息。

步驟3:LCD連接

LCD屏幕通常以幾種可能的方式連接到電路。..。..

插座連接 - 接頭引腳插入板上的插座

帶狀電纜 - 有時插入插座,但并非總是

直接連接 - LCD屏板上的引腳被固定

在廚房秤中,液晶顯示屏位于框架內,并用幾個螺絲將電路板固定在框架上。這樣,電路板上的驅動焊盤與LCD引腳接觸。

沒有焊接或電纜連接。如果電路沒有牢固地固定在外殼上,那么與LCD的連接就會丟失 - 正如缺少的部分或非常昏暗的屏幕所證明的那樣。這可能使得難以將任何附加導線連接到LCD。如果即使單個LCD引腳與電路板沒有良好接觸,部分或全部LCD也無法正常工作。

以下圖片不是這個精確的電路板,但它確實展示了電路板上的LCD焊盤。..。..

步驟4:將電線添加到LCD

這是事情變得有點棘手的地方。如上一步所述,LCD引腳仍然需要與驅動板焊盤良好接觸。您必須使用最佳判斷來確定將電線焊接到電路板的位置。我還建議使用令人難以置信的東西線;我的是30規格。

找到連接到LCD的焊盤

焊接導線連接到每個焊盤(使用細線和少量焊料)

將電線的另一端焊接到插頭引腳(保持順序!)

將電路板重新連接到LCD上。

接通電源以確保LCD仍在工作。

可選 - 用熱膠涂抹線頭連接以提高耐用性和絕緣性

此時,我們不知道什么線做什么,但沒關系。只要你保持它們的順序(液晶顯示屏上的針腳1連接到公頭的針腳1等),就可以輕松搞清楚了!在這一點上,我們應該談談這些LCD屏幕是如何工作的。

步驟5:直接驅動LCD

大多數人不是因為他們在駕駛它時有興趣閱讀液晶顯示屏,所以學習如何閱讀屏幕的最佳方法是了解它是如何被驅動的。我發現的最佳解釋之一可以在Atmel應用筆記 - AVR340中找到,但我會快速回顧一下這些關鍵點。

LCD屏幕是一組對存在的交流信號作出反應的段。控制引腳。這些段可能構成類似于七段顯示的字母數字數字,或者它們可以用于屏幕上的單個圖標,例如時鐘上的AM/PM文本。一個屏幕可以有許多段僅由幾個引腳驅動 - 這是通過多路復用完成的。

單個引腳實際上用于驅動多個段,具體取決于一組 COM 信號中的哪一個處于活動狀態任何給定的時間。如上所述,LCD使用AC信號驅動,通常以二進制方波(OFF或ON)的形式。但是,COM信號將具有三種狀態:OFF,1/2 ON和ON,其中ON為源電壓。鏈接的應用筆記給出了以下控制方案的示例。

注意,在任何給定時間只有一個COM信號有效,而LCD段line將控制不同的段,具體取決于三個COM行中的哪一個是活動的。要啟用段,段線必須與COM線異相。換句話說,如果COM線為HI,則段線應為LO,反之亦然。

我們的下一步是確定哪些LCD引腳是COM線,哪個驅動器段!

步驟6:查找COM線

在此步驟中,我們使用邏輯分析儀查找COM信號。實際上,可以使用示波器,實際上可以更容易地找到COM線;但是,O-scope的輸入通常比LA少得多。即使我們正在尋找交流信號,我們仍然可以通過設置觸發閾值電平在LA上讀取它。

數字廚房秤的工作電壓約為3.3V DC,因此我設置了觸發器我的LA輸入電壓為2.5V DC。這將確保我只看到脈沖的正部分,忽略所有其他未定義的區域。

將輸入觸發閾值設置為源電壓電平的約3/4

將水平時間刻度設置在5ms/格的范圍內

將電線連接到電路上的已知接地(或負極電池端子)

接通電源比例,確保屏幕正常工作

單獨監控單個引腳以查看脈沖的樣子

重復所有引腳,直到找到COM線為止

根據我的經驗,COM線通常位于LCD屏幕的末端;因此,它們應該是我們焊接到電路板上的第一批連接線。它們很容易與其他信號區別開來。..。..

如果使用O-Scope,它們可能是唯一具有三種狀態而不是兩種狀態的信號

它們會定期重復(可能是10到50毫秒)

LCD屏幕的狀態不會影響脈沖模式

數字廚房秤有四條COM線,周期為32ms。每個脈沖完全關閉或完全打開約4ms。無論在任何給定時間屏幕上顯示什么,這四行都具有永不重復的永久重復模式。

步驟7:解碼控制信號

這一步是迄今為止最難的,因為它需要您解決各種難題,以便破譯控制信號的含義。 LCD屏幕越復雜,這個過程就越困難。

數字刻度LCD有16條控制線--4條是COM信號,另外12條是驅動線段。我們需要監視每個引腳的各種LCD狀態,直到我們發現哪個LCD引腳負責哪個段。由于有四條COM線,每條控制線可能驅動四個不同的線段。

確定LCD屏幕的所有可能分段。

這是每個已知的分段廚房秤液晶屏。實際上,只有數字4的 b 和 c 段才有效,但顯示的所有其他段都有效。

記錄Pin已知LCD屏幕的狀態

使用邏輯分析儀(或O-Scope),我們需要記錄所有COM狀態的每個引腳的狀態。只要屏幕沒有變化,這些模式就會無限重復;但是,如果一個單獨的段發生變化,那個特定的控制信號將會改變其中一個COM線。我已經突出顯示了COM信號1和3的幾個不同引腳的狀態。注意,當一個引腳沒有時,一個段是ON的。與COM線相位 - 當COM為HI時,Pin為LO,反之亦然。

創建顯示所有引腳的矩陣已知LCD屏幕的狀態。

困難的部分是找到模式 - 也就是說,當LCD的單個段變為活動或非活動時,哪些控制線正在改變。最好將所有這些引腳狀態寫入各種屏幕,并對其中的段處于活動狀態進行細微更改。

在此表中,我放了a 1 用于任何COM信號有效(異相)的控制線,如前一個引腳狀態圖像所示。注意屏幕上的每個活動圖標非常重要 - 其中一些可能以隨機的方式連接。

找到模式的最佳方法是在細微變化后記錄引腳狀態。例如,與 AM 然后 PM 顯示的完全相同的時間,或顯示 0 然后 8 的數字。請記住,LCD中沒有芯片或線跡,因此控制線的順序可能與實際屏幕上的線段順序相對應。

請注意,引腳11和12的狀態看起來非常類似于13和14.鑒于屏幕顯示0.0,這是否意味著引腳11和12驅動數字1,而引腳13和14驅動數字0?這是有道理的,因為有六個有效段用于形成0,而引腳11和12中的第七個有效段可能是小數位!使用類似顯示器的附加讀數將有所幫助。例如,將模式從fl-oz切換為克將使顯示從0.0 fl-oz更改為0g。突然,引腳11和12全部關閉,但引腳13和14保持不變。我認為我們找到了一種模式!

填寫將控制線連接到LCD段的地圖。

在讀取足夠的讀數后,完整的模式將被發現。由于我們不直接驅動屏幕,測試理論連接的唯一方法是記下您認為針對給定顯示器的引腳應該是什么,然后使該顯示發生 - 在我們的例子中,這是通過切換到特定模式并向比例添加重量,直到顯示特定的數字組合。

在廚房秤的情況下,引腳排列在一種實際上有道理的方式!字母數字數字按其顯示順序組合在一起。隨機順序中唯一的行是各種單位圖標,但這是可以預料的。此表顯示了哪些控制線驅動給定有效COM信號的哪些段。

步驟8:LCD讀取器電路設計

帶有模式(希望如此)發現,我們可以創建一個電路來讀取LCD引腳并對該數據做一些有用的事情。

該電路將在ATmega328p微控制器上構建,使用所有默認的熔絲設置,無需外部時鐘源。由于COM線是模擬輸入,我們可以使用ADC單獨讀取每一個,但這是不必要的。通過使用模擬比較器僅讀取一條COM線,然后在軟件中模擬其他三條COM線,可以實現相同的效果。您可能還注意到我沒有為引腳5和6顯示連接。原因很簡單 - 我不關心這些引腳所代表的任何數據。

模擬比較器非常簡單。我們使用R5和R6在AIN1上產生偏置電壓。該分壓器的輸出約為2.7V - 類似于我用于邏輯分析儀輸入的2.5V觸發閾值! COM1線路饋入AIN0。只要AIN0上的電壓上升到高于AIN1或低于AIN1,比較器就會觸發。我們將其用作中斷源來觸發LCD讀周期的開始。這也將用于保持我們的模擬COM線同步。

我想指出的最后一件事是與JP2的關系 - 我實際上計劃完全控制數字秤。我的電路將能夠禁用秤的電源并驅動模式按鈕。我選擇讓PORTC全部開放。這樣就可以釋放I2C引腳,以便與其他芯片進行通信,以及一些可能在以后使用的模擬輸入。您的實現可能會有所不同!

步驟9:固件 - 概述

完整的源代碼可以在這個GitHub存儲庫中找到。

首先,我們的固件將讀取LCD屏幕,然后將該信息打印到另一個LCD屏幕進行比較。唯一的問題是我們想要使用的LCD屏幕是串行驅動的,我們的串口發送引腳用于讀取其中一個LCD引腳。這不是什么大問題,只是意味著來自該引腳的數據將無法訪問。

執行此操作的代碼是repo中的main-v1.0.c文件。這段代碼用C語言編寫。它不使用任何Arudino庫,因為那不是我的角色。這些是我們固件的基本構建塊。..

在引導時,配置AVR設備

設置IO引腳

關閉未使用的模塊(以節省電量)

使用定時器0模擬COM線2,3和4

使用模擬比較器檢測Com線1

使用USART0寫入本地LCD屏幕

在主要永久循環中

閱讀LCD屏幕

將LCD屏幕數據打印到本地LCD屏幕

中斷服務程序

計時器0 - 與COM同步1,用于模擬每4ms的其他COM線路動作

模擬比較器 - 當COM 1變為HI時觸發,打開定時器0

其他功能我們需要

讀取LCD - 啟動LCD屏幕讀數。..可能啟用模擬比較器并等待

LCD打印 - 傳輸一個字節,字符串等到本地LCD屏幕

步驟10:固件 - Main-v1.0

如上所述,代碼的第一個版本將讀取刻度LCD屏幕,然后將該數據寫入本地LCD屏幕。這僅僅是一個概念證明。..將數據從一個屏幕重寫到另一個屏幕是毫無意義的!我相信我已經很好地評論了源代碼,如果你對AVR代碼都熟悉的話,你可以理解發生了什么,但是我會討論一些更好的觀點。

一些文件是包括:

modules/avr.h - 我將其包含在我工作的每個AVR項目中

modules/lcd/SerLCD_2x16 .h - 用于寫入本地LCD屏幕的函數原型和宏

definitions.h - 我們所有的主要宏和定義

util/delay.h - 簡單的延遲例程

硬件模塊在第486行的 initialize_AVR()函數中配置。

模擬比較器

模擬比較器在COM 1的上升沿觸發。然后啟用定時器0,模擬COM 1下降沿和其他3個COM線。

定時器0

定時器0設置為每0.2ms觸發一次ISR。 ISR中的計數器將導致事件發生很長時間(即,持續4ms),并且switch語句用于對每個活動的模擬COM線執行不同的操作。每個COM線都會記錄LCD引腳的狀態,并且在周期結束時,定時器0被禁用。

LCD讀取

讀取周期由線路311上的 readLCD()功能啟動。該功能簡單地使能模擬比較器并處于while循環中,直到讀取周期完成。第321行上的 decodeDigit()函數實際上將所有引腳狀態數據轉換為每個LCD數字的數字。

LCD寫入

從407開始發現的LCD寫例程是我剛才寫的。它們也可以在modules/lcd文件夾中找到,但我只是將我想要使用的函數復制到主文件中,所以我沒有從多個位置編譯文件。我認為它們非常自我解釋。

Main

在Main函數中,初始化AVR設備,然后進入永久循環。在該循環內,讀取LCD屏幕,并將該數據解碼并打印到本地LCD屏幕以進行測試。跳過數字4,我不擔心刻度的時鐘模式,因為我沒有監視AM/PM LCD引腳段。

在以前版本的電路中,我監控所有LCD引腳,因此我能夠打印時鐘模式數據;但是,提供的固件無法執行此操作。另請注意,由于用于打印到此LCD屏幕的串行傳輸線,數字中的“&”符號阻止我讀取一個特定的Scale LCD引腳。

步驟11:固件 - 主要-v2.0

固件的第二個版本幾乎與第一個版本相同;但是,我已經刪除了所有的LCD打印功能。不再有 LCD_write()功能,USART0也沒有使用。另一個主要區別是添加了 updateLevel()函數。這個簡單的例程將比例顯示的權重打包成兩個字節的數據。這些字節將通過TWI總線傳輸到另一個芯片,但這是另一個項目的一部分,所以我沒有在這里包含該代碼。您還應該注意到,在main的開頭,代碼會將比例強制為以克為單位的重量模式。這樣做是為了使從這個比例傳輸到互聯網的數據始終保持一致。

主循環現在讀取lcd屏幕并在延遲1秒之前創建兩個級別的數據字節。 ,沒什么。所有的辛勤工作都由模擬比較器和定時器0的中斷服務程序處理。

步驟12:結束

我希望通過使用本指南,您可以入侵任何數字設備,以便從LCD屏幕讀取數據。
責任編輯:wv

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7948

    瀏覽量

    154900
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4520

    瀏覽量

    171493
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    8微控制器KF8A100Fxx數據手冊

    電子發燒友網站提供《8微控制器KF8A100Fxx數據手冊.pdf》資料免費下載
    發表于 05-30 16:11 ?0次下載

    帶有FPU的32微控制器RX23T系列數據手冊

    。 *附件:帶有FPU的32微控制器RX23T系列數據手冊.pdf 該系列采用 32 RX CPU 內核,最高運行
    的頭像 發表于 03-24 17:21 ?490次閱讀
    帶有FPU的32<b class='flag-5'>位</b><b class='flag-5'>微控制器</b>RX23T系列<b class='flag-5'>數據</b>手冊

    超低功耗的32微控制器RX110系列數據手冊

    RX110 系列微控制器是 RX100 系列中產品陣容最簡單的。它們屬于小容量、低引腳數的產品系列,ROM/RAM 容量范圍從 8KB/8KB 到128KB/16KB,
    的頭像 發表于 03-19 16:22 ?451次閱讀
    超低功耗的32<b class='flag-5'>位</b><b class='flag-5'>微控制器</b>RX110系列<b class='flag-5'>數據</b>手冊

    什么是LCD控制器?愛普生LCD控制器的作用和功能、概述和產品列表

    什么是LCD控制器LCD控制器的作用和功能LCD控制器(液晶顯示
    的頭像 發表于 10-09 11:10 ?1142次閱讀
    什么是<b class='flag-5'>LCD</b><b class='flag-5'>控制器</b>?愛普生<b class='flag-5'>LCD</b><b class='flag-5'>控制器</b>的作用和功能、概述和產品列表

    S1C31W65節能32微控制器

    S1C31W65節能32微控制器配備Arm?Cortex?-M0+處理-LCD驅動集成微控制器
    的頭像 發表于 08-13 16:59 ?685次閱讀
    S1C31W65節能32<b class='flag-5'>位</b><b class='flag-5'>微控制器</b>

    RM42L432 16/32RISC閃存微控制器數據

    電子發燒友網站提供《RM42L432 16/32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-08 09:52 ?0次下載
    RM42L432 16/32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    TMS570LS0714-S 16和32RISC閃存微控制器數據

    電子發燒友網站提供《TMS570LS0714-S 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-08 09:35 ?0次下載
    TMS570LS0714-S 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    TMS570LS1115 16和32RISC閃存微控制器數據

    電子發燒友網站提供《TMS570LS1115 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-08 09:34 ?0次下載
    TMS570LS1115 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    TMS570LS1225 16和32RISC閃存微控制器數據

    電子發燒友網站提供《TMS570LS1225 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-08 09:32 ?0次下載
    TMS570LS1225 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    TMS570LS1227 16和32RISC閃存微控制器數據

    電子發燒友網站提供《TMS570LS1227 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-07 11:16 ?0次下載
    TMS570LS1227 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    TMS570LS1114 16和32RISC閃存微控制器數據

    電子發燒友網站提供《TMS570LS1114 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-07 10:58 ?0次下載
    TMS570LS1114 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    TMS570LS3137-EP 16和32RISC閃存微控制器數據

    電子發燒友網站提供《TMS570LS3137-EP 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-06 11:41 ?1次下載
    TMS570LS3137-EP 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    RM41L232 16和32RISC閃存微控制器數據

    電子發燒友網站提供《RM41L232 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-06 11:28 ?0次下載
    RM41L232 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    RM44Lx20 16和32RISC閃存微控制器數據

    電子發燒友網站提供《RM44Lx20 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-05 11:04 ?0次下載
    RM44Lx20 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表

    TMS570LS0232 16和32RISC閃存微控制器數據

    電子發燒友網站提供《TMS570LS0232 16和32RISC閃存微控制器數據表.pdf》資料免費下載
    發表于 08-05 10:56 ?0次下載
    TMS570LS0232 16<b class='flag-5'>位</b>和32<b class='flag-5'>位</b>RISC閃存<b class='flag-5'>微控制器</b><b class='flag-5'>數據</b>表