单片机技术-课程设计报告(数码管电子时钟)大学学位论文.doc

单片机技术-课程设计报告(数码管电子时钟)大学学位论文.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机技术-课程设计报告(数码管电子时钟)大学学位论文

单片机课程设计 题 目: 数码管电子时钟 班 级: 姓 名: 学 号: 学 校: 时 间:2015年10月18日 目录 1?摘要? 3 2??设计要求? 3 2.1??功能需求? 3 2.2??设计要求? 3 3??硬件设计及描述? 5 3.1??总体描述? 5 3.2??系统总体框图? 6 3.3??Proteus电路图 6 3.4??各部分硬件介绍?? 6 4??软件设计流程及描述? 9 4.1??程序流程图? 9 4.2函数模块及功能??? 9 5??功能实现(功能介绍+照片) 19 6?心得体会? 19 7?源程序??? 20 1?摘要? ? 通过本课程设计使学生进一步巩固单片机原理与技术的基本概念、理论,分析问题的基本方法;增强学生的软件编程实现能力和解决实际问题的能力,使学生能有效的将理论和实际紧密结合,拓展学生在工程实践方面的专业知识和相关技能。 图3.2 Proteus电路图 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、矩阵键盘模块,用4*4的按钮分别连接P1.0~P1.7口作为键盘输入端。 图3.5 矩阵键盘模块 4、AT89C51简介:?AT89C51是一种带4K 字节FLASH 存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位 微处理器,俗称 单片机。AT89C2051是一种带2K 字节闪存可编程可擦除 只读存储器的 单片机。 单片机的可擦除 只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失 存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁 存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51 单片机为很多 嵌入式控制系统提供了一种灵活性高且价廉的方案。 图3.5 AT89C51 4??软件设计流程及描述? 4.1??程序流程图? 图4.1 程序流程图 4.2函数模块及功能??? delay(unint k) { unint i,j,x; for(x=1;x=k;x++) for(i=0;i10;i++) for(j=0;j17;j++); } 功能说明:用于时间的延迟。 Scan_keyboard() { unsigned char h_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 | l_code; return key_code; } 功能说明:用于矩阵键盘的按键扫描,返回按键键值。 timer0_int(void) interrupt 1 { count++; if(count==14) { ss--; if(ss0) { SS1--; ss=9; } if(SS10) { mm--; SS1=5; } if(mm0) { MM1--; mm=9; } if(MM10) { hh--; MM1=5; } if(hh0HH10) { HH1--; hh=9; } if(HH1==0hh0) { HH1=2; hh=3; } TH0=(65536-50000)/256; TL0=(65536-50000)%256; count=0; } } 功能说明:定时中断0,用于实现时间的跳动。 set() { unsigned char keynumber; keynumber=Scan_keyboard(); if(keynumber!=0xff) { switch(keynumber) { case 0xe7: //left if(wh0) wh--; break; case 0xd7://right if(wh5) wh+

文档评论(0)

店小二 + 关注
实名认证
内容提供者

包含各种材料

1亿VIP精品文档

相关文档