欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:10559064       资源大小:89.59KB        全文页数:28页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、单片机课程设计数字钟实验报告单片机课程设计:电子钟一、实现功能1、能够实现准确计时,以数字形式显示时、分、秒的时间。2、小时以24小时计时形式,分秒计时为60进位,能够调节时钟时间。3、闹钟功能,一旦走时到该时间,能以声或光的形式告警提示。4、能够实现按键启动与停止功能。5、能够实现整点报时功能。6、能够实现秒表功能。二、设计思路1、芯片介绍 VCC:电源。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入

    2、口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地

    3、址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT

    4、0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作

    5、外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLA

    6、SH编程期间,此引脚也用于施加12V编程电源(VPP)。2、显示电路 就时钟而言,通常可采用液晶显示或数码管显示。由于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器的接口要求较高,占用资源多。另外,89C2051本身无专门的液晶驱动接口,因此,本时钟采用数码管显示方式。数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。对于实时时钟而言,显示显然是另一个重要的环节。通常LED显示有两种方式:动态显示和静态显示。静态显示的优点

    7、是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。需要几个LED就必须占有几个并行口,比较适用于LED数量较少的场合。当然当LED数量较多的时候,可以使用单片机的串行口通过移位寄存器的方式加以解决,但程序编写比较麻烦。LED动态显示硬件连接简单,但动态扫描的显示方式需要占有CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式。 此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块

    8、:显示电路用6个共阴数码管分别显示,小时、分钟和秒,通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。针对要实现的功能,采用AT89S51单片机进行设计,AT89S51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又

    9、能便于添加各项功能。程序可分为闹钟的声音程序、时间显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序、整点报时等。运用这种方法,关键在于各模块的兼容和配合,以免各模块不匹配会出现意想不到的错误。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电

    10、路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。在已经正确的设计基础上,添加额外的功能!在设计的的过程中,主要采用分块设计的方法,进行分块调试在进行整体组合。在设计实时显示时间和秒表时主要是时间的计算,才能精确计时间,和两个定时器的优先级问题才能进行两个模块的切换。三、设计流程图保护现场重装定时器初值循环次数减1否满20次?是秒单元加1否60s到?是秒单元清0,分单元加1否60分到?是分单元清0,时单元加1否24小时到?是时单元清0恢复现场返回计时模块流程图四、设计功能模块1、时

    11、间调整模块s4按键按下(p1.3)进入时间调整状态,判断S4键,若再次按下开始进行小时调整,每次按下s4键时小时加一,若S4键未按下判断S0键(p1.4)是否按下,若S0键按下,分钟加一,若S0未按下,判断S1键,若s1键按下,返回主程序,进行时间与闹钟的切换。2、闹钟模块若S0键按下,开启闹钟,进入闹钟判断模块,若满足闹钟的分钟与时钟的分钟相等,并且闹钟的小时与时钟的小时相等,进入喇叭响应模块。S0键释放则关闭闹钟。3、秒表模块若S2键(P1.1)按下,进入秒表模块,显示秒表初始值。若S5键(p3.0)按下,显示秒表初始值并开始秒表计时。若弹起S5键则停止秒表计数并复位。若弹起S2键重新进行

    12、时间显示。4、整点报时模块26H中存放整点报时的标志位,若时间模块中存放分钟的地址中数为60,则将存放小时的数传递给A并使A自增1,若A不等于0,,进入喇叭响应模块,若A为0返回主程序。5、时钟定时模块定时50ms,定时为T0方式1,初始值TH0=3CH TL0=0B0H,X=216-50X0.001/0.000001=155366、秒表定时模块由于使用两个定时器,T0的自然优先级高于T1的,所以在执行秒表按键时,T1的优先级应高于T0,应对IP进行设置,使IP为08H。定时10ms,定时为T1方式1,初始值TH0=0FCH TL0=18H,X=216-10X0.001/0.000001=64

    13、5367、延时模块 延时25msDELAY: MOV R4,#015HDL00: MOV R5,#0FFHDL11: MOV R6,#9HDL12: DJNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00 RET四、proteus程序仿真图五、仿真结果分析通过S1、S0、S3和S4四个按键,对时间进行修改和闹钟的设置,S0控制闹钟的启动和停止。通过S2来进入秒表模式,按下S5进行秒表正确计时。弹起S5和S2进入时间显示。按下S1键显示闹钟,松开后显示时间;按 进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式

    14、,再按S3键闹钟的时加1,按S2分加1,调整结束后按下S1恢复正常显示。六、设计心得体会本次课程设计,即将告一段落,但收获却是弥足珍贵。一分耕耘,一分收获。部亲自去尝试,你很难去体验那份开心。我们经过了这半年对单片机由一无所知到逐步了解,现在开始了一些小的制作。课程设计是一项好的方向,让我们去自我提高,很有裨益。实验开始前,同组的同伴就开始了收集资料,尝试着去努力实现一些功能。起初,我对单片机知道很少,还是经过看看细节性的东西,才渐渐有些入门。当然,实验的过程中也遇到了许多的难题。1、实现电子钟的数码显示,在这一过程中,显示部分总是会出现这样那样的问题。2、按键问题我的设计中,大部分功能选择是

    15、通过按键开关实现的。在仿真中发现,调整数值时,有时按键反应太快,按一次,跳了几下,使设置时间很不方便。但是仿真多了之后,找到了按键(实际上是按鼠标)的节奏,对按键的掌控力提高了不少,不怎么会出现跳变的情况了。有些开关我采用了长按键的方式来防抖,效果不错,但是每次都要长按键,调整效率太低,我没有普及。本来想把所有的按键都加延时防抖电路,但仿真中感觉对键盘的控制力没提高多少。3、定时/计数器的使用问题。 在实验过程中多次运用到定时器T0T1,我们在使用时忽略了中断的优先级,从而使同级的中断存在时,而不能很好 的达到目的。程序: ORG 0000H LJMP START ORG 000BH LJMP

    16、 TIME ORG 001BH LJMP TIMEA;*初始化*START: MOV SP, #50H MOV 20H,#00H ;定义秒 MOV 21H,#00H ;定义分 MOV 22H,#00H ;定义时 MOV 23H,#01H ;定义闹钟分钟 MOV 24H,#01H ;定义闹钟小时 MOV 25H,#00H MOV 26H,#00H MOV 30H,#00H ;时间SECOND送显缓冲区 MOV 31H,#00H MOV 32H,#00H ;时间MINUTE送显缓冲区 MOV 33H,#00H MOV 34H,#00H ;时间HOUR送显缓冲区 MOV 35H,#00H MOV 3

    17、6H,#01H ;闹钟分钟送显缓冲区 MOV 37H,#00H MOV 38H,#01H ;闹钟小时十位送显缓冲区 MOV 39H,#00H ;闹钟小时个位送显缓冲区 MOV 50H,#00H ;按键次数 MOV 27H,#00H ;秒表最低两位 MOV 28H,#00H ;秒表秒计数单元 MOV 29H,#00H ;秒表分计数单元 MOV TMOD,#11H ;16位计数器 MOV TH0, #03CH ;赋初值 MOV TL0, #0B0H MOV TH1, #0FCH ;赋初值 MOV TL1, #018H MOV IE, #8AH ;中断允许 SETB TR0 ;启动T0 MOV R2

    18、,#14H MOV R1,#0AH MOV P2,#0FFH;*主程序*MAIN: JB P1.4,GB LCALL TIMEPRO ;调用闹钟判断GB: LCALL DISPLAY1 ;调用时间显示 JB P1.3,M1 ;P1.3=1时转移 S4没有按下 LCALL SETTIME ;调用SETTIME调时子程序 LJMP MAINM1: JB P1.2,M2 ;P1 g.2=1时转移S3 LCALL SETATIME ;调用SETATIME子程序 LJMP MAINM2: JB P1.0,M4 ;P1.01时转移 S1 LCALL LOOKATIME ;调用LOOKATIME显示闹钟子程

    19、序 LJMP MAIN M4: JB P1.1,M5 ;P1.11时转移 主程序 LCALL DISPLAY1 ;调用秒表显示 LCALL LOOK M5: LJMP MAIN ;*存时间程序*M7: MOV A,20H MOV B,#0AH DIV AB MOV 31H,A ;将A的低4位存入31单元 MOV 30H,B ;将A的高4位存入30单元 MOV A,21H MOV B,#0AH DIV AB MOV 33H,A ;将A的低4位存入33单元 MOV 32H,B ;将A的高4位存入32单元 MOV A,22H MOV B,#0AH DIV AB MOV 35H,A ;将A的低4位存入

    20、35单元 MOV 34H,BM8: RET;*秒表送出始值到显示缓冲区*MJ: MOV 27H,#00H MOV 28H,#00H MOV 29H,#00H MOV A,27H MOV B,#0AH DIV AB MOV 31H,A ;将A的低4位存入31单元 MOV 30H,B ;将A的高4位存入30单元 MOV A,28H MOV B,#0AH DIV AB MOV 33H,A ;将A的低4位存入33单元 MOV 32H,B ;将A的高4位存入32单元 MOV A,29H MOV B,#0AH DIV AB MOV 35H,A ;将A的低4位存入35单元 MOV 34H,BMK: RET

    21、;*延时子程序*LOOK: LCALL DISPLAY1 MM1: JNB P3.0,LER LCALL M7 LCALL MJ CLR TR1 CLR PT1 LCALL DISPLAY1 LJMP M6 LER: MOV IP,#08H SETB TR1 LCALL DISPLAY1M6: RET;*时间调整*SETTIME: ;设置时间L0: LCALL DISPLAY1 JB P1.3,L1 ;P1.3=1时转移 MOV C,P1.3 JC MM1 LCALL DELAY1 ;延时 JC MM1MSTOP1: MOV C,P1.3 ;P1.3为0时转移 JNC MSTOP1 LCALL

    22、 DELAY1 ;延时 MOV A,50H INC 50H CJNE A,#00H,HJ1 LJMP L0HJ1: INC 22H ;小时自加一 MOV A,22H CJNE A,#18H,GO12 ;小时计数循环 MOV 22H,#00H ;复位 MOV 34H,#00H MOV 35H,#00H LJMP L0L1: JB P1.4,L2 ;P1.1=1时转移 MOV C,P1.4 JC L1 LCALL DELAY1 ;延时 JC L1MSTOP2: MOV C,P1.4 ;P1.10时转移 JNC MSTOP2 LCALL DELAY1 ;延时 MOV C,P1.4 JNC MSTOP

    23、2 INC 21H ;分钟加一 MOV A,21H CJNE A,#3CH,GO11 ;分钟计数循环 MOV 21H,#00H ; 复位 MOV 32H,#00H MOV 33H,#00H LJMP L0GO11: MOV B,#0AH DIV AB MOV 32H,B ; 将A的低4位存入32单元 MOV 33H,A ; 将A的高4位存入33单元 LJMP L0GO12: MOV B,#0AH DIV AB MOV 34H,B ;将A的低4位存入34单元 MOV 35H,A ; 将A的高4位存入35单元 LJMP L0L2: JB P1.0,L0 ; P1.01时转移 MOV C,P1.0

    24、JC L2 LCALL DELAY1 ;延时 MOV C,P1.0 JC L2STOP1: MOV C,P1.0 ; P1.00时转移 JNC STOP1 LCALL DELAY1 ;延时 MOV C,P1.0 JNC STOP1 MOV 50H,#00H MMM: LJMP MAIN;*设置闹钟*SETATIME:LCALL DISPLAY2 ; 调用DISPLAY2显示闹钟N0: LCALL DISPLAY2MM2: JB P1.2,N1 ;P1.2=1时转移 MOV C,P1.2 JC MM2 LCALL DELAY1 ; 延时 JC MM2MSTOP3: MOV C,P1.2 ; P1

    25、.20时转移 JNC MSTOP3 LCALL DELAY1 ; 延时 MOV A,50H INC 50H CJNE A,#00H,HJ2 LJMP N0HJ2: INC 24H ;小时加一 MOV A,24H CJNE A,#24,GO22 ;小时计数循环 MOV 24H,#00H ;复位 MOV 38H,#00H MOV 39H,#00H LJMP N0N1: JB P1.4,N2 ;P1.11时转移 MOV C,P1.4 JC N1 LCALL DELAY1 ;延时 JC N1MSTOP4: MOV C,P1.4 ;P1.10时转移 JNC MSTOP4 LCALL DELAY1 ;延时

    26、 MOV C,P1.4 JNC MSTOP4 INC 23H ;分钟加一 MOV A,23H CJNE A,#60,GO21 ;分钟计数循环 MOV 23H,#00H ;复位 MOV 36H,#00H MOV 37H,#00H LJMP N0GO21: MOV B,#0AH DIV AB MOV 36H,B ;将A的低4位存入36单元 MOV 37H,A ;将A的高4位存入37单元 LJMP N0GO22: MOV B,#0AH DIV AB MOV 38H,B ;将A的低4位存入38单元 MOV 39H,A ;将A的高4位存入39单元 LJMP N0N2: JB P1.0 ,N0 ;P1.0

    27、1时转移 MOV C,P1.0 JC N2 LCALL DELAY1 ;延时 MOV C,P1.0 JC N2STOP2: MOV C,P1.0 JNC STOP2 LCALL DELAY1 MOV C,P1.0 JNC STOP2 MOV 50H,#00H LJMP MAIN;*闹钟判断*TIMEPRO: MOV A,21H MOV B,23H CJNE A,B,BK ;判断定时闹钟的分钟 MOV A,22H MOV B,24H CJNE A,B,BK ;判断定时闹钟的小时 SETB 25H.0 MOV C,25H.0 LCALL TIMEOUT ;调用TIMEOUT BK:RET;*喇叭报

    28、警*TIMEOUT: CLR 26H X1: LCALL BZ ;调用喇叭响应程序 CLR 25H.0 ;调用喇叭响应程序结束 LCALL DELAY ;延时 CLR 25H.0 LJMP DISPLAY1 BZ:MOV C,25H.1 MOV P1.6,C CLR P1.7 MOV R7,#0FFH ;喇叭响应时间 T2: MOV R6,#0FFH T3: DJNZ R6,T3 DJNZ R7,T2 SETB P1.7 RET;*显示闹钟时间*LOOKATIME:LCALL DISPLAY2 MM: JNB P1.0,LOOKATIME LCALL DELAY1 LJMP MAINDELAY

    29、1: MOV R4,#15H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET;*定时*TIME: PUSH ACC ;保护现场 PUSH PSW MOV TH0,#03CH ;初值 MOV TL0,#0B0H DJNZ R2,RET0 MOV R2,#14H MOV A,20H INC A ;秒自加一 CJNE A,#3CH,GO1 ;秒计数循环 MOV 20H,#0 ;复位 MOV 30H,#0 MOV 31H,#0 MOV A,21H INC A ;分钟自加一 CJNE A,#3CH,GO2 SETB 26H JB 26H,AA AA:LCALL TIMEOUT1 CLR 26H ;分钟计数循环 MOV 21H,#0H ;复位 MOV 32H,#0 MOV 33H,#0 MOV A,22H INC A ;小时自加一 CJNE A,#18H,GO3 ;小时计数循环 MOV 22H


    注意事项

    本文(单片机课程设计数字钟实验报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开