单片机技术课程设报告(数码管电子时钟).docVIP

  • 5
  • 0
  • 约6.8千字
  • 约 25页
  • 2016-08-21 发布于贵州
  • 举报

单片机技术课程设报告(数码管电子时钟).doc

福建工程学院软件学院 题 目: 电子时钟 班 级: 物联网2班 姓 名: 孙建兴 学 号: 3112113229 指导老师: 郑旭丹 日 期: 2013 年 11 月 14 日 目录 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)

文档评论(0)

1亿VIP精品文档

相关文档