网站首页  词典首页

请输入您要查询的论文:

 

标题 易于激发兴趣的电子钟制作
范文

    王战

    摘 要:当前学习单片机的学生相当多,为激发初学者学习单片机的兴趣,本文介绍一款很有趣味性的小型电子钟的设计和制作过程,非常适合电子制作爱好者们业余仿作,以锻炼动手能力和操作技能、激发和培养学习兴趣和实践热情。

    关键词:激发;单片机;电子钟

    中图分类号:TP36 文献标识码:A

    “教、学、做”,突出“做”。通过“做”,让学生对学习专业技术感兴趣,通过“做”,让学生提高动手能力。如何提高学生学习的积极性,提高学生的动手实操能力,现介绍一种易操作,又能激发学生兴趣的电子钟制作方法,给无线电爱好的同学参考。

    本范例是采用单片机内部时钟信号作为触发源的一款简易型电子钟,采用8位数码管显示,其电路简单,具备电子钟的基本功能。可惜的就是存在时间误差较大及无停电走时及记忆功能。

    1 控制电路组成及其工作原理

    如图1 所示为单片机内部触发源数码管显示简易电子钟Protues虚拟电路图。其中电路主要由 74245芯片驱动的8位共阳数码管显示电路、3位独立简易型按键和蜂鸣器驱动电路组成。

    注:本电路对晶振频率有着严格的要求,本范例编程时是按12MHz晶振来设计的。

    本范例是使用定时器T0以50ms中断1次同时以20次中断作为1秒钟来实现时间单位的控制。子程序模块除了显示、蜂鸣器控制常规程序模块以外,主要包含50ms及1s单位时间中断程序模块、时分秒进位处理程序模块、时、分和秒时间设置模块。

    1.1 控制程序

    主程序中是通过控制模式代码寄存器GN变化于0~3间分别代表时间显示模式、小时设置模式、分钟设置模式和秒钟设置模式。在主程序中控制扫描计数器“biao”每扫描1轮(约8位数码管扫描显示1轮的时间)加1,并达到30时清零,用以在时间设置时控制对应数据闪烁显示。

    请认真阅读“//”后的中文注释达成对每行语句含义的初步认识。

    #include

    #define uchar unsigned char

    #define uint unsigned int

    #define WM_OUT P2

    #define DM_OUT P0

    sbit SET=P1^7; sbit jia=P1^5;sbit jian=P1^6;

    sbit BEEP=P3^7;

    uchar GN=0;

    uchar biao;

    uchar shi,fen,miao,count_50ms;

    void delay(uint ms)

    uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,

    0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xbf};

    uchar code wm[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

    uchar time[8];

    void Beep()

    void disp(uchar *p)

    void chuli()

    {

    if(miao==60)

    {

    fen++;

    miao=0;

    if(fen==60)

    {

    shi++;

    fen=0;

    if(shi==24)shi=0;

    }

    }

    time[0]=shi/10;

    time[1]=shi%10;

    time[2]=17;

    time[3]=fen/10;

    time[4]=fen%10;

    time[5]=17;

    time[6]=miao/10;

    time[7]=miao%10;

    }

    void shi_hm()

    {

    if(!jia)

    {

    Beep();

    if(++shi==24)shi=0;

    while(!jia)disp(time);

    }

    if(!jian)

    {

    Beep();

    if(--shi==255)shi=23;

    while(!jian)disp(time);

    }

    if(biao>15){time[0]=16;time[1]=16;}

    disp(time);

    }

    void fen_hm()

    {

    if(!jia)

    {

    Beep();

    if(++fen==60)fen=0;

    while(!jia)disp(time);

    }

    if(!jian)

    {

    Beep();

    if(--fen==255)fen=59;

    while(!jian)disp(time);

    }

    if(biao>15){time[3]=16;time[4]=

    16;}

    disp(time);

    }

    void miao_hm()

    {

    if(!jia)

    {

    Beep();

    if(++miao==60)miao=0;

    while(!jia)disp(time);

    }

    if(!jian)

    {

    Beep();

    if(--miao==255)miao=59;

    while(!jian)disp(time);

    }

    if(biao>15){time[6]=16;time[7]=

    16;}

    disp(time);

    }

    void main()

    { TMOD=0X01;

    TH0=(65536-50000)/256;

    TL0=(65536-50000)/256;

    IE=0X82;

    TR0=1;

    while(1)

    {biao=(biao+1)%30;

    if(!SET)

    {GN=(GN+1)%4;

    Beep();

    while(!SET)disp(time);

    }

    chuli();

    if(GN==0)disp(time);

    else if(GN==1)shi_hm();

    else if(GN==2)fen_hm();

    else if(GN==3)miao_hm();

    }

    }

    void timer0()interrupt 1

    {

    TH0=(65536-50000)/256;

    TL0=(65536-50000)/256;

    if(++count_50ms==20)

    {

    miao++;count_50ms=0;

    }

    }

    以上电子钟制作制作方案,是我院实施“教、学、做”一体化教学模式,创新教育教学环境和培养学生的动手实操能力,在机电一体化专业开展的工学结合实践操作模式课程。

    参考文献

    [1]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001.

    }

    void miao_hm()

    {

    if(!jia)

    {

    Beep();

    if(++miao==60)miao=0;

    while(!jia)disp(time);

    }

    if(!jian)

    {

    Beep();

    if(--miao==255)miao=59;

    while(!jian)disp(time);

    }

    if(biao>15){time[6]=16;time[7]=

    16;}

    disp(time);

    }

    void main()

    { TMOD=0X01;

    TH0=(65536-50000)/256;

    TL0=(65536-50000)/256;

    IE=0X82;

    TR0=1;

    while(1)

    {biao=(biao+1)%30;

    if(!SET)

    {GN=(GN+1)%4;

    Beep();

    while(!SET)disp(time);

    }

    chuli();

    if(GN==0)disp(time);

    else if(GN==1)shi_hm();

    else if(GN==2)fen_hm();

    else if(GN==3)miao_hm();

    }

    }

    void timer0()interrupt 1

    {

    TH0=(65536-50000)/256;

    TL0=(65536-50000)/256;

    if(++count_50ms==20)

    {

    miao++;count_50ms=0;

    }

    }

    以上电子钟制作制作方案,是我院实施“教、学、做”一体化教学模式,创新教育教学环境和培养学生的动手实操能力,在机电一体化专业开展的工学结合实践操作模式课程。

    参考文献

    [1]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001.

    }

    void miao_hm()

    {

    if(!jia)

    {

    Beep();

    if(++miao==60)miao=0;

    while(!jia)disp(time);

    }

    if(!jian)

    {

    Beep();

    if(--miao==255)miao=59;

    while(!jian)disp(time);

    }

    if(biao>15){time[6]=16;time[7]=

    16;}

    disp(time);

    }

    void main()

    { TMOD=0X01;

    TH0=(65536-50000)/256;

    TL0=(65536-50000)/256;

    IE=0X82;

    TR0=1;

    while(1)

    {biao=(biao+1)%30;

    if(!SET)

    {GN=(GN+1)%4;

    Beep();

    while(!SET)disp(time);

    }

    chuli();

    if(GN==0)disp(time);

    else if(GN==1)shi_hm();

    else if(GN==2)fen_hm();

    else if(GN==3)miao_hm();

    }

    }

    void timer0()interrupt 1

    {

    TH0=(65536-50000)/256;

    TL0=(65536-50000)/256;

    if(++count_50ms==20)

    {

    miao++;count_50ms=0;

    }

    }

    以上电子钟制作制作方案,是我院实施“教、学、做”一体化教学模式,创新教育教学环境和培养学生的动手实操能力,在机电一体化专业开展的工学结合实践操作模式课程。

    参考文献

    [1]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/6 6:53:17