苏嵌学习日志12 07.20

学习日志                        姓名 :刘易中           日期 :2018/7/20

今日学习任务

编写一个基于单片机的数字时钟,并用6位数码管显示,且可以调节时分秒

今日任务完成情况

完成编写

今日开发中出现的问题汇总

有一些变量数组定义有误

对于延时时长的把控

 

今日未解决问题

6位数码管一直有些闪烁,秒表跳得略慢

今日开发收获

怎样显示6位数码管

自我评价

自己独立编写程序还是有困难,上网参考了很多程序自己整合了一下基本完成了任务,但很多细节或者深入的问题还是不太清楚。

其他

sbit SEG1 = P0^0;      //显示1
sbit SEG2 = P0^1;   //显示2
sbit SEG3 = P0^2;     //显示3
sbit SEG4 = P0^3;      //显示4
sbit SEG5 = P0^4;   //显示5
sbit SEG6 = P0^5;     //显示6

sbit DUAN=P2^6;
sbit WEI=P2^7;
unsigned char code tab[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管
uchar Display_Digit[20];
unsigned int  count;//秒计时
//-------时间--------------
uchar shi=0,fen=0,miao=0;// 时分秒
//-------时间--------------
uchar  set;

uchar  flag;          //模式 0 1 2 3


void delay(uint z)     
{
    uint x,y;
    for(x=z;x>0;x--)
    for(y=65;y>0;y--);
}

void DIS_SEG(void)    
{
      Display_Digit[0]=shi%100/10;   //时
      Display_Digit[1]=shi%10;       //时
       Display_Digit[2]=fen%100/10;     //分
      Display_Digit[3]=fen%10;         //分
      Display_Digit[4]=miao%100/10;     //秒
      Display_Digit[5]=miao%10;         //秒
              
              DUAN=1;
            P0=tab[Display_Digit[0]];   // 数码管显示负数 或正的百位
            DUAN=0;
        
            delay(1);
            WEI=1;
            P0=0xfe;         //片选数码管    
            delay(3);    
            P0=0xff;         //关闭数码管
            WEI=0;

            DUAN=1;
            P0=tab[Display_Digit[1]]+0x80;    //十位    
             DUAN=0;
        

            delay(1);
            WEI=1;
            P0=0xfd;             
            delay(3);   
            P0=0xff;     
            WEI=0;


            DUAN=1;
            P0=tab[Display_Digit[2]]; //个位和小数点
            DUAN=0;
            delay(1);

            WEI=1;
            P0=0xfb;            
            delay(3);   
            P0=0xff;     
            WEI=0;

            DUAN=1;
            P0=tab[Display_Digit[3]]+0x80;  //小数位
            DUAN=0;
            delay(1);
            WEI=1;
            P0=0xf7;             
            delay(3);  
            P0=0xff;     
            WEI=0;    

            DUAN=1;
            P0=tab[Display_Digit[4]];  
            DUAN=0;
            delay(1);
            WEI=1;
            P0=0xEF;         
            delay(3);    
            P0=0xff;     
            WEI=0;

            DUAN=1;
            P0=tab[Display_Digit[5]];   
            DUAN=0;
            delay(1);
            WEI=1;
            P0=0xDF;
            delay(3);   
            P0=0xff;         
            WEI=0;

}

void S2_ADD(void)

    if(flag==1)  
    {
         shi++; 
        if(shi>23)
        {
        shi=23;
        }    //最大值23
    }
    if(flag==2)   //
    {
         fen++; 
        if(fen>59)
        {
        fen=59;
        }    //最大值59
    }
    if(flag==3)
    {   
         miao++;
         if(miao>59)
         {
         miao=59;
         }  //最大值59
    }

}
void S3_SUB(void)
{     if(flag==1)   
    {
         if(shi<1)
        {
        shi=1;
        }
        shi--;      //最小减到0
    }
    if(flag==2)   
    {
         if(fen<1)
        {
        fen=1;
        }
        fen--;      //最小减到0
    }
    if(flag==3)
    {
         if(miao<1)
        {
        miao=1;
        }
        miao--;   //最小减到0
    }
}
void KEY_SCAN(void)           //键盘扫描
{

    if(S1==0)//切换 设置
    {    delay(10);   
        if(S1==0)
                {
                    while(!S1)
                    if(set==0)
                    {
                    set=1;TR1=0;EA=0;
                    }
                    else
                    {
                    set=0;
                    TR1=1;
                    EA=1;
                    }//设置时间,退出切换
                }
    }     
        if(S2==0) //加
    {
        delay(10);   //延时去抖动
        S2_ADD();
               //加
         while(!S2){;}
        }  //等待按键释放
    
         if(S3==0)        //减
    {
        delay(10);   //延时去抖动
        S3_SUB();        // 减
        while(!S3){;}    //等待按键释放
    }
    if(S4==0)//切换 设置
    {
        delay(10);   
                if(S4==0)
                {    flag++;
                    TR1=0;
                    EA=0;
                    if(flag>3)
                    {
                    flag=1;
                    }     //在 1 2 3中切换
                    while(!S4){;}
                }
        }     
}


//--------------key---------------------------------------
int main()
{  
    P0=0;                                 

    TMOD=0x10;    //定时器1方式2
    TH1=(65536-50000)/256;
    TL1=(65536-50000)%256;    
    EA=1;        //开总中断
    ET1=1;        //开定时器1中断
    TR1=1;         //开启定时器,

    while(1)
    {
    KEY_SCAN();//键盘扫描
    DIS_SEG(); //数码管显示
    }
    return 0;

}
//定时器1
void timer1_() interrupt 3
{  
    TH1=(65536-50000)/256;
    TL1=(65536-50000)%256;
    count++;
    if(count>20)
        {
            count=0;
            miao++;
            if(miao==60)        //秒
            {
                miao=0;
                fen++;
                if(fen==60)     //分
                {
                    fen=0;
                    shi++;
                    if(shi==24) //时
                    {
                        shi=0;
                    }  
                }
            }
    }
}

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值