找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1692|回复: 5
打印 上一主题 下一主题
收起左侧

单片机考试,说什么解释程序,有大佬嘛

[复制链接]
跳转到指定楼层
楼主
ID:250460 发表于 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. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:250460 发表于 2017-11-21 20:13 | 只看该作者
求解释啊,明天考试,大佬们- -
回复

使用道具 举报

板凳
ID:252062 发表于 2017-11-21 21:04 | 只看该作者
考试都这么多代码了吗
回复

使用道具 举报

地板
ID:252134 发表于 2017-11-22 12:01 | 只看该作者
怎么看都觉得是计时器的代码
回复

使用道具 举报

5#
ID:96682 发表于 2017-11-22 16:05 | 只看该作者
大佬们都很忙的,估计源程序注释标出来了,你的考试也已结束了。
回复

使用道具 举报

6#
ID:231984 发表于 2017-11-22 20:54 | 只看该作者
中断计时,送入数码管显示,通过按键控制某个功能
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表