单片机电子闹钟(学号、日期、时间、闹钟)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机设计与实训设

计实训报告

题目:电子闹钟

系别:机械工程系

班级:机械设计制造及其自动化

姓名:XXX

学号:XXXXXXXXX

指导老师:XXXXXXX XXXXX XX 2016年5月9日——2016年5月13日

目录

第一章实训目的 (3)

第二章实训设计实现的性能指标 (3)

第三章设计思路 (3)

4.1设计原理图 (3)

4.2程序流程图 (4)

主函数流程图 (4)

其它子程序流程图 (4)

4.3程序 (5)

3.3.1Main.h (5)

2.3.2main.c (6)

2.3.3display_xuehao.c (13)

2.3.4 shijian.c (14)

2.3.5 riqi.c (19)

2.3.6 naozhong.c (24)

2.3.7 kes_can.c (28)

第四章实训完成情况 (31)

第五章实训总结体会 (32)

第一章实训目的

通过课程设计,使学生巩固和加深对单片机基本知识的理解,学会查寻资料、方案设计、方案比较,以及单元电路设计计算等环节,进一步提高学生综合运用所学知识的能力,提高分析解决实际问题的能力。锻炼分析、解决电子电路问题的实际本领,通过此综合训练,为以后毕业设计打下一定的基础。

第二章实训设计实现的性能指标

本色设计利用单片机分时原理,主要实现4个功能:学号显示、时分秒显示、年月日显示、闹钟。除学号外每个参数都可以进行调整数值,调整某个参数是这个参数闪烁,闹钟可以设为是否有效,当闹钟设置时间和时间一致时,蜂鸣器响起歌曲,

第三章设计思路

4.1设计原理图

4.2程序流程图主函数流程图

其它子程序流程图

4.3程序

3.3.1Main.h #ifndef __main_h__ #define __main_h__

#include #define uchar int

#define duanx P3

#define weix P1

sbit gnkey=P2^4; sbit xzkey=P2^5;

sbit jiakey=P2^6;

sbit jiankey=P2^7;

sbit fmq=P2^0;

void display_xh();

void shijian();

void riqi();

void naozhong();

void keyscan();

#endif

2.3.2main.c

#include "main.h"

uchar count_100us=0; //100us计数值

uchar count_1ms=0; //1ms计数值

uchar count_5ms=0; //5ms计数值

uchar count_10ms=0; //10ms计数值

uchar count_100ms=0; //100ms计数值

uchar count_500ms=0; //500ms计数值

uchar count_1s=0; //1s计数值

uchar count_1f=0; //1分计数值uchar count_1h=0; //1小时计数值uchar count_1d=9; //1天计数值uchar count_1y=2016; //1年计数值

uchar count_1m=5; //1月计数值

bit flag_100us=0; //100Us标志位

bit flag_1ms=0; //1ms标志位

bit flag_5ms=0; //5ms标志位

bit flag_10ms=0; //10ms标志位

bit flag_100ms=0; //100ms标志位

bit flag_500ms=0; //500ms标志位

bit flag_1s=0; //1s标志位

bit flag_1f=0; //一分标志位

bit flag_1h=0; //1小时标志位

bit flag_1d=0; //1天标志位

bit flag_500ms_s=0; //500ms闪烁标志位

uchar gnkeyset=0; //功能键值,用来判断当前要显示和执行的程序

uchar count_fmq; //闹钟计数值

extern uchar count_nzhs; //闹钟秒存储值

extern uchar count_nzhf; //闹钟分存储值

extern uchar count_nzhh; //闹钟时存储值

bit flag_naozhong; //闹钟标志位

//**********************************************************初始化子程序

void Timer0Init() //100微秒@12MHz

{

TMOD = 0x02; //设置定时器模式

TL0 = 0x9c; //设置定时初值

TH0 = 0x9c; //设置定时重载值

TR0 = 1; //定时器0开始计时

ET0 = 1; //申请定时器中断

EA=1; //开启总中断

}

//**********************************************************主函数

void main ()

{

Timer0Init(); //100微秒@12MHz

while(1)

{

if(gnkeyset==0)display_xh();

if(gnkeyset==1)shijian();

if(gnkeyset==2)riqi();

if(gnkeyset==3)naozhong();

//************************************************************************* **********闹钟判断

if(count_nzhs==count_1s&&count_nzhf==count_1f&&count_nzhh==count_1h)

flag_naozhong=1;

if(flag_naozhong==1&&flag_500ms_s==0)

{

相关文档
最新文档