標(biāo)題: 分享設(shè)計(jì):多種數(shù)碼管控制C語言代碼及仿真電路 [打印本頁]

作者: 多喝點(diǎn)    時(shí)間: 2020-2-7 11:01
標(biāo)題: 分享設(shè)計(jì):多種數(shù)碼管控制C語言代碼及仿真電路
本帖最后由 多喝點(diǎn) 于 2020-2-7 16:45 編輯


仿真電路圖:



C語言程序代碼:
  1. #include <reg52.h>

  2. #define uchar unsigned char        
  3. #define uint  unsigned int         
  4.               
  5. sbit we = P3^7;                           
  6. sbit du = P3^0;              
  7. uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};
  8. uchar code tab[]={0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
  9. void delay(uint z)
  10. {
  11.         uint x,y;
  12.         for(x = z; x > 0; x--)
  13.                 for(y =10; y>0 ; y--);
  14. }


  15. uchar num;
  16. void main()
  17. {
  18.         du=0;
  19.         we=0;
  20.                 while(1)
  21.                 {
  22.                                         for(num=0;num<8;num++)
  23.                                                         {
  24.                                                                
  25.                                                                 we=1;
  26.                                                                 P1=tab[num];
  27.                                                                 we=0;
  28.                                                                
  29.                                                                
  30.                                                                 du=1;
  31.                                                                 P2=table[num];
  32.                                                                 du=0;
  33.                                                                 delay(10);
  34.                                                         };
  35.                 }
  36. }
復(fù)制代碼
2.動(dòng)態(tài)控制:不使用74HC573使八個(gè)數(shù)碼管依次顯示0-7
仿真電路圖:(請(qǐng)注意:在接實(shí)際電路時(shí),在數(shù)碼管管腳之前都要接上電阻,否則會(huì)燒壞電子器件)



C語言程序代碼:
  1. #include <reg51.h>

  2. void delay(void)
  3. {
  4.     unsigned char i, j;

  5.     for (i=0; i<10; i++)
  6.         for (j=0; j<10; j++);
  7. }


  8. unsigned char duanma[16] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};

  9. unsigned char weima[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};


  10. void main(void)
  11. {
  12.     while (1)
  13.     {
  14.         unsigned char i = 0;

  15.         for (i=0; i<8; i++)
  16.         {
  17.             P2 = weima[i];  
  18.             P1 = duanma[i];   

  19.             delay();
  20.             P0 = 0x00;
  21.         }

  22.     }
  23. }
復(fù)制代碼

3、靜態(tài)控制:8個(gè)數(shù)碼管顯示相同數(shù)字,自動(dòng)從0開始切換,直到F
仿真電路圖:



C語言程序代碼:

  1. #include <reg52.h>

  2. #define uchar unsigned char        
  3. #define uint  unsigned int         
  4. #define DELAY_TIME 1               
  5. sbit we = P3^7;                           
  6. sbit du = P3^0;              
  7. uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
  8. void delay(uint z)
  9. {
  10.         uint x,y;
  11.         for(x = z; x > 0; x--)
  12.                 for(y =500; y>0 ; y--);
  13. }


  14. uchar num;
  15. void main()
  16. {
  17.                 we=1;
  18.                 P1=0xff;
  19.                 we=0;
  20.                 while(1);
  21.                 {
  22.                                         for(num=0;num<16;num++)
  23.                                                         {
  24.                                                                 du=1;
  25.                                                                 P2=table[num];
  26.                                                                 du=0;
  27.                                                                 delay(100);
  28.                                                         };

  29.                         
  30.                 }
  31. }

復(fù)制代碼

4、動(dòng)態(tài)控制:使用74LS138譯碼器控制八位數(shù)碼管依次顯示0-7

仿真電路圖:

C語言程序代碼:
  1. #include <reg52.h>

  2. #define uchar unsigned char        
  3. #define uint  unsigned int         


  4. uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};
  5. uchar code tab[]={0x00,0x01,0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
  6. void delay(uint z)
  7. {
  8.         uint x,y;
  9.         for(x = z; x > 0; x--)
  10.                 for(y =10; y>0 ; y--);
  11. }
  12. uint i;
  13. void main()
  14. {
  15.         for(i=0;i<8;i++)
  16.                 {
  17.                         P2=tab[i];
  18.                         P1=table[i];
  19.                         delay(50);
  20.                 }
  21.         
  22. }
復(fù)制代碼

5、動(dòng)態(tài)控制:使用74LS138譯碼器和74LS247七段數(shù)碼管譯碼器控制8位數(shù)碼管依次顯示0-7
仿真電路圖:


C語言程序代碼:
  1. #include <reg52.h>

  2. #define uchar unsigned char        
  3. #define uint  unsigned int         


  4. uchar code table[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
  5. uchar code tab[]={0x00,0x01,0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
  6. void delay(uint z)
  7. {
  8.         uint x,y;
  9.         for(x = z; x > 0; x--)
  10.                 for(y =10; y>0 ; y--);
  11. }
  12. uint i;
  13. void main()
  14. {
  15.         for(i=0;i<8;i++)
  16.                 {
  17.                         P3=tab[i];
  18.                         P2=table[i];
  19.                         delay(30);
  20.                 }
  21.        
  22. }
復(fù)制代碼











歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1