微机系统课程设计基于单片机的数字时钟设计.doc

上传人:laozhun 文档编号:4149139 上传时间:2023-04-07 格式:DOC 页数:16 大小:761.50KB
返回 下载 相关 举报
微机系统课程设计基于单片机的数字时钟设计.doc_第1页
第1页 / 共16页
微机系统课程设计基于单片机的数字时钟设计.doc_第2页
第2页 / 共16页
微机系统课程设计基于单片机的数字时钟设计.doc_第3页
第3页 / 共16页
微机系统课程设计基于单片机的数字时钟设计.doc_第4页
第4页 / 共16页
微机系统课程设计基于单片机的数字时钟设计.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《微机系统课程设计基于单片机的数字时钟设计.doc》由会员分享,可在线阅读,更多相关《微机系统课程设计基于单片机的数字时钟设计.doc(16页珍藏版)》请在三一办公上搜索。

1、微 机 系 统 课 程 设 计 题目: 数字时钟 班级: 小组: 指导教师: 设计日期: 目录摘要 04引言05设计方案论证及选择-05硬件设计061 系统框图 062 控制部分电路 07 3 原件清单 09软件设计 10设计数字钟13 1 数字钟的操作如下 132 流程图 13结束语 21主要参考文献 21 附录 实物图 23 摘要 :近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家

2、用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本文介绍了基于单片机的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论。在文章的最后,给出了采用中断方式实现的数字钟的源程序。 关键字:单片机,数字钟,数据缓冲区,中断,定时,消抖引言1.基于单片机的数字钟电路的设计 本系统采用单片机STC89C52控制,以STC89C52为核心,它完成整个系统的信息处理及协调功能,本次设计我们选用宏晶公司的STC89C52芯片,其功能强大,兼容性好,还支持软件

3、选择的空间和掉电两种节电方式。本设计的软件,硬件都采用模块化的设计方法,提高了设计的效率。 本次设计通过对一个实现定时、时钟显示、串口通信等功能的时间系统的设计,其中结合了数据转换显示、数码管显示、动态扫描、单片机定时中断等技术。系统由STC89C52、LED数码管、按键、三极管、HD74lS244P、MAX2020PE、电阻等组成。能实现时钟时、分、秒的显示,同时具有时间设置功能。文章后附有电路图、原件清单,程序清单。设计方案论证及选择该课题主要有两种方案:一种是用数字电路通过硬件实现,另一种是用单片机通过软件编程实现。在以上两种方案中:第一种是直接采用的是数字电路,但是在外围电路和控制比较

4、麻烦,需要比较多的器件来控制;第二种是采用软件来实现一些特定功能,硬件电路只需要一些显示部件和控制部件,其他的都是由软件来实现。第一种一切都由硬件实现,几乎没有软件编程,但电路复杂、芯片多、后续制板及硬件调试麻烦而且成本高;第二种虽电路简单、芯片少、成本低,但编写程序相当复杂。经过一番利弊的权衡及对今后电子业发展趋势的考量,最后敲定用单片机方案实现。另外用单片机实现本设计也有两种可选的子方案:第一种,用软件编程实现 设计中的钟控功能;另一种则选用单片机加时钟芯片实现钟控功能。在本次主要的是时间的设计,因此对时间的精度要求是比较高的,竟量是误差减少到最小值,但是为了更好的练习复习自己在以前所学习

5、的编程能力,所以不采用单片机加时钟芯片的方案,直接用软件编程实现钟控功能。总的来看,单片机已成为工控领域、尖端武器、日常生活中最广泛使用的计 算机,且将进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格方向发展,因此敲定用单片机加软编程方案符合今后电子业发展趋势;另外运用此方案既能将自己以前学过的模拟电路、数字电路、单片机、汇编语言、Protel99等知识结合实践进行一次全面的检测,又能为将来实际制作电路积累宝贵的经验。 硬件设计 1. 系统框图 如图1:2. 控制部分电路 STC89C52单片机概述:STC89C52单片机是国宏晶公司生产的采用 高性能的静态STC89C52设计,是

6、一个低电压,高性能CHMOS 8位单片 机,片内含4kbytes的可反复擦写的只读Flash程序存储器和128 bytes 的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失 性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理 器和Flash存储单元。STC89C52是一个功能强大的单片机,但它只有40引脚,32个双向输入 /输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断 口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比 较放大器。此外,由于器件采用了动态设计,可提供很宽的操作频率范 围(频率0HZ24MHZ)。即具备

7、可用软件设置的睡眠省电功能,系统的唤 醒方式式RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继 续工作状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功 能停止工作,直至系统被硬件复位方可继续运行。在本设计中STC89C52的时钟电路采用内部时钟方式,此方式是在XTAL1 和XTAL2两端跨接晶体或陶瓷谐振器。在本设计中XTAL1和XTAL2两端跨接11.0592MHz晶体振荡器,其发出的脉冲直接送入内部时钟电路。手动复位的按键电平复位本设计中采用LCD液晶显示屏MAX232CPE串口转并口3. 原件清单 USB端口 1 个六引脚开关 1个四引脚按键 4个九针串口 1 个发光

8、二极管 1 个、瓷片电容0.1U F 4个瓷片电容 33PF 2个电解电容10UF 1个MAX232CPE芯片 1个晶振11.0592 1 个AT89C51 芯片 1 个LCD1602液晶显示 1 个MHDR1X9排阻 1 个滑动电阻10K 1个电阻:1K 1 个10K 1个4.7K 2个 5.1K 3 个软件设计程序代码:#include #define uchar unsigned char#define uint unsigned intuint num,k1num,count;uchar hour,min,sec;sbit lcde = P27;sbit lcdrs = P26;sbi

9、t lcdrw = P25;sbit k1 = P10;sbit k2 = P11;sbit k3 = P12;uchar code table = 2011-03-29 TUE;uchar code table1 = 00:00:00;void delay (unsigned int i) uchar j;for (i;i0;i-)for (j=110;j0;j-);void write_com(uchar com) lcdrs = 0;lcdrw = 0;P0 = com;delay(5);lcde = 1;delay(5);lcde = 0;void write_data(uchar d

10、)lcdrs = 1;lcdrw = 0;P0 = d;delay(5);lcde = 1;delay(5);lcde = 0;void write_hms(uchar da,uchar add)uchar shi,ge;shi = da/10;ge = da%10;write_com(0x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge);void keyscan() if (k1 = 0)delay(5);if (k1 = 0)k1num+;while(!k1);if (k1num = 1)TR0 = 0;write_com(0x80

11、+0x40+10);write_com(0x0f);if (k1num = 2)write_com(0x80+0x40+7);write_com(0x0f);if (k1num = 3)write_com(0x80+0x40+4);write_com(0x0f);if (k1num = 4)k1num = 0;write_com(0x0c);TR0 = 1;if (k1num != 0)if (k2 = 0)delay(5);if (k2 = 0)while(!k2);if (k1num = 1)sec+;if (sec = 60)sec = 0;write_hms(sec,10);write

12、_com(0x80+0x40+10);if (k1num = 2)min+;if (min = 60)min = 0;write_hms(min,7);write_com(0x80+0x40+7);if (k1num = 3)hour+;if (hour = 24)hour = 0;write_hms(hour,4);write_com(0x80+0x40+4);if (k3 = 0) delay(5);if (k3 = 0)while(!k3);if (k1num = 1)sec-;if (sec = -1)sec = 59;write_hms(sec,10);write_com(0x80+

13、0x40+10);if (k1num = 2)min-;if (min = -1)min = 59;write_hms(min,7);write_com(0x80+0x40+7);if (k1num = 3)hour-;if (hour = -1)hour = 23;write_hms(hour,4);write_com(0x80+0x40+4);void init()delay(20);write_com(0x38);delay(1);write_com(0x0c);delay(1);write_com(0x06);delay(1);write_com(0x01);delay(1);TMOD

14、 = 0x01;TH0 = (65536-50000)/256;TL0 = (65536-50000)%256;EA = 1;ET0 = 1;TR0 = 1;void main() init();write_com(0x80);for (num=0;num15;num+)write_data(tablenum);delay(10);write_com(0x80+0x40);for (num=0;num12;num+)write_data(table1num);delay(10);while(1)keyscan();void Timer0_irq(void) interrupt 1TH0 = (

15、65536-50000)/256;TL0 = (65536-50000)%256;count+;if (count = 20)count = 0;sec+;if (sec = 60)sec = 0;min+;if (min = 60)min = 0;hour+;if (hour = 24)hour = 0;write_hms(hour,4);write_hms(min,7);write_hms(sec,10);设计如下数字钟1数字钟的操作如下: 按键R 状态1:R2,调整数字钟的时钟数据。 状态2:R3,调整数字钟的时钟数据。 状态3: R4, 调整数字钟的时钟数据。按键RST 状态4:RST

16、,对数字钟进行复位清零操作在进行调整或设置状态时,显示对应状态的数据并且对应的各调整位数码DP点亮。这样可以使调整更加可视化。按键完成选择操作,和秒表的清零、调整操作。在进入了时间调整状态或定时设置状态时,按此键可以加一,或在秒表启动后处于停止状态时,按此键可以完成清零操作。按键秒表启止键,此键必须在秒表状态进入了之后才有效。 2流程图: 在以下流程图中只描述了基本的功能,如给显示位加点,中断程序状态调整,加一操作,显示状态的切换,在流程图中都没有描述。但其设计就是基于以上介绍的显示指针,和状态指针的思想。在程序中用R0,R1充当此指针。程序设计的基本流程图如下结束语在这次难得的实训中我锻炼了

17、自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。 再次感谢老师的严格要求而给了我这样一个机会,以此不仅培养了我书写论文的能力,更重要的是培养了我在面对需要重大紧急问题时的能力,课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。 主要参考文献:1、单片机原理及接口技术 刘岩川、王都生编著 大连民族学院 2011年2月2、单片机原理及应用 李建忠 编著 西安电子科技大学出版 2002年2月3、单片机中级教程 张俊谟 编著 北京航空航天大学出版 2000年1月4、单片机原理与应用技术 江力 编著 清华大学出版社附录 实物图 如图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号