基于单片机的电子时钟课程设计报告

时间:2024.3.27

目录

一、引言········

二、设计课题·········

三、系统总体方案·········

四、系统硬件设计······
1.硬件电路原理图

2.元件清单

五、系统软件设计·········

   1.软件流程图

   2.程序清单

六、系统实物图········

七、 课程设计体会········

八、参考文献及网站·········

九、附录·········

一.                                         引言

     单片机因将其主要组成部分集成在一个芯片上而得名,就是把中 央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。

基于单片机设计的数字钟精确度较高, 因为在程序的执行过程中, 任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。

数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由

于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。

本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

二.设计课题:基于单片机的数字时钟设计

三.系统总体方案

 

图2.1 整体设计思路

针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

四、系统硬件设计

1.硬件电路原理图

(1)复位电路

 单片机有两种基本复位方式:即上电复位和按键复位。本次设计用按键复位,如下图所示,通过接通按钮开关,使单片机进入复位状态。本次按键复位清零。各元件参考下图。

 

(2)时钟电路

    

(3)键盘电路

按键处理设置为:

如没有按键,则时钟正常走时。

按下K0键:进入调分状态,时钟停止走动;

K1K2键:可进行加1和减1操作;

继续按K0键:可分别进行分和小时的调整;

最后按K0键:退出调整状态,时钟开始计时运行   

     电路图如下

(4)显示电路

    本次数码管采用共阴极8段式LED数码管QH5011AS。该数码管参数见附录本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。数码管显示的信息用8个内存单元存放,这8个内存单元称为显示缓冲区,其中秒个位和秒十位、分个位和分十位、时个位和时十位分别由秒数据、分数据和小时数据分拆得到。在本系统中数码管显示采用软件译码动态显示。在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码表中查出所显示的信息的字段码,从P0口输出,同时在P2口将对应的位选码输出选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。

同时采用NPN型三极管,三极管接法如下图,其中当三极管基极高电平时,数码管共阴极为高电平,三极管基极接低电平时,数码管共阴极为低电平,该位选中。还采用了74LS373锁存器,用来缓存输入数码管段选的高低电平,提高电路稳定性。

电路图如下:

(5)总原理图:

   

2.元件清单

五、 系统软件设计

    1.软件流程图

   (1)主程序执行流程如图,主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序

基于单片机的电子时钟课程设计报告 

2)中断服务流程图

基于单片机的电子时钟课程设计报告

                        中断服务程序流程图

3)按键扫描流程图

基于单片机的电子时钟课程设计报告

4 )显示函数流程图

基于单片机的电子时钟课程设计报告

2.程序清单

  采用C语言描写

  //采用8位LED软件译码动态显示程序

//使用89C51单片机,12MHZ晶振,P0输出字段码,P2输出位选码

//用共阴极LED数码管,KEY0为调时位选择键,KEY1为加1键,KEY2为减1

#include

#define char unsigned char

char code

dis_7[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

//共阴极LED数码管"0~9","灭"和"-"的字段码

char code scan_con[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

//位选择码

char data dis[8]={0x00,0x00,0x0b,0x00,0x00,0x0b,0x00,0x00};

//显示缓冲区,时,分,秒初始为0,0x0b为"-"的编码

char data timedata[3]={0x00,0x00,0x00};

//分别为秒,分和小时的值

char data ms50=0x00,con=0x00,con1=0x00,con2=0x00;

 

sbit  key0=P1^0;

sbit  key1=P1^1;

sbit  key2=P1^2;

//1ms延时函数

 

delay1ms(int t)

{

  int i,j;

  for(i=0;i

     for(j=0;j<120;j++)

        ;

}

//按键处理函数

keyscan()

{

EA=0;

if(key0==0)

   {

   delay1ms(10);

   while(key0==0);

   con++;

   TR0=0;

   ET0=0;

   if(con>=3)

   {con=0;

    TR0=1;

       ET0=1;}

       }

if(con!=0)

   {

   if(key1==0)

     {

        delay1ms(10);

        while(key1==0);

        timedata[con]++;

        if(con==2)con1=24;

         else con1=60;

         if(timedata[con]>=con1)

          {timedata[con]=0;}

         }

   }

if(con!=0)

{

  if(key2==0)

  {

  delay1ms(10);

  while(key2==0);

  timedata[con]--;

  if(con==2)con2=23;

  else con2=59;

  if(timedata[con]<=0)

     {timedata[con]=con2;}

  }

}

EA=1;

}

//数码管显示函数

 

scan()

{

char k;

dis[0]=timedata[0]%10;

dis[1]=timedata[0]/10;

dis[3]=timedata[1]%10;

dis[4]=timedata[1]/10;

dis[6]=timedata[2]%10;

dis[7]=timedata[2]/10;

for(k=0;k<8;k++)

   {

   P0=dis_7[dis[k]];

   P2=scan_con[k];

   delay1ms(1);

   P2=0x00;

   }

}

//主函数

main()

{

 TH0=0x3c;

 TL0=0xb0;

 TMOD=0x01;

 ET0=1;

 TR0=1;

 EA=1;

 while(1)

     {

        scan();

        keyscan();

        }

}

//定时器、计数器T0中断服务函数

void time_intt0(void)  interrupt 1

{

ET0=0;

TR0=0;

TH0=0x3c;

TL0=0xb0;

TR0=1;

ms50++;

if(ms50==20)

  {

   ms50==0x00;

   timedata[0]++;

   if(timedata[0]==60)

     {

         timedata[0]=0;

         timedata[1]++;

         if(timedata[1]==60)

            {

                timedata[1]=0;

                timedata[2]++;

                if(timedata[2]==24)

                  {

                      timedata[2]=0;

                     }

               }

        }

  }

  ET0=1;

}

六、 系统实物图

七.课程设计体会

    这次电子技术课程设计,我很用心的去完成,当总原理图绘好的那一刻,心里有说不出的满足感。从这次课程设计中,我真正学到了很多有用的知识。

       拿到课题后,我首先将《单片机原理与应用及C51程序设计》中有关本次设计的内容复习了一遍,比如七段译码显示器、计数器、振荡器等等。然后根据设计要求,我去图书馆查阅了相关的资料,对整体框架做了一个初步的了解。做完准备工作后就正式开始设计与绘图。先要将没每一功能模块设计出来,再整体排版、连接。

这次设计让我熟练掌握了课本上的一些理论知识,在这次课程设计中,反复查找资料,发现电路中的错误和改善电路中的错误,让我将课本上的理论知识重新过了一遍。

  回过头来一想,其实设计这些电路也并不是很困难,而且还十分有意思,特别是用protues将电路图模拟成功后很有成就感。

       课程设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。它不仅加深了我对单片机课程的理解,还让我感受到了设计电路的乐趣。在这次设计中,我一点也不怕麻烦,反复设计、绘图与修改,就是希望能把这次课程设计做好。因此对我来说,这次课程设计是非常有意义的。

八、 参考文献及网站

参考书籍:

1.《单片机原理与应用及C51程序设计》(第二版)   

                            谢维成杨加国    

  2.《单片机基础》                   李广第

3.《单片机原理及应用实验与设计指导书》

                            罗维平  刘丰

参考网站:

www.21ic.com

www.stcmcu.com

  九、附录

更多相关推荐:
单片机电子时钟课程设计报告

基于单片机电子时钟的设计绪论单片机自20世纪70年代问世以来以其极高的性能价格比受到人们的重视和关注应用很广发展很快单片机体积小重量轻抗干扰能力强环境要求不高价格低廉可靠性高灵活性好开发较为容易由于具有上述优点...

单片机电子时钟的设计报告

单片机电子时钟的设计目录1引言12设计任务与要求221设计题目222设计要求23系统的功能分析与设计方案331系统的主要功能332系统的设计方案333数码管显示工作原理434电路硬件设计5341设计原理框图53...

51单片机电子时钟课程设计报告

JINGCHUUNIVERSITYOFTECHNOLOGY单片机原理及应用课程设计报告题目电子时钟专业电气工程及其自动化班级20xx级电工2班学号20xx401020xx2姓名王贞指导教师邹云峰提交日期20xx...

单片机课程设计数字钟实验报告

单片机课程设计电子钟一实现功能1能够实现准确计时以数字形式显示时分秒的时间2小时以24小时计时形式分秒计时为60进位能够调节时钟时间3闹钟功能一旦走时到该时间能以声或光的形式告警提示4能够实现按键启动与停止功能...

单片机课程设计报告—LED显示电子钟

单片机原理及其接口技术课程设计报告课题LED显示的电子钟姓名学号院系自动控制与机械工程学院班级指导教师20xx年6月目录一课程设计目的3二课程设计要求3三设计内容4四硬件设计需求51硬件系统各模块功能51单片机...

单片机课程设计实验报告_LCD电子时钟

单片机原理与应用课程名称单片机原理与应用设计题目电子钟院系电子信息工程学院班级自动化设计者全宏宇指导教师一设计目标LCD显示电子钟的基本功能1实现时钟功能2实现闹铃功能3实现秒表功能4具有一定的计时精度LCD显...

单片机应用课程设计实验报告-电子时钟

键入文字键入文字键入文字单片机应用课程设计电子时钟一设计任务及要求电子时钟利用实验板上4个LED数码管设计带有闹铃功能的数字时钟要求1在4位数码管上显示当前时间显示格式时时分分2由LED闪动做秒显示3利用按键可...

单片机电子时钟实验报告

课程设计报告设计题目:电子时钟设计指导教师:姓名:学号:班级:专业:日期:20**-1-5控制电路的C语言源程序10单片机电子时钟摘要:单片机即单片微型计算机。(Single-ChipMicrocomputer…

单片机电子时钟课程设计报告

课程设计报告20xx20xx学年第二学期题目系别电子与电气工程系专业电子信息工程班级学号姓名指导教师完成时间20xx年6月13日评定成绩目录一二三四五六设计的目的3设计的内容与要求3设计方案3硬件软件设计5设计...

51单片机电子时钟课程设计实验报告

单片机原理与应用课程设计总结报告题目单片机电子时钟的设计与实现设计人员学号班级指导老师日期目录1题目与主要功能要求22整体设计框图及整机概述33各硬件单元电路的设计参数分析及原理说明34软件流程图和流程说明45...

单片机电子时钟课程设计报告-自动化专业

单片机原理及应用课程设计专业自动化设计题目电子时钟班级学生姓名学号10指导教师分院院长教研室主任电气工程学院一课程设计任务书1课程设计项目电子时钟LED显示2设计内容1以MCS51系列单片机为核心器件组成电子时...

单片机电子时钟课程设计实验报告

单片机实践报告题目电子时钟设计专业学生姓名王健吉准考证号指导教师20xx年10月一课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合培养我们综合运用电子课程中的理论知识解决实际性问题的能力让我...

单片机电子时钟课程设计报告(31篇)