标题: 单片机考试,说什么解释程序,有大佬嘛 [打印本页]

作者: v的v饿死    时间: 2017-11-21 20:01
标题: 单片机考试,说什么解释程序,有大佬嘛
  1. #include<reg52.h>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit a1=P1^0;
  6. sbit a2=P1^1;
  7. sbit a3=P1^2;
  8. sbit key=P2^7;



  9. uchar code table[] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,        
  10.                                                           0x80,0x90,0x88};//,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
  11. uchar code dispbit[]={0x01,0x02};//数码管位选码
  12. uchar dis1[]={0,0};
  13. uchar num,temp=10;
  14. uchar t0=0;
  15. void Delay(uint z)
  16. {
  17.         uint x,y;
  18.         for(x=z;x>0;x--)
  19.                 for(y=110;y>0;y--)
  20.                         ;
  21. }                                                                                
  22. void init()
  23. {
  24.         TMOD=0x01;
  25.         TH0=(65536-50000)/256;
  26.         TL0=(65536-50000)%256;
  27.         EA=1;
  28.         ET0=1;
  29.         TR0=1;
  30. //        temp=0xfb;
  31. //        P1=temp;
  32. }
  33. void Display()
  34. {
  35.                
  36.                 uchar i,x,y;
  37.                 dis1[0]=num/10;
  38.                 dis1[1]=num%10;
  39.                 for(i=0;i<2;i++)
  40.                 {
  41.                         P0=table[dis1[i]];
  42.                         P3=table[dis1[i]];
  43.                         P2=dispbit[i];//位选
  44.                         Delay(5);
  45.                         P2=0x00;
  46.                         
  47.                         
  48.                      if(key==1)

  49.                         {
  50.                         
  51.                                 P1=0xf6;
  52.                                 
  53.                                 EA=0;
  54.                                 
  55.                                 
  56.                                 for(x=5000;x>0;x--)
  57.                           for(y=110;y>0;y--);
  58.                                        
  59.                         }
  60.                         
  61.                         else  EA=1;
  62.                                        
  63.                         
  64.                 }


  65. }
  66. void main()
  67. {
  68.         init();        
  69.         num=30;
  70.         while(num!=0)
  71.         {
  72.                 loop:Display();
  73.                 if(key==1)
  74.                 goto  loop;
  75.                 P1=0xde;
  76.         //        Delay(10);

  77.         if(num==5)
  78.         {
  79.         while(num!=0)
  80.         {
  81.                 loop2:Display();
  82.                
  83.             if(key==1)
  84.                 goto  loop2;

  85.                 P1=0xee;
  86.                 Delay(10);

  87. //                P1=0xfe;
  88.         //        Delay(10);
  89.         }
  90.         }
  91.         }

  92.         num=30;
  93.         while(num!=0)
  94.         {
  95.                
  96.                 loop1:Display();
  97.                 if(key==1)
  98.                 goto  loop1;
  99.                 P1=0xf3;
  100.         //        Delay(10);
  101.                 if(        num==5)
  102.                 {
  103.                         while(num!=0)
  104.                         {

  105.                         loop3:Display();
  106.                 if(key==1)
  107.                         goto  loop3;
  108.         
  109.                         P1=0xfd;
  110.                         Delay(3);
  111.                         }
  112.           }


  113.         //        P1=0xfb;
  114.         //        Delay(3);
  115.         }
  116.         
  117.                
  118.         
  119.         
  120.         
  121. }
  122. void time0()interrupt 1 using 0
  123. {
  124.         TH0=(65536-50000)/256;
  125.         TL0=(65536-50000)%256;
  126.                 t0++;
  127.                         if(t0==20)
  128.                                 {
  129.                                         t0=0;
  130.                                         num--;
  131.                                 }               
  132. }
复制代码

作者: v的v饿死    时间: 2017-11-21 20:13
求解释啊,明天考试,大佬们- -
作者: a1183810556    时间: 2017-11-21 21:04
考试都这么多代码了吗
作者: lujunda2    时间: 2017-11-22 12:01
怎么看都觉得是计时器的代码
作者: wc86110    时间: 2017-11-22 16:05
大佬们都很忙的,估计源程序注释标出来了,你的考试也已结束了。
作者: gaohan130    时间: 2017-11-22 20:54
中断计时,送入数码管显示,通过按键控制某个功能




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