找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机在郭天翔开发板上实现1到60计数程序

[复制链接]
跳转到指定楼层
楼主
ID:440300 发表于 2018-12-5 18:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit led1=P1^0;
uchar code table[]={0x3f,0x06,0x5b,0x4f,
                    0x66,0x6d,0x7d,0x07,
                    0x7f,0x6f,0x77,0x7c,
     0x39,0x5e,0x79,0x71};
void delayms(uint);
void display(uchar,uchar);
uchar num,num1,num2,shi,ge;
void main()
{
   TMOD=0x11;
   TH0=(65536-45872)/256;
   TL0=(65536-45872)%256;
   TH1=(65536-45872)/256;
   TL1=(65536-45872)%256;
   EA=1;
   ET0=1;
   ET1=1;
   TR0=1;
   TR1=1;
   while(1)
  {
     display(shi,ge);
  }
}
void display(uchar shi,uchar ge)
  {
   dula=1;
   P0=table[shi];
   dula=0;
   wela=1;
   P0=0xfe;
   wela=0;
   delayms(5);
   dula=1;
   P0=table[ge];
   dula=0;
   P0=0xff;
   wela=1;
   P0=0xfd;
   wela=0;
   delayms(5);
  }   
void delayms(uint xms)
  {
    uint i,j;
    for(i=xms;i>0;i--)
      for(j=110;j>0;j--);
  }
void T0_time() interrupt 1
   {
    TH0=(65535-45872)/256;
    TL0=(65535-45872)%256;
    num1++;
    if(num1==4)
    {
      num1=0;
      led1=~led1;
    }
   }  
void T1_time() interrupt 3
   {
    TH1=(65535-45872)/256;
    TL1=(65535-45872)%256;
    num2++;
    if(num2==20)
    {
      num2=0;
      num++;
       if(num==60)
       num=0;
       shi=num/10;
       ge=num%10;
    }
   }   

interrrupt.rar

613 Bytes, 下载次数: 2, 下载积分: 黑币 -5

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

使用道具 举报

沙发
ID:440300 发表于 2018-12-5 18:53 | 只看该作者
简单的定时器中断 给 DJTU18级 电子学社新生 学习使用 作者 DJTU 18级 LQF
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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