51单片机完成时钟形式显示

来源:互联网 发布:北京阿里云公司在哪 编辑:程序博客网 时间:2024/05/16 05:40

题目要求:
用四个数码管完成时钟形式显示。
如显示1 2. 0 0
然后一个按键控制暂停并闪烁,另一个按键控制分钟加1
要求:当第一个按键不按下时,第二个按键无法完成加1动作。
仿真图,如下:
这里写图片描述
按键K1控制暂停闪烁,开始,K2加1
这里需要说明一下,因为没有教到时钟,时钟部分,将在下一个微博实现,其实很简单,用时钟中断即可完成,那样的时钟比较准确。

写代码之前,要仔细看仿真的接口问题,这样才能写好代码,代码如下:

#include <reg51.h>/*  按下key1 暂停并闪烁,再按一下 继续,  key2按下加1,但是key2必须在key1按下后操作*/unsigned char c[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; // 0-9sbit key1=P1^0;sbit key2=P1^1;int hour;   //  小时int min;    //  分钟void delay(){    int i,j;    for(i=1;i<10;i++)    {        for(j=1;j<100;j++);    }}void display(){    P2=0X7F;    P0=c[hour/10];    delay();    P2=0XBF;    P0=c[hour%10]&0X7F; //  第二个数码管显示时,需要有点,要注意    delay();    P2=0XDF;    P0=c[min/10];    delay();    P2=0XEF;    P0=c[min%10];    delay();    P2=0XFF;    }void delay_2(){    int i,j;    for(i=1;i<2;i++)    {        for(j=1;j<10;j++)        {            display();        }    }}void delay_3(){    int i,j;    for(i=1;i<20;i++)    {        for(j=1;j<200;j++);    }}void delay_4(){    int i,j;    for(i=1;i<100;i++)    {        for(j=1;j<100;j++);    }}void display_2(){    for(hour=0;hour<24;hour++)    {        for(min=0;min<60;min++)        {            display();            if(0 == key1)            {                delay_3(); // 消抖                if(0 == key1)                {                    while(1)                    {                        display();                        delay_4();                        if(0 == key1)                        {                            delay_3();//消抖                            if(0 == key1)                            {                                break; // 再按key1退出闪烁                            }                        }                        if(0 == key2)                        {                            delay_3();//消抖                            if(0 == key2)                            {                                min++;// 分钟加1                                if(60 == min)                                {                                    min=0;                                }                            }                           }                       }                }               }            delay_2();        }    }}void main(){    while(1)    {        display_2();                }}

结果如下:
这里写图片描述

实验结果,不要截图,希望大家下载运行实现

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 proe约束冲突了怎么办 中午考试想睡觉怎么办 喝了红茶睡不着怎么办 考试前状态不好怎么办 考前紧张睡不着觉怎么办 通宵失眠第二天怎么办 考试前睡不着觉怎么办 一到晚上睡不着怎么办 明天考试听力差怎么办 天天晚上睡不着觉怎么办 因紧张睡不着觉怎么办 房卡找不到了怎么办 马代不会英文怎么办 剩下的蒸米饭怎么办 临时牌照违法了怎么办 打12345不管用怎么办 省政府改变了中央文件怎么办 应聘时学历不够怎么办 做导游学历不够怎么办 市长热线打不通怎么办 12315网站不受理怎么办 法律文书生效前转后财产怎么办 打12345投诉没用怎么办 单位医保停了怎么办 iphonex开不了机怎么办 会计证三年没检怎么办 银行工作人员态度不好怎么办 生殖保健服务证怎么办 关机后自动开机怎么办 大连卖房户口怎么办 在警务室被辅警骂了怎么办 上海微信怎么办居住证 公共自行车卡消磁怎么办 港澳通行证到期了怎么办 徐海路大桥对面怎么办 没有买公务机票怎么办 电脑黑屏怎么办重启也没有用 航空公司原因航班取消怎么办 政府采购2次废标怎么办 车卖给别人车牌怎么办 医用耗材中标后怎么办