单片机课设:时钟

发布者:心语如画最新更新时间:2016-11-22 来源: eefocus关键字:单片机  时钟 手机看文章 扫描二维码
随时随地手机看文章

分别通过数码管显示时分秒,key0按下停止计数,进入调整时间状态,之后按下key1分钟加1,按下key2小时加1,再按下key0继续计数。

单片机课设:时钟 - Dr - 蓦清阁

 

#include

#define uchar unsigned char  

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9共阴

#define dula P0//数码管段选

#define wela P2 //数码管位选

//定义按键

sbit Key0=P1^0;//时间停止等待调整,恢复计数

sbit Key1=P1^1;//调整分钟,加1

sbit Key2=P1^2;//调整小时,加1

//定义秒,分,时,秒的个位,十位,分的个位,十位,时的个位,十位

uchar sec,min,hour,sec_ge,sec_shi,min_ge,min_shi,hour_ge,hour_shi;

uchar byCounter;//中断次数,20次为1s(500ms定时)

/*****************************函数声明************************************/

void init();

void increase();

void disp();

void delay(uchar);

void time_modify();

/****************************主函数***************************/

void main()

{

 init();//初始化 

 while(1)

 {

  TR0=1;//开定时器

  disp();//显示

  time_modify();//调整时间

 }

}

/*******************************初始化****************************/

void init()

{

 wela=0;

 sec_ge=sec_shi=0;

 min_ge=min_shi=0;

 hour_ge=hour_shi=0;

 sec=min=hour=0;

 byCounter=0;

 TMOD=0x01;//定义定时器0工作与方式1

 TH0=(65536-50000)/256; //定时器赋初值

 TL0=(65536-50000)%256;

 EA=1;//开总中断

 ET0=1;//开T0中断

}

/******************************延时**********************************/

void delay(uchar x)

{

    uchar i,j;

    for(i=x;i>0l;i--)

      for(j=255;j>0;j--);

}  

/****************************中断***********************************/

 void t0()interrupt 1 

{

 TH0=(65536-50000)/256;//重赋初值

 TL0=(65536-50000)%256;

 byCounter++;

 if(byCounter==20)//到了1s

 {

   byCounter=0;

 increase();//计数加1

 }

}

/****************************计数加1***********************************/

void increase()

{

   sec++;    //秒加1

   if(sec==60)//如果秒为60,则清零,分加1

   {

    sec=0;

    min++;

   }

   if(min==60)//如果分为60,则清零,时加1

   {

    min=0;

    hour++;

   }

   if(hour==24)//如果时为24,则清零

   {

    hour=0;

   } 

}

/****************************显示***********************************/

    void disp()

{

 sec_ge=sec%10;//秒的个位和十位

 sec_shi=sec/10;

 min_ge=min%10;//分的个位和十位

 min_shi=min/10;

 hour_ge=hour%10;//时的个位和十位

 hour_shi=hour/10;

 //循环扫描 

 wela=0xDF;

 dula=table[hour_shi];//时的十位

 delay(10);

 wela=0xEF;

 dula=table[hour_ge];//时的个位

 delay(10);

 wela=0xF7;

 dula=table[min_shi];//分的十位

 delay(10);

 wela=0xFB;

 dula=table[min_ge];//分的个位

 delay(10);

 wela=0xFD;

 dula=table[sec_shi];//秒的十位

 delay(10);

 wela=0xFE;

 dula=table[sec_ge];//秒的个位

 delay(10); 

}

/*****************************调整时间*********************************/

void time_modify()

{

  uchar flag=0;

  if(Key0==0)//如果Key0按下

  {

   while(Key0==0)//等待按键放开

   {

   disp();

   }

     flag=1;//标志位置1

     while(flag)//当标志位为1时才能进行时间调整

    {

     TR0=0;//定时器停止

     disp();//显示停止时的时间

     if(Key0==0)//如果Key0按下

     {

  while(Key0==0)//等待按键放开

  {

  disp();

  }

       flag=0;//标志位清零

     }

     if(Key1==0)//如果Key1按下

 {

 while(Key1==0)//等待按键放开

   {

  disp();

   }

  min++;

 if(min==60)

          min=0;

 }

 if(Key2==0)//如果Key2按下

 {

 while(Key2==0)//等待按键放开

   {

  disp();

    }

  hour++;

 if(hour==24)

          hour=0;

 }

    }

 }

}


关键字:单片机  时钟 引用地址:单片机课设:时钟

上一篇:89c51按键选择计数模式通过数码管显示
下一篇:关于IO口模拟SPI

推荐阅读最新更新时间:2024-03-16 15:21

51单片机玩转物联网基础篇01-开发环境搭建
前言 上至航天,下至儿童玩具,凡事沾一点智能的东西,都离不开单片机的身影…,本文开始,我们学习STC89C52单片机,这款单片机属于8051系列单片机,51单片机作为入门级单片机不仅在教学实验中应用广泛,在实际项目中应用亦是十分广泛。 一、基础知识 1.什么是单片机? 单片机是一个单片微型计算机,由中央处理器CPU、数据存储器RAM、程序存储器ROM、输入/输出设备(键盘、显示屏等)等集成到一块芯片上组成。 2.单片机能做什么? 前言中开篇便比较好的阐释了单片机的功能,凡是沾点智能的影子的东西,都离不开单片机的身影,尤其是当下物联网正发展的如火如荼,单片机又迎来新的春天,目前智能仪表、智能小家电用的比较多的便是51单片机+
[单片机]
51<font color='red'>单片机</font>玩转物联网基础篇01-开发环境搭建
飞思卡尔单片机RAM与flash相关问题
最近在做飞思卡尔16位单片机的在线升级bootloader程序。有2个问题不太清楚,请教下论坛里的高人。 1.bootloader程序中,对存放应用程序的flash空间进行擦除和写入新的应用程序以完成升级。比较特别的是,需要将flash操作代码拷贝到ram中执行,这是为什么?bootloader程序所在flash空间设置为被保护状态,不会误擦除,而且运行到哪个函数自然会把函数压栈到RAM里执行吧?为什么还要特地拷贝到RAM里呢? 2.单片机上电初始化后,RAM存储初始化全局变量,这些全局变量是从调试器烧进去的S19文件中获取的吗?每次程序都是从bootloader的main函数开始执行,确定不是升级状态后跳转到应用程序重映射的re
[单片机]
仪表盘和车身控制的应用设计
近年来,在汽车性能方面,除了要求对诸如驾驶、转向和停车等驾驶功能加以改进外,还要求对安全性、舒适性和环保性等相关性能加以提高。虽然内置式微控制器最近为众多汽车系统所用,但是为了将来能够实现更安全、更舒适和更环保的系统,对它们进行性能和功能的改进将至关重要。 产品特性 面向更安全、更舒适且更环保的系统:富士通开发了内置“FR81S”专用32位高性能CPU内核的MB91770系列和MB91725系列新型微控制器,能够控制新一代汽车系统。仪表盘控制是MB91770系列的主要应用领域,而车身控制(空调、BCM等)则是MB91725系列的主要应用领域。   新型内置式高性能32位CPU内核“FR81S”:这款产品采用FR
[汽车电子]
仪表盘和车身控制的应用设计
PIC单片机进行AD转换的设计
AD转换 我们先看看R1和R2,R2是个可调电阻如果我们将R2变大RA1这个管脚上的电压就越大。R2变小RA1这个管脚上的电压就越小。那单片机是怎么知道电压变化的。这就需要AD转换。就是将模拟量转换成数字量。 PIC单片机如何表示电压 PIC用十位二进制位的数来表示电压,也就是数值0~1023来表示电压。那比如现在这个数值是400那这代表多少的电压?这就要根据参考电压来确定了。 比如我们设置正参考电压为3.3V ,当输入的电压为0时,数值就为0。当输入的电压为3.3V时,数值就是1023. 那如果输入的电压是1.2V代表多少电压。 首先,先算出一个数值代表多少的电压 3.3V除以1023 约等于 0.003V 。
[单片机]
PIC<font color='red'>单片机</font>进行AD转换的设计
基于32位单片机MC68HC376的高可靠性系统设计方案
  引言   随着工业技术的不断发展,对单片机控制的要求也越来越高,需要单片机具备更高的反应速度和更强的数据处理能力,各种高性能的新型单片机得到了迅猛的发展和应用。单片机上主要是高速的数字信号,弱信号很容易受到外界的电磁干扰,同时,单片机系统也会发生掉电、死循环等问题。在工业控制场合,一旦控制发生错误,将会造成难以估计的损失。因此,如何提高控制的可靠性是长期以来的一个重要问题。本文介绍了应用32位高性能单片机MC68HC376的一种实际开发方案,同时重点讨论了提高系统可靠性的设计和实现方法。   MC68HC376是Motorola公司推出的一种新型的32位高性能单片机,具有极强的数据处理、逻辑运算和信息存储能力,且支持BDM
[单片机]
基于32位<font color='red'>单片机</font>MC68HC376的高可靠性系统设计方案
51单片机设计的电子密码锁
该程序是基于51单片机设计的电子密码锁,功能较为简单,目前仅有修改密码和检测这一功能,以下是操作过程 运行仿真的初始界面 左边矩阵按键从左边第一行第一列起为0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f 按下按键后界面如下,当四位数码管都显示后,按下矩阵键盘上任意按键确认密码 密码错误D1红灯亮起,密码正确D2绿灯亮起 当按下独立按键时,中断触发,进入密码修改,此时界面如同初始界面,输入原始密码,原始密码正确,绿灯亮起,等待输入新密码,此时界面显示原始密码。原始密码错误红灯亮起,退出修改,返回初始状态。 新密码输入会将原始密码覆盖,输入完成红绿灯同时亮起。 1s后返回初始界面,
[单片机]
51<font color='red'>单片机</font>设计的电子密码锁
51单片机学前预备知识
一.单片机的概念: 在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构成了单芯片微型计算机,即单片机。 二.单片机的用途: 工业自动化:数据采集,测控技术; 智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等; 消费类电子产品:洗衣机、电冰箱、空调机、手机等; 凡是与控制或简单计算有关的电子设备都可以用单片机来实现,再根据具体实际情况选择不同性能的单片机,如:atmel,stc,pic,avr,凌阳,80C51,arm等。 三.怎么学单片机: 实践第一;补充必要的理论知识,即缺什么补什么;做工程项目积累经验。(可在网络上搜索些题目,也可自己有什么想法大胆的去试验。)。 四.为什么选择51
[单片机]
基于单片机的功率直流开关电源的设计
1 引言 直流稳压电源已广泛地应用于许多工业领域中。在工业生产中(如电焊、电镀或直流电机的调速等),需要用到大量的电压可调的直流电源,他们一般都要求有可以方便的调节电压输出的直流供电电源。目前,由于开关电源 效率高,小型化等优点,传统的线性稳压电源、晶闸管稳压电源逐步被直流开关稳压电源所取代。开关电源主要的控制方式是采用脉宽调制集成电路输出PWM 脉冲,采用模拟PID调节器进行脉宽调制,这种控制方式,存在一定的误差,而且电路比较复杂 。本文设计了一种以ST 公司的高性能单片机μpsd3354 为控制核心的输出电压大范围连续可调的功率开关电源,由单片机直接产生PWM 波,对开关电源的主电路执行数字控制,电路简单,功能强大 。
[单片机]
基于<font color='red'>单片机</font>的功率直流开关电源的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved