福建工程学院软件学院题目:电子时钟班级:物联网2班姓名:孙建兴学号:3112113229指导老师:郑旭丹日期:2013年11月14日课设报告目录1摘要............................................................................................................................32设计要求...................................................................................................................32.1功能需求........................................................................................................32.2设计要求........................................................................................................33硬件设计及描述.......................................................................................................53.1总体描述........................................................................................................53.2系统总体框图................................................................................................63.3Proteus电路图................................................................................................63.4各部分硬件介绍...........................................................................................64软件设计流程及描述...............................................................................................94.1程序流程图....................................................................................................94.2函数模块及功能...........................................................................................95功能实现(功能介绍+照片)...............................................................................196心得体会..................................................................................................................197源程序....................................................................................................................201摘要通过本课程设计使学生进一步巩固单片机原理与技术的基本概念、理论,分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效的将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。2设计要求要求能够熟练的用单片机中定时/计数、中断、数码管显示等技术参考教或相关资料,采用C语言采用编程实现数字时钟的功能,在数码管上实时显示,并运用Proteus软件绘制电路原理图,进行仿真验证和误差分析。2.1功能需求1、在数码管上动态显示时间,时钟的工作范围在00:00:00~24:59:59。2、可对时钟在00:00:00~24:59:59范围内任意正常的设置。2.2设计要求1、通过数码管动态显示时间信息。图2.1数码管2、通过独立键盘的P32和P33接口分别实现开始计时和时间设置功能。图2.2独立键盘3、通过矩阵键盘实现时间设置功能中时间的更改。图2.34*4矩阵键盘3硬件设计及描述3.1总体描述1、程序开始后首先显示00-00-00等待按键,按P3^2键后开始计时功能。2、当按下P3^3键后进入时间设置模式,等待用户设置时间。3、通过矩阵键盘设置时间,可对时间的每一位进行增减操作。4、限制每一位的数字范围,即秒的个位和分的个位为0-9,十位为0-5;当小时的十位为0-1时,其个位0-9,当十位为2时,其个位0-3。3.2系统总体框图AT89C51数码管显示器4*4键盘独立按键复位和晶振模块图3.1总体框图3.3Proteus电路图R1R2R3R0R0C0C1C2C3R1R2R3C0C1C2C3XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X112MHzC122pC222pR2220kR310kC310uFK0K1K2K3K4K5K6K7K8K9KAKBKCKDKEKFA1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U274HC138R110k12345678161514131211109RN1220图3.2Proteus电路图3.4各部分硬件介绍1、数码管显示模块,P0^0~P0^7通过排阻控制数码管显示的数字,P2^0~P2^2通过74HC138进行位选。连接图如下:XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U274HC13812345678161514131211109RN1220图3.3时钟显示模块2、独立键盘模块,由三个按钮分别连接P3.2、P3.3、P3.4口作为外部中断0,外部中断1。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U274HC138P32P33图3.4独立键盘模块3、矩阵键盘模块,用4*4的按钮分别连接P1.0~P1.7口作为键盘输入端。R1R2R3R0R0C0C1C2C3R1R2R3C0C1C2C3XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R310kK0K1K2K3K4K5K6K7K8K9KAKBKCKDKEKF图3.5矩阵键盘模块4、AT89C51简介:AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。R0C0C1C2C3R1R2R3XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51图3.5AT89C514软件设计流程及描述4.1程序流程图开始等待外部中断按键按下判断是外部中断0还是外部中断1从当前显示时间开始计时停止计时,等待设置时间扫描矩阵键盘,判断按键根