




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的数字时钟设计设计简介
本设计选择的是以STC90C51单片机为控制核心。配备其他外围电路构成了一个具有时间显示、按键调时、闹铃定时功能的数字时钟。系统采用七段式数码管作为显示器,软件程序采用均采用C语言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。系统设计
系统框图
报时电路
单片机电源电路
时钟电路复位电路显示电路控制电路硬件设计
——系统仿真电路图系统硬件组成及其功能
一、电源电路二、时钟电路其输入引脚为18(XTA2)、19(XTAL1).电路有2个电容(C1/C2)其容量约为30pF还有一个晶体振荡器(1.2~12mHz)。时钟电路用于产生单片机工作所需要的时钟信号三、按键电路单片机引脚默认输出为高电平,当开关按下时引脚与地相连,引脚电平为低电平,单片机采集到低电平做出反应。四、复位电路a、上电复位b、按键复位五、显示电路六、报时电路74HC573OE:三态允许控制端低电平有效LE:数据锁存使能,1D~8D为数据输入端1Q~8Q为数据输出端功能:芯片74HC573是8位三态锁存器.可锁存地址,数据,可作缓冲器用。在本设计中采用74HC573提高对数码管的驱动能力。软件设计
一、主程序流程图二、按键程序流程图三、程序及其功能#include<reg51.h>unsignedcharSeg[]={0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f,0x40};//数码管显示1-9和—的断码unsignedcharCom[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};//数码管亮灭的数组/***************************************************************定义全局变量***************************************************************/unsignedintcounter=0;//定义计数数据unsignedcharmode;//定义模式unsignedcharsecond=0,minute=0,hour=0;//定义秒分时的初值unsignedcharADD_bit=0,DEC_bit=0,flag=0;//加标志位和减标志位赋初值0,/***************************************************************
定义按键
***************************************************************/sbitms=P1^0;//按键P^0调节模式变化sbitADD=P1^1;//按键P1^1实现加一sbitDEC=P1^2;//按键P1^2实现减一sbitSPK=P1^7;//按键P1^7实现报时
/***************************************************************延时函数***************************************************************/voiddelay(unsignedintt){while(t--);}/******************************************************************数码管扫描******************************************************************/voidSegplay(){
P0=Seg[second%10];P3=Com[7];delay(100);P3=Com[8];P0=Seg[second/10];
P3=Com[6];delay(100);P3=Com[8];P0=Seg[10];
P3=Com[5];delay(100);P3=Com[8];P0=Seg[minute%10];
P3=Com[4];delay(100);P3=Com[8];P0=Seg[minute/10];
P3=Com[3];delay(100);P3=Com[8];P0=Seg[10];
P3=Com[2];delay(100);P3=Com[8];P0=Seg[hour%10];
P3=Com[1];delay(100);P3=Com[8];P0=Seg[hour/10];
P3=Com[0];delay(100);P3=Com[8];}/***************************************************************按键扫描***************************************************************/voidKeyget(){//通过标志位来控制模式
if(ms==0){flag=1;}if((ms)&&(flag)) {flag=0;mode++;if(mode==3)mode=0;}if(mode==1)
{if(ADD==0){ADD_bit=1;}//加按键
if((ADD)&&(ADD_bit))
{ADD_bit=0;minute++;if(minute==60)minute=0;}
if(DEC==0){DEC_bit=1;}//减按键if((DEC)&&(DEC_bit==1)) {DEC_bit=0;if(minute==0)minute=60;minute--;}}if(mode==2){if(ADD==0){ADD_bit=1;}if((ADD)&&(ADD_bit)) {ADD_bit=0;hour++;if(hour==24)hour=0;}if(DEC==0) {DEC_bit=1;}if((DEC)&&(DEC_bit==1)) {DEC_bit=0;if(hour==0)hour=24;hour--;}}}/***************************************************************报时扫描***************************************************************/voiddidi(){if(second==0&&minute==0){SPK=1;delay(20);SPK=0;}}/**************************************************************************中断初始化**************************************************************************/voidtime0(){TMOD=0x01;//设置定时器模式1TH0=(65536-50000)/256;//高八位赋初值TL0=(65536-50000)%256;//低八位赋初值TR0=1;//启动定时器0计数ET0=1;//使能定时器中断EA=1;//使能总中断}/***********************************************************************主函数***********************************************************************/voidmain(){time0();while(1){Keyget(); //加减控制Segplay();//数码管显示
didi();//报时控制}}/**************************************************************************中断服务程序**************************************************************************/voidtimer0()interrupt1{TH0=(65536-50000)/256;//高八位赋初值TL0=(65536-50000)%256;
//低八位赋初值
counter++;
if(counter==20)
{counter=0;second++;if(second==60)
{second=0;minute++;}//秒进位
if(minute==60)
{minute=0;hour++;}
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南新乡小学数学试卷
- 会考云南数学试卷
- 广西全国卷数学试卷
- 江苏对口高一数学试卷
- 2025建筑行业人工承包合同
- 2025标准的家政服务合同模板
- IT运维知识智能提取-洞察及研究
- 海珠七上数学试卷
- 2025钢筋租赁合同
- 媒介艺术社区传播-洞察及研究
- 2025区域型变电站智能巡视系统技术规范
- 汛期公交安全课件
- 环境影响管理方案(3篇)
- 财务报表编制与审核合同模板
- 上海闵行区教育系统招聘实验员考试真题2024
- 建设部建设工程重大质量安全事故应急预案
- 2025年中航油招聘笔试参考题库附带答案详解
- 2024年中国中高端电子铝箔行业市场调查报告
- 2022版体育与健康课程标准
- 《陆上风电场工程概算定额》NBT 31010-2019
- 红星水库除险加固工程初步设计报告
评论
0/150
提交评论