电子时钟课程设计a版

上传人:shaoy****1971 文档编号:107748204 上传时间:2019-10-20 格式:DOC 页数:18 大小:369.50KB
返回 下载 相关 举报
电子时钟课程设计a版_第1页
第1页 / 共18页
电子时钟课程设计a版_第2页
第2页 / 共18页
电子时钟课程设计a版_第3页
第3页 / 共18页
电子时钟课程设计a版_第4页
第4页 / 共18页
电子时钟课程设计a版_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《电子时钟课程设计a版》由会员分享,可在线阅读,更多相关《电子时钟课程设计a版(18页珍藏版)》请在金锄头文库上搜索。

1、学号成绩沈阳城市建设学院基于51单片机的电子时钟系统设计 课程名称 单片机原理及应用 专 业 班 级 16- 1 班 姓 名 2017 年 12 月 18日目录一、方案设计31.1、单片机的选择方案31.2、数码管的选择方案31.3、上拉电阻的选择方案31.4、总体设计框图3二、程序5三、硬件模块程序设计53.1、单片机最小系统53.2数码管显示模块5四、软件模块设计6五、系统硬件电路的设计6六、课程设计总结7七、参考资料8摘 要数字钟已成为人们日常生活中不可少的必需品,给人们的生活,学习,工作带来极大的方便。本文介绍的数字钟是一种利用数字电路来显示时、分、秒的装置,与传统的机械钟相比,它具有

2、走时准确,性能稳定,显示直观,无机械传动装置等特点。数字电子钟由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路等组成。秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒脉冲信号送入“秒计数器”,该计数器采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计数器,可以实现一天24h的累计。电路是来对“时、分、秒”显示数字进行校对调整。关键词:计数器;单片机;数码管; 上拉电阻一、方案设计1.1、单片机的

3、选择方案1.2、数码管的选择方案1.3、上拉电阻的选择方案1.4、总体设计框图1.1、AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。如图1.1.1: 图 1.1.11.2、共阴极数码管是一类数字形式的显示屏,通过对其不同的管脚输入相

4、对的电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。由于它的价格便宜、使用简单、在电器,特别是家电领域应用极为广泛,空调、热水器、冰箱等等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。如图1.2.1:图1.2.11.3、上拉电阻(排阻,上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用。上拉是对器件注入电流,下拉是输出电流;弱强只是上拉电阻的阻值不同,没有什么严格区分;对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。所以根据本次课设设计选择

5、上拉电阻。如图1.3.1: 图1.3.1二、程序见附页1三、硬件模块程序设计3.1、单片机最小系统51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。51单片机最小系统起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好,P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。其他接口内部有上拉电阻,作为输出口时不需外加上拉电阻。3.2数码管显示模块1.3、6位共阴数码管显示所示四、软件模块设计本次设计使用的软件是Keil软件,它能够使用简单易懂的高级C语言对单片机进行

6、软件开发,还是C52系列兼容单片机语言软件开发系统。五、系统硬件电路的设计系统的硬件主要包括单片机芯片,数码管显示,按键开关电路,它的硬件电路如下图所示,单片机采用广泛使用的AT89C51,系统采用12MHz的晶振,采用6位共阴数码管显示。操作方法:对照原理图,按下SW2按键第一次设置小时数据,SW3按键加,SW4按键减,按下SW2按键第二次设置分钟,SW3按键加,SW4按键减,SW2按键第三次设置秒,SW3按键加,SW4按键减,SW2第四次退出设置。单独的一个按键SW1是复位按键硬件电路图如图所示图5.1 图5.1六、课程设计总结经过一周的时间以及对整本教材的知识总结,把课程设计分成了硬件和

7、软件两大模块。总的来说,硬件部分很好入手,电路也教简单,主要涉及的是简单的按键、电容、电阻、晶振和数码管。在软件部分,细分为了按键模块、显示模块、定时/计数模块,最后把几个模块整合在主程序模块中,使得程序简单明了。整个设计过程中遇到的最大问题是软件的编写,由于采用的是汇编语言,其间使用到的各种寄存器、存储器地址、变量很多,很难对程序的整体把握。通过电子钟的设计,对单片机的原理、结构、外围电路进一步的了解。在整个设计过程中学到了团体精神和独立解决问题的重要性。为以后的求职之路打下了基础。七、参考资料 1单片机原理与应用 谢维成 杨加国 编著 2 单片机应用与仿真调试 严天峰 编著3模拟电子技术(

8、第三版) 胡宴如 耿苏燕 编著4数字电子技术(第三版) 杨志忠 卫桦林 编著附页1#include /头文件 定义单片机内部寄存器#define uchar unsigned char/宏定义 缩写成uchar#define uint unsigned int/宏定义 缩写成uint/数码管位端口定义sbit w1=P22;sbit w2=P23;sbit w3=P24;sbit w4=P25;sbit w5=P26;sbit w6=P27;/按键/sbit key1=P35;/设置时间sbit key2=P36;/加sbit key3=P37;/减/共阴数码管段信号编码/uchar code

9、 table10=/0-90xFC,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 延时函数 数据保持用的括号里面是几大概就延时多少msuchar x;for(ms;ms0;ms-)for(x=110;x0;x-);void display()/显示函数d1=shi/10;/小时d2=shi%10;/d3=fen/10;/d4=fen%1

10、0;/分钟d5=miao/10;/d6=miao%10;/秒w1=0;P0=tabled1;delay(10);/第1位显示数据P0=0x00;w1=1;/关闭显示消除动态扫描阴影w2=0;P0=tabled2|0x01;delay(10);/第2位显示数据P0=0x00;w2=1;/关闭显示消除动态扫描阴影w3=0;P0=tabled3;delay(10);/第3位显示数据P0=0x00;w3=1;/关闭显示消除动态扫描阴影w4=0;P0=tabled4|0x01;delay(10);/第4位显示数据P0=0x00;w4=1;/关闭显示消除动态扫描阴影w5=0;P0=tabled5;dela

11、y(10);/第5位显示数据P0=0x00;w5=1;/关闭显示消除动态扫描阴影w6=0;P0=tabled6;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

12、=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(ke

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号