找回密码
 立即注册

QQ登录

只需一步,快速开始

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

ST89C52中断方式实现简易三位秒表

[复制链接]
跳转到指定楼层
楼主
ID:864860 发表于 2021-1-21 20:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
sbit duan=P2^6;
sbit wei=P2^7 ;
int index=0;
uchar ms;
uchar s;
uchar code duanS[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code weiS[]={0xef,0xdf,0xbf};

void initP1(){
EA=1;
ET0=1;
TR0=1;
TMOD|=0x01;
TH0=(65535-19453)/255;
TL0=(65535-19453)%255;
}
void initP3(){
EA=1;
ET1=1;
TR1=1;
TMOD|=0x10;
TH1=60927/255;
TL1=60927%255;
}

void display(uchar i){
        P0=weiS[index];
    switch(index) {
         case 0:         wei=1;duan=0;wei=0;duan=1;P0=duanS[i/100];
         break;
         case 1:         wei=1;duan=0;wei=0;duan=1;P0=duanS[i/10%10];
         break;
         case 2:         wei=1;duan=0;wei=0;duan=1;P0=duanS[i%10];
         break;
        }
        index++;
        if(index>=3)
        index=0;
}

void main(){          
          initP1();
          initP3();
          while(1);  
}

void interP1() interrupt 1 {
     TH0=(65535-19453)/255;
     TL0=(65535-19453)%255;
         ms++;         
         if(ms==60){
         P1=~P1        ;
         s++;
         ms=0;           
         }
         if(s>=100)
         s=0;
}

void interP3() interrupt 3{
        TH1=60927/255;
    TL1=60927%255;
        display(s);
}

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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