毕业设计(论文)基于AT89S51单片机数字钟的设计

上传人:仙*** 文档编号:81249476 上传时间:2022-04-26 格式:DOC 页数:36 大小:374.50KB
返回 下载 相关 举报
毕业设计(论文)基于AT89S51单片机数字钟的设计_第1页
第1页 / 共36页
毕业设计(论文)基于AT89S51单片机数字钟的设计_第2页
第2页 / 共36页
毕业设计(论文)基于AT89S51单片机数字钟的设计_第3页
第3页 / 共36页
点击查看更多>>
资源描述
毕 业 设 计(论 文)设计(论文)题目: 定时控制电子钟 系 别: 汽车与电气工程系 1专 业: 计算机控制技术 1班 级: 1姓 名: 1学 号:指导教师: 完成时间:摘要计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。单片机在这种情况下诞生了。截止今日,单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师了。单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是集合CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。其特性如下:1.时间精密准确,具有极高的时间精度,一个月的误差不超过1分钟,比旧款普通时钟有极大提高。2.低耗电。3.具有极强的抗干扰能力本文通过对一个基于单片机的能实现8路定时,闹钟等功能的多功能电子时钟的设计学习,详细介绍了单片机应用中的数据转换显示,键盘扫描原理,单片机的定时中断原理。从而达到学习、了解单片机相关指令在各方面的应用。本文介绍了一款基于AT89S51单片机数字钟的设计,通过多功能数字钟的设计思路,详细叙述了系统硬件、软件的具体实现过程。论文重点阐述了数字钟硬件中MCU模块、语音模块、时钟模块和相关控制模块等的模块化设计与制作;软件同样采用模块化的设计,包括中断模块、闹钟模块、时间调整模块设计,并采用简单流通性强的MOV语言编写实现。本设计实现了时间与闹钟的修改功能和星期的显示功能。并且通过对比实际的时钟,查找出了误差的来源,确定了调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。文章后附有电路原理图、PCB板图和程序清单,以供读者参考。因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。关键词:单片机、显示器、电源目录摘要 - - - - - - - - - - - - - - - - - - - - - - - - - -2关键词- - - - - - - - - - - - - - - - - - - - - - - - - 2第1章:引言- - - - - - - - - - - - - - - - - - - - - - 4第2章:设计目的及主要性能指标2.1:设计目的- - - - - - - - - - - - - - - - -5 2.2:主要性能指标- - - - - - - - - - - - - -5第3章:使用说明- - - - - - - - - - - - - - - - - - - - 6第4章:方案论证 4.1:用JK触发器组成的电子钟- - - - - - - - - - 7 4.2:用单片机组成的电子钟 - - - - - - - - - - 8第5章:基本原理第6章:基本元器件介绍6.1:AT89C51介绍 6.2:LED数码管简介第7章:硬件设计 7.1:8031最小系统 7.2:显示部分 7.3:键盘部分 7.4:电源部分 7.5:精度第8章:软件设计 8.1:程序框图 8.1.1:主程序框图 8.1.2:初始化程序框图 8.1.3 :显示程序框图 8.1.4:按键程序框图 8.1.5:加一子程序框图 8.1.6:定时中断服务子程序框图 8.1.7 :定时比较子程序框图 8.2:ROM分配表 8.3:程序清单第1章:引言定时控制电子钟是用现今较流行的AT89C51单片机设计而成,具有精度高、性能好、稳定性可靠、显示清晰、使用方便等特点。只要四个按键,就能满足你的工作、生活的需要。可广泛应用于工厂、宾馆、商店、社会服务等每个家庭。单片原理及应用是一门技术性、应用性很强的学科,实践教学是它的一个极为重要的环节。不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节的局面。任随书本上把单片机技术介绍得多么重要、多么实用多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会感到对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。通过完成一个涉及MCS51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。该电子时钟不但具有定时作用还有温度采集作用。定时部分可以显示时、分、秒,而且用按键还可以实现时间的调整和闹铃的设定。温度采集部分实现环境温度数据的采集。在上一学期进行的EDA课程设计中,同学们完成了单片机数据采集与定时系统的硬件电路设计。本次综合实践是在此基础上,焊接制作电路板,完成该系统的软件设计与调试。待仿真成功后,再将程序烧写入单片机中。通过该课程设计,使我们对MCS-51系列单片机有一个全面的了解,对单片机的开发、应用全过程的都很好的锻炼,巩固了所学的知识第2章:设计目的及主要性能指标2.1、设计目的本次设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS51单片机都种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排版调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。2.2主要性能指标1) 显示星期、时、分、秒。精度0.5秒/天。2) 具有8路定时功能,定时时间到,控制继电器动作。3) 定时方式受人工控制,即不需要报时或定时时可操作按键予以消除。4) 电源220V105) 功耗2.5W第3章:使用说明1.接通电源,按下“RET”键,屏幕显示初始值。2.按动“选位”键,被选中的单元有闪烁现象,这时可以按“修改”键进行调整.连续按“选位”键后,其他单元依次循环闪烁。3.当某一单元出现闪烁后,按动“修改”键,该单位内容加1。4当需要预置定时值时,按一下“定时”键,原“星期”显示为“定时时段号”这时显示的时间已经不是当时的时间,而是定时的时间,为未调整前,所有时段的时间都默认为“0:00”。定时的设置方法与时间的设置方法一样。5.在任何状态下,按动“运行”键,该仪器恢复显示当前的时间。第4章:方案论证根据技术指标的要求,实现电子钟的设计可通过多种方案,如纯模拟电路,中规模数字集成电路,大规模数字集成电路或单片机的集成器件。下面通过分析来决定使用哪种方案。采用JK触发器构成的数字钟JK触发器是以纯模拟电路设计而成,其元器件简单,要想构成数字钟,首先应有一个能自动产生稳定的标准时间脉冲信号的信号源,还需要有一个使高频脉冲信号变成适合于即使的低频脉冲信号的分频器电路,即频率为1HZ的“秒脉冲”信号。经过分频器输出的秒脉冲信号到计数器中进行计数。计数器通过JK触发器来完成及控制修改电路,最后通过驱动显示电路来显示时间。分频器它能将高频脉冲变换为低频脉冲,由触发器以及计数器来完成,由于一个触发器就是一个二分频,N个触发器就是个分频器,如果用计数器作为分频器,就要按进制数进行分频。如M进制计数器就为M分频器下图为石英晶体振荡器的原理图下图为用JK触发器或计数器作为分频器的方框图但用JK触发器来实现电子钟时,虽然所需的元器件简单,但组合连接比较复杂,设计不方便,在作硬件时不好焊接,容易出错,故不推荐使用。还有其他的方法如中规模集成电路和大规模集成电路,它们的成本较高,本着经济、可靠、体积小,功能扩展方便并具有先进性的基本原则,我们应该选用当今最流行的、已经被广泛应用的器件-MS-51 8031或AT89C51单片微型计算机为核心方案的基本设计思想,使得本设计满足基本要求,即技术新,先进性,体积小,精度高,功能扩展方便,成本方案较低。下面是8051单片机的一些特点:MS51系列单片机无论在片内RAM容量,I/O接口的功能,种类和数量上,还是在系统的扩展功能,指令系统CPU的处理方式等方面,和早期产品相比都大大的得到提高,尤其是对于实时编程控制有突出的优点,它是控制型应用领域中最理想的8位微型计算机,已得到广泛应用。下一章将详细介绍此类单片机的特性。第5章:基本原理定时控制电子钟的设计主要有硬件设计和软件设计两大部分:硬件设计包括了AT89S51的最小系统,电源部分,显示部分,键盘部分,功率放大部分。软件设计其实是在结合硬件的基础上,实现规定的技术指标。是通过内部的定时器来完成时间的计数及显示的。其精度主要取决于单片机本身的晶振频率的精度。定时控制则通过时钟不间断的和设定的时间进行比较,当两者相同时,则控制输出,使得对应的继电器动作。其中最小系统,电源等相关介绍将在第七章做详细介绍。在此不多加重复叙述。第6章:基本元器件介绍6.1:AT89C51介绍微型计算机的基本组成有三部分,即中央处理器CPU (通常包括运算器和控制器)+存储器+输入/输出 (I/O) 接口。若将组成计算机的基本部件集成在一块芯片上,则俗称为单片微机。 80C51内部结构主要包括中央处理器CPU (算术逻辑部件 ALU、控制器等) 、只读存储器 ROM、 随机存取存储器RAM、定时器/计数器、并行 I/O口 P0P3、串行口、中断系统以及定时控制逻辑电路等。1.中央处理器 单片微机中的中央处理器(CPU)是单片微机的核心,主要完成运算和控制功能,又增设了“面向控制”的处理功能,增强了实时性。2. 程序存储器 根据内部是否带有程序存储器而形成三种型号:内部没有程序存储器的称80C31,内部带ROM的称80C51,内部以EPROM代替ROM的称87C51。目前单片微机的程序存储器有以下几种结构形式: 片内只读存储器片内掩膜ROM的特点是程序必须在制作单片微机时写入。 片内可编程的ROM 。 可直接由用户进行编程 紫外线可擦除型ROMEPROM型单片微机 (如87C51)。EPROM需用紫外线擦除,必须脱机固化,不能在线改写。 电可擦除型ROMEEPROM,称为Flash单片微机 (如89C51)。EPROM和EEPROM都是可以多次擦除和编程的,或称MTP的ROM。OTP的 ROM,仅允许用户一次编程。 片外只读存储器 利用单片微机的并行扩展技术可以外扩片外只读存储器。3. 数据存储器(RAM) 在单片微机中,用随机存取存储器(RAM)来存储程序在运行期间的工作变量和数据,所以称为数据存储器。在单片微机中,常把寄存器(如工作寄存器、特殊功能寄存器、堆栈等)在逻辑上划分在片内RAM空间中,所以可将单片微机内部RAM看成是寄存器堆,有利于提高运行速度。当内部RAM容量不够时,还可通过串行总线或并行总线外扩数据存储器。4. 并行I/O口单片微机往往提供了许多功能强、使用灵活的并行输入/输出引脚,用于检测与控制。有些I/O引脚还具有多种功能,比如可以作为数据总线的数据线、地址总线的地址线、控制总线的控制线等。单片微机I/O引脚的驱动能力也逐渐增大,甚至可以直接驱动外扩的LED显示器。 5. 串行I/O口 目前高档8位单片微机均设置了全双工串行I/O口,用以实现与某些终端设备进行串行通信,或者和一些特殊功能的器件相连的能力,甚至用多个单片微机相连构成多机系统。随着应用的拓宽,有些型号的单片微机内部还包含有二个串行I/O口。 6. 定时器/计数器 在单片微机的实际应用中,往往需要精确的定时,或者需对外部事件进行计数。为了减少软件开销和提高单片微机的实时控制能力,因而均在单片微机内部设置定时器/计数器电路。80C51共有二个16位的定时器/计数器,80C52则有三个16位的定时器/计数器。 7. 中断系统80C51单片微机的中断功能较强,具有内、外共五个中断源,二个中断优先级。8定时电路及元件计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律地一个节拍一个节拍地执行各种操作。单片微机内部设有定时电路,只需外接振荡元件即可工作。外接振荡元件一般选用晶体振荡器,或用价廉的RC振荡器,也可用外部时钟源,作为振荡元件。近来有的单片微机将振荡元件也集成在芯片内部。按引脚的功能可分为三部分 :1. 电源和晶振:Vcc运行和程序校验时接电源正端。 Vss接地。 XTAL1输入到单片微机内部振荡器的反相放大器。当采用外部振荡器时,对单片微机, 此引脚应接地;对CHMOS单片微机,此引脚作驱动端。XTAL2反相放大器的输出,输入到内部时钟发生器。当采用外部振荡器时,XTAL2接收振荡器信号。2. I/O: 共4个口,32根I/O线。 P08位、漏极开路的双向I/O口。当使用片外存储器(ROM及RAM)时,作低八位地址和数据总线分时复用。P0口(作为总线时)能驱动 8个 LSTTL负载。P18位、准双向I/O 口。在编程/校验期间,用做输入低位字节地址。P1口可以驱动 4个 LSTTL负载。 对于80C52,P1.0T2,是定时器2的计数输入端;P1.1T2EX,是定时器2的外部输入端。读两个特殊引脚的输出锁存器时应由程序置1。P28位、准双向I/O口。 当使用片外存储器(ROM及RAM)时,输出高8位地址。在编程/校验期间,接收高位字节地址。P2口可以驱动4个LSTTL负载。P38位、准双向I/O口,具有内部上拉电路。 P3提供各种替代功能。在提供这些功能时,其输出锁存器应由程序置 1。P3口可以输入/输出4个LSTTL负载。 串行口: P30RXD 串行输入口。 P31TXD 串行输出口。 中断口: P32 外部中断0输入。 P33 外部中断1输入。 定时器计数器: P34定时器/计数器T0 的外部输入。 P35定时器/计数器T1的外部输入。 数据存储器选通: P36WR 低电平有效,输出,片外存储器写选通。 P37 RD 低电平有效,输出,片外存储器读选通。3. 控制线:共4根。 RST复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,将器件复位。 EA /Vpp片外程序存储器访问允许信号,低电平有效。EA=1,选择片内程序存储器(80C51为4KB,80C52为8KB) ;EA=0,则程序存储器全部在片外而不管片内是否有程序存储器。使用80C31时,必须接地,使用8751编程时,施加 21V的编程电压。ALE/PROG地址锁存允许信号,输出。在访问片外存储器或I/O时,用于锁存低八位地址,以实现低八位地址与数据的隔离。由于ALE以 1/6的振荡频率固定速率输出,可作为对外输出的时钟或用作外部定时脉冲。在EPROM编程期间,作输入。输入编程脉冲(PROG)。ALE可以驱动8个LSTTL负载。PSEN片外程序存储器读选通信号,低电平有效。在从片外程序存储器取指期间,在每个机器周期中,当有效时,程序存储器的内容被送上 P0口(数据总线)。可以驱动 8个LSTTL负载。6.2:LED数码管简介LED数码管(LED Segment Displays)是由多个发光二极管封在在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等.,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下页将介绍常用LED数码管内部引脚图片图1 这是一个7段两位带小数点 10引脚的LED数码管图2引脚定义 每一笔划都是对应一个字母表示 DP是小数点LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。 A、静态显示驱动: 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O埠进行驱动,或者使用如BCD码二-十进位解码器解码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O埠多,如驱动5个数码管静态显示则需要5840根I/O埠来驱动,要知道一个89S51单片机可用的I/O埠才32个呢。故实际应用时必须增加解码驱动器进行驱动,增加了硬体电路的复杂性。 B、动态显示驱动: 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp 的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。 透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。 恒流驱动与非恒流驱动对LED数码管的影响主要有以下几点: 1、显示效果: 由于LED基本上属于电流敏感元件,其正向压降的分散性很大,并且还与温度有关,为了保证数码管具有良好的亮度均匀度,就需要使其具有恒定的工作电流,且不能受温度及其它因素的影响。另外,当温度变化时驱动晶片还要能够自动调节输出电流的大小以实现色差平衡温度补偿。 2、安全性: 即使是短时间的电流超载也可能对发光管造成永久性的损坏,采用恒流驱动电路后可防止由于电流故障所引起的数码管的大面积损坏。 另外,我们所采用的超大型积体电路还具有级联延时开关特性,可防止反向尖峰电压对发光二极体的损害。超大型积体电路还具有热保护功能,当任何一片的温度超过一定值时可自动关断,并且可在控制室内看到故障显示。 为什么数码管亮度不均匀? 有两个大的因素影响到亮度一致性。一是使用原材料晶片的选取,一是使用数码管时采取的控制方式。 1、原材料-LED晶粒的VF和亮度和波长是一个正态分布, 即使筛选过LED晶粒,VF和亮度和波长已在一个很小的范围了,生产出来的产品还是在一个范围内,结果就是亮度不一致。 2、要保证LED数码管亮度一样,在控制方式选取上也有差别 最好的办法是恒流控制,流过每一个发光二极体的电流都是相同的,这样发光二极体看起来亮度就是一样的了。如恒压控制,则导致VF不相同的发光二极体分到的电流不相同,所以亮度也不同。当然这两个条件是相辅相成的。 怎样测量数码管引脚,分共阴和共阳? 找公共共阴和公共共阳,首先,我们找个电源(3到5伏)和不同规格的电阻,VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的找到一个就够了,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。也可以直接用数位万用表,红表笔是电源的正极,黑表笔是电源的负极。第七章 硬件设计7.1 8031最小系统单片机的主要功能是负责整个系统的控制,不承担复杂的数据处理任务,因此在设计单片机最小系统时通常选用AT89C5l、AT89C52、AT89S51、AT89S52(S系列芯片支持ISP功能)等型号的8位单片机作为MCU。8031最小系统由8031单片机、锁存器74LS373、EPROM2764组成。8031的片内没有程序存储器,必须外接EPROM电路作为程序存储器,8031的引脚EA必须接地,使CPU总是执行外部EPROM中固化的程序。8031的P0口是一个三态的反向口,它可以分时输出外部存储器的低8位地址A0A7和传送数据信息,当信号ALE上升为高电平后P0口输出低8位地址,P2口输出高8位地址,由ALE的上升沿将P0口输出的低8位地址锁存到外部地址锁存器中,接着P0口由输出方式变为输入方式,而P2口输出的高8位地址信息不变,紧接着程序存储器选通信号PSEN变为低电平有效,由P2口和地址锁存器输出的地址对应单元指令字节传送到P0口上供CPU读取,这样就实现了P0口地址信息与数据信息的分时传送。本次设计使用的是AT89S52单片机,因其内部已设有ROM,故其不需要外界EPROM;另外引脚EA接电源,使CPU执行内部ROM中的程序。下图为单片机最小系统电路图:7.2显示部分电路设计为动态显示方式,MCS-51单片机具有一个全双工的串行接口,适用在各种场合下,数据传输出同步信号,当数据导入时,送入P0口,再通过P2口来控制哪一组亮,数码管采用共阳型,有+5V电源供电。通过三极管来控制对应数码管的导通。下图为显示部分的原理在实际电路中,7个显示器的七段显示字形,通过P0口的数据来决定数码管显示的数字,哪一个数码管导通,是有P2口对应的三极管的导通来控制某个数码管的导通。其数据如下:I1=IF=10MAIF:发光二极管的正向工作电流VF:显示的正向工作电压R1=(Vcc-VF-2Vces)/IFI0为T段电流之和随字形变化而变化,故不是定值。范围是0107IF即01070MA.故I1选一般小功率NPN硅管即可。7.3 键盘部分由于电路可用的键盘不多,I/O口有很大的多余,故键盘电路采用下图形式。这样的设计给软件减轻的负担,用软件扫描P3口,若发现有低电平输入,则说明右键输入,判断数值,转到相应的服务程序。此外还有自动断电复位功能,7.4电源部分8051的工作电压为+5V,0.5V,工作电流为200MA其他部分工作电流的总电流:500MA 功耗:2.5W下图为典型的电源电路:7.5:精度仪器精度取决于微机本身的精度,以及软件设计的定时精度,而软件的设计定时精度又取决于晶振精度。故要求保证晶振的精度就能保证技术指标提出的要求。每天共24*60*60=86400S每天应许误差0.0000115us现有8051晶振为6MHZ,6MHZ应许误差为:0.0000019us误差要求6MHZ0.000708MHZ.符合要求经过以上的硬件设计,按照原理图最终设计硬件图如下:最终做好硬件电路板,并检测成功。第8章:软件设计8.1:程序框图8.1.1:主程序框图程序清单ORG 0000HLJMP STAORG 000BHLJMP T0STA:MOV SP,#6FH ;设置堆栈 MOV IE,#82H ;应允许T0中断 MOV TMOD,#02H ;定时器方式2 MOV TH0,#06H ;定时时间500us MOV TL0,#06H ;定时时间500us MOV 30H,#14H ;10ms的计时初值 MOV 31H,#32H ;0.5S的计时初值 MOV 32H,#00H ;清秒计数器 MOV 33H,#00H ;清分计数器 MOV 34H,#00H ;清时计数器 MOV 35H,#01H ;置星期初值 MOV 36H,#03H ;置选位计数器为非修改状态 SETB TR0 ;启动定时器MAIN:MOV A,P3 ;取键盘) CJNE A,#0FFH,LOOP1 ;判断是否有键按下,有就跳 SJMP LOOP2 ;无键按下,跳走LOOP1:JB 00H,LOOP3 ;有键按下的标志,调跳走 SETB 00H ;无标志,先置标志 JB P3.1,LOOP4 ;判断是不是选位键 LJMP KEY0 ;是选位键,跳到选位键程序LOOP4:JB P3.3,LOOP2 ;断是不是加1键 LJMP KEY1 ;是加1键,跳到加1子程序LOOP2:CLR 00H ;清有键按下的标志LOOP3:MOV DPTR,#TABLE ;置七段码首址 MOV A,34H ;取时的计数器内容 SWAP A ;交换时的高低位,先显示高位 ANL A,#0FH ;屏蔽高位 MOVC A,A+DPTR ;取七段码 MOV C,01H; MOV ACC.7,C; MOV P0,A ;上面3步为秒节拍处理 MOV A,36H ;把选位计数器内容送A CJNE A,#01H,LOOP12 ;判断是不是选中时单元,未选中就跳 JNB 01H,LOOP12 ;判断有无闪动标志,没有讲究跳 ORL P0,#7FH ;清显示LOOP12:CLR P2.0 ;选通时高位数码管 LCALL DELY ;延时5MS ORL P2,#0FH ;关显示 MOV A,34H ;取时的低位显示 ANL A,#0FH ;屏蔽高位 MOVC A,A+DPTR ;取七段码 MOV C,01H; MOV ACC.7,C; MOV P0,A ;上面3步为秒节拍处理 MOV A,36H ;把选位计数器内容送A CJNE A,#01H,LOOP13;判断是不是选中时单元,未选中就跳 JNB 01H,LOOP13 ;判断有无闪动标志,没有讲究跳 ORL P0,#7FH ;清显示LOOP13:CLR P2.1 ;选通时低位数码管 LCALL DELY ;延时5MS ORL P2,#0FH ;关显示 MOV A,33H ;取分的高位显示 SWAP A ANL A,#0FH ;屏蔽高位 MOVC A,A+DPTR ;取七段码 MOV C,01H; MOV ACC.7,C; MOV P0,A ;上面3步为秒节拍处理 MOV A,36H ;把选位计数器内容送A CJNE A,#00H,LOOP14;判断是不是选中分单元,未选中就跳 JNB 01H,LOOP14 ;判断有无闪动标志,没有讲究跳 ORL P0,#7FH ;清显示LOOP14:CLR P2.2 ;选通分高位数码管 LCALL DELY ;延时5MS ORL P2,#0FH ;关显示 MOV A,33H ;取分的低位显示 ANL A,#0FH ;屏蔽高位 MOVC A,A+DPTR ;取七段码 MOV C,01H; MOV ACC.7,C; MOV P0,A ;上面3步为秒节拍处理 MOV A,36H ;把选位计数器内容送A CJNE A,#00H,LOOP15;判断是不是选中分单元,未选中就跳 JNB 01H,LOOP15 ;判断有无闪动标志,没有讲究跳 ORL P0,#7FH ;清显示LOOP15:CLR P2.3 ;选通分低位数码管 LCALL DELY ;延时5MS ORL P2,#0FH ;关显示 MOV A,32H ;取秒的高位显示 SWAP A ANL A,#0FH ;屏蔽高位 MOVC A,A+DPTR ;取七段码 MOV C,01H; MOV ACC.7,C; MOV P0,A ;上面3步为秒节拍处理 CLR P2.4 ;选通秒高位数码管 LCALL DELY ;延时5MS ORL P2,#0FH ;关显示 MOV A,32H ;取秒的低位显示 ANL A,#0FH ;屏蔽高位 MOVC A,A+DPTR;取七段码 MOV C,01H; MOV ACC.7,C; MOV P0,A ;上面3步为秒节拍处理 CLR P2.5 ;选通秒低位数码管 LCALL DELY ;延时5MS ORL P2,#0FH ;关显示 MOV A,35H ;取星期显示 MOVC A,A+DPTR;取七段码 MOV C,01H; MOV ACC.7,C; MOV P0,A ;上面3步为秒节拍处理 MOV A,36H ;把选位计数器内容送A CJNE A,#02H,LOOP16;判断是不是选中分单元,未选中就跳 JNB 01H,LOOP16 ;判断有无闪动标志,没有讲究跳 ORL P0,#7FH ;清显示LOOP16:CLR P2.6 ;显示星期数码管 LCALL DELY ;延时5MS ORL P2,#0FH ;关显示 LJMP MAINKEY0: INC 36H ;选位计数器加1 MOV A,36; CJNE A,#03H,LOOP6;将选位计数器内容限制在0到3内 MOV 36H,#00H ;如果为3,则清零LOOP6: LJMP LOOP3KEY1: MOV A,36H ;加1子程序开始 ADD A,#33H ;由选位计数器得到被修改被修改的单元地址 MOV A,R0; ADD A,#01H ;被修改的单元对应的计数器内容加1 DA A ;转换成十进制 MOV R0,A ;送回对应的计数器 MOV R1,36H; CJNE R1,#00H,LOOP7;判断是不是改分,不是就跳 CJNE A,#60H,LOOP8;判断分有没有到60,没到就跳 MOV R0,#00H ;到60,分清零 SJMP LOOP8LOOP7: CJNE R1,#01H,LOOP18;判断是不是改时,不是就跳 CJNE A,#24H,LOOP8 ;判断满没满24,没满就跳 MOV R0,#00H ;满24,清零LOOP8: MOV 32H,#00H ;有修改,就清零秒计数器 SJMP LOOP19LOOP18:CJNE R1,#02H,LOOP19;判断是不是该星期,不是就跳 CJNE A,#07H,LOOP20;判断是不是7,不等就跳LOOP20:MOV R0,#00H ;到7,就清零LOOP19:LJMP LOOP3 ;跳到显示T0: PUSH ACC ; PUSH PSW ;进栈前保护 DJNZ 30H,LOOP11 ;10MS计时到没到,没到就跳 MOV 30H,#14H ;重置计数器 DJNZ 31H,LOOP11 ;0.5S计数器到没到,没到就跳 MOV 31H,#32H ;重置计数器 CPL 01H ;秒节拍取反 JNB 01H,LOOP11 ;未到1S,跳走 MOV A,32H ;秒加1 ADD A,#01H; DA A; MOV 32H,A ;送回秒计数器 CJNE A,#3CH,LOOP11;判断秒计数器到没到60,没到就跳 MOV 32H,#00H ;到60,秒计数器就清零 MOV A,33H ;分加1 ADD A,#01H; DA A; MOV 33H,A ;送回分计数器 CJNE A,#3CH,LOOP11;判断分计数器到没到60,没到就跳 MOV 33H,#00H ;到60,分计数器就清零 MOV A,34H ;时加1 ADD A,#01H; DA A; MOV 34H,A ;送回时计数器 CJNE A,#18H,LOOP11;判断时计数器到没到24,没到就跳 MOV 34H,#00H ;到60,时计数器就清零 MOV A,35H ;星期加1 ADD A,#01H; MOV 35H,A ;送回星期计数器 CJNE A,#07H,LOOP22;判断时计数器到没到24,没到就跳 ADD A, #01H MOV 35H,A LJMP LOOP3LOOP22:CJNE A,#09H,LOOP11 MOV 35H,#01H ;到60,时计数器就清零LOOP11:POP PSW POP ACC RETIDELY: MOV R2,#05H ;延时5MS子程序LOOP21:MOV R3,#250;LOOP17:DJNZ R3,LOOP17 ;4US*250=1MS DJNZ R2,LOOP21 ;1MS*5=5MS RETTABLE:DB 0C0H,0F9H,0A4H,0B0H,99H;7段字形表 DB 92H,82H,0F8H,80H,90H END心得体会通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。 这个设计过程中,我们通过在原有的计数器系统进行了改进,使之增添了暂停、计数、清零等的三个控制功能,使之成为一个更加适用,功能更加完备的属于自己的一个系统。设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。设计中我遇到了很多问题,最后在杨老师的辛勤指导下,终于游逆而解。同时,在杨老师的身上我学得到很多实用的知识。总体来说,这次实习我受益匪浅.在摸索该如何设计程序使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力.在让我体会到了设计的艰辛的同时,更让我体会到成功的喜悦和快乐. 这次数电课程设计,虽然短暂但是让我得到多方面的提高:1、提高了我们的逻辑思维能力,使我们在逻辑电路的分析与设计上有了很大的进步。加深了我们对组合逻辑电路与时序逻辑电路的认识,进一步增进了对一些常见逻辑器件的了解。另外,我们还更加充分的认识到,数字电路这门课程在科学发展中的至关重要性2,查阅参考书的独立思考的能力以及培养非常重要,我们在设计电路时,遇到很多不理解的东西,有的我们通过查阅参考书弄明白,有的通过网络查到,但由于时间和资料有限我们更多的还是独立思考。3,相互讨论共同研究也是很重要的,经常出现一些问题,比如电路设计中的分频器的设计,开始并不理解分频器的原理,但是和其他的专业同学讨论后,理解了各元件的基本原理后,很快的设计了电路原理图。然后按照原理图把硬件做出来了。下面的任务就是软件的问题。在写程序的时候,一开始不知如何下手。后来我们就找资料查看,再和老师探讨,终于把程序框图写出来了。当程序写完后,发现程序运行出错,秒计数器到60不往分计数器进位了。自己调试了好多次就是不行,后来请教老师,经过老师的讲解,最终把问题搞定了。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我们学也到很多实用的知识,在次我们表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。在此,感谢于老师的细心指导,也同样谢谢其他各组同学的无私帮助!毕业设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次数电课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做数电课程设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固我觉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。经过几个月的实习,过程曲折可谓一语难尽。在此期间我们也失落过,也曾一度热情高涨。从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。通过实习,我才真正领略到“艰苦奋斗”这一词的真正含义,我才意识到老一辈电子设计为我们的社会付出。我想说,设计确实有些辛苦,但苦中也有乐,在如今单一的理论学习中,很少有机会能有实践的机会,但我们可以,而且设计也是一个团队的任务,一起的工作可以让我们有说有笑,相互帮助,配合默契,多少人间欢乐在这里洒下;我想说,确实很累,但当我们看到自己所做的成果时,心中也不免产生兴奋; 正所谓“三百六十行,行行出状元”。我们同样可以为社会作出我们应该做的一切,这有什么不好?我们不断的反问自己。也许有人不喜欢这类的工作,也许有人认为设计的工作有些枯燥,但我们认为无论干什么,只要人生活的有意义就可。社会需要我们,我们也可以为社会而工作。既然如此,那还有什么必要失落呢?于是我们决定沿着自己的路,执着的走下去。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。对我们而言,知识上的收获重要,精神上的丰收更加可喜。挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆!通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 元器件清单元器件名称数量(个)备注电阻19P0.0P0.7上的7个上拉电阻,P2.0P2.6的6个上拉电阻晶振16MHZ电容13C1C4,C9C11,C15C20三极管7PNP型AT89C511按键4S1S4七段数码管7共阳发光二极管4L1L4扬声器1附录参考文献(编著) 付玉明:电路分析基础 中国水利水电出版社2002年2月 第1版 2004年8月第2版
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!