音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

輕松學(xué)PIC之?dāng)?shù)碼管

出處:陳雙君 發(fā)布于:2011-08-29 15:57:27

  大家好, 通過(guò)前一期的學(xué)習(xí), 我們已經(jīng)對(duì)ICD2 仿真燒寫(xiě)器和增強(qiáng)型PIC 實(shí)驗(yàn)板的使用方法及學(xué)習(xí)方式有所了解與熟悉,學(xué)會(huì)了如何用單片機(jī)來(lái)控制發(fā)光管、繼電器、蜂鳴器、按鍵等資源,體會(huì)到了學(xué)習(xí)板的易用性與易學(xué)性,特別是當(dāng)自己次動(dòng)手編程點(diǎn)亮一個(gè)發(fā)光管時(shí),相信對(duì)于初學(xué)者來(lái)說(shuō),一定很興奮,很有成就感吧!現(xiàn)在我們就趁熱打鐵,再向上跨一步,一起來(lái)學(xué)習(xí)一下數(shù)碼管的工作原理及使用方法,這一期實(shí)驗(yàn)將會(huì)更具生動(dòng)性。

  說(shuō)到七段數(shù)碼管,它在家電及工業(yè)控制中有著很廣泛的應(yīng)用, 例如用來(lái)顯示溫度、數(shù)量、重量、日期、時(shí)間等,具有顯示醒目、直觀的優(yōu)點(diǎn)。在一般的人機(jī)對(duì)話中,輸入器件一般都是以按鍵為主,但輸出器件則以數(shù)碼管或LCD 為主。數(shù)碼管作為一種應(yīng)用十分普遍的顯示器件,可以在各種各樣的設(shè)備上見(jiàn)到,如圖1 所示就是某數(shù)字表頭顯示時(shí)候的效果圖。它很適合用在對(duì)價(jià)格、亮度等條件比較敏感,同時(shí)基本上只要求顯示數(shù)字量的時(shí)候,所以在數(shù)據(jù)顯示,定時(shí)控制等場(chǎng)合用得很多。常見(jiàn)的數(shù)碼管實(shí)物如圖2 所示。

圖1 數(shù)碼管顯示效果圖

圖1 數(shù)碼管顯示效果圖

圖2 數(shù)碼管實(shí)物圖
圖2 數(shù)碼管實(shí)物圖

  首先,我們先對(duì)相關(guān)理論知識(shí)進(jìn)行一番了解。

  我們可以看到圖1中有8 位數(shù)碼管,那么這些數(shù)碼管是怎樣來(lái)顯示1,2,3,4……數(shù)字的呢?

  別著急,我們一起慢慢來(lái)學(xué)。

  數(shù)碼管實(shí)際上是由7 個(gè)發(fā)光管組成“8”字形構(gòu)成的, 加上小數(shù)點(diǎn)就是8 個(gè)。這些段分別由字母a,b,c,d,e,f,g,dp來(lái)表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣了。如:

  顯示一個(gè)“2”字,那么應(yīng)當(dāng)是a 亮、b 亮、g 亮、e 亮、d 亮、f 不亮、c 不亮、dp 不亮。

  7 段數(shù)碼管的段排列和內(nèi)結(jié)構(gòu)見(jiàn)圖3。

圖3 數(shù)碼管結(jié)構(gòu)圖

圖3 數(shù)碼管結(jié)構(gòu)圖

  由于驅(qū)動(dòng)方式的差異,也就是對(duì)應(yīng)在各個(gè)顯示段是低電平還是高電平點(diǎn)亮,數(shù)碼管又分成兩種類型,即共陽(yáng)極和共陰極數(shù)碼管。所謂“共陽(yáng)極”是指8 個(gè)LED 的陽(yáng)極連接在一起組成公共端;同理“共陰極”則是8 個(gè)LED 的陰極連接在一起組成公共端。

  其內(nèi)部LED 的連接方式可以參考圖4。

圖4 數(shù)碼管內(nèi)部結(jié)構(gòu)圖

  雖然通過(guò)上文原理的介紹,對(duì)數(shù)碼管的工作原理已經(jīng)了解,但當(dāng)我們拿到一個(gè)數(shù)碼管時(shí)要正確地應(yīng)用它還是一時(shí)不知如何下手,比如我們現(xiàn)在要求數(shù)碼管顯示“5”,應(yīng)該怎么辦呢?首先我們需要明白一個(gè)事情,數(shù)碼管是不認(rèn)識(shí)“5”的,當(dāng)然也不認(rèn)識(shí)其他數(shù)字,所以千萬(wàn)別說(shuō),“給數(shù)碼管寫(xiě)個(gè)“5”就行了”。數(shù)字只是種符號(hào),對(duì)人來(lái)說(shuō)是這樣的,對(duì)單片機(jī)而言也是,單片機(jī)只是通過(guò)LED 把內(nèi)部的結(jié)果用我們約定的方式顯示出來(lái)而已,這個(gè)“約定”

  就是數(shù)字該如何在LED 上顯示的方法。比如我們需要顯示的數(shù)字為0 到9,如圖5 所示。

圖5 顯示數(shù)字效果圖

  假設(shè)我們使用共陰極數(shù)碼管,那么我們就對(duì)照?qǐng)D3 和圖4 來(lái)看看“5”是如何顯示出來(lái)的。首先對(duì)數(shù)碼管而言,我們要想顯示數(shù)字“5”,我們可以發(fā)現(xiàn)有如下一些段是需要點(diǎn)亮的,即A、C、D、F、G。

  知道了這些段需要點(diǎn)亮后,現(xiàn)在我們?cè)賮?lái)看一下增強(qiáng)型PIC 實(shí)驗(yàn)板上數(shù)碼管的控制電路,因?yàn)槲覀冃枰獙④浖陀布嘟Y(jié)合進(jìn)行考慮如何來(lái)編程。

  圖6 中的A,B,C,D,E,F,G,DP 分別與單片機(jī)的RC 口相連,用來(lái)控制顯示數(shù)字的形狀。Q3、Q4、Q5、Q6、Q7、Q8 這6 個(gè)三極管是用來(lái)片選數(shù)碼管,用來(lái)打開(kāi)或關(guān)閉某一路數(shù)碼管,RA1、RA0、RA3、RA2、RA5、RA4 分別接在單片機(jī)的RA 口上,通過(guò)控制這些三極管的基極電平來(lái)打開(kāi)或關(guān)閉數(shù)碼管的顯示,即起到“使能”作用。如S1 端為低電平,則允許相應(yīng)的數(shù)碼管顯示,顯示的字形則由RC 口所決定。

圖6 數(shù)碼管電路原理圖

圖6 數(shù)碼管電路原理圖

  我們可以列出表1 這樣的段碼對(duì)應(yīng)關(guān)系表,表中為數(shù)字“5”共陰段碼。

表1 數(shù)碼管顯示數(shù)字“5”的段碼表

表1 數(shù)碼管顯示數(shù)字“5”的段碼表

  參照上面的過(guò)程,我們又可以列出共陰和共陽(yáng)數(shù)碼管0~9 十個(gè)數(shù)字的段碼表,如表2 所示,在不改變硬件對(duì)應(yīng)關(guān)系的前提下,段碼表可以通用。

表2 共陰、共陽(yáng)數(shù)碼管段碼表

表2 共陰、共陽(yáng)數(shù)碼管段碼表

  現(xiàn)在我們已經(jīng)了解了整個(gè)顯示過(guò)程,所以我們也就有了寫(xiě)程序的思路:程序中應(yīng)該有一個(gè)變量,每隔一定時(shí)間在0~9 之間變化,然后按照這個(gè)數(shù)據(jù)去查找段碼表,把查到的數(shù)據(jù)送到RC 口,段碼值我們參照表2 中共陽(yáng)這一項(xiàng)。

  我們使用MPLab IDE 軟件來(lái)進(jìn)行C 語(yǔ)言編程,它是我們的編程環(huán)境,同時(shí)我們可以通過(guò)使用ICD2仿真燒寫(xiě)器和增強(qiáng)型PIC 實(shí)驗(yàn)板連接進(jìn)行程序的仿真調(diào)試和燒寫(xiě)步驟,具體的操作步驟,我們已經(jīng)在前幾期做了詳細(xì)的說(shuō)明和介紹,在此就不再重復(fù),讀者可以參閱以前的文章或直接登陸我們的網(wǎng)站查看資料。前面,我們已經(jīng)對(duì)硬件原理和軟件編寫(xiě)思路進(jìn)行了了解,現(xiàn)在我們可以輸入程序代碼進(jìn)行調(diào)試了。我們?cè)贛PLab IDE 軟件中新建工程,加入源程序代碼,同時(shí)進(jìn)行芯片型號(hào)的選擇和配置位的設(shè)置,我們實(shí)驗(yàn)所用的芯片型號(hào)為PIC16F877A。上面理論說(shuō)了一大堆,現(xiàn)在我們可以從這里開(kāi)始動(dòng)手了。本來(lái)6 個(gè)數(shù)碼管可以各自顯示不同數(shù)字,RA口動(dòng)態(tài)掃描,每個(gè)瞬間只有一個(gè)管顯示,視覺(jué)上感到是6 位數(shù)。作為初次實(shí)驗(yàn),我們的任務(wù)是要讓六個(gè)數(shù)碼管同時(shí)顯示數(shù)字“0”~“9”字樣,時(shí)間間隔為1 秒。

  #include<pic.h>

  const unsigned char display_numb[10]={0x

  c0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0

  x90};

  void delay_1ms(void)

  {

  unsigned int n;

  for(n=0;n<50;n++)

  {

  NOP();

  }

  }

  void delay_ms(unsigned int time)

  {

  for(;time>0;time--)

  {

  delay_1ms();

  }

  }

  void main(void)

  {

  TRISC=0X00;

  TRISA=0X00;

  while(1)

  {

  PORTC=display_numb[0];

  PORTA=0X00;

  delay_ms(1000);

  PORTC=display_numb[1];

  delay_ms(1000);

  PORTC=display_numb[2];

  delay_ms(1000);

  PORTC=display_numb[3];

  delay_ms(1000);

  PORTC=display_numb[4];

  delay_ms(1000);

  PORTC=display_numb[5];

  delay_ms(1000);

  PORTC=display_numb[6];

  delay_ms(1000);

  PORTC=display_numb[7];

  delay_ms(1000);

  PORTC=display_numb[8];

  delay_ms(1000);

  PORTC=display_numb[9];

  }

  }

  程序代碼輸入后,讀者可以使用仿真模塊或直接燒入編譯好的HEX 文件來(lái)進(jìn)行驗(yàn)證,前者模式可以單步執(zhí)行,同時(shí)監(jiān)控程序變量在運(yùn)行過(guò)程中的變化;后者直接燒入HEX 文件,實(shí)驗(yàn)板直接脫機(jī)運(yùn)行。

  輸入了這么長(zhǎng)一段程序后,作為初學(xué)者一定對(duì)有些語(yǔ)句會(huì)有點(diǎn)疑問(wèn),下面我們就來(lái)一起結(jié)合實(shí)際,看一下一些關(guān)鍵程序語(yǔ)句的作用。

  #include<pic.h> 語(yǔ)句用來(lái)加載PIC 庫(kù)文件,數(shù)組display_numb 用來(lái)定義數(shù)字“0”~“9” 的字形碼,也就是我們的表2 中所羅列的內(nèi)容。voiddelay_1ms(void) 是延時(shí)1ms 的函數(shù),void delay_ms(unsigned int time) 是延時(shí)X 毫秒的函數(shù),具體為多少毫秒由形參time 變量決定,如我們執(zhí)行函數(shù) delay_ms(1000); 即表示為延時(shí)1000 毫秒= 延時(shí)1 秒的時(shí)間。語(yǔ)句“TRISC=0X00;” 用來(lái)設(shè)置RC 口的輸入、輸出狀態(tài),在此我們?cè)O(shè)置為輸出;語(yǔ)句“TRISA=0X00;”用來(lái)設(shè)置RA 口的輸入、輸出狀態(tài),在此我們?cè)O(shè)置為輸出。while(1) 是死循環(huán)語(yǔ)句,即周而復(fù)始地執(zhí)行{ } 內(nèi)的語(yǔ)句體,如我們現(xiàn)在的程序中的作用即是不停地執(zhí)行 delay_ms(x);PORTC=display_numb[x]; 這兩類語(yǔ)句,即給RC口送一個(gè)字形碼,延時(shí)1 秒鐘后,又給RC 口賦予一個(gè)新的字形碼,在我們從實(shí)驗(yàn)結(jié)果上看來(lái)就是數(shù)碼管在不停地顯示6 個(gè)相同的“0”~“9”這些數(shù)字。留給讀者設(shè)計(jì),將一個(gè)6 位十進(jìn)制數(shù)字(如201006)顯示出來(lái)的程序。

  數(shù)碼管的原理與使用,我們暫講到這里,接下來(lái)幾期,我們將繼續(xù)一起學(xué)習(xí)增強(qiáng)型PIC 實(shí)驗(yàn)板的其他各部分資源的原理與使用,使你對(duì)單片機(jī)應(yīng)用的各方面知識(shí)都有所入門(mén)與提高。增強(qiáng)型PIC 實(shí)驗(yàn)板系統(tǒng)資源豐富,可做實(shí)驗(yàn)有:6 位LED 數(shù)碼管、8 路LED、直控鍵盤(pán)、蜂鳴器喇叭、繼電器試驗(yàn)、I2C 總線接口、SPI 總線接口、160X 液晶、128X64液晶、紅外接收頭接口、步進(jìn)電機(jī)驅(qū)動(dòng)接口、AD模/ 數(shù)轉(zhuǎn)換接口、串行時(shí)鐘芯片DS1302、溫度傳感器DS18B20 接口、RS232 串口通訊、外擴(kuò)展接口以便外接更多的實(shí)驗(yàn)資源。

關(guān)鍵詞:輕松學(xué)PIC之?dāng)?shù)碼管數(shù)碼管PIC

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

PIC單片機(jī)中的佼佼者PIC16F628A掉電后數(shù)據(jù)不丟失!
廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買(mǎi)家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!