專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

ARM7—LPC2124—NXP-Philips實踐

作者:佚名   來源:互聯(lián)網   點擊數(shù):  更新時間:2014年08月10日   【字體:

1)    單個與多個數(shù)碼管 

 

運行流水燈,運行數(shù)碼管

 

A)      硬件操作

同前

B)       軟件操作

同前

C)      控制指令軟件編寫

 

//雙數(shù)碼管共陰極--數(shù)組

#include

typedef unsigned int uint;

                     

 uint const ShuMa_TAB[]={0xC0C0,0xF9F9,0xA4A4,0xB0B0,0x9999,0x9292,0x8282,

0xF8F8,0x8080,0x9090,0x8888,0x8383,0xC6C6,0x0A1A1,0x8686,0x8E8E};//共陽極碼

       

void delay (void)//  軟件延時函數(shù)delay()

                        

  unsigned volatile long i,j;

  for(i=0;i<60000;i++);

  for(j=0;j<9;j++);

}

int main(void)

 {

  PINSEL0 = 0;    //PINSEL0設置引腳為GPIO ;PINSEL1設置?

  IO0DIR = 0x00FFFF;//P0.0~P0.15設置為輸出,陽極硬件--高電平,陰極硬件可取反;DIR? 

  IO0SET = 0x00FFFF;       //P0.0~P0.151,也就是讓led

 

  while (1)

   {

   unsigned volatile long n;

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

         {

           IO0SET =~ShuMa_TAB[n];

           delay();

          IO0CLR =~ShuMa_TAB[n];

           delay();

         }       

   }

}

程序說明:

 

LED組燈的流水掃描,可以過渡到數(shù)碼管的顯示與控制問題。比較TAB[]=中的數(shù)字碼就明白了。也體現(xiàn)了數(shù)組和循環(huán)在程序編寫中的作用和好處。

D)      仿真結果

 

 

========================================================

二進制

十進制

二進制

十進制

二進制

十六進制

二進制

十六進制

0000

0

0100

4

1000

8

1100

C

0001

1

0101

5

1001

9

1101

D

0010

2

0110

6

1010

A

1110

E

0011

3

0111

7

1011

B

1111

F

 

--------個數(shù)碼管------------

//4數(shù)碼管共陰極表--數(shù)組

#include

typedef unsigned int uint;

                     

 uint const ZIFU_TAB[]={0xC0C0,0xF9F9,0xA4A4,0xB0B0,0x9999,0x9292,0x8282,

0xF8F8,0x8080,0x9090,0x8888,0x8383,0xC6C6,0x0A1A1,0x8686,0x8E8E};//共陽極碼

 

  uint const ZIFU_TAB1[]={0xC0C0000,0xF9F90000,0xA4A40000,0xB0B00000,

  0x99990000,  0x92920000,0x82820000,0xF8F80000,0x80800000,0x90900000,

  0x88880000,0x83830000,0xC6C60000,0x0A1A10000,0x86860000,0x8E8E0000};//共陽極碼

      

void delay (void)//  軟件延時函數(shù)delay()

                        

  unsigned volatile long i,j;

  for(i=0;i<60000;i++);

  for(j=0;j<600;j++);

}

int main(void)

 {

  PINSEL0 = 0;    //PINSEL0設置引腳為GPIO

 

  IO0DIR = 0x0FFFFFFFF;//P0.0~P0.30設置為輸出,陽極硬件--高電平,陰極硬件不能取反; 

  IO0SET = 0x0FFFFFFFF; //P0.0~P0.301,也就是讓led

  IODIR1 = 0x0FFFF0000;//P1.16~P1.30設置為輸出,陽極硬件--高電平,陰極硬件不能取反; 

  IOSET1 = 0x0FFFF0000;

 

  while (1)

   {

   unsigned volatile long n,m;

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

         {

           IO0SET =~ZIFU_TAB[n];

           delay();

          IO0CLR =~ZIFU_TAB[n];

           delay();

         for(m=0;m<16;m++)

         {

           IOSET1 =~ZIFU_TAB1[m];

           delay();

          IOCLR1 =~ZIFU_TAB1[m];

           delay();

       }

         }       

   }

}

 

------------------------------------------------

 






關閉窗口

相關文章