顯示是任何嵌入式系統(tǒng)應(yīng)用程序中非常重要的一部分,因?yàn)樗梢詭椭脩袅私庀到y(tǒng)的狀態(tài),并顯示系統(tǒng)生成的輸出或任何警告消息。電子產(chǎn)品中使用的顯示器類型很多,如7段顯示器,LCD顯示器,TFT觸摸屏顯示器,LED顯示器等。
今天在本教程中,我們將用ARM7-LPC2148連接7段顯示器。在詳細(xì)介紹之前,我們將了解如何控制7段模塊以顯示任意數(shù)量的字符。
7段顯示器
7段顯示是顯示數(shù)字和字符的最簡單的顯示單元之一。它通常用于顯示數(shù)字,并且比點(diǎn)陣顯示具有更亮的照明和更簡單的結(jié)構(gòu)。由于照明更亮,因此可以從比LCD更大的距離觀看輸出。如上圖所示的7段顯示器,它由8個(gè)LED組成,每個(gè)LED用于照亮單元的一個(gè)段,第8個(gè)LED用于照亮7段顯示器中的DOT。當(dāng)使用兩個(gè)或多個(gè) 7 段模塊時(shí),例如用于顯示 (0.1),則使用 8thLED。單個(gè)模塊用于顯示單個(gè)數(shù)字或字符。要顯示多個(gè)數(shù)字或字符,請(qǐng)使用多個(gè) 7 段。
7段顯示器的引腳
有10個(gè)引腳,其中8個(gè)引腳用于表示a,b,c,d,e,f,g和h / dp,中間兩個(gè)引腳是所有LED的公共陽極/陰極。這些公共陽極/陰極在內(nèi)部短路,因此我們只需要連接一個(gè)COM引腳
根據(jù)連接,我們將 7 段分為兩種類型:
共陰極
其中,所有8個(gè)LED的所有負(fù)端子(陰極)都連接在一起(見下圖),命名為COM。所有正極均單獨(dú)放置或連接到微控制器引腳。如果我們使用微控制器,我們將邏輯設(shè)置為高電平以照亮特定內(nèi)容,并將低電平設(shè)置為關(guān)閉LED。
普通陽極
其中,所有8個(gè)LED的所有正極(陽極)都連接在一起,稱為COM。所有負(fù)熱量都單獨(dú)放置或連接到微控制器引腳。如果我們使用微控制器,我們將邏輯設(shè)置為低電平以照亮特定,并將邏輯設(shè)置為高以關(guān)閉LED。
因此,根據(jù)引腳值,可以打開或關(guān)閉特定的段或7段的行以顯示所需的數(shù)字或字母。例如,要顯示 0 位數(shù)字,我們必須將引腳ABCDEF 設(shè)置為高電平,僅將 G 設(shè)置為低電平。由于ABCDEF 指示燈亮起,G 指示燈熄滅,因此在 7 段模塊中形成 0 位數(shù)字。(這是針對(duì)共陰極的,對(duì)于公共陽極,它是相反的)。
下表顯示了根據(jù)LPC2148引腳的HEX值和相應(yīng)數(shù)字,用于共陰極配置。
重要提示:在上表中,我根據(jù)LPC2148中使用的引腳給出了十六進(jìn)制值,請(qǐng)查看下面的電路圖。您可以使用所需的任何引腳,但會(huì)根據(jù)該引腳更改十六進(jìn)制值。
所需材料
硬件
斷續(xù)器2148
七段顯示模塊(個(gè)位數(shù))
試驗(yàn)板
連接線
軟件
凱爾烏維森5
閃光魔術(shù)
電路圖
為了將7段與LPC2148連接,無需外部元件,如下圖所示:
下表顯示了7段模塊和LPC2148之間的電路連接
對(duì) ARM7 LPC2148 進(jìn)行編程
在上一教程中,我們已經(jīng)學(xué)會(huì)了如何使用 Keil 對(duì) ARM7-LPC2148 進(jìn)行編程。我們?cè)谶@里使用相同的Keil uVision 5來編寫代碼并創(chuàng)建十六進(jìn)制文件,然后使用閃存魔術(shù)工具將十六進(jìn)制文件上傳到LPC2148。我們使用USB電纜供電并將代碼上傳到LPC2148
本教程末尾給出了帶有視頻說明的完整代碼。在這里,我們解釋代碼的幾個(gè)重要部分。
首先,我們需要包含LPC214x系列微控制器的頭文件
#include
接下來將引腳設(shè)置為輸出
IO0DIR=IO0DIR|0xffffffff
這會(huì)將引腳 P0.0 設(shè)置為 P0.31 作為輸出,但我們將僅使用引腳(P0.0、P0.1、P0.4、P0.5、P0.6、P0.7 和 P0.8)。
然后根據(jù)要顯示的數(shù)字將某些引腳設(shè)置為邏輯高電平或低電平。在這里,我們將顯示從(0到9)的值。我們將使用一個(gè)數(shù)組,該數(shù)組由值 0 到 9 的 HEX 值組成。
unsigned int a[]={0xf3,0x12,0x163,0x133,0x192,0x1b1,0x1f1,0x13,0x1f3,0x1b3};
值將在代碼放入 while 循環(huán)時(shí)連續(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分別用于設(shè)置引腳高電平和低電平。由于我們使用了端口0引腳,因此我們有IO0SET和IO0CLR。
For loop用于在每次迭代中增加i,每次當(dāng)i增加時(shí),7段也會(huì)增加其上顯示的數(shù)字。
延遲函數(shù)用于在 SET 和 CLR 之間生成延遲時(shí)間
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++);
}
-
顯示器
+關(guān)注
關(guān)注
21文章
5012瀏覽量
140434 -
ARM
+關(guān)注
關(guān)注
134文章
9176瀏覽量
369335 -
LPC2148
+關(guān)注
關(guān)注
0文章
25瀏覽量
14953
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
使用ESP8266和LPC2148遠(yuǎn)程控制設(shè)備的方式
![使用ESP8266和<b class='flag-5'>LPC2148</b>遠(yuǎn)程控制設(shè)備的方式](https://file.elecfans.com/web2/M00/6B/9F/pYYBAGMpd8CAa4uwAABPvtWwPfI791.png)
使用ARM7-LPC2148控制伺服電機(jī)的教程
![使用<b class='flag-5'>ARM7-LPC2148</b>控制伺服電機(jī)的教程](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)
如何使用CD4511驅(qū)動(dòng)7段顯示器
![如何使用CD4511驅(qū)動(dòng)<b class='flag-5'>7</b><b class='flag-5'>段</b><b class='flag-5'>顯示器</b>](https://file.elecfans.com/web2/M00/87/AC/pYYBAGOs98eAaC7WAADVTvV44R8315.png)
ARM7-LPC2148開發(fā)板
使用MAX6954驅(qū)動(dòng)7段LED顯示器
基于鉆井深度顯示器和帶有Arduino支持的7段顯示器設(shè)計(jì)
![基于鉆井深度<b class='flag-5'>顯示器</b>和帶有Arduino支持的<b class='flag-5'>7</b><b class='flag-5'>段</b><b class='flag-5'>顯示器</b>設(shè)計(jì)](https://file.elecfans.com/web1/M00/F0/78/pIYBAGCmKQmAdg80AACT9vAFVYU109.jpg)
使用ARM7 LPC2148微控制器構(gòu)建一個(gè)簡單的機(jī)械臂
![使用<b class='flag-5'>ARM7</b> <b class='flag-5'>LPC2148</b>微控制<b class='flag-5'>器</b>構(gòu)建一個(gè)簡單的機(jī)械臂](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)
創(chuàng)建一個(gè)7段顯示器
![創(chuàng)建一個(gè)<b class='flag-5'>7</b><b class='flag-5'>段</b><b class='flag-5'>顯示器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用Arduino測(cè)試7段顯示器
![使用Arduino測(cè)試<b class='flag-5'>7</b><b class='flag-5'>段</b><b class='flag-5'>顯示器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論