顯示是任何嵌入式系統(tǒng)應用程序中非常重要的一部分,因為它可以幫助用戶了解系統(tǒng)的狀態(tài),并顯示系統(tǒng)生成的輸出或任何警告消息。電子產品中使用的顯示器類型很多,如7段顯示器,LCD顯示器,TFT觸摸屏顯示器,LED顯示器等。
今天在本教程中,我們將用ARM7-LPC2148連接7段顯示器。在詳細介紹之前,我們將了解如何控制7段模塊以顯示任意數(shù)量的字符。
7段顯示器
7段顯示是顯示數(shù)字和字符的最簡單的顯示單元之一。它通常用于顯示數(shù)字,并且比點陣顯示具有更亮的照明和更簡單的結構。由于照明更亮,因此可以從比LCD更大的距離觀看輸出。如上圖所示的7段顯示器,它由8個LED組成,每個LED用于照亮單元的一個段,第8個LED用于照亮7段顯示器中的DOT。當使用兩個或多個 7 段模塊時,例如用于顯示 (0.1),則使用 8thLED。單個模塊用于顯示單個數(shù)字或字符。要顯示多個數(shù)字或字符,請使用多個 7 段。
7段顯示器的引腳
有10個引腳,其中8個引腳用于表示a,b,c,d,e,f,g和h / dp,中間兩個引腳是所有LED的公共陽極/陰極。這些公共陽極/陰極在內部短路,因此我們只需要連接一個COM引腳
根據(jù)連接,我們將 7 段分為兩種類型:
共陰極
其中,所有8個LED的所有負端子(陰極)都連接在一起(見下圖),命名為COM。所有正極均單獨放置或連接到微控制器引腳。如果我們使用微控制器,我們將邏輯設置為高電平以照亮特定內容,并將低電平設置為關閉LED。
普通陽極
其中,所有8個LED的所有正極(陽極)都連接在一起,稱為COM。所有負熱量都單獨放置或連接到微控制器引腳。如果我們使用微控制器,我們將邏輯設置為低電平以照亮特定,并將邏輯設置為高以關閉LED。
因此,根據(jù)引腳值,可以打開或關閉特定的段或7段的行以顯示所需的數(shù)字或字母。例如,要顯示 0 位數(shù)字,我們必須將引腳ABCDEF 設置為高電平,僅將 G 設置為低電平。由于ABCDEF 指示燈亮起,G 指示燈熄滅,因此在 7 段模塊中形成 0 位數(shù)字。(這是針對共陰極的,對于公共陽極,它是相反的)。
下表顯示了根據(jù)LPC2148引腳的HEX值和相應數(shù)字,用于共陰極配置。
重要提示:在上表中,我根據(jù)LPC2148中使用的引腳給出了十六進制值,請查看下面的電路圖。您可以使用所需的任何引腳,但會根據(jù)該引腳更改十六進制值。
所需材料
硬件
斷續(xù)器2148
七段顯示模塊(個位數(shù))
試驗板
連接線
軟件
凱爾烏維森5
閃光魔術
電路圖
為了將7段與LPC2148連接,無需外部元件,如下圖所示:
下表顯示了7段模塊和LPC2148之間的電路連接
對 ARM7 LPC2148 進行編程
在上一教程中,我們已經(jīng)學會了如何使用 Keil 對 ARM7-LPC2148 進行編程。我們在這里使用相同的Keil uVision 5來編寫代碼并創(chuàng)建十六進制文件,然后使用閃存魔術工具將十六進制文件上傳到LPC2148。我們使用USB電纜供電并將代碼上傳到LPC2148
本教程末尾給出了帶有視頻說明的完整代碼。在這里,我們解釋代碼的幾個重要部分。
首先,我們需要包含LPC214x系列微控制器的頭文件
#include
接下來將引腳設置為輸出
IO0DIR=IO0DIR|0xffffffff
這會將引腳 P0.0 設置為 P0.31 作為輸出,但我們將僅使用引腳(P0.0、P0.1、P0.4、P0.5、P0.6、P0.7 和 P0.8)。
然后根據(jù)要顯示的數(shù)字將某些引腳設置為邏輯高電平或低電平。在這里,我們將顯示從(0到9)的值。我們將使用一個數(shù)組,該數(shù)組由值 0 到 9 的 HEX 值組成。
unsigned int a[]={0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
值將在代碼放入 while 循環(huán)時連續(xù)顯示
while(1)
{
for(i=0;i<=9;i++)
{
IO0SET=IO0SET|a[i]; //sets corresponding pins HIGH
delay(9000); //Calls delay function
IO0CLR=IO0CLR|a[i]; //Sets corresponding pins LOW
}
}
在這里,IOSET和IOCRR分別用于設置引腳高電平和低電平。由于我們使用了端口0引腳,因此我們有IO0SET和IO0CLR。
For loop用于在每次迭代中增加i,每次當i增加時,7段也會增加其上顯示的數(shù)字。
延遲函數(shù)用于在 SET 和 CLR 之間生成延遲時間
void delay(int k) //Function for making delay
{
int i,j;
for(i=0;i
for(j=0;j<=1000;j++);
}
完整代碼
//INTERFACING SINGLE SEVEN SEGMENT MODULE WITH LPC2148
//CIRCUIT DIGEST
//By Pramoth.T
#include
void delay(int ); //Function declaration for delay
int i; //Variable declared as integer
unsigned int a[]={0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3}; //integer array with numbers for display
int main()
{
IO0DIR=IO0DIR|0xffffffff; //Sets direction as output for PORT 0 pins
while(1)
{
for(i=0;i<=9;i++)
{
IO0SET=IO0SET|a[i]; //sets corresponding pins HIGH
delay(9000); //Calls delay function
IO0CLR=IO0CLR|a[i]; //Sets corresponding pins LOW
}
}
return 0;
}
void delay(int k) //Function for making delay
{
int i,j;
for(i=0;i
for(j=0;j<=1000;j++);
}
-
顯示器
+關注
關注
21文章
5010瀏覽量
140408 -
ARM
+關注
關注
134文章
9168瀏覽量
369217 -
LPC2148
+關注
關注
0文章
25瀏覽量
14951
發(fā)布評論請先 登錄
相關推薦
使用ESP8266和LPC2148遠程控制設備的方式
![使用ESP8266和<b class='flag-5'>LPC2148</b>遠程控制設備的方式](https://file.elecfans.com/web2/M00/6B/9F/pYYBAGMpd8CAa4uwAABPvtWwPfI791.png)
使用ARM7-LPC2148控制伺服電機的教程
![使用<b class='flag-5'>ARM7-LPC2148</b>控制伺服電機的教程](https://file.elecfans.com/web2/M00/6B/8A/poYBAGMsH2OAbgcBAAIWv53GZgQ466.png)
將16x2 LCD與ARM7-LPC2148連接并顯示文字
![將16x2 LCD與<b class='flag-5'>ARM7-LPC2148</b><b class='flag-5'>連接</b>并<b class='flag-5'>顯示</b>文字](https://file.elecfans.com//web2/M00/74/F9/pYYBAGNbnPaALpgqAAApmrSZMRU935.png)
ARM7-LPC2148開發(fā)板
使用MAX6954驅動7段LED顯示器
使用ARM7 LPC2148微控制器構建一個簡單的機械臂
![使用<b class='flag-5'>ARM7</b> <b class='flag-5'>LPC2148</b>微控制<b class='flag-5'>器</b>構建一個簡單的機械臂](https://file.elecfans.com/web2/M00/64/C8/pYYBAGMF29mAZtIMAAVusp4pl6I573.png)
如何在ARM7-LPC2148中使用ADC
![如何在<b class='flag-5'>ARM7-LPC2148</b>中使用ADC](https://file.elecfans.com//web2/M00/6C/69/pYYBAGMtdjGABlq3AAAT0D4NqgI682.png)
評論