收藏 分销(赏)

电子时钟课程设计.doc

上传人:丰**** 文档编号:4361013 上传时间:2024-09-13 格式:DOC 页数:17 大小:370.50KB
下载 相关 举报
电子时钟课程设计.doc_第1页
第1页 / 共17页
电子时钟课程设计.doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述
学号 成绩 ‘ 沈阳城市建设学院 基于51单片机得电子时钟系统设计   课程名称      《单片机原理及应用》    专    业          班   级     16- 1 班       姓  名             2017 年  12 月  18日 目录 一、方案设计ﻩ3 1、1、单片机得选择方案ﻩ3 1.2、数码管得选择方案 3 1.3、上拉电阻得选择方案ﻩ3 1.4、总体设计框图 3 二、程序ﻩ5 三、硬件模块程序设计 5 3、1、单片机最小系统 5 3。2数码管显示模块ﻩ5 四、软件模块设计ﻩ6 五、系统硬件电路得设计 6 六、课程设计总结ﻩ7 七、参考资料 8 摘 要  数字钟已成为人们日常生活中不可少得必需品,给人们得生活,学习,工作带来极大得方便。本文介绍得数字钟就是一种利用数字电路来显示时、分、秒得装置,与传统得机械钟相比,它具有走时准确,性能稳定,显示直观,无机械传动装置等特点。  数字电子钟由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路等组成。秒信号产生器就是整个系统得时基信号,它直接决定计时系统得精度,将标准秒脉冲信号送入“秒计数器",该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”得时钟脉冲。“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲"信号,该信号将被送到“时计数器”。“时计数器"采用24进制计数器,可以实现一天24h得累计。电路就是来对“时、分、秒"显示数字进行校对调整。 关键词:计数器;单片机;数码管; 上拉电阻  一、方案设计 1。1、单片机得选择方案 1、2、数码管得选择方案 1、3、上拉电阻得选择方案 1。4、总体设计框图 1、1、AT89C51就是美国ATMEL公司生产得低电压,高性能CMOS8位单片机,片内含4k bytes得可反复擦写得只读程序存储器(PEROM)与128 bytes得随机存取数据存储器(RAM),器件采用ATMEL公司得高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器(CPU)与Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比得应用场合,可灵活应用于各种控制领域。如图1。1、1:         图   1。1。1 1.2、共阴极数码管就是一类数字形式得显示屏,通过对其不同得管脚输入相对得电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示得参数。由于它得价格便宜、使用简单、在电器,特别就是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用得都就是数码管,其她家电也用液晶屏与荧光屏。如图1。2、1: 图1。2、1 1、3、上拉电阻(排阻,上拉就就是将不确定得信号通过一个电阻嵌位在高电平,电阻同时起限流作用、上拉就是对器件注入电流,下拉就是输出电流;弱强只就是上拉电阻得阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流与电压得能力就是有限得,上拉电阻得功能主要就是为集电极开路输出型电路输出电流通道。所以根据本次课设设计选择上拉电阻。如图1。3.1: 图1、3.1 二、程序 见附页1 三、硬件模块程序设计 3、1、单片机最小系统 51单片机最小系统复位电路得极性电容C1得大小直接影响单片机得复位时间,一般采用10~30uF,51单片机最小系统容值越大需要得复位时间越短。51单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好,P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其她接口内部有上拉电阻,作为输出口时不需外加上拉电阻、 3。2数码管显示模块 1、3、6位共阴数码管显示所示 四、软件模块设计 本次设计使用得软件就是Keil软件,它能够使用简单易懂得高级C语言对单片机进行软件开发,还就是C52系列兼容单片机C语言软件开发系统。 五、系统硬件电路得设计 系统得硬件主要包括单片机芯片,数码管显示,按键开关电路,它得硬件电路如下图所示,单片机采用广泛使用得AT89C51,系统采用12MHz得晶振,采用6位共阴数码管显示。 操作方法:对照原理图,按下SW2按键第一次设置小时数据,SW3按键加,SW4按键减,按下SW2按键第二次设置分钟,SW3按键加,SW4按键减,SW2按键第三次设置秒,SW3按键加,SW4按键减,SW2第四次退出设置。单独得一个按键SW1就是复位按键 硬件电路图如图所示图5。1 图5。1 六、课程设计总结 经过一周得时间以及对整本教材得知识总结,把课程设计分成了硬件与软件两大模块、总得来说,硬件部分很好入手,电路也教简单,主要涉及得就是简单得按键、电容、电阻、晶振与数码管。在软件部分,细分为了按键模块、显示模块、定时/计数模块,最后把几个模块整合在主程序模块中,使得程序简单明了。整个设计过程中遇到得最大问题就是软件得编写,由于采用得就是汇编语言,其间使用到得各种寄存器、存储器地址、变量很多,很难对程序得整体把握、通过电子钟得设计,对单片机得原理、结构、外围电路进一步得了解。在整个设计过程中学到了团体精神与独立解决问题得重要性、为以后得求职之路打下了基础。 七、参考资料 [1]《单片机原理与应用》 谢维成 杨加国  编著   [2] 《单片机应用与仿真调试》 严天峰    编著 [3]《模拟电子技术(第三版)》 胡宴如  耿苏燕 编著 [4]《数字电子技术(第三版)》 杨志忠 卫桦林 编著 附页1 #include〈reg51。h> //头文件 定义单片机内部寄存器 #define uchar unsigned charﻩ//宏定义  缩写成uchar #define uint unsigned int//宏定义  缩写成uint //数码管位端口定义 sbit w1=P2^2; sbit w2=P2^3; sbit w3=P2^4; sbit w4=P2^5; sbit w5=P2^6; sbit w6=P2^7; ////////按键///////////////////// sbit key1=P3^5;//设置时间 sbit key2=P3^6;//加 sbit key3=P3^7;//减 /////共阴数码管段信号编码//////// uchar code table[10]=//0—-—9 {0xFC,0x60,0xDA,0xF2,0x66, 0xB6,0xBE,0xE0,0xFE,0xF6};// uchar num,miao,fen,shi;//计时 时分秒变量 uchar fen1,shi1;//闹钟变量 uchar d1,d2,d3,d4,d5,d6;//显示拆分数据 void delay(uint ms)//1ms  延时函数 数据保持用得 括号里面就是几大概就延时多少ms { uchar x; ﻩfor(ms;ms>0;ms——) ﻩ for(x=110;x>0;x——); } void display()//显示函数 { ﻩd1=shi/10;//小时 ﻩd2=shi%10;// d3=fen/10;// d4=fen%10;//分钟 d5=miao/10;// d6=miao%10;//秒 ﻩw1=0;P0=table[d1];delay(10);//第1位显示数据 P0=0x00;w1=1;//关闭显示消除动态扫描阴影 w2=0;P0=table[d2]|0x01;delay(10);//第2位显示数据 P0=0x00;w2=1;//关闭显示消除动态扫描阴影 w3=0;P0=table[d3];delay(10);//第3位显示数据 P0=0x00;w3=1;//关闭显示消除动态扫描阴影 ﻩw4=0;P0=table[d4]|0x01;delay(10);//第4位显示数据 P0=0x00;w4=1;//关闭显示消除动态扫描阴影 w5=0;P0=table[d5];delay(10);//第5位显示数据 P0=0x00;w5=1;//关闭显示消除动态扫描阴影 ﻩw6=0;P0=table[d6];delay(10);//第6位显示数据 P0=0x00;w6=1;//关闭显示消除动态扫描阴影 } void keyscan()//调时按键扫描函数 { uchar k_flag; if(key1==0)//按键按下ﻩ   一下所有按键执行得模式都就是一样得 { ﻩ delay(10);//延时消除按键抖动 ﻩﻩif(key1==0)//确定按键按下 ﻩ k_flag=1; ﻩ while(key1==0);//等待按键松手 } while(k_flag==1)//开始调整小时数据 { ﻩdisplay(); ﻩ if(key1==0) { ﻩdelay(10);//延时消抖 ﻩ if(key1==0) ﻩ ﻩk_flag=2; ﻩﻩwhile(key1==0); ﻩﻩ} ﻩﻩif(key2==0) ﻩ { ﻩﻩ delay(10); ﻩ if(key2==0) { ﻩ ﻩﻩshi++; ﻩ ﻩif(shi==24)shi=0; ﻩ } ﻩ while(key2==0); ﻩﻩ} ﻩﻩif(key3==0) ﻩﻩ{ ﻩﻩﻩdelay(10); ﻩﻩif(key3==0) ﻩﻩ { ﻩﻩﻩ if(shi==0)shi=24;   ﻩ shi--;ﻩ ﻩﻩ } ﻩ while(key3==0); ﻩ }ﻩ ﻩ} while(k_flag==2)//开始调整分钟数据 { ﻩdisplay(); ﻩ if(key1==0) { ﻩ delay(10);//延时消抖 ﻩ ﻩif(key1==0) ﻩﻩﻩ{ ﻩ ﻩk_flag=3; ﻩ} ﻩﻩ while(key1==0); } ﻩif(key2==0) ﻩ { ﻩﻩdelay(10); ﻩﻩ if(key2==0) ﻩ{ ﻩﻩﻩ fen++; ﻩﻩif(fen==60)fen=0; ﻩﻩﻩ} ﻩﻩ while(key2==0); ﻩﻩ} ﻩif(key3==0) { ﻩ delay(10); if(key3==0) ﻩ{ ﻩ ﻩif(fen==0)fen=60; ﻩﻩ fen-—;ﻩ ﻩ } ﻩﻩ while(key3==0); }ﻩ ﻩ} while(k_flag==3)//开始调整秒数据 ﻩ{ ﻩ display(); if(key1==0) { ﻩ delay(10);//延时消抖 ﻩﻩ if(key1==0) { ﻩﻩﻩﻩk_flag=0; ﻩﻩﻩ} while(key1==0); ﻩ } if(key2==0) ﻩﻩ{ ﻩdelay(10); ﻩ if(key2==0) ﻩ { ﻩmiao++; ﻩﻩﻩif(miao==60)miao=0; ﻩﻩﻩ} ﻩﻩ while(key2==0); } ﻩ if(key3==0) ﻩ{ ﻩ ﻩdelay(10); ﻩ if(key3==0) ﻩ { ﻩﻩﻩ if(miao==0)miao=60; miao--;ﻩ ﻩﻩ} ﻩwhile(key3==0); ﻩ } } } void main() { TMOD=0x01;//定时器0 16位计时模式 TH0=(65536—50000)/256; //50ms定时 TL0=(65536-50000)%256; //50ms定时 EA=1;//开启总中断 ﻩET0=1;//开启定时器中断 ﻩTR0=1;//开启定时器 while(1) { ﻩﻩdisplay();//显示函数 ﻩkeyscan();//按键扫描函数 } } void T0_time() interrupt 1 { ﻩTH0=(65536—50000)/256; //50ms定时 TL0=(65536—50000)%256; //50ms定时 ﻩnum++;//加一次50ms定时 if(num==20)//1S { ﻩnum=0; ﻩﻩmiao++; if(miao==60) ﻩﻩ{ ﻩﻩ miao=0; ﻩ ﻩfen++; ﻩif(fen==60) { ﻩﻩ fen=0; ﻩshi++; ﻩﻩif(shi==24)shi=0; ﻩﻩﻩ} ﻩ} } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服