收藏 分销(赏)

[单片机课设]秒表时钟计时器的设计.doc

上传人:s4****5z 文档编号:8735425 上传时间:2025-02-28 格式:DOC 页数:24 大小:177.41KB 下载积分:10 金币
下载 相关 举报
[单片机课设]秒表时钟计时器的设计.doc_第1页
第1页 / 共24页
[单片机课设]秒表时钟计时器的设计.doc_第2页
第2页 / 共24页


点击查看更多>>
资源描述
单片机原理课程设计 ——秒表时钟计时器的设计 专 业:电气工程及其自动化 方 向:电力系统 姓 名:韦敏 学 号:201120305415 指导老师:汪厚新 目 录 第1章 方案论证 1 第2章 硬件设计 3 2.1秒表/时钟计时器的总体设计 3 2.2 AT89C52单片机最小系统 4 2.3 74LS244芯片说明 6 2.4 LED显示器的显示方法及其与单片机的接口 6 2.5电源电路的设计 8 第3章 软件设计 9 3.1主程序 9 3.2显示子程序 9 3.3定时器T0中断服务程序 10 3.4 T1中断服务程序 10 3.5调时功能程序 11 3.6整点响程序 11 3.7时钟/秒表功能程序 11 3.8 程序清单 11 第4章 设计总结 21 第1章 方案论证 现今的计时器通常只能通过启/停按键实现断点计时的功能,即通过启/停按键来记录一段时间。这种计时器查看的时间只能为计时结束时刻。实际的应用中往往需要在不影响正常计时的基础上,能查看记录过程中的某些点的时间。   本课设即针对此问题,设计了一种能通过按键方式查看记录过程中任一时刻值的计时器。这种计时器在查看中间值时不会影响整个记录过程,并且能把相应数据送入存储模块及显示模块,以便查看。 本系统采用AT89C52单片机作控制器,LED数码管,实现显示时、分、秒,以24小时计时方式。为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件,结构较为复杂,考虑时钟显示只有六位,且系统没有其他复杂的处理任务,所以采用动态扫描法实现LED的显示。单片机采用AT89C52系列,有足够的空余硬件资源实现其它的扩充功能。 秒表/时钟计时器的总体设计框图如下图所示。 六位LED显示器 列驱动 AT89C52 P0单片机 控制器 P2 图1.1 系统总体设计框图 系统主要实现如下功能: 1.时钟功能 对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。 由于时钟是不能停止的,因此需要采用内部定时器自动计时,并使用定时器中断处理程序来定时进行时间数值的刷新。52单片机的2个定时器都具有16位定时器的 工作模式。当晶振为12MHz时,16位定时器的最大定时值为65.536mS;要达到1秒钟,可以采用两种方法:采用一个定时器定时与软件计数相结合的方法;或者采用两个定时器级联的方法。由于秒表在计时功能时也需要用到1个定时器,因此,我们采用第一个方法,只使用1个定时器,例如使用T0。为了达到较为准确的计时,使T0的溢出时间为50ms,使用一个字节作为软件计数器ST,计数值为20。定时器的中断处理程序对ST进行减1操作,当ST为0时,1秒到达,此时更新存放小时、分钟、秒钟的显示缓存区。 2.计时功能 当秒表用作计时功能时,也需要一个定时器进行10MS的定时,在本例中使用单片机的TIMER1。在TIMER1的中断处理程序中对SS和ss的缓存空间进行更新,与上面类似。 3.功能按键 再看按键的处理。这3个键可以采用中断的方法,也可以采用查询的方法来识别。对于A、B键,主要功能在于功能切换和数值复位,对于时间的要求不是很严格,而C键主要用于时间的锁定,需要比较准确的控制。因此可以考虑,对A、B键采用查询的方式,而对于C 键采用外部中断。 4.中断嵌套和控制 现在在我的方案中有3个中断,T0、T1中断和外部中断INT0。这3个中断的特点是:T0的工作是连续的,可以在误差范围内可以被打断但不可以停止;T1的工作同样可以在误差范围内被打断,但可以被INT0停止;INT0是用来启动或停止T1的。 第2章 硬件设计 2.1秒表/时钟计时器的总体设计 秒表/时钟计时器的硬件电路设计如图2.1所示。 图2.1 总体硬件设计图 采用AT89C52单片机,数字显示采用共阳六段LED显示器,P0口输出段码数据,P2.0-P2.5口作为列扫描输出,P1.0、P1.1 、P1.3口接三个开关按钮,用以实现调时及秒表/时钟功能切换设置。为了给共阳LED数码管提供驱动电压,采用三极管作电源驱动输出。采用12MHZ晶振,有利于提高系统计时的精确性。对于A、B键,主要功能在于功能切换和数值复位,对于时间的要求不是很严格,而C键主要用于时间的锁定,需要比较准确的控制。因此可以考虑,对A、B键采用查询的方式,而对于C 键采用外部中断。 2.2 AT89C52单片机最小系统 最小系统的核心是AT89C52单片机,其内部带有8KB的FLASH ROM,256B片内RAM,基本上能满足最小系统的设计要求。如接上时钟电路、复位电路即可加电工作。如图2.2所示。 图2.2 单片机最小系统图 AT89C52单片机各引脚的功能和应用介绍如下: 1. 输入/输出引脚   (1) P0口(39~32脚):P0.0~P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。   (2) P1口(1~8脚):P1.0~P1.7统称为P1口,可作为准双向I/O口使用。对于52子系列,P1.0与P1.1还有第二功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。 (3) P2口(21~28脚):P2.0~P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线 引脚功能如下: P3.0        RXD   串行口输入 P3.1        TXD   串行口输出端 P3.2        INT0   外部中断0请求输入端,低电平有效 P3.3        INT1外部中断1请求输入端,低电平有效 P3.4        T0     定时器/计数器0计数脉冲输入端 P3.5        T1     定时器/计数器1计数脉冲输入端 P3.6        WR    外部数据存储器写选通信号输入端,低电平有效 P3.7        RD     外部数据存储器读选通信号输入端,低电平有效 (4) P3口(10~17脚):P3.0~P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可以独立定义为第一功能的输入输出或第三功能。 2. 控制线    (1) ALE/PROG(30脚):地址锁存有效信号输入端。ALE在每个机器周期内输出两个脉冲。在访问片外程序存储器期间,下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。但要注意,在访问片外数据存储器期间,ALE脉冲会跳空一个,此时作为时钟输出就不妥了。 对于片内含有EPROM的机型,在编程期间,该引脚用作编程脉冲PROG的输入端。    (2) PSEN(29脚):片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线P0口读回指令或常数。在访问片外数据存储器期间,PSEN信号将不再出现。    (3) RST/VPD引脚(9脚):RST即为RESET,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。 当Vcc发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。    (4)EA/Vpp(31脚):EA为片外程序存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。 对于片内含有EPROM的机型,在编程期间,此引脚用作21V编程电源Vpp的输入端。 2.3 74LS244芯片说明 开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;通过138、139、153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位,看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的锁存输入,或者缓冲器的选通输入。 图2.3 74LS244引脚 244内部包含8个单向三态门,分为两组,同时作为总线芯片的另外一个特点是驱动能力加强了,可以提供比较大的输出电流,所以经常用来直接驱动光耦、发光管等,也可以用于驱动微型的继电器。 2.4 LED显示器的显示方法及其与单片机的接口 在单片机系统中,通常用LED数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 LED显示器又称数码管,八段LED显示器由8个发光二极管组成。其中7个发光二极管构成字型“8”的各个笔画段,另一个小数点为dp发光二极管。LED显示器有两种不同的形式:一种是发光二极管的阳极都连在一起的,称之为共阳极LED显示器;另一种是发光二极管的阴极都连在一起的,称之为共阴极LED显示器。如图2.4所示。 共阴和共阳结构的LED显示器各笔划段名和安排位置是相同的。当二极管导通时,相应的笔划段发亮,由发亮的笔划段组合而显示各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7 D6 D5 D4 D3 D2 D1 D0,于是用8位二进制码就可以表示欲显示字符的字型代码。例如,对于共阴LED显示器,当公共阴极接地(为零电平),而阳极hgfedcba各段为0111011时,显示器显示"P"字符,即对于共阴极LED显示器,“P”字符的字形码是73H。如果是共阳LED显示器,公共阳极接高电平,显示“P”字符的字形代码应为10001100(8CH)。 图2.4 LED显示器及工作原理 LED显示方式有动态显示和静态显示两种方式。本系统采用动态扫描显示接口电路,动态显示接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM各自独立地受I/O线控制。CPU向字段输出口送出字型码时,所有显示器接收到相同的字型码,但究竟是哪个显示器亮,则取决于COM端。也就是说我们可以采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。 数码管采用共阳极接法,将各位数码管的段选线并联在一起,由一片74HC595八位输出口控制,图中增加了一个驱动器,用以提高信号驱动能力。共阳极点COM接到另一片74HC595八位输出口。单片机通过口线把要显示的数据串行传给74HC595,由74HC595把串行的数据转换成并行数据, 分别控制数码管的段选线a-h同名端和位选线COM端。 2.5电源电路的设计 在系统中,电源的设计是相当重要的一部分。因为在设计过程中我们需要考虑功率、输出电压及抗干扰等因素的影响,我们选定的电源应满足整个系统顺利运行的要求。本系统采用+5V直流稳压电源做为工作电源。+5V直流稳压的工作电路,传统方式采用分立元件构成,目前均采用集成三端稳压器7805构成。集成三端稳压器因其稳压精度高、工作稳定可靠、外围电路简单、容易设计和制作、体积小、重量轻、成本低、维修简单等优点,所以在各种电源电路中得到了普遍的应用。 7805集成三端稳压器的典型应用电路如图所示,这是一个输出+5V直流电压的稳压电路。IC采用集成三端稳压器7805,C2、C4分别为输入端和输出端滤波电容,RL为负载电阻。PBU605是由4个二极管构成的整流电路,用来稳定输入的12V电压。 图2.5 电源电路 变压器TF将交流电网220V的电压V1变为所需要的交流电压V2,然后通过全波整流将交流电压V2变成脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电容C4加以滤除,从而得到平滑的直流电压Vi。但这样的电压还随电网电压波动(一般有±10%左右的波动)、负载和温度的变化而变化。 第3章 软件设计 3.1主程序 本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。其主程序执行流程见下图。 n y y 调用显示子程序 开始 显示单元清0 T0,T1设为16位计数器模式 允许T0中断 进入功能程序 键按下? 调用整点报时 图3.1 3.2显示子程序 数码管显示的数据存放在内存单元70H-75H中。其中70H-71H存放秒数据,72H-73H存放分数据,74H-75H存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出70H-75H某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。为了显示小数点及“-”、“A”等特殊字符,在显示班级及计时时采用不同的显示子程序。 3.3定时器T0中断服务程序 定时器TO用于时间计时,定时溢出中断周期可分别设为50ms和10ms.中断进入后,现判断是时钟计时还是秒表计时,时钟计时累计中断20次(即1s)时,对秒计数单元进行加1操作,秒表计时每10ms进行加1操作。时钟计数单元地址分别在70H-71H(秒)、76H-77H(分)和78H-79H(时),最大计时值为23时59分59秒。而秒表计数单元地址也在70H-71H(0.01毫秒)、76H-77H(秒)和78H-79H(分),最大计时值为99分59.99秒。7AH单元内存放“熄灭符”数据(#0AH)。在计数单元中采用十进制BCD码计数,满60(秒表功能时有100)进位,T0中断服务程序执行流程见下图 图3.2 定时器T0、T1溢出周期为50ms(10ms),T0为秒计数用,T1为调整时闪烁用;P1.0,P1.1,P1.2为调整按钮,P0口为字符输出口,采用共阳显示管。 3.4 T1中断服务程序 T1中断服务程序用于指示调整单元数字的亮闪。在时间调整状态下,每过0.3s,将对应单元的显示数据换成“熄灭符”数据(#0AH)。这样在调整时间时,对应调整单元的显示数据会间隔闪亮。 3.5调时功能程序 调时功能程序的设计方法时:按下P1.0口按键,若按下时间短于1s ,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。当再按下按钮时,若按下时间短于0.5s ,则时间加1分;若按下时间长于0.5s,则进入小时调整状态。在小时调整状态下,当按键按下的时间长于0.5s,退出调整状态,时钟继续走动。P1.1口 按键在调时状态下可实现减1功能。 3.6整点响程序 如果在时钟状态下,如果是整点那么就用P3.2这个引脚来控制蜂鸣器。 3.7时钟/秒表功能程序 在正常计时状态下,若按下P1.1口按键,则进行时钟 /秒表功能的转换,转换后计时从开始。当按下P1.2口的按键时,可实现清0、计时启动、暂停功能。 3.8 程序清单 /*AT89C52秒表/时钟程序*/ /*定时器T0、T1溢出周期为50ms(10ms),T0为秒计数用,T1为调整时闪烁用*/ /*P1.0P1.1P1.2为字符输出口,采用共阳显示管。*/ /*主程序*/ 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 MOV TL1,#0B0H /*50ms定时初值(T1闪烁定时用)*/ MOV TH1,#3CH /*50ms定时初值*/ SETB EA /*总中断开放*/ SETB ET0 /*允许T0中断*/ SETB TR0 MOV R4,#14H START1:LCALL DISPLAY  /*调用显示子程序*/ JNB  P1.0,SETMM1 /*P1.0口为0时,转时间调整程序*/ JNB P1.1,FUNSS /*秒表功能,P1.1按键调时时作减1操作*/ JNB P1.2,FUNPT /*STOP、PUSE、CLR*/ SJMP START1 /*P1.0口为1时跳回START1*/ SETMM1:LJMP SETMM /*转到时间调整程序SETMM*/ FUNSS: LCALL DS20MS  JB P1.1,START1 WAIT11: JNB P1.1,WAIT11 CPL 03H MOV 70H,#00H MOV 71H,#00H MOV 76H,#00H MOV 77H,#00H MOV 78H,#00H MOV 79H,#00H AJMP START1 ACALL ZDBS FUNPT:LCALL DS20MS JB P1.2,START1 WAIT22:JNB P1.2,WAIT21 CLR ET0 CLR TR0 WAIT33:JB P1.2,WAIT31 LCALL DS20MS JB P1.2,WAIT33 WAIT66:JNB P1.2,WAIT61 /*清70~79H共10个内存单元*/ MOV R0,#70H MOV R7,#0AH CLEARP:MOV @R0,00H INC R0 DJNZ R7,CLEARP WAIT44:JB P1.2,WAIT41 LCALL DS20MS JB P1.2,WAIT44 WAIT55:JNB P1.2,WAIT51 SETB ET0 SETB TR0 AJMP START1 WAIT21:LCALL DISPLAY AJMP WAIT22 WAIT31:LCALL DISPLAY AJMP WAIT33 WAIT41:LCALL DISPLAY AJMP WAIT44 WAIT51:LCALL DISPLAY AJMP WAIT55 WAIT61:LCALL DISPLAY AJMP WAIT66 /*中断入口程序*/ ORG 0000H; /*程序执行开始地址*/ LJMP START; /*跳到标号START执行*/ ORG 0003H; /*外部中断0中断程序入口 RETI  /*外部中断0中断返回*/ ORG 000BH /*定时器T0中断程序入口*/ LJMP  INTT0 ORG 0013H /*外部中断1中断程序入口*/ TETI /*外部中断1中断返回*/ ORG 001BH LJMP  INTT1 /*跳至INTT1执行*/ ORG 0023H /*串行中断程序入口地址*/ RETI /*T0中断服务程序*/ INTT0:PUSH  ACC /*累加器入栈保护*/     PUSH  PSW  /*状态字入栈保护*/     CLR  ET0 /*关T0中断允许*/     CLR  TR0 /*关闭定时器T0*/     JB  03H,FSS /*标志为1转秒表处理程序(10ms定时)*/     MOV  A,#0B7H /*中断响应时间同步修正*/     ADD  A,TL0 /*低8位初值修正*/     MOV  TL0, A /*重装初值(低8位修正值)*/     MOV  A,#3CH /*高8位初值修正*/     ADCC  A,TH0     MOV  HT0,A /*重装初值(高8位修正值)*/     SETB  TR0 /*开始定时器T0*/     DJNZ  R4,OUTT0 /*20次中断未到中断退出*/ ADDSS:MOV  R4,#14H /*20次中断到(1s)重赋初值*/     MOV  R0,#71H  /*指向秒计时单元(71H~72H)     ACALL  ADD1 /*调用加1程序(加1s操作)     MOV  A,R3     CLR  C /*清进位标志*/     CJNE  A,#60H,ADDMM ADDMM:JC  OUTT0 /*短于60s时中断退出*/     ACALL  CLR0 /*长与或者等于60s时对秒计时单元清零*/     MOV  R0,#77H /*指向分计时单元(76H~77H)*/     ACALL  ADD1 /*分计时单元加1min*/     MOV  A,R3 /*分数据放入A*/     CLR  C /*清零位标志*/     CJNE  A,#60H,ADDHH ADDHH:JC  OUTT0 /*短于60min时中断退出*/     ACALL  LCR0 /*长与或者等于60s时对秒计秒单元清零*/     MOV  R0,#79H /*指向小时计时单元(78H~79H)*/     ACALL  ADD1 /*小时计时单元加1h*/     MOV  A,R3 /*时数据放入A*/     CLR  C  /*清进位标志*/     JB  03H,OUTT0 /*秒表时最大数为99*/     CJNE  A,#24H,HOUR HOUR: JC  OUTT0 /*短于24h时中断退出*/     ACALL  CLR0 /*长与或者等于24h时对秒计时单元清零*/ OUTT0:MOV  72H,76H /*中断退出时将分、时计时单元数据移     MOV  73H,77H 入对应显示单元*/     MOV  74H,78H     MOV  75H,79H     POP  PSW  /*恢复状态字(出栈)*/     POP  ACC  /*恢复累加器*/     SETB  ET0 /*开放T0中断*/     RETI /*中断返回*/ /*秒表计时程序(10min加1),低2位为0.1、0.01秒,中间2位为秒,最高2位为分。*/ 最大计数值为99分59.99秒 FSS: MOV A, #0F7H ADD A, TL0 MOV TL0, A MOV A, #0D8H ADDC A, THO MOV THO, A SETB THO MOV R0, #71H ACALL ADD1 CLR C MOV A, R3 JZ FSS1 SETB C FSS1: AJMP ADDMM /*闪动调时程序*/ /*T1中断服务程序,用作时间调整时时调整单元闪烁指示*/ INTT1:PUSH  ACC  /*中断现场保护*/    PUSH PSW     MOV TL1,#0B0H /*装入定时器T1定时初值*/    MOV TH1,#3CH    DJNZ R2,INTT1OUT    MOV R2,#06H    CPL  02H    JB  02H,FLASH1    MOV 72H,76H    MOV 73H,77H    MOV 74H,78H    MOV 75H,79H INTT1OUT:POP PSW /*恢复现场*/       POP ACC       RET1 FLASH1:JB 01H,FLASH2 /*01位为1时,转[小]时熄灭控制*/      MOV 72H,7AH      MOV 73H,7AH      MOV 74H,78H      MOV 75H,79H      AJMP INTT1OUT  FLASH2:MOV 72H,76H      MOV 73H,77H      MOV 74H,7AH      MOV 75H,7AH      AJMP INTT1OUT /*加1子程序*/  ADD1:MOV A,@R0 /*取当前计时单元数据到A*/     DEC  R0     SWAP  A     ORL  A,@R0     ADD  A,#01H     DA  A     MOV  R3,A     ANL  A,#0FH     MOV  @R0,A      MOV  A,R3     INC  R0     SWAP A     ANL  A,#0FH     MOV @R0,A     RET /*分减1子程序*/ SUB1:MOV  A,@R0   /*取当前计时单元数据到A*/     DEC  R0     SWAP A     ORL  A,@R0     JZ  SUB11     DEC  A SUB111:MOV R3,A /*移入R3中暂存数据*/     ANL  A,#0FH      CLR  C     SUBB  A,#0AH SUB1111:JC  SUB1110      MOV @R0,#09H SUB110:MOV  A,R3 /*取回R3中存数据*/      INC  R0      SWAP A      ANL A,#0FH      MOV @R0,A      RET SUB11:MOV  A,#59H     AJMP  SUB111 SUB1110:MOV A,R3 /*移入R3存储器*/      ANL A,#0FH      MOV @R0,A      AJMP SUB110 /*时减1子程序*/ SUBB1:MOV A,@R0 /*取当前计时单元数据到A*/     DEC R0     SWAP A     ORL A,@R0     JZ SUBB11     DEC A SUBB111:MOV R3,A /*移入R3存储器*/     ANL A,#0FH     CLR C     SUBB A,#0AH SUBB1111:JC SUBB1110      MOV @R0,#09H SUBB110:MOV A,R3      INC R0      SWAP A       ANL A,#0FH      MOV @R0,A      RET SUBB11:MOV A,#23H      AJMP SUBB111 SUBB1110:MOV A,R3       ANL A,#0FH       MOV @R0,A        AJMP SUBB110 /*清0程序*/ /*为计时单元复0用*/ CLR0:CLR A     MOV @R0,A     DEC R0     MOV @R0,A     RET /*时钟调整程序*/ 当调时按键按下进入此程序 SETMM:CLR ET0 /*关定时器T0中断*/      CLR TR0 /*关定时器T0 */     LCALL DLIS     JB P1.0,CLOSEDIS     MOV R2,#06H     SETB ET1     SETB TR1 SET2:JNB P1.0,SET1 /*P1口为0,等待*/    SETB 00H SET4:JB P1.0,SET3 /*等待键按下*/    LCALL DL05S    JNB P1.0,SETHH    MOV R0,#77H    LCALL ADD1    MOV A,R3    CLR C    CJNE A,#60H,HHH HHH:JC SET4    LCALL CLR0    CLR C    AJMP SET4 CLOSEDIS:SETB ET0       SETB TR0 CLOSE:JB P1.0,CLOSE  /*无键按下,等待*/     LCALL DISPLAY     JB P1.0,CLOSE WAITH:JNB P1.0,WAITH     LJMP START1 SETHH:CLR 00H SETHH1:JNB P1.0,SET5      SETB 01H SET6:JB P1.0,SET7 /*等待键按下*/    LCALL DL05S    JNB P1.0,SETOUT    MOV R0,#79H    LCALL ADD1    MOV A,R3    CLR C    CJNE A,#2
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服