数字钟毕业设计

上传人:1666****666 文档编号:39776502 上传时间:2021-11-12 格式:DOC 页数:20 大小:140.51KB
返回 下载 相关 举报
数字钟毕业设计_第1页
第1页 / 共20页
数字钟毕业设计_第2页
第2页 / 共20页
数字钟毕业设计_第3页
第3页 / 共20页
点击查看更多>>
资源描述
毕 业 设 计(论 文) 设 计(论文)题 目:数 字 钟 系 别: 电 子 工 程 系专 业: 通 信 技 术 班 级: 05 通 信(1)班 姓 名: 学 号: 0504041147 指导教师: 完成时间: 0 8 年 4 月 目 录论文目录1摘要 2第一章 绪 论第一节 课题简介3第二节 系统功能要求3第二章 设计方案第一节 设计功能3第二节 实现功能方法4第三节 方案论证5第三章 硬件设计分析第一节 硬件框图5第二节 数字钟电路原理图6第三节 硬件分析6第四章 软件设计第一节 单片机汇编语言8第二节 系统主要程序设计8第三节 数字钟汇编语言源程序11第五章检测与调试第一节 硬件调试17第二节 软件调试17第六章 心得体会18附录: 参考文献19 摘要:近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(LED数码显示器时钟芯片、等功能模块),再配以相应的软件,其硬件电路设计主要包括中央处理单元电路、时钟电路、信号处理电路等几部分组成。关键字:单片机 电子时钟 AT89C51 闹铃第一章 绪 论第一节 课题简介该产品介绍一个采用AT89C51单片机芯片制作的“数码显示电子钟”,该LED数码管时钟电路采用24小时计时方式,时、分、秒用六位数码管显示。该电路采用AT89C51单片机,使用桥式整流电流电路和变压器将交流电转化为直流电,其具有电路简单、制作容易、设置方便、使用灵活等优点。第二节 系统功能要求1.本电路采用的内部振荡器方式,晶体振荡器频率为12MHZ,具有较高的频率稳定性,且延时采用数字计数的方式进行,因而对时间的控制、精度较高,可有效地控制时间不准、不可靠的问题出现。2.初始加电时,显示初始状态,本电路的6位数码显示管将自动显示出程序默认的时间,只要不进行新的时间设置,数码管将从初始状态起计时。本程序的初始状态设为00:00:00。3.本电路允许用户随时通过闪烁和加1的功能来输入和设置新的时间参数,范围在1S和24H之间任意调试,使用户可以根据自身的需求来进行不同的时间来设置.4.当调时进行完毕后,数码管显示将根据程序的要求自动加入1S秒两位累计加到六十时,向分位进一;分两位累计加到六十时,向时位进一;当时两位累计加到二十三,且分位为五十九秒位为五十九时,十位分位秒位自动归零.并且具有整点报时功能.5.本电路的外接电源可用5V直流电池电源,可以将交流电压转变成直流电,简单方便.6.在进行时间参数的设置和整个显示过程中系统采用六位数码管做”时位分位秒位”来计时显示,直观又准确.第二章 设计方案随着社会科技文化的发展,电子、电脑技术的不断提高,许多电路都有了不同的设计方案及连接方法。相同的产品用不同的系统也能用不同的原理去制成。数字钟作为一个普通的生活用品,有多种不同的制作方案。虽然数字钟比较简单,但作为我初次实验设计方案,对于我们初学者来说还是很有帮助的。在制作数字钟电路时,我选择了二种使用设计方案。第一种是用上述所说的单片机(AT89C51)制作的。第二种主要是用JK触发器制作的。第一节 设计功能为了达到本次设计的要求,有众多方法可以选择,如:运用电子电路设计就是其中一种。才用大量门元件组成数字钟电路,但因条件有限,再加上其十分烦琐、焊接复杂、精度不高,达不到本次设计的目的,故不采用。为了达到实现LED显示器的数字显示,可采用动态显示法和静态显示法。由于静态显示法需要数据锁存器等硬件,接口又稍微复杂一些,而本身此次设计时钟显示只有六位,并且系统本身又没有其它什么繁重的处理任务,所以决定采用动态扫描法实现LED的显示。设计中单片机采用容易购买的AT89C51系列,单片机就具有足够的空余硬件资源实现其它的扩展功能,如果考虑到要采用电池供电的话,则可采用其它适合型号的单片机,在软件方面,通过程序的编制,可以很快的通过运用伟福软件进行修改,大大的提高了工作效率,程序灌输也很迅速。第二节 实现功能方法第一种方案(见原理图)第一种方案的特点比较明显:(1)可靠性高 (2)性能价格比高 (3)操作简便 (4)才用AT89C51单片机系统相对的比前者的集成化程度更高。而基本的功能和元器件在电路的设计方案和功能要求中会详细说明。两种电路方案相比较之下,前者的方案虽然价格不是很贵,也比较实用、精确。但其电子元件相对多了很多(例如仅是触发器就有13个之多)。使得电路的焊接就显得非常困难。在短期的实践中就会显得比较仓促。更重要的一点就是当今社会的发展趋势是更趋向于高度的集成化。所以我选择了后者即单片机控制时数码管显示电路。这个方案不仅电路简单,也更符合发展的趋势,将高度的集成化融入实践中更具实际意义。第二种方案:如下图所示:第二种方案的设计思路:首先,应有一种秒脉冲产生器,由石英体振荡器产生的基准信号,经过整形和分频获得。秒脉冲经过秒计数器(60进制)可以累计秒脉冲数,而秒计数器输出的分脉冲计数器(60进制)累计分钟数。同样,分计数器输出的脉冲经计数器(24进制)可累计时分数。这些时、分、秒计数通过译码器和显示器显示。最后需要考虑校时电路。这种设计方案中主要用到的是JK触发器。采用8421码异步工作方式。计数方式则采用60进制与24进制。60进制就是10进制与6进制的串联组合。24进制则采用40进制的组合,通过适当的反馈去掉多余的16个状态形成24进制。10进制中用到了4个JK触发器,驱动方程: J3=Q2Q1 J2=1 J1=Q3 J0=1 K3=1 K2=1 K1=1 K0=16进制中用到了3个JK触发器,驱动方程: J2=Q1 J1=Q2 J0=1 K2=1 K1=1 K0=1各级译码和显示电路都是由5Y8译码器和YS13-3八段式荧光数码管组成。工作原理就是把脉冲的数累加起来,并把个触发器的不同状态选给5Y8进行译码。译码器译出来的译码再进到数码管,使其相应的字码发光,从而直接显示出来。最后则是一个校时电路(如前图)(1)调分、调秒电路:可接开关K1(调时)、K2(调分)、K3(调秒)。引入脉冲或0.2秒脉冲调至新校数字为止。(2)报时清零电路:有单脉冲产生电路(由按钮开关K4和基本触发器构成)组成报时清零电路。 第三节 方案论证 从上面几种方案可以看出,利用单片机所设计的数字钟要比采用电子电路所设计的数字钟有明显的优越性。利用AT89C51单片机控制的硬件电路比较简单,软件方面程序也不复杂。因此,制作原理简单,可在功能作用上要比电子电路设计的数字钟精确广泛,方便小巧又通俗易懂。在本次设计采用单片机设计中,动态扫描显示法又有静态扫描法无法比拟的优点,故本次设计采用了以AT89C51为核心,利用其外部电路和数码管的动态扫描的设计思想。第三章 硬件设计分析第一节 硬件框图CPU8051复位电路按键闪烁和加1蜂鸣器数码显示段码输出位码输出第二节 数字钟电路原理图 第三节 硬件分析(一)工作过程本电路采用的是AT89C51单片机,使用5V电池供电,使用三个开关就可以进入调时、省电(不显示LED数码管)和正常显示三种状态。数码管的时钟设计电路如原理图所示,其采用AT89C51单片机最小应用动态扫描方式实现。P1口输出段码数据,P3.0P3.5口作为扫描输出,P3.7口接按钮开关。为了给LED数码管提供足够的驱动电流,用三极管9012做电源的驱动输出。为了提高秒计时的精确性,因而采用了12MHZ的晶振。SET为复位操作键,在此接10UF电解电容,按键开关和10K电阻,实现复位操作键SET时,六位数码管显示00:00:00,即从新开始计时,外接晶体引脚XTAL1和XTAL2分别接石英晶体12MHZ两端,再并联2个30PF电容接地,它是单片机的反相放大器的输入和输出端,构成了片内振荡器。单片机在时钟电路工作以后,在RST端持续给出2个机器周期的高电平就可以完成复位操作。访问片内程序存储器的控制信号时需在EA/VP上接皆V电源,因为当它为高电平时,单片机访问片内程序存储器4KB。(二)数值计算和电阻取值 如图所示 假设LED数码显示器八段全亮,则集成极电流Ics为240mA,基极与发射极之间的电压2伏,则基极电流Ib=U/R,即为(5-2)/R,又因为集电极电流为共射电流放大系数B与基极电流之积,即Ic=BIb,当(5-2)/R240mA/B时,PNP工作在饱和区,即R(5-2)*B/240.因此,在此电路中,我们取电阻阻值为100,使PNP工作在饱和区.具体计算如下 U1=2V Ics=240Ma Ib=U/R=(5-2)/R Ic=Ib Ib=Ic/ (5-2)/R240mA/ R(5-2)*/240 =100 R=100 (三)元件清单 名称 型号规格 数量 单片机 AT89C51 1 LED数码显示管 SM4105 6 电阻 RES2,100 7 RES2,10K 1 RES2,4.7K 6 三极管 9012 6 有极性电容 ELECTR01,10UF 1 无极性电容 CAP,30PF 2 石英晶体 CRYSTAL,12MHZ 1 按键开关 SW-PB 3 蜂鸣器 1第四章 软件设计第一节 单片机汇编语言自从1946世界上第一台数字电子计算机问世以来,计算机应用领域不断扩大,计算机技术高速发展,尤其是近几年来计算机的硬件和软件日新月异。作为应用计算机的一种程序设计语言,也得到了不断的充实和完善。由于构成计算机的电子器件的特性所决定,计算机只能识别二进制代码。这种以二进制代码来描述指令功能代码的语言,称之为机器语言。用机器语言组成的程序,称为目标程序。计算机就是按照机器语言的指令来完成各种功能操作的,它具有程序简洁,占有存储空间小,执行速度快,控制功能强等特点。由于机器语言只是一种二进制数0、1组成的代码。人们不易识别、记忆和书写,因此使用不便,易错,也很难用它来进行程序设计。为了既能体现机器语言的特点,又便于人们的理解、记忆和书写,计算机常采用助记符来编写指令。助记符是根据机器指令不同的功能和操作对象来描述指令的。由于它采用有关英文的缩写来描述指令的特征,因此不但便于记忆,也便于理解和分类。这种采用助记符和其他一些符号所编写的指令程序,称为汇编语言源程序。只要经过汇编就可将源程序变成计算机可执行的目标程序。但要注意的一个问题是,汇编语言与计算机的类型有关,不同的机器要完成同样的功能。他们的助记符,即英文的缩写有可能不同。因此对不同的机器要掌握不同的汇编语言助记符,使用很不方便。单片机程序存储器中存储程序或常数表格,都是以二进制形式存放的机器语言程序,要把用助记符编制的汇编语言源程序翻译成二进制目标程序有两种途径:一种是利用单片机开发装置或PC机,用配有的汇编程序工具把汇编语言源程序编译成目标程序;另一种是人工翻译。第二节 系统主要程序设计显示缓冲单元在70H75H,70H71H显示秒,72H73H显示分,74H75H显示时;时间计数单元在70H71H(秒),76H77H(分),78H79H(时),74H单元放熄灭符(#0AH);计数单元采用BCD码计数,定时器T0设置为50ms溢出中断,为秒计数用,定时器T1为调整时闪烁用P3.7为调整按钮,P1口为字符输出口,采用共阳显示管。 1主程序:从本设计的主程序流程图中可以看出,当按下复位开关SET时,显示单元开始清零,将T0、T1设为16位计数器模式。此时允许T0中断,然后调用子程序,如果此时P3.7口为零,即输入为低电平,表示此时复位键SET已经按下,即可进入调时程序进行时间设置。如若P3.7口不为零,为1,即高电平,则程序返回到显示子程序,继续执行,进行时间加1S,如此循环。开始显示单元清0T1,T0设为16计数器模式位允许T0中断调用显示子程序P3.7=0? N Y进入调试程序2显示子程序:数码管的显示的数据存放在内存单元70H75H中,其中70H71H存放秒数据,72H73H存放分数据,74H75H存放时数据。每一单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应码段存放在ROM表中。显示时,先取出70H75H某一地址中的数据,然后查它的对应的显示用码段从P1口输出。P3口将对应的数码管选种供电,这样就能显示地址单元的数据值。3定时器T0中断服务程序:这是本次时钟设计的关键,也是重中之重。定时器T0的作用是用来进行时间计时。定时溢出中断周期设为50ms ,中断累计达20次,即1s钟时对秒计时单元的数据进行加1操作。在执行T0中断服务程序时采用了BCD码计数,满60进位。具体分析见下图:T0中断保护现场1秒到? N秒单元加1=60秒? N秒单元清0,分加1=60分? N分单元清0,时加1=24小时? N时单元清0恢复现场,中断返回 N4调时程序调时程序是本次设计的一个重点,也是一个难点,因此,此次设计对调时程序作了较为详细的分析。调时功能程序的设计方法是:按下按钮,若按下时时间小于1S,进入省电状态(数码管不亮,时钟不停),否则进入调分状态,等待操作,此时计时器停止走动。当再次按下按钮时,若按下时间小于0.5s,则时间加1分钟;若按下时间大于0.5s,则进入小时调整状态。在小时调整状态下,当按键按下的时间大于0.5s时退出调整状态,时钟继续走动。 第三节 数字钟汇编语言源程序; 中断入口程序 ; ORG 0000H ;程序执行开始地址 LJMP START ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口 RETI ;外中断0中断返回 ORG 000BH ;定时器T0中断程序入口 LJMP INTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口 RETI ;外中断1中断返回 ORG 001BH ;定时器T1中断程序入口 LJMP INTT1 ;跳至INTT1执行 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回; ; ; 主 程 序 ; ; START: MOV R0,#70H ;清70H-7AH共11个内存单元 MOV R7,#0BH ;CLEARDISP: MOV R0,#00H ; INC R0 ; DJNZ R7,CLEARDISP ; MOV 20H,#00H ;清20H(标志用) MOV 7AH,#0AH ;放入熄灭符数据 MOV TMOD,#11H ;设T0、T1为16位定时器 MOV TL0,#0B0H ;50MS定时初值(T0计时用) MOV TH0,#3CH ;50MS定时初值 MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用) MOV TH1,#3CH ;50MS定时初值 SETB EA ;总中断开放 SETB ET0 ;允许T0中断 SETB TR0 ;开启T0定时器 MOV R4,#14H ;1秒定时用初值(50MS20) START1: LCALL DISPLAY ;调用显示子程序 JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序 SJMP START1 ;P3.7口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM; 1秒计时程序 ;T0中断服务程序 INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLR ET0 ;关T0中断允许 CLR TR0 ;关闭定时器T0 MOV A,#0B7H ;中断响应时间同步修正 ADD A,TL0 ;低8位初值修正 MOV TL0,A ;重装初值(低8位修正值) MOV A,#3CH ;高8位初值修正 ADDC A,TH0 ; MOV TH0,A ;重装初值(高8位修正值) SETB TR0 ;开启定时器T0 DJNZ R4, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值 MOV R0,#71H ;指向秒计时单元(71H-72H) ACALL ADD1 ;调用加1程序(加1秒操作) MOV A,R3 ;秒数据放入A(R3为2位十进制数组合) CLR C ;清进位标志 CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出 ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H) ACALL ADD1 ;分计时单元加1分钟 MOV A,R3 ;分数据放入A CLR C ;清进位标志 CJNE A,#60H,ADDHH ; ADDHH: JC OUTT0 ;小于60分时中断退出 ACALL CLR0 ;大于或等于60分时分计时单元清0 MOV R0,#79H ;指向小时计时单元(78H-79H) ACALL ADD1 ;小时计时单元加1小时 MOV A,R3 ;时数据放入A CLR C ;清进位标志 CJNE A,#24H,HOUR ; HOUR: JC OUTT0 ;小于24小时中断退出 ACALL CLR0 ;大于或等于24小时小时计时单元清OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移 MOV 73H,77H ;入对应显示单元 MOV 74H,78H ; MOV 75H,79H ; POP PSW ;恢复状态字(出栈) POP ACC ;恢复累加器 SETB ET0 ;开放T0中断 RETI ;中断返回; 闪动调时 程 序 ;T1中断服务程序,用作时间调整时调整单元闪烁指示INTT1: PUSH ACC ;中断现场保护 PUSH PSW ; MOV TL1, #0B0H ;装定时器T1定时初值 MOV TH1, #3CH ; DJNZ R2,INTT1OUT ;0.3秒未到退出中断(50MS中断6次) MOV R2,#06H ;重装0.3秒定时用初值 CPL 02H ;0.3秒定时到对闪烁标志取反 JB 02H,FLASH1 ;02H位为1时显示单元熄灭 MOV 72H,76H ;02H位为0时正常显示 MOV 73H,77H ; MOV 74H,78H ; MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场 POP ACC ; RETI ;中断退出FLASH1: JB 01H,FLASH2 ;01H位为1时,转小时熄灭控制 MOV 72H,7AH ;01H位为0时,熄灭符数据放入分 MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据 MOV 74H,78H ; MOV 75H,79H ; AJMP INTT1OUT ;转中断退出FLASH2: MOV 72H,76H ;01H位为1时,熄灭符数据放入小时 MOV 73H,77H ;显示单元(74H-75H),小时数据将不显示 MOV 74H,7AH ; MOV 75H,7AH ; AJMP INTT1OUT ;转中断退出; 加1子 程 序 ; ADD1: MOV A,R0 ;取当前计时单元数据到A DEC R0 ;指向前一地址 SWAP A ;A中数据高四位与低四位交换 ORL A,R0 ;前一地址中数据放入A中低四位 ADD A,#01H ;A加1操作 DA A ;十进制调整 MOV R3,A ;移入R3寄存器 ANL A,#0FH ;高四位变0 MOV R0,A ;放回前一地址单元 MOV A,R3 ;取回R3中暂存数据 INC R0 ;指向当前地址单元 SWAP A ;A中数据高四位与低四位交换 ANL A,#0FH ;高四位变0 MOV R0,A ;数据放入当削地址单元中 RET ;子程序返回 ; 清零程序 ;对计时单元复零用 CLR0: CLR A ;清累加器 MOV R0,A ;清当前地址单元 DEC R0 ;指向前一地址 MOV R0,A ;前一地址单元清0 RET ;子程序返回; 时钟调整程序 ;当调时按键按下时进入此程序 SETMM: CLR ET0 ;关定时器T0中断 CLR TR0 ;关闭定时器T0 LCALL DL1S ;调用1秒延时程序 JB P3.7,CLOSEDIS ;键按下时间小于1秒,关闭显示(省电) MOV R2,#06H ;进入调时状态,赋闪烁定时初值 SETB ET1 ;允许T1中断 SETB TR1 ;开启定时器T1 SET2: JNB P3.7,SET1 ;P3.7口为0(键未释放),等待 SETB 00H ;键释放,分调整闪烁标志置1 SET4: JB P3.7,SET3 ;等待键按下 LCALL DL05S ;有键按下,延时0.5秒 JNB P3.7,SETHH ;按下时间大于0.5秒转调小时状态 MOV R0,#77H ;按下时间小于0.5秒加1分钟操作 LCALL ADD1 ;调用加1子程序 MOV A,R3 ;取调整单元数据 CLR C ;清进位标志 CJNE A,#60H,HHH ;调整单元数据与60比较 HHH: JC SET4 ;调整单元数据小于60转SET4循环 LCALL CLR0 ;调整单元数据大于或等于60时清0 CLR C ;清进位标志 AJMP SET4 ;跳转到SET4循环CLOSEDIS:SETB ET0 ;省电(LED不显示)状态。开T0中断 SETB TR0 ;开启T0定时器(开时钟) CLOSE: JB P3.7,CLOSE ;无按键按下,等待。 LCALL DISPLAY ;有键按下,调显示子程序延时削抖 JB P3.7,CLOSE ;是干扰返回CLOSE等待 WAITH: JNB P3.7,WAITH ;等待键释放 LJMP START1 ;返回主程序(LED数据显示亮) SETHH: CLR 00H ;分闪烁标志清除(进入调小时状态)SETHH1: JNB P3.7,SET5 ;等待键释放 SETB 01H ;小时调整标志置1 SET6: JB P3.7,SET7 ;等待按键按下 LCALL DL05S ;有键按下延时0.5秒 JNB P3.7,SETOUT ;按下时间大于0.5秒退出时间调整 MOV R0,#79H ;按下时间小于0.5秒加1小时操作 LCALL ADD1 ;调加1子程序 MOV A,R3 ; CLR C ; CJNE A,#24H,HOUU ;计时单元数据与24比较 HOUU: JC SET6 ;小于24转SET6循环 LCALL CLR0 ;大于或等于24时清0操作 AJMP SET6 ;跳转到SET6循环 SETOUT: JNB P3.7,SETOUT1 ;调时退出程序。等待键释放 LCALL DISPLAY ;延时削抖 JNB P3.7,SETOUT ;是抖动,返回SETOUT再等待 CLR 01H ;清调小时标志 CLR 00H ;清调分标志 CLR 02H ;清闪烁标志 CLR TR1 ;关闭定时器T1 CLR ET1 ;关定时器T1中断 SETB TR0 ;开启定时器T0 SETB ET0 ;开定时器T0中断(计时开始) LJMP START1 ;跳回主程序 SET1: LCALL DISPLAY ;键释放等待时调用显示程序(调分) AJMP SET2 ;防止键按下时无时钟显示 SET3: LCALL DISPLAY ;等待调分按键时时钟显示用 AJMP SET4 SET5: LCALL DISPLAY ;键释放等待时调用显示程序(调小时) AJMP SETHH1 ;防止键按下时无时钟显示SET7: LCALL DISPLAY ;等待调小时按键时时钟显示用 AJMP SET6 SETOUT1: LCALL DISPLAY ;退出时钟调整时键释放等待 AJMP SETOUT ;防止键按下时无时钟显示; 显示程序 ; 显示数据在70H-75H单元内,用六位LED共阳数码管显示,P1口输出段码数据,P3口作; 扫描控制,每个LED数码管亮1MS时间再逐位循环。 DISPLAY: MOV R1,#70H ;指向显示数据首址 MOV R5,#0FEH ;扫描控制字初值 PLAY: MOV A,R5 ;扫描字放入A MOV P3,A ;从P3口输出 MOV A,R1 ;取显示数据到A MOV DPTR,#TAB ;取段码表地址 MOVC A,A+DPTR ;查显示数据对应段码 MOV P1,A ;段码放入P1口 LCALL DL1MS ;显示1MS INC R1 ;指向下一地址 MOV A,R5 ;扫描控制字放入A JNB ACC.5,ENDOUT ;ACC.5=0时一次显示结束 RL A ;A中数据循环左移 MOV R5,A ;放回R5内 AJMP PLAY ;跳回PLAY循环 ENDOUT: SETB P3.5 ;一次显示结束,P3口复位 MOV P1,#0FFH ;P1口复位 RET ;子程序返回 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;共阳段码表 012 34567 89不亮; 延时程序 ;1MS延时程序,LED显示程序用 DL1MS: MOV R6,#14H DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET;20MS延时程序,采用调用显示子程序以改善LED的显示闪烁现象 DS20MS: ACALL DISPLAY ACALL DISPLAY ACALL DISPLAY RET;延时程序,用作按键时间的长短判断 DL1S: LCALL DL05S LCALL DL05S RET DL05S: MOV R3,#20H ;8毫秒*32=0.196秒 DL05S1: LCALL DISPLAY DJNZ R3,DL05S1 RET END ;程序结束 第五章检测与调试第一节 硬件调试:硬件调试是利用开发系统、基本测试仪器(万用表、示波器)等,检查用户系统硬件中存在的故障。硬件调试可分为静态调试和动态调试两步进行:静态调试:静态调试是在用户系统未工作时的一种调试。步骤如下:第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,在检测各种电源线与接地线之间是否有短路现象。第三步:加点检测。给电路板加电,检测所有的插座或者是硬件的电源是否符合要求的植。第四步:联机检查。应为只有单片机开发系统才能完成对用户系统的调试。动态调试:动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、元器件失效或一些逻辑错误等的一种硬件检查。第二节 软件调试:软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。程序运行后编辑,查看是否有逻辑的错误。直到都没有错误后,我们就可以生成HEX文本,然后将程序灌到芯片中,最后,将芯片安装到硬件电路中去,插上电源进行调试,看电路是否能按工作原理正常运行。第六章 心得体会随着毕业日子的到来,毕业设计也接近了尾声。经过几周的奋战我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现自己的看法有点太片面。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识还比较欠缺。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。 有了自己的设计方案之后就拟定电路草图,电路草图拟定好以后,就通过万用表等仪器,不断的制定元件的参数,选取元件。电路板的排板得讲究其合理性与美观性。在焊接电路板时要非常细心,对应的口线要连接正确,特别应注意的是LED数码管的引脚号对应的端口连接的是否正确。在检测电路板的过程中也得细心,遇到有错误时不要慌,慢慢检查,先检查连线是否正确。在确保连线都正确的情况下,一般问题都出现在焊接技术上,检查是否有虚焊,或是不小心连焊的。总的来说,这次的毕业设计做得很成功。对我的启发也很大。从选择到定稿、从查找资料到电路图设计、再从理论到实践,整个过程中包含了很多知识,我学到了不少以前没接触的东西,同时也巩固了以前所学的知识。课程设计给了我一个教训,要有缜密的思维,扎实的专业基础加以灵活利用。本次设计让我领会到,理论与实践相结合。光有设想与理论是不行的,还要把它们转化成实践。这次的毕业设计让我把单片机的理论知识用在实践中,实现了理论和实践相结合,从中更懂得理论的是实践的基础,实践有能检验理论的正确性,对我以后参加工作或者继续学习。通过本次设计,我对单片机有了更深入的了解,对于程序的编写也有了很大的提高。 我的心得也就这么多了,总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。 在此要感谢我的指导老师周绍平主任对我悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。附录:参考文献 1 杨欣等电子设计从零开始M 北京:清华大学出版社2005-102 夏路易,石宗义电路原理图与电路设计教程Protel 99SEM 北京:北京希望电子出版社20023 黄正谨综合电子设计与实践M 南京:东南大学出版社2002-34 于海生微型计算机控制技术M 北京:清华大学出版社1999-65 孙涵芳MCS-51系列单片机原理及应用M 北京:北京航空航天大学出版社1996-46 王毓银数字电路逻辑设计M 北京:高等教育出版社2004-2杨超: 论文修改意见如下:1.硬件框图部分缺少一个200字左右的文字说明,介绍每一个框图的功能;2.参考文献的出版社前面加所在城市名和冒号;3.把整篇文章再过细一下,看看有没有错字漏字和别字,标点符号有没有用错等等;4.打印后用透明文件夹夹好,交来准备答辩. 周老师19
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


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

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


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