標(biāo)題: 用PROTEUS仿真單片機(jī)與七段數(shù)碼管 [打印本頁(yè)]

作者: hasakei    時(shí)間: 2020-6-29 10:47
標(biāo)題: 用PROTEUS仿真單片機(jī)與七段數(shù)碼管
本帖最后由 hasakei 于 2020-6-29 10:51 編輯

要求:用七段數(shù)碼管顯示數(shù)字0~9
原理圖:


源代碼:
#include<reg51.h>
voidcct_init(void);
voiddelay(int);
voidDisplayOn7Segment(char);
intmain(void)
{
   char ch = '0';           // Character to bedisplayed on 7seg
   cct_init();                  // Make all ports zero  
   while(1)           
   {
      DisplayOn7Segment(ch);   //Display ch on 7seg
      delay(30000);                     // About 1sec delay
      switch(ch)                           // Update ch with new value to be displayed
      {
             case '0': ch = '1';  break;
             case '1': ch = '2';  break;
             case '2': ch = '3';  break;
             case '3': ch = '4';  break;
             case '4': ch = '5';  break;
             case '5': ch = '6';  break;
             case '6': ch = '7';  break;
             case '7': ch = '8';  break;
             case '8': ch = '9';  break;
             case '9': ch = '0';  break;

             default: ch = '0';  break;
      }
   }
}
voidcct_init(void)
{
      P0 = 0x00;   
      P1 = 0x00;   
      P2 = 0x00;   
      P3 = 0x00;
}
voiddelay(int a)
{
   int i;
   for(i=0;i<a;i++);   //null statement
}
voidDisplayOn7Segment(char ch)   // ch canhave a value from '0' to 'F' only
{
      switch(ch)
      {
                    case '0': P2= 0x3F;  break;
       case'1':  P2 = 0x06;  break;
       case'2':  P2 = 0x5B;  break;
       case'3':  P2 = 0x4F;  break;
       case'4':  P2 = 0x66;  break;
       case'5':  P2 = 0x6D;  break;
       case'6':  P2 = 0x7D;  break;
       case'7':  P2 = 0x07;  break;
       case'8':  P2 = 0x7F;  break;
       case'9':  P2 = 0x6F;  break;
       default:P2 = 0x3F;  break;
      }   
}
仿真結(jié)果:







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