找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1989|回复: 0
收起左侧

基于51单片机10000s内数码管计时仿真+源码

[复制链接]
ID:268570 发表于 2018-7-1 11:11 | 显示全部楼层 |阅读模式
初学者 分享设计 大神不吐槽哈,这是实训时的作业设计。
源程序在附件中更清晰。有注释
大神们若有学习的好建议一起分享哈

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
1236.JPG

单片机源程序:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  6. uchar Digits_of_6DSY[]={0,0,0,0,0,0};
  7. uchar Count;
  8. sbit Dot=P0^7;
  9. void DelayMS(uint ms)
  10. {
  11.         uchar t;
  12.         while(ms--) for(t=0;t<120;t++);
  13. }
  14. void main()
  15. {
  16.         uchar i,j;
  17.         P0=0x00;                                 
  18.         P3=0xff;
  19.         Count=0;
  20.         TMOD=0x01;                                
  21.         TH0=(65536-50000)/256;        
  22.         TL0=(65536-50000)%256;
  23.         IE=0x82;
  24.         TR0=1;                                       
  25.         while(1)
  26.         {
  27.                 j=0x7f;
  28.                 for(i=5;i!=-1;i--)
  29.                 {
  30.                         j=_crol_(j,1);
  31.                         P3=j;
  32.                         P0=DSY_CODE[Digits_of_6DSY[i]];
  33.                         if(i==1) Dot=1;               
  34.                         DelayMS(2);
  35.                 }
  36.         }
  37. }

  38. void Timer0() interrupt 1
  39. {
  40.         uchar i;
  41.         TH0=(65536-50000)/256;        
  42.         TL0=(65536-50000)%256;
  43.         if(++Count!=2) return;
  44.         Count=0;
  45.         Digits_of_6DSY[0]++;        
  46.         for(i=0;i<=5;i++)               
  47.         {
  48.                 if(Digits_of_6DSY[i]==10)
  49.                 {
  50.                         Digits_of_6DSY[i]=0;
  51.                         if(i!=5) Digits_of_6DSY[i+1]++;         
  52.                 }
  53.                 else break;               
  54.         }
  55. }
复制代码
0.png

全部资料51hei下载地址:
10000s内数码管计时.zip (23.14 KB, 下载次数: 22)

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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