资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 单 片 机 原 理 及 应 用 课 程 设 计 说 明 书题目 LED 数码管显示电子钟设计系(部)专业(班级)姓名学号指导教师起止日期2课程设计任务书系(部): 专业: 课题名称 LED 数码管显示电子钟设计设计要求1、课题内容:设计一种基于 AT89S52 单片机的数码管显示电子时钟,要求如下: (1) 、能正确显示时间,时钟由八位数码管显示,显示格式为:XX 小时-XX 分-XX 秒。 (2) 、时间能够由按键调整,误差小于 1S。 (3) 、 闹钟功能: 时间运行到与闹钟设定时间时, 闹钟响 (持续响 3秒)(4) 、报时功能:时间运行到正点时间时,闹钟响,几点钟就响几声(每声持续响 2 秒,每两声之间时间间隔 1 秒) 。 (5) 、通过按键切换,可以显示当前日期,显示格式为:XX 年XX 月XX 日,5 秒钟后自动返回时间显示模式。 2、要求: 完成该系统的硬件和软件的设计,在 Proteus 软件上仿真通过,并提交一篇课程设计说明书。 设计工作量1、汇编或 C51 语言程序设计; 2、程序调试; 3、在 Proteus 上进行仿真成功; 4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。 起止日期 工作内容第一天 课题介绍,答疑,收集材料,C51 介绍 第二天 设计方案论证,练习编写 C51 程序第三天第六天 程序设计 第六天第八天 程序调试、仿真 工作计划第九天第十天 系统测试并编写设计说明书 教研室意见年 月 日系(部)主管领导意见年 月 日3目录目录 .4一、 摘要 .5二、 设计内容 .52.1、任务要求 .52.2、设计程序方案 .52.3 设计电路仿真图 .6三、 心得体会 .9四、 参考文献 .1041、摘要单片机全称为单片机微型计算机(Single Chip Microsoftcomputer)。从应用领域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。单片机自 20 世纪 70 年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而 51 单片机是各单片机中最为典型和最有代表性的一种。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203 等都可以满足高精度的要求。2、设计内容2.1、任务要求本次设计时钟电路,使用了 ATC89C51 单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的年、月、日、时、分、秒,还有设定闹钟,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED 显示即可满足设计要求。2.2、设计程序方案设计程序思路:1.实现 8 位数码管动态扫描显示void Display_1Code(unsigned char pos,unsigned char code1);void Display_2Num(unsigned char pos,unsigned char num,unsigned char point);数码管动态扫描就是:段显 位选 延时显示 消影因为我们用的是共阳数码管,而段码表用的共阴的,所以对 code1 取反5共阳数码管高电平点亮,所以 P2 移位后不用取反,从高位开始是第 1 个数码管掩饰显示 1ms,P2 给全 0 全部熄灭,消影作用。2.时间显示采用实时时钟芯片 DS1302,读芯片的 datasheet,根据时序等说明编写驱动程序。1)初始化void DS1302_Init(void)2)底层基本读写函数void DS1302_WriteByte(unsigned char byte)unsigned char DS1302_ReadByte(void)3)对芯片寄存器的读写函数void DS1302_WriteData(unsigned char addr,unsigned char mdata)unsigned char DS1302_ReadData(unsigned char addr)4)修改时间函数void DS1302_RWriteData(unsigned char addr,unsigned char mdata)这些函数的实现就看 dagasheet 了,主要是时序a.时钟上升沿写入数据b.时钟下降沿读出数据c.秒寄存器最高位为 1 关闭时钟,为 0 则开启时钟5)显示时间和日期void Display_Time(void)显示时分秒,0x40 为显示横,如 12-30-00void Display_Date(void)显示日期,如 20131230,中间没有横杆,但是在年月日上有小数点,通过Display_2Num 最后一个参数控制void Display(void)根据 dis_mode 变量选择当前显示的是时间还是日期还是闹钟。GetDateTime 读取时间并与闹钟时间做比较,检测是否到达闹钟时间。6)扫描方式动态扫描,定时器 0 控制扫描周期,10ms 扫描一次void Timer0_OVF(void) interrupt 1TH0 = (65536-10000)/256;TL0 = (65536-10000)%256;3.按键调时void KeyScanf(void)flag_alarm_mode 是闹铃模式则按键退出闹铃并返回,一键关闭闹钟然后对 setting_item 变量自加,依次表示设置秒、分、时、天、月等等,设置项对应的小数点位点亮。加键一样的过程,根据 setting_item 的值加不同的量:秒、分、时。记住改变时间后要修改 DS1302 芯片的寄存器才能真正修改时间。62.3 设计电路仿真图数码管显示模块:图 1 数码管显示模块数码管是一种把多个 LED 显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个 LED 显示段的阳极接在一起,又称为公共端。共阴型就是把多个 LED 显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为 8 段,即 8 个 LED 显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中 DP 是小数点位段。系统采用动态显示方式,用 P0 口来控制 LED 数码管的段控线,而用 P2 口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。本设计采用共阳极数码管。晶振电路模块:在 AT89S51 芯片内部有一个高增 益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚 XTAL2。而在芯 片内部,XTAL1 和 XTAL2 之间跨接晶体振荡器和微调电容,从而构成一个稳定 的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为 单片机的时钟脉冲信号。图 2 晶振电路按键模块:时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器、时个位和时十位计数器及星期计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为 60 进制计数器,时个位和时十位计数器为 24 进制计数器。7图 3 按键模块时钟芯片电路:X1 X2 : 32.768 晶振管脚GND :地RST : 复位脚I/O : 数据输入/输出引脚SCLK : 串行时钟VCC1,VCC2 :电源供电管脚图 4 时钟芯片电路电路总体设计仿真图:8图 5 总体仿真图按菜单/显示时间键会出现一个小光标点,再按菜单/显示时间键,光标点会左移,按加速或者减速键会加减数值。继续按菜单/显示时间键跳到显示日期、闹钟时,也可以用加速或者减速键
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号