0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机实现闹钟的程序设计

Wildesbeast ? 来源:单片机教程网 ? 作者:单片机教程网 ? 2020-06-21 11:04 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这个是在之前的电子时钟上功能的扩展,主要加入闹钟模块。即到达预定时间响铃一分钟,一分钟后自动停止,也可以按下已设定的键实现手动停止。

数码管方面的学习就到此为此吧,下一步是对液晶显示的学习。

单片机闹钟程序设计如下:

#i nclude《reg51.h》

#define uchar unsigned char

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管数字编码

uchar i,j,k,second,tcount,minute,hour,tminute,thour,ring;

sbit beep=P2^6;sbit S2=P3^4;

//---------------------------------------------------延时子程序,大约延时 n MS

delay(uchar n)

{

for(j=n;j》0;j--)

for(k=125;k》0;k--);

}

//---------------------------------------------------中断子程序

void timer0() interrupt 1 using 0

{

TH0=(65536-50000)/256; //中断设置初始化

TL0=(65536-50000)%256;

tcount++;

if(tcount==20) //满1秒

{tcount=0;second++;beep=0; //秒数加1

if(second==60) //满1分

{second=0;minute++; //分数加1,秒数归零

if(minute==60) //满1小时

{

minute=0;hour++; //小时数加1,分数归零

if(hour==24)

{hour=0;}

}

}

}

}

void timer1() interrupt 3 using 1

{

TH1=0x3c; //中断设置初始化

TL1=0xb0;

if(minute==tminute & hour==thour & ring==1) {beep=0;}//到预设时间自动响铃,持续一分钟后自己关闭

if(S2==0)

{

ring=0; //铃声中断

}

}

//---------------------------------------------------

void main()

{tminute=1;thour=0; //预置响铃时间

second=55;minute=0;hour=0; //给电子时钟赋初值,即启动时显示的时间

ring=1; //启动响铃功能

TH0=(65536-50000)/256; //中断设置初始化

TL0=(65536-50000)%256;

EA=1;ET0=1;TMOD=0x21;TR0=1; //开中断总开关,计数器0允许中断,设置中断模式,启动计数器0

ET1=1;TR1=1;

while(1) //死循环,进入显示,主要是动态显示原理

{

P0=table[(second%10)];

P2=0xdf;

delay(5);

P0=table[(second/10)];

P2=0xef;

delay(5);

P0=table[(minute%10)];

P2=0xf7;

delay(5);

P0=table[(minute/10)];

P2=0xfb;

delay(5);

P0=table[(hour%10)];

P2=0xfd;

delay(5);

P0=table[(hour/10)];

P2=0xfe;

delay(5);

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6069

    文章

    45107

    浏览量

    654266
  • 计数器
    +关注

    关注

    32

    文章

    2294

    浏览量

    96721
  • 数码管
    +关注

    关注

    32

    文章

    1889

    浏览量

    92937
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要
    的头像 发表于 07-25 11:39 ?149次阅读

    单片机怎么烧程序

    单片机程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机
    的头像 发表于 07-23 11:47 ?248次阅读

    STC单片机范例程序

    电子发烧友网站提供《STC单片机范例程序.zip》资料免费下载
    发表于 06-04 16:27 ?5次下载

    C51单片机及C语言知识点必备秘籍

    定时/计数器实验 21:单片机串行口介绍 系列四 22:单片机串行口通信程序设计 23:LED 数码管静态显示接口与编 24:动态扫描显示接口电路及程序 25:
    发表于 05-15 14:00

    基于51单片机的简易抢答器

    、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。资料内容仿真实现(protues8.7) 本设计利用protues8.7软件实现仿真设计,具体
    的头像 发表于 10-22 14:13 ?724次阅读
    基于51<b class='flag-5'>单片机</b>的简易抢答器

    基于51单片机的手动数字时钟

    具体实现功能由51单片机+8位共阴数码管+独立按键构成。具体功能:(1)利用数码管显示时分秒,显示格式为“时-分-秒”;(2)利用6个按键控制时、分、秒,设定好后自动开始时钟显示;(3)设置秒复位
    的头像 发表于 10-22 14:12 ?698次阅读
    基于51<b class='flag-5'>单片机</b>的手动数字时钟

    基于51单片机的遥控开关仿真(双机通信)

    灵活、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。资料内容仿真实现(protues8.7)本设计利用protues8.7软件实现仿真设计,具体如图。
    的头像 发表于 10-22 14:12 ?895次阅读
    基于51<b class='flag-5'>单片机</b>的遥控开关仿真(双机通信)

    单片机怎么写入程序

    程序通常涉及以下几个步骤: 选择单片机和开发环境 : 确定项目需求,选择合适的单片机型号。 安装相应的开发环境,如Keil、IAR、MPLAB等。 硬件连接 : 将单片机连接到开发板或
    的头像 发表于 10-21 11:21 ?2634次阅读

    keil可以读出单片机程序

    Keil是一款广泛应用于单片机程序开发的软件,它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。然而,关于Keil是否能直接“读出”单片机程序
    的头像 发表于 09-02 10:32 ?2324次阅读

    单片机烧录程序用什么软件

    单片机烧录程序单片机开发过程中的一个重要环节,涉及到将编写好的程序代码通过烧录器写入单片机的ROM中,以
    的头像 发表于 09-02 10:05 ?3686次阅读

    单片机烧录程序可以重新烧吗

    单片机(Microcontroller Unit, MCU)是一种集成电路芯片,它将计算机的CPU、存储器、输入/输出接口等集成在一块芯片上,用于控制各种电子设备。单片机烧录程序是指将编写
    的头像 发表于 09-02 10:04 ?3435次阅读

    单片机烧录程序的线比单片机上的少还能烧录吗

    单片机烧录原理 单片机烧录是指将编写好的程序代码通过一定的方式传输到单片机的存储器中,使其能够按照程序的指令运行。这个过程通常需要使用烧录器
    的头像 发表于 09-02 09:54 ?1214次阅读

    单片机烧录程序的串口线怎么连接

    单片机开发过程中,烧录程序是一项重要的工作。而烧录程序通常需要使用串口线来实现。本文将介绍单片机烧录
    的头像 发表于 09-02 09:50 ?4350次阅读

    单片机烧录程序的基本步骤是什么

    单片机烧录程序单片机开发过程中非常重要的一步,它涉及到将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使
    的头像 发表于 09-02 09:47 ?3022次阅读

    stm32单片机烧录程序会擦除原来的程序

    在STM32单片机烧录程序的过程中, 通常情况下会擦除原来的程序 ,并将新程序写入单片机的闪存(Flash)中。这一过程是通过烧录工具(如S
    的头像 发表于 09-02 09:42 ?4964次阅读