1、基于单片机智能电子数字钟的课程设计课程设计报告课程名称:题目名称:学 院:专 业:班 级:学 号:学生姓名:指导教师:职 称:成 绩:年 月 日目录摘要 1一、系统总体方案设计 11.1方案列举 11.2方案分析及比较 1二、系统硬件设计 22.1总控制器AT89C51 22.1.1各引脚功能 22.1.2引脚图 42.2显示电路设计 42.3晶振电路 52.4复位电路 62.5报时电路 6三、系统软件设计 63.1总程序 63.2中断程序 8四、总结 9参考文献 9附录 9摘要近年来随着计算机技术在社会各个领域的渗透和大规模集成电路的发展,单片机的应用正不断地深入,它具有功能强、体积小、功耗
2、低、价格便宜、工作可靠、使用方便等特点。本文是基于AT89C51单片机智能电子数字钟的设计,阐述了数字时钟的设计思路,详细叙述了系统硬软件设计的具体过程。此设计过程在硬件与软件方面进行同步设计,硬件部分主要由AT89C51单片机,七位LED显示驱动加键盘控制电路,晶振电路,复位电路,整点报时电路。采用AT89C51作为主控制器,用单片机内部定时器实现时钟功能,用CH451为专用LED显示驱动芯片。可以显示星期、时、分、秒,并且各位可以通过外接键盘调整,还具有整点报时的功能。关键词:AT89C51、CH451、智能数字时钟一、系统总体方案设计1.1方案列举采用AT89C51单片机控制,软件编程的
3、自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。方案一:使用AT89C51内部定时器,通过中断方式进行溢出次数的累计。方案二:采用时钟芯片DS1302,DS1302是具有涓细电流充电能力的低功耗实时时钟芯片,接口简单、价格低廉、使用方便,被广泛地采用。显示方案一:专用LED驱动芯片,可以使用MAX7219、HD7279、CH451。显示方案二:采用74LS164串口扩展并口。显示方案三:LCD显示。显示方案四:I/O口加段位驱动器。显示方案五:LED驱动器MC14543、CD14543。1.2方案分析及比较方案一AT89S51单片机片内有两个可编程的定
4、时器/计数器T1、T0,可以满足智能数字时钟的需求,并且此方案外加原件少,减少了错误率,提高了运行稳定性。方案二采用外加芯片DS1302,内部存储好时间,单片机直接提取再进行显示即可,但是DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。运行不稳定,所以不适合。显示方案一采用专用芯片,实现了LED显示以及键盘控制,使用CH451扩展键盘显示接口,具有接口简单、占用CPU资源少、外围器件简单、性能价格比高等优点,很适合此设计。显示方案二采用74LS164串口扩展并口,它是8 位串入,并出移位寄存器。显示方案三直接使用LCD显示,它是一种被动式的显示器,即液晶本身并不发光,而是利用液
5、晶经过处理后能改变光线通过方向的特性,从而达到白底黑字或黑底白字显示的目的。液晶显示器具有省电、抗干扰能力强等优点。显示方案四采用74HC573、74HC138段位驱动器,增加驱动能力。显示方案五使用LED驱动器MC14543、CD14543,单片机提供BCD码,驱动LED显示。综合上述分析,采用方案一及显示方案一。总体方案框图如下:CH451报时器复位电路图1-1总体方案框图键盘模块晶振电路AT89C51二、系统硬件设计2.1总控制器AT89C51本部分采用AT89C51作为主控制器。AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1
6、000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。12.1.1各引脚功能VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序
7、数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当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口的管脚被
8、外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:表2-1 P3口的
9、第二功能定义引脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(计时器0外部输入)P3.5T1(计时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的
10、1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为
11、RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。22.1.2引脚图图2-1 AT89C51引脚排列2.2显示电路设计CH451是一内部集成有数码管显示驱动和键盘扫描控制的专用键盘/显示器接口芯片,CH451内置RC振荡电路,可以直接动态驱动8位LED数码管(或者64个LED),可选择BCD译码或不译码功能,可实现显示数字的左移、右移、左循环、右循环、各位显示数字独立闪烁等功能。在键盘控制方面,该芯片内有64键键盘控制器,可实现8*8矩
12、阵编码键盘的扫描,并内置自动去抖动电路,可提供按键中断与按键释放标志位等功能。图2-2 显示电路2.3晶振电路晶振电路两端分别接单片机的XTAL1和XTAL2两口,具体电路图如图2-2所示。图2-3 晶振电路2.4复位电路只需给AT89C51的复位引脚RST加上大于2个机器周期的高电平就可以使AT89C51复位。外部复位电路通过按键电平复位电路来实现,通过RST端经电阻与电源VCC接通来实现,具体电路图如图2-3所示。图2-4 复位电路2.5报时电路外接蜂鸣器以及发光二极管,使得时钟具有整点报时功能,具体电路图如图2-4所示。图2-5 报时电路三、系统软件设计3.1总程序程序开始,设置计时器T
13、0为方式1,设置中断次数为10,清计时单元,打开中断,启动T0,对按键进行检测,调用子程序,判断是否为整点,若是整点,调用报时程序,若不是整点,继续循环。YN报警器报警图3-1主程序流程图流程图图图 判断是否整点开始设置T0为方式1设中断次数为10清计时单元开中断启动T0按键检测调用显示子程序3.2中断程序定时采用中断方式,利用T0每隔100ms向CPU发出一次中断请求(设系统使用6MHz晶体 振荡器, 定时器T0工作在方式1的 定 时 器 初 值 为 3CB0H,即TH0=3CH,TL0=0B0H), CPU 响应中断后 进入中断服务子程序。中断服务子程序以100ms、1S、1MIN、1HO
14、UR对时钟计时,每产生一次中断 ,100mS计数单元加 1,当该单元内容累计到10时,秒计 数单元加 1,并将 100mS单元清0,秒累计到60时,分计数单元加 1,并将秒计数单元清 0,当分计数单元累 计到 60 时,时计数单元加1,并将分计数单元清0;时计数单元满24后, 所用单元内容清0。4保护现场(42H)+1 (42H)(42H)(41H)=60?0 (41H)(41H)+1 (40H)图3-2 中断程序流程图返回恢复现场0 (41H)(40H)=24?(41H)+1 (41H)0 (42H)(42H)=60?1s到?设置计数初值四、总结本次设计是基于AT89C51单片机的智能数字时
15、钟设计,AT89C51是生活中应用广泛的单片机型号,它内部具有定时器功能,通过内部定时器T0进行计数。该设计的数字时钟具有显示时间和星期,以及整点报时的功能。该数字时钟在时间精度上存在一定误差,由于中断响应需要 38 个机器周期,因此可以采取定时初值补偿的方法来减小计时的误差。本设计采用专用LED驱动芯片CH451,不仅可以实现显示功能,还可以扩展键盘显示接口,接口简单,占用CPU资源少,加快反应速度,性价比高。通过本次设计,查找资料,翻阅书籍,增强了对单片机的认识,掌握了AT89C51的计时功能,并且可以设定初值,实现功能需求。刚刚做设计的一两天,无论查阅什么资料都看不懂,通过刻苦用心学习,
16、学到了各种有用知识,加强了本学期的知识理念,并为以后开设的课程打下了良好的基础。认识到知识的熟练掌握不单单靠上课认真听讲,也需要多应用,课本是基础,课程设计是应用扩展。做课程设计是对一个人整体能力的检测,不仅需要平时上课的基础积累,还需要活学活用,课本教授内容理论性强,当真正应用时会发现自己好多都没有学习透彻。做设计还需要掌握软件使用,充分利用网络资源,学会软件灵活使用。在这次的设计过程中,增加的不只是我的知识,更是对自己内心的一种磨练,它会给我以后的生活带来不可忽视的作用。参考文献1 白延敏.51单片机典型系统开发实例精讲.M北京:电子工业出版社,20092张毅刚等.单片机原理及应用.M北京
17、:高等教育出版社,20103 邹显圣.基于AT89C51单片机数字时钟的研究.M北京:机电产品开发与创新,第22卷第5期4王义军等.单片机原理及应用习题与实验指导书.M北京:中国电力出版社,20065郑学坚,周斌.微型计算机原理及应用. M北京:清华大学出版社,2001附录:总电气原理图源程序代码 ORG0000H LJMPSTART ORG000BH LJMPINIT0START: MOVR0,#70H ;主程序开始 MOVR7,#0CHINIT: MOV R0,#00H INCR0 DJNZR7,INIT MOV72H,#10 ;对连字符进行装值 MOV75H,#10 MOVTMOD,#0
18、1H ;选择定时器/计数器T0的方式1 MOVTL0,#0B0H ;对低位赋初值 MOVTH0,#03CH ;高位赋初值 SETBEA SETBET0 SETBTR0START1: LCALLSCAN LCALLKEYSCAN SJMPSTART1DL1MS: MOVR6,#14H ;延时1子程序DL1: MOVR7,#19HDL2: DJNZR7,DL2 DJNZR6,DL1 RET DL20MS: ACALLSCAN ;延时20ms子程序 ACALLSCAN ACALLSCAN RET;数码管显示程序开始SCAN: MOVA,78H MOVB,#0AH DIVAB;时间秒的十位送给A,时间
19、秒的个位送B MOV71H,A ;时间秒要显示的十位 MOV70H,B ;时间秒要显示的个位 MOVA,79H MOVB,#0AH DIVAB ;时间分的十位送给A,时间分的个位送B MOV74H,A ;时间分要显示的十位送地址 MOV73H,B ;时间分要显示的个位送地址 MOVA,7AH MOVB,#0AH DIVAB ;时间时的十位送给A,时间时的个位送B MOV77H,A ;时间时显示的十位送地址 MOV76H,B ;时间时要显示的个位送地址 MOVR1,#70H MOVR5,#01H MOVR3,#09HSCAN1: MOVA,R5 ;数码管的显示程序 MOVP2,A MOVA,R1
20、 MOVDPTR,#TAB MOVCA,A+DPTR ;对字段表取值显示 MOVP0,A LCALLDL1MS INCR1 MOVA,R5 RLA MOVR5,A DJNZR3,SCAN1 MOVP2,#0FFH MOVP0,#0FFH RET ;09和-的字段表TAB: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;定时/计数器T0中断程序INIT0: PUSHACC PUSHPSW CLRET0 CLRTR0 MOVTL0,#0B0H MOVTH0,#03CH SETBTR0 INC7BH MOVA,7BHCJNEA,#14H,O
21、UTT0 MOV7BH,#00 INC78H MOVA,78HCJNEA,#3CH,OUTT0;一秒的延时是否计到60次,没有就继续执行 MOV78H,#00 INC79H MOVA,79H CJNEA,#3CH,OUTT0 MOV79H,#00 INC7AH MOVA,7AH CJNEA,#18H,OUTT0 ;60分延时是否计到24次,没有就继续执行程序 MOV7AH,#00OUTT0:SETBET0 ;启动定时器T0 POPPSW POPACC RETI ;按键处理程序KEYSCAN:CLREA JNBP1.0,KEYSCAN0 ;P1.0有按键按下则跳转到子程序 JNBP1.1,KEY
22、SCAN1 ;P1.1有按键按下则跳转到子程序 JNBP1.2,KEYSCAN2 ;P1.2有按键按下则跳转到子程序KEYOUT: SETBEA RETKEYSCAN0:LCALLDL20MS ;20ms的延时消抖 JBP1.0,KEYOUTWAIT0: JNBP1.0,WAIT0 ;判断按键是否松手, 松手就往下执行程序 INC7CH MOVA,7CH CLRET0 CLRTR0 CJNEA,#03H,KEYOUT ;按下第一次和第二次对时、分选定 MOV7CH,#00 ;按下第三次时就启动计时 SETBET0 SETBTR0 SJMPKEYOUTKEYSCAN1:LCALLDL20MS ;
23、按键加一的程序 JBP1.1,KEYOUTWAIT1: JNBP1.1,WAIT1 MOVA,7CH CJNEA,#02H,KSCAN11 ;如果功能键按下则对时加一调整 INC79H CJNEA,#3CH,KEYOUT ;如果加到60则清零 MOV79H,#00 SJMPKEYOUTKSCAN11:INC7AH ;如果功能键是按下第二次则对分进行加一调整 MOVA,7AH CJNEA,#18H,KEYOUT MOV7AH,#00 SJMPKEYOUTKEYSCAN2:LCALLDL20MS ;延时消抖程序 JBP1.2,KEYOUTWAIT2: JNBP1.2,WAIT2 ;判断是否放开按键 MOVA,7CH CJNEA,#02H,KSCAN21;如果功能键是按下第一次对时进行减一 DEC79H MOVA,79H CJNEA,#0FFH,KEYOUT MOV79H,#3BH SJMPKEYOUTKSCAN21:DEC7AH ;如果功能键是按下第二次则对分进行减一 CJNEA,#0FFH,KEYOUT MOV7AH,#17H SJMPKEYOUT END
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1