找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机0到9999数码管显示的Proteus仿真+代码

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define wei=P2;
  5. #define duan=P0;
  6. sbit led=P1^0;
  7. sbit S2=P3^0;
  8. sbit S3=P3^1;
  9. sbit S4=P3^2;
  10. uchar sec,num;
  11. uint cnt=0; //全局变量,控制数码管显示的数字的变化
  12. uint ge,shi,qian,bai;
  13. uchar code arry[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  14. void delay(uint i);//软件延时函数
  15. void display(); //数码管显示函数
  16. void delay(uint i)//软件延时函数
  17. {
  18.         uint a,c;
  19.         for(a =i;a>0;a--)
  20.         {
  21.                 for(c=114;c>0;c--);
  22.         }
  23. }

  24. void display()
  25. {
  26.         qian=cnt/1000;
  27.         bai=(cnt%1000)/100;
  28.         shi=((cnt%1000)%100)/10;
  29.         ge=        ((cnt%1000)%100)%10;
  30.         P2=0xf7;
  31.         P0=arry[ge];
  32.         delay(5);  //防止重影
  33.         P2=0xfb;
  34.         P0=arry[shi];
  35.         delay(5);
  36.         P2=0xfd;
  37.         P0=arry[bai];
  38.         delay(5);
  39.         P2=0xfe;
  40.         P0=arry[qian];
  41.         delay(5);
  42. }

  43. void Timer0Init()
  44. {
  45.         TMOD|=0X11;//选择为定时器0模式,工作方式1,仅用TR0打开启动。
  46.         TH0=0X3c;        //给定时器赋初值,定时1ms
  47.         TL0=0Xb0;
  48.         TH1=0X3C;
  49.         TL1=0XB0;
  50.         ET1=1;       
  51.         ET0=1;//打开定时器0中断允许
  52.         EA=1;//打开总中断
  53.                
  54. }
  55. void Timer0() interrupt 1
  56. {
  57.        
  58.         TH0=0X3c;        //
  59.         TL0=0Xb0;
  60.         sec++;
  61.         if(sec==20)
  62.         {
  63.                
  64.                 TF0=0;
  65.                 sec=0;
  66.                 cnt++;
  67.                
  68.         }
  69.                 if(cnt==9999)
  70.                 {
  71.                   
  72.                  cnt=9999;
  73.                         TR0=0;
  74.                         TF0=0;
  75.                 }
  76. }

  77. void Timer1() interrupt 3
  78. {
  79.        
  80.         TH1=0X3c;        //
  81.         TL1=0Xb0;
  82.         num++;
  83.         if(num==10)
  84.         {
  85.                 num=0;
  86.                 TF1=0;
  87.                 led=~led;
  88.                
  89.         }
  90. }       

  91. void main()//主函数
  92. {
  93.         Timer0Init();
  94.         while(1)
  95.         {
  96.                 display();
  97.                 if(S2==0)//开始/复位
  98.         {
  99.                   delay(10);
  100.                         if(S2==0)
  101.                         {
  102.                                 sec = 0;
  103.                                 num=0;
  104.                     cnt=0;
  105.                               TR0=1;
  106.                                 TR1=1;
  107.                         }   
  108.         }
  109.         if(S3==0)//暂停
  110.         {
  111.                   delay(10);
  112.                         if(S3==0)
  113.                         {
  114.                                 TR0 = 0;    //关闭定时器
  115.                          TF0 = 0;
  116.                                 TR1=0;
  117.                                 TF1=0;
  118.                         }
  119.                                        
  120.         }
  121.                 if(S4==0)//继续开始
  122.         {
  123.                   delay(10);
  124.                         if(S4==0)
  125.                         {
  126.                                 sec = 0;
  127.                                 num=0;
  128.                                 TR0=1;
  129.                                 TR1=1;
  130.                         }
  131.                                                   
  132.         }
  133.                                        
  134.        
  135.      }
  136. }
复制代码

所有资料51hei提供下载:
51单片机0到9999数码管显示的Proteus仿真 代码.dsn.zip (77.43 KB, 下载次数: 81)



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:759029 发表于 2020-5-23 11:56 | 只看该作者
谢谢,非常厉害
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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