找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于AT89c52单片机的基础实验,按下按键KEY1,数码管正计时;按下KEY2,数码管倒计...

[复制链接]
跳转到指定楼层
楼主
ID:311692 发表于 2018-4-19 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.按下按键KEY1,数码管正计时;按下KEY2,数码管倒计时;按下按键KEY3清零。
#include<reg52.h>
sbit ADDR0=P2^2;
sbit ADDR1=P2^3;
sbit ADDR2=P2^4;
sbit KEY1=P3^0;
sbit KEY2=P3^1;
sbit KEY3=P3^2;
unsigned char code LedChar[] = {
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char LedBuff[2]= {0xFF,0xFF};
unsignedintcnt = 0;
unsigned char i=0;
unsigned char j=0;
unsigned char flagls=0;
unsigned long sec=0;
void main()
{
bit keybuf1=1;
bit backup1=1;
bit keybuf2=1;
bit backup2=1;
bit keybuf3=1;
bit backup3=1;
ADDR2=0;
ADDR1=0;
ADDR0=0;
EA = 1;
TMOD=0x01;
TH0=0xFC;
TL0=0x67;
ET0=1;
TR0=1;
while(1)
{
if(KEY1!=backup1)
{        
keybuf1=KEY1;
if(keybuf1==KEY1)
{
if(backup1==0)
{
sec=99;
j=2;
}
backup1=keybuf1;
}
}
if(KEY2!=backup2)
{        
keybuf2=KEY2;
if(keybuf2==KEY2)
{
if(backup2==0)
{
sec=0;
j=1;
}
backup2=keybuf2;
}
}
if(KEY3!=backup3)
{        
keybuf3=KEY3;
if(keybuf3==KEY3)
{
if(backup3==0)
{
sec=0;
j=3;
}
backup3=keybuf3;
}
}
if(flagls==1)
{
flagls = 0;     
if(j==1){
sec++;
         LedBuff[0]= LedChar[sec%10];
                   LedBuff[1]= LedChar[sec/10%10];
        }
                   if(j==2){
sec--;
         LedBuff[0]= LedChar[sec%10];
                   LedBuff[1]= LedChar[sec/10%10];
        }
                   if(j==3){
sec=0;
         LedBuff[0]= LedChar[sec%10];
                   LedBuff[1]= LedChar[sec/10%10];
        }
}
  }
}
void InterruptTimer0() interrupt 1
          {
           TH0=0xFC;
           TL0=0x67;
cnt++;
if(cnt>=1000)
     {
cnt=0;
flagls=1;
      }
         
          P0=0xFF;
         switch(i)
          {
         case0:ADDR2=0;ADDR1=0;ADDR0=0;i++;P0=~LedBuff[0];break;
         case1:ADDR2=0;ADDR1=0;ADDR0=1;i=0;P0=~LedBuff[1];break;
         default:break;
          }  }




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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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