找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3304|回复: 1
收起左侧

00-99计数器的proteus仿真电路及C语言程序设计

[复制链接]
ID:152472 发表于 2016-12-8 20:45 | 显示全部楼层 |阅读模式
例2 00-99计数器的proteus仿真电路及C语言程序设计

0.png

  1. #include<reg51.h>
  2. #define   uchar  unsigned char
  3. #define   uint   unsigned  int
  4. char      _data,j;  //变量的定义数据、循环次数。
  5. uint      a;//  变量,秒的判断
  6. bit       miao;//秒到了
  7. uchar     tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//断码缓冲区,0xff是用来消隐
  8. uchar     bit_[]={0x01,0x02,0x04};//位缓冲区
  9. uchar     buffer[3];//显示缓冲区
  10. uchar   code  TH0val=63075/256;//timer0中断符初值,2.5ms
  11. uchar   code   TL0val=63075%256;//
  12. main()
  13. {
  14.   _data=0;//数据初始化
  15.   TMOD=0X01;//中断初始化
  16.   TR0=1;
  17.   ET0=1;
  18.   TH0= TH0val;
  19.   TL0=TL0val;

  20.   EA=1;
  21.    while(1)//主循环

  22. {
  23.    
  24.    
  25.    
  26.    if(_data<10)//
  27.   {
  28.    buffer[0]=10;//消隐
  29.      
  30.    
  31. }
  32. else
  33. {

  34.    buffer[0]=_data/10;//十位数
  35. }

  36.    buffer[1]=_data%10;//个位数
  37.    if(miao)                                       
  38.    {
  39.    _data++;//数据加一
  40.    miao=0;//秒味清零
  41.   
  42.   
  43.   }

  44. if(_data==100)//数据恢复初值
  45. {
  46. _data=0;
  47.                    }


  48. }

  49. }



  50. void timer0() interrupt 1
  51. {  uchar  tmp;

  52.    TH0= TH0val;
  53.    TL0=TL0val;
  54.    a++;
  55.    if(a==400)//是否到了一秒
  56.    {
  57.   miao=1;//秒位置1
  58.   a=0;
  59.   }

  60.   tmp=bit_[j];//显示数据
  61.    P2=tmp;
  62.    tmp=buffer[j];
  63.    tmp=tab[tmp];
  64.    P0=tmp;
  65.    j++;
  66.   
  67.    if(j==2)
  68.    j=0;
  69.    
  70.    }


复制代码

0.png

所有资料下载:
例2 00-99计数器的proteus仿真电路及C语言程序设计.zip (52.24 KB, 下载次数: 21)
回复

使用道具 举报

ID:447754 发表于 2018-12-17 10:29 | 显示全部楼层
你这个真的帮了我大忙,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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