简单的单片机时钟课程设计

简单的单片机时钟课程设计

ID:38258755

大小:5.65 MB

页数:7页

时间:2019-06-06

简单的单片机时钟课程设计_第1页
简单的单片机时钟课程设计_第2页
简单的单片机时钟课程设计_第3页
简单的单片机时钟课程设计_第4页
简单的单片机时钟课程设计_第5页
资源描述:

《简单的单片机时钟课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数字电子时钟的制作一、实现要求:1、实现时和分的显示,秒钟用发光二极管闪烁指示。2、实现一分钟倒计时功能,时间到,蜂鸣器自动报警。3、扩展其他功能:根据自己的兴趣增加其他功能。最低要求实现1和2的功能,扩展功能自我发挥,扩展功能是加分的关键。注:所有同学都必须做出实物,最终一个一个检查,并当场打分。二、系统框图流水灯单片机最小系统蜂鸣器按键数码管三、接线图用到端口及实物连接实物链接图最小系统板上的VCC和GND不够用,添加了插针(如图)。各模块的VCC/GND引脚都连在此处。四、程序流程图主程序开始中断设置时钟界面计数进入死循环

2、显示时钟和分钟蜂鸣器响应程序Jieshao介绍…………。外部中断0外部中断0外部中断0S1是否按下?NS1是否按下?时钟界面Y倒计时界面倒计时界面中断返回中断返回定时器0中断重置计时器初值N溢出次数=10?YY闪烁次数是否=20?溢出次数清0并控制灯闪烁一次分钟加1N中断返回五、源程序/*数字时钟程序*//*相关说明1.功能:功能键S1选择两种不同的功能,功能1,时钟显示,灯一秒钟闪烁一次功能2,倒计时,倒计时1分钟,数码管显示,到0,蜂鸣器响。2.接线数码管接线:A~H接P0.0~P0.7D1~D4接P1.0~P1.3VCC接

3、电源正极vcc按键接线:S1接P3.2//外部中断0GND接电源GND灯接线:接P2.1蜂鸣器接线:IO接P2.2VCC,GND接电源*/#include"reg52.h"#include"intrins.h"#defineuintunsignedint#defineucharunsignedcharsbitLED=P2^1;//灯接P21sbitbeep=P2^2;//蜂鸣器接P22,IO位0就响/*共阳极数码管段选P0位选P1*/ucharduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,

4、0xf8,0x80,0x90};ucharwei[]={0x0e,0x0d,0x0b,0x07};uchark=0,j=0,i=0;//计数次数ucharsecond=0,minute=0,hour=0,count=5;bitflag1=0;//功能选择键bitflag2=0;//voiddelay(intx){inty;for(;x>0;x--)for(y=100;y>0;y--);}voidTime0_init(void)//50毫秒@12.000MHz{TMOD=0x01;//设置定时器模式1,16位TL0=0xB0;//

5、设置定时初值(65536-50000)%256TH0=0x3C;//设置定时初值(65536-50000)/256TF0=0;//清除TF0标志TR0=1;//定时器0开始计时ET0=1;}voidtime0(void)interrupt1{TL0=0xB0;TH0=0x3C;k++;j++;if(j==10){j=0;LED=~LED;}//LED灯每0.5秒状态改变一次,即一秒闪烁一次if(k==20)//计数20次,每次中断50ms,故20*50ms=1s{k=0;second++;}if(flag1==1)//在功能2{

6、if(flag2==1)//是否倒计时完成{i++;if(i==20){count--;i=0;}}}}voidint0_init(void)//外部中断初始化{EX0=1;IT0=1;}voidint0(void)interrupt0{flag1=~flag1;//功能选择标志位flag=1,倒计时界面,flag=0,时钟界面if(flag1==1){count=5;flag2=1;}elsecount=5;}voidTime_dispose(void){if(second==60){second=0;minute++;if(

7、minute==60){minute=0;hour++;if(hour==24){hour=0;}}}}//显示函数voiddisplay(void){if(flag1==0){P1=0xff;//清0P0=duan[hour/10];//小时的十位P1=wei[0];delay(3);P0=duan[hour%10];//小时的个位P1=wei[1];delay(3);P0=duan[minute/10];//分的十位P1=wei[2];delay(3);P0=duan[minute%10];//分的个位P1=wei[3];d

8、elay(3);}else{if(flag1==1){P1=0xff;//清0P0=duan[count/10];//分的十位P1=wei[2];delay(3);P0=duan[count%10];//分的个位P1=wei[3];delay(3);}}}//蜂

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。