标题: ATMEGA48利用按键控制时钟proteus仿真+源码 [打印本页]

作者: 张洪栩    时间: 2017-2-22 23:12
标题: ATMEGA48利用按键控制时钟proteus仿真+源码
一份大一新生的小作业


ATMEGA48时钟程序源码:
  1. #include<iom48v.h>
  2. //共阳数码管键码
  3. const unsigned char disp_table_ca[]=
  4. {  0xC0,0xF9,0xA4,0xB0,0x99,
  5.     0x92,0x82,0xF8,0x80,0x90  };
  6. char a_second=0;
  7. char b_second=0;
  8. int count=0,flag;

  9. void delay(unsigned int x)
  10. { int i,j; for(i=0;i<x;i++) for(j=0;j<1141;j++); }

  11. void main()
  12. { DDRD=0xff;
  13.   DDRB=0XFF;
  14.   PORTC=0XFF;
  15.   
  16.   while(1)
  17.   {
  18.            PORTB=0B00000001;
  19.         PORTD=disp_table_ca[a_second];
  20.         delay(1);
  21.        
  22.         PORTB=0B00000010;
  23.         PORTD=disp_table_ca[b_second];
  24.         delay(1);
  25.        
  26.         if((PINC&0B00000001)==0)
  27.         {
  28.           delay(20);
  29.           if((PINC&0B00000001)==0)
  30.           flag=1;
  31.           while((PINC&0B00000001)==0);
  32.         }
  33.        
  34.         if((PINC&0B00000010)==0)
  35.         {
  36.           delay(20);
  37.           if((PINC&0B00000010)==0)
  38.           flag=2;
  39.           while((PINC&0B00000010)==0);
  40.         }
  41.        
  42.         if((PINC&0B00000100)==0)
  43.         {
  44.           delay(20);
  45.           if((PINC&0B00000100)==0)
  46.           flag=3;
  47.           while((PINC&0B00000100)==0);
  48.         }
  49.        
  50.         if(flag==1)
  51.         {
  52.            count++;
  53.            if(count%49==0)
  54.            b_second++;
  55.           
  56.               if(b_second==10)
  57.              {
  58.                b_second=0;
  59.                a_second++;   
  60.                       if(a_second==6)
  61.                       a_second=0;
  62.              }
  63.         }
  64.        
  65.         if(flag==2)
  66.         {
  67.            count++;
  68.            if(count%49==0)
  69.            b_second--;
  70.           
  71.               if(b_second==-1)
  72.              {
  73.                b_second=9;
  74.                a_second--;   
  75.                       if(a_second==-1)
  76.                       a_second=5;
  77.              }
  78.         }
  79.        
  80.         if(flag==3)
  81.         {
  82.            a_second=0;
  83.            b_second=0;
  84.         }
  85.        
  86.   }
  87.   
  88. }
复制代码



下载:
电气164-张洪栩.zip (54.42 KB, 下载次数: 37)

作者: supermcu8    时间: 2018-12-4 10:42
谢谢分享,有空下载测试学习一下




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1