单片机课程设计---数字钟设计_第1页
单片机课程设计---数字钟设计_第2页
单片机课程设计---数字钟设计_第3页
单片机课程设计---数字钟设计_第4页
单片机课程设计---数字钟设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第 PAGE 22 页 共 NUMPAGES 22 页微型计算机技术题目名称:多功能数字钟课程设计任务书课程名称:微型计算机技术设计题目:多功能数字钟系统硬件要求:配置单片机的外部程序ROM空间,容量为16K(使用27128芯片)。使用51单片机内部时钟信号为系统提供计时信号。配置LED数码管或液晶显示器显示时间,设置4位操作按键。系统功能要求:在LED数码显示器或液晶显示器上显示:时:分:秒。按键功能自定义,实现按键调整时间功能。具有闹钟功能(选做)。具有秒表功能(选做)。其他要求:每位同学独立完成本设计。2、依据题目要求,提出系统设计方案。3、设计系统电路原理图。调试系统硬件电路、功能程序

2、。编制课程设计报告书并装订成册,报告书内容(按顺序)(1)报告书封面(2)课程设计任务书(3)系统设计方案的提出、分析(4)系统中典型电路的分析(5)系统软件结构框图(6)系统电路原理图(7)源程序(8)课设字数不少于2000字成绩评语前言 :目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医

3、疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。数字钟以成为人们日常生活中数字电子钟一般由振荡器,分频器,译码器,显示器等部分组成。数字钟的应用非常广泛,应用于人家庭以及车站。码头。剧场,办公室等公共场所,给人们的生活,学习,工作,娱乐带来极大的方便,由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确,性能稳定,携带方便等特点,它还用于计时,自动报时及自动控制等各个领域。 尽管目前市场上以有现成数字钟集成电路芯片出售,价格便宜这些都是数字电路中最基本的,应用最广的电路。数字电子钟的基本逻辑功能框图如下:它是一个将“时”,“分”,“秒

4、”显示于人的视觉器官的计时装置。这次的课程设计主要是采用51单片机内部时钟信号为系统提供计时信号,可以通过按键修改时间,使其在给定的时间上进行刷新,最后在数码管上显示时间,通过初值直接给数码管初始化这次主要是对时分秒的编程。还带有闹钟功能设置好时间在时间到时蜂鸣器发出声音。1、系统方案与论证1.1 方案设计主要利用AT89C51单片机外接8155扩展单片机IO口,B口、C口控制数码管的位显示, A口控制数码管的段显示,P1口与按键和蜂鸣器相接用于时间的校正和声音提醒,使用27128芯片配置单片机的外部程序容量为16K的 ROM空间。本设计采用一节1.5V干电池为整个系统供电,在设计中引入一个升

5、压电路(从1.5V升至5V),产生+5V电压用于给CPU及显示电路提供工作电压,这是数字时钟正常工作时的总电压。显示电路将“时”、“分”、“秒”计数器的输出,通过六个八段LED显示器显示出来。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整 图1 系统结构图1.2主要模块方案选择比较与论证1.2.1单片机的选取选用AT89C51作为控制器,价格低,性价比高,多个定时器和其他外围功能丰富。而且运行速度快工作稳定。1.2.2模式转换的选择:键盘按键选择模式,方便易于控制。1.2.3输入方案的选择通过独立键盘输入数据,通过数据的加减来确定数

6、据,功能齐全且直接输入方便快捷。1.2.4显示方案的选择方案一:使用功能更好的液晶显示,增加显示信息的可读性,看起来更方便。而12864点阵液晶模块有明显的优点:微功耗,尺寸小,超薄轻巧,字迹美观,视觉舒适,显示信息量大,大部分功能用不到,造成浪费。 方案二:时间显示可以用数码管,显示信息少,容易控制。经比较,故选用方案二进行设计。2、系统硬件模块2.1 AT89C51单片机 AT89C51是一种带4K HYPERLINK /view/60408.htm t _blank 字节FLASH HYPERLINK /view/87697.htm t _blank 存储器(FPEROMFlash Pr

7、ogrammable and Erasable Read Only Memory)的低电压、高性能CMOS 8位 HYPERLINK /view/1125.htm t _blank 微处理器,俗称 HYPERLINK /view/1012.htm t _blank 单片机。AT89C2051是一种带2K HYPERLINK /view/60408.htm t _blank 字节闪存可编程可擦除 HYPERLINK /view/132973.htm t _blank 只读存储器的 HYPERLINK /view/1012.htm t _blank 单片机。 HYPERLINK /view/101

8、2.htm t _blank 单片机的可擦除 HYPERLINK /view/132973.htm t _blank 只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失 HYPERLINK /view/87697.htm t _blank 存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁 HYPERLINK /view/87697.htm t _blank 存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C51 HYPERLINK /view/1012.htm t _blank 单片机为很多 HYP

9、ERLINK /view/2613031.htm t _blank 嵌入式控制系统提供了一种灵活性高且价廉的方案。2.2复位电路一般情况下单片机的复位电路有两种,即上电复位和手动复位电路。如图所示为手动复位电路。图2复位电路2.晶振电路图 晶振电路2.按键调整电路图 按键调整电路本系统采用四位按键 S4为功能选择键,S3为时分秒选择键,S2、S1为数字加减键。2.蜂鸣器电路由于51单片机管脚功率限制问题,本系统蜂鸣器电路采用一个晶体管驱动,功率大,安全稳定。图蜂鸣器电路2.6 74LS373芯片电路与管脚图图 74LS373管脚电路图 373为三态输出的八 D 透明锁存器,共有 54S373

10、和 74LS373 两种线路 373 的输出端 O0O7 可直接与总线相连。 当三态允许控制端 OE 为低电平时,O0O7 为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0O7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。 当锁存允许端 LE 为高电平时,O 随数据 D 而变。当 LE 为低电平时,O 被锁存在已建立的数据电平。当 LE 端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善 400mV。 引出端符号: D0D7 数据输入端 OE 三态允许控制端(低电平有效) LE 锁存允许端 O0O7 输出端 2.7 27128电路与管脚图图

11、7 27128管脚电路图27128使用了一片用与扩展外部ROM27128管脚说明A0到A13为14条地址信号输入线,说明芯片容量为2的14次方,即16KD0到D7为数据线,表示芯片的每个存储单元存放一个字节(8位二进制数)。对芯片读数时,作为输出线,对芯片编程时,作为输入线。CE为输入信号,低电平有效。(有称作片选信号)OE为输出允许信号,低电平有效PGM为编程脉冲输入端,当对芯片编程时,由此端加入编程脉冲信号;读取数据时PMG的值为1Vcc和Vpp都是接电源的,正常工作时是+5V2.8外部并行口扩展8155电路图图8 8155管脚电路图 2、8155的地址编码及工作方式 8155各引脚功能说

12、明如下: RST:复位信号输入端,高电平有效。复位后,3个I/O口均为输入方式。 AD0AD7:三态的地址/数据总线。与单片机的低8位地址/数据总线(P0口)相连。单片机与8155之间的地址、数据、命令与状态信息都是通过这个总线口传送的。 RD:读选通信号,控制对8155的读操作,低电平有效。 WR:写选通信号,控制对8155的写操作,低电平有效。 CE:片选信号线,低电平有效。 IO/M :8155的RAM存储器或I/O口选择线。当IO/M 0时,则选择8155的片内RAM,AD0AD7上地址为8155中RAM单元的地址(00HFFH);当IO/M 1时,选择 8155的I/O口,AD0AD

13、7上的地址为8155 I/O口的地址。 ALE:地址锁存信号。8155内部设有地址锁存器,在ALE的下降沿将单片机P0口输出的低8位地址信息及 ,IO/ 的状态都锁存到8155内部锁存器。因此,P0口输出的低8位地址信号不需外接锁存器。 PA0PA7:8位通用I/O口,其输入、输出的流向可由程序控制。 PB0PB7:8位通用I/O口,功能同A口。 PC0PC5:有两个作用,既可作为通用的I/O口,也可作为PA口和PB口的控制信号线,这些可通过程序控制。 TIMER IN:定时/计数器脉冲输入端。 TIMER OUT:定时/计数器输出端。 VCC:5V电源。在单片机应用系统中,8155是按外部数

14、据存储器统一编址的,为16位地址,其高8位由片选线 提供, CE0,选中该片。 当 CE0,IO/M 0时,选中8155片内RAM,这时8155只能作片外RAM使用,其RAM的低8位编址为00HFFH;当 CE0,IO/M 1时,选中8155的I/O口,其端口地址的低8位由AD7AD0确定2.9 六位8段LED数码管显示电路图10 LED数码管电路图数码管时间显示分为 时、分、秒三部分,JP3为秒位 采用24进制,JP2为分位,采用60进制,JP1为时位,采用60进制。3、系统软件调试3.1 程序结构 (1)主程序。 实现初始化与键盘监控, (2)定时器 T0 中断服务程序。 时钟电路的设计功

15、能是利用单片机内部的定时/计数器进行中断定时,配合软件 延时实现时、分、秒的计时。利用定时器 T0 中断服务程序实现计时功能,同时 刷新计时缓冲区。定时器 T0 每隔 100ms 益处中断一次(设系统使用 12MHZ 晶振, 定时 T0 工作方式 1) 的定时初值为 3CBOH(即 THO=3CH,TL0=0B0H),每循环中断 10 次则延时时间为 1s,重复 60 次为 1min,分计时 60 次为 1 小时,小时计时 24 次则时间重新回到 00:00:00。 (3)时间设置与闹钟设置子程序。 实现当前时间及定时启闹钟时间的键盘输入设置。其功能是 用键盘设置子程序将键入的 6 位时间值送

16、入键盘设置缓冲区, 用合字子程序将键 盘设置缓冲区中的 6 位 BCD 码合并为 3 位压缩 BCD 码, 送入计时缓冲区或闹钟值寄存区。若键盘输入的小时值大于 23 或分和秒值大于 59,则不合法,将取消本 次设置,清 0 重新开始计时。 (4)键盘扫描子程序。 判断是否有键按下, 无键按下则循环等待, 有键按下则求取返回。 (5)显示子程序。 实现显示缓冲区的 6 位 BCD 码的动态扫描方式显示。 首先将 3 字节计时缓冲区中 时、分、和秒压缩 BCD 码拆分为 6 字节 BCD 码,由拆字子程序实现。当按下时间 或闹钟设置键后,在 6 位设置完成之前,应显示键入的数据而不显示当前时间,

17、 为此系统设置一个计时显示允许标志位 F0,在时间/闹钟设置期间 F0=1,不调用 拆字子程序。 (6)定时比较子程序。 实现当前时间与预设的启闹钟时间的比较,若二者完全相同时,启动蜂鸣器名 叫并置位闹钟标志位。当重新按下 ALM 键时,停闹并清 0 闹钟标志。 (7)其他辅助功能子程序。 键盘设置子程序:将键入的 6 位时间值送入键盘设置缓冲区。 拆字程序:将 3 字节计时缓冲区中时、分和秒压缩 BCD 码拆分为 6 字节 BCD 码并刷新显示缓冲区。 合字子程序:将键盘设置缓冲区中 6 位 BCD 码合并为 3 位压缩 BCD 码,送入 计时缓冲区或闹钟值寄存区,同时检测时间值的合法性。

18、3、2系统软件流程图3.3源程序见附录4、设计总结心得体会在本次课程设计制作过程中,收获颇多。首先,自学能力大大提高。由一开始的一无所知到最终设计成功,所需要的知识除了来自课堂,更多的是课外通过上网查询、向老师等多种渠道获得。其次,在制作过程中遇到很多硬件和软件等各方面的问题,多次修改最终将困难一一解决。通过这次设计不仅丰富了理论知识,更激发了创新精神,受益终生。5参考文献【1】单片微机原理及应用【M】.清华大学出版社.2005.【2】黄庆华,张永格.单片机开发技术和实训【M】. 【3】电子技术基础模拟部分(第四版)【M】.高等教育出版社.1996(2004重印).【4】全国大学生电子设计竞赛

19、训练教程【M】.电子工业出版社.2005-1.【5】数字电子技术基础【M】高等教育出版社.1998-12.【6】模拟电子技术基础【M】高等教育出版社.2006-12.【7】仪器仪表学报【J】第33卷第六期.2012.附录源程序#include #include unsigned char led14=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d, 0 x07,0 x7f,0 x6f,0 x40,0 x00,0 x76,0 x77; /用一维数组定义0-9、横杠、全灭 H和A unsigned char a8=2,3,10,5,9,10,0,0; /给数码管

20、赋初值 unsigned char second=0,minute=59,hour=23;unsigned char minute1=0,hour1=0;unsigned char b8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/位选 unsigned char i,k=0;unsigned int temp;unsigned char M,S_flag,beep_num,ZD_flag;sbit K1=P30;sbit K2=P31;sbit K3=P32;sbit BEEP=P33;/延时函数 /void delay_10us(uns

21、igned n) /10微秒级延时 do _nop_();_nop_();_nop_();_nop_();_nop_(); while(-n);void delay_ms(unsigned n) /毫秒级延时 do delay_10us(100); while(-n); void init() M=0; S_flag=0; /闪烁标志位 TMOD=0 x10; /定时器1以方式1定时 TH1=0 xfc; TL1=0 x18; EA=1; /打开总中断 ET1=1; /允许定时器1中断 TR1=1; /开启定时器1 (开始定时计数) void time1() interrupt 3 /定时器1

22、中断函数 TH1=0 xfc; /定时1ms TL1=0 x18; temp+; if(temp=1000) /配合定时器定时1s temp=0; second+; if(second=59) /正常走时时间 second=0; if(minute59) minute+; else minute=0; hour+; hour%=24; /不使小时数越界 if(hour%12=0) beep_num=24; /12/24点鸣笛12声 else beep_num=hour%12*2; /其它时间的鸣笛声数 ZD_flag=1; /整点标志位 if(hour1=hour&minute1=minute

23、) /闹钟时间到 beep_num=120; /闹1min ZD_flag=1; if(temp%250=0) /每250ms S_flag=!S_flag; /闪烁标志位取反 if(ZD_flag) /有闹时任务 beep_num-; /鸣笛数减1 if(beep_num) BEEP=!BEEP; /鸣笛位取反(1次响1次不响) else BEEP=0; ZD_flag=0; if(k=8) k=0; P1=ak; P2=bk+; /先送代码,再打开关,防止余晖效应 delay_10us(20); /多亮一会儿 P2=0 xff; /熄灭数码管 /显示模块 /void display() a

24、0=(M=1)?(S_flag=1)?ledhour/10:led11):(M=3)?(S_flag=1)?ledhour1/10:led11):(M=4)?ledhour1/10:ledhour/10);/数码管第一位显示 a1=(M=1)?(S_flag=1)?ledhour%10:led11):(M=3)?(S_flag=1)?ledhour1%10:led11):(M=4)?ledhour1%10:ledhour%10); a2=led10; a3=(M=2)?(S_flag=1)?ledminute/10:led11):(M=4)?(S_flag=1)?ledminute1/10:led11):(M=3)?ledm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论