欢迎来到天天文库
浏览记录
ID:11612006
大小:375.00 KB
页数:25页
时间:2018-07-13
《单片机技术-课程设计报告(数码管电子时钟)毕设论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、单片机课程设计题目:数码管电子时钟班级:姓名:学号:学校:时间:2015年10月18日目录1 摘要 32 设计要求 32.1 功能需求 32.2 设计要求 33 硬件设计及描述 53.1 总体描述 53.2 系统总体框图 63.3 Proteus电路图63.4 各部分硬件介绍 64 软件设计流程及描述 94.1 程序流程图 94.2函数模块及功能 95 功能实现(功能介绍+照片)196 心得体会 197 源程序 201 摘要 通过本课程设计使学生进一步巩固单片机原理与技术的基本概念、理论
2、,分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效的将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。2 设计要求 要求能够熟练的用单片机中定时/计数、中断、数码管显示等技术参考教或相关资料,采用C语言采用编程实现数字时钟的功能,在数码管上实时显示,并运用Proteus软件绘制电路原理图,进行仿真验证和误差分析。 2.1 功能需求 1、在数码管上动态显示时间,时钟的工作范围在00:00:00~24:59:59。2
3、、可对时钟在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、限制
4、每一位的数字范围,即秒的个位和分的个位为0-9,十位为0-5;当小时的十位为0-1时,其个位0-9,当十位为2时,其个位0-3。3.2 系统总体框图 图3.1总体框图3.3 Proteus电路图图3.2Proteus电路图3.4 各部分硬件介绍 1、数码管显示模块,P0^0~P0^7通过排阻控制数码管显示的数字,P2^0~P2^2通过74HC138进行位选。连接图如下:图3.3时钟显示模块2、独立键盘模块,由三个按钮分别连接P3.2、P3.3、P3.4口作为外部中断0,外部中断1。图3.4独立键盘模块3、矩阵键盘
5、模块,用4*4的按钮分别连接P1.0~P1.7口作为键盘输入端。图3.5矩阵键盘模块4、AT89C51简介: AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
6、由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3.5AT89C514 软件设计流程及描述 4.1 程序流程图 图4.1程序流程图4.2函数模块及功能 1.delay(unintk){uninti,j,x;for(x=1;x<=k;x++)for(i=0;i<10;i++)for(j=0;j<17;j++);}功能说明:用于时间的延迟。1.Scan_ke
7、yboard(){unsignedcharh_code,l_code,key_code;P1=0xf0;h_code=P1;h_code=h_code&0xf0;P1=0x0f;l_code=P1;l_code=l_code&0x0f;key_code=h_code
8、l_code;returnkey_code;}功能说明:用于矩阵键盘的按键扫描,返回按键键值。2.timer0_int(void)interrupt1{count++;if(count==14){ss--;if(ss<0){SS1--;ss=9;}if(SS
9、1<0){mm--;SS1=5;}if(mm<0){MM1--;mm=9;}if(MM1<0){hh--;MM1=5;}if(hh<0&&HH1>0){HH1--;hh=9;}if(HH1==0&&hh<0){HH1=2;hh=3;}TH0=(65536-50000)/256;TL0=(65536-50000)%25
此文档下载收益归作者所有