找回密码
 立即注册

QQ登录

只需一步,快速开始

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

用论坛的多档计时改的单片机程序 按键切换300/600数码管会暗下来?

[复制链接]
跳转到指定楼层
楼主
为什么改了之后。按键切换300/600数码管会暗下来。。


单片机源程序如下:
#include <STC15F2K60S2.H>

#define uchar unsigned char
#define uint  unsigned int
sbit led = P1^7;
sbit key1 = P5^4; //时间切换键
sbit key2 = P1^6; //启动按键
sbit we1 = P1^1;  //数码管位端口
sbit we2 = P1^3;
sbit we3 = P1^2;
uchar knum;
bit k1f=0;                  //key1按键按下次数计数变量
uchar cont;                  //中断次数变量
uint cont1=30,cont2=300,cont3=600;        //定义时间变量并赋值30秒,300秒,600秒
uchar code LedTab[]=  {0xef,0x8c,0xb7,0xbe,0xdc,0x7e,0x7f,0xac,0xff,0xfe};
void delay()
               
{
        unsigned char i;

        i = 3;
        while (--i);
}

void Delay10ms()                //@11.0592MHz
{
        unsigned char i, j;

        i = 108;
        j = 145;
        do
        {
                while (--j);
        } while (--i);
}

void Delay30us()                //@11.0592MHz
{
        unsigned char i;
        i = 80;
        while (--i);
}

void display1(uint shu)
{
   

        we1 = 0;we2 = 1; we3 = 1;
    P3= LedTab[shu/100];
    we1=1;
    P3=0x00;

    we1 = 1;we2 = 0; we3 = 1;
    P3 = LedTab[shu%100/10];
    we2 = 1;
    P3 = 0x00;
   
   
    we1 = 1;we2 = 1; we3 = 0;
    P3 = LedTab[shu%10];
   
    we3 = 1;
    P3 = 0x00;
   
}
void keyscan()
{      if(key1==0)
{      Delay30us();
       if(k1f==0)
{        k1f=1;  knum++;
       if(knum==4)
          knum=0;
                } }
                                else k1f=0;
     if(key2 == 0)
{         Delay30us();
       if(key2 == 0)         //key2按下
            TR0=~0;          }
                       
               
                   //    led = 0;         //点亮LED,松手后启动倒计时
                             //这句后面不加分号,下一句调用显示函数,按键时数码管才不会灭
                     
      if(knum==0)
       {  display1(cont1);


      if(knum==1)
         display1(cont2);  
      if(knum==2)
         display1(cont3);
                 if(knum==3)
                 P3=0x00; }  
                            /*   switch(knum)
                                {
                                         case 0: display1(cont1);  break;
                                         case 1: display1(cont2);  break;
                                         case 2: display1(cont3);  break;
                                }        */
        



105913eiej2qrriqmx9cq4.jpg (284.5 KB, 下载次数: 94)

105913eiej2qrriqmx9cq4.jpg

105917c2e3kuh8anjzi1vu.jpg (305.3 KB, 下载次数: 72)

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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