时钟计数器的设计 实验报告.docx

上传人:小飞机 文档编号:5332582 上传时间:2023-06-27 格式:DOCX 页数:41 大小:291.35KB
返回 下载 相关 举报
时钟计数器的设计 实验报告.docx_第1页
第1页 / 共41页
时钟计数器的设计 实验报告.docx_第2页
第2页 / 共41页
时钟计数器的设计 实验报告.docx_第3页
第3页 / 共41页
时钟计数器的设计 实验报告.docx_第4页
第4页 / 共41页
时钟计数器的设计 实验报告.docx_第5页
第5页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《时钟计数器的设计 实验报告.docx》由会员分享,可在线阅读,更多相关《时钟计数器的设计 实验报告.docx(41页珍藏版)》请在三一办公上搜索。

1、数码管时钟电路设计实验报告本组成员:吴平周运来匡锴2010-6-20图2.1硬件系统的总体设计框图+ 5Vo厂_22诃Ik4148CR1 、,Qi1=12MHz =30PF .| 30PF1112MHz2 3 4 5 圣9 10 1T 12 13 1?16 T7 20Pl. 0VCCPl. 1PO. 0Pl. 2PO. 1Pl. 3PO. 2Pl.4PO. 3Pl. 5P0.4Pl.6PO. 5Pl. 7P0.6RSTPO. 7RXEA/VPPTXALEINTOPSENINTIP2. 7TOP2.6T1P2. 5WR-P2.4RD-P2. 3X2P2. 2XIP2. 1GNDP2. 03938

2、373635343332313029282726252423222140图2.2 AT89C52最小化系统图 2. 3 AT89C52h围接口元件介绍一 AT89C52 芯片本设计采用的单片机为AT89C52,如图2.4是其管脚图,AT89C52是一种低 功耗、高性能的片内含有4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微 处理器,俗称单片机。它的可擦除只读存储器可以反复擦除100次。该器件采用 ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51

3、指令集和输出 管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的 AT89C52是一种高效微控制器。AT89C52单片机为很多嵌入式控制系统提供了一 种灵活性高且价廉的方案。(T2)P1. 0 I: (T2EK)P1. 1 Pl. 2 L Pl. 3 I: Pl. 4 E Pl. 5 I: Pl. 6 I: Pl. 7 I: KESET I: KKD/P3. 0 L TKD/P3. 1 I: ITO/PS. 2 E INT1/P3. 3 I: T0/P3. 4 T1/P3. 5 I: WP3. 6 I: M/P3. 7 匚 KTAL2 I: KTAL1 EPDIP V

4、ee I:1 Vcc2 PO. O/ADOPO. 1/AD1PO. 2/AD2PO. 3/AD3PO. 4/AD42 PO. 5/AD5PO. 6/AD6PO. 7/AD7EA/VppALE/PEOGPSENP2. 7/AD152 P2. 6/AD14P2. 5/AD13P2. 4/AD12P2. 3/ADUP2. 2/AD10P2. 1/AD9P2. 0/AD8图A4 AT89C52芯片主要性能参数:低功耗空闲和掉电模式与MCS 51产品指令和引脚完全兼容 8k 字节可重擦写 Flash 闪速存储器 1000次擦写周期全静态操作:0Hz24MHz三级加密程序存储器 256X8字节内部RAM

5、32个可编程I/O 口线3个16位定时/计数器 8个中断源可编程串行UART通道三74LS244芯片说明开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯 片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;通过 138、139、153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位, 看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的 锁存输入,或者缓冲器的选通输入。244内部包含8个单向三态门,分为两组,是8路3态缓冲驱动,也叫做线驱动 或者总线驱动门电路。简单地说,它有8个输入端,8个输出端。同时作为总

6、线 芯片的另外一个特点是驱动能力加强了,可以提供比较大的输出电流,所以经常 用来直接驱动光耦、发光管等,也可以用于驱动微型的继电器!LS244是8位三 态门电路,无锁存功能。LS244管脚配置及功能:见图2.152.16和表1515 74LS244S片74LS244真值表(八同相三态缓冲器/线驱动器):oilIm口3oe3心5HXzHXzLHHLHHLLLLLL74LS244 (LS240 )管脚、输入和输出内部电路结构: 111 Till(a)管脚%G/2Y1AiY2A33HY4心 IJnonnnnnnn 20u图4 16 74LS244 (LS240)管脚及内部部分结构电源电压:5V。电流

7、:IL小于26mA。74ls244是三态总线转换器件,一般用于总线的电平匹配问题,比如5v器 件要与3.3v器件进行数据交换时,如果存在ttl电平和cmos电平不兼容的情况 中间用一片244可以解决问题,244为单向传送。74ls244: 8输入3态缓冲电 路,把8个输入分成2组,4个一组,H =高电平,1=低电平,Z=高阻,G = 0的时候,输入一输出,G=1的时候,输出为高阻态。11G 1Y1-1Y4输出控制,低电平有效,高电平高阻;2-1A1输入端,对应的输出为1Y1;3-2Y4 输出端,对应的输入为2A4。74ls244输出电流可以达到24mA,而一般TTL 芯片输出电流仅仅8mA。三

8、控制系统的软件设计【1】设计部分 主程序本设计中计时采用定时器TO中断完成,秒表使用定时器T1中断完成。主 程序循环调用显示子程序和查键子程序,当端口有开关按下时,转入相应的功 能程序。其主程序执行流程图如下图3.0:图3. D主程序5罹图时钟开始工作时,首先对定时器T0、定时器T1、外部中断0、外部中断1 设入口地址,设置程序执行首地址和鸣叫次数等开始初始化程序。然后通过调用 显示子程序把时钟计时单元中的段码数据经过LED显示器显示出来,再判断是否 有按键按下,如有按键按下则开始中断进入相应的功能程序,并通过LED显示器 显示出来,无按键按下则继续计时,整点到时则蜂鸣器鸣叫相应的次数,然后循

9、 环执行程序;否则循环执行程序。在判断是否有按键按下时,为了保证单片机能 够采集到稳定的信号,单片机采用了延时消抖程序,该程序还可以作为按键时间 长短的判断。二显示子程序时间显示子程序每次显示6个连续内存单元的十进制BCD码数据,首地址在 调用显示程序时先指定。内存中50H55H为闹钟定时单元,60H65H为秒表计时 单元,70H75H为时钟显示单元。由于采用7段共阳LED数码管动态扫描实现数 据显示,所以显示用十近制BCD码数据的对应 段码存放在ROM表中。显示时,先取出内存地址中的数据,然后查得对应的显示段码从P0 口输出,P2 口将对应的数码管选中供电,就能显示该地址单元的数据值。为了显

10、示小数点及 “一”,“A”等特殊字符,在显示班级和计时时采用不同的显示子程序。三定时器T0中断服务程序定时器T0用于时间计时。定时溢中出断周期设为50MS,中断进入后先进行 定时中断初值校正,当中断累加到20次(既50msX20=1s)时,对秒计数单元进 行加1操作。时钟计时单元地址分别在70H71H (秒),76H77H (分),78H79H (时)中,最大计时值为23时59分59秒7AH单元内存放“熄灭符”数据(#0AH), 用于时间调整时的闪烁功能。在计数单元中,采用十进制BCD码计数,满十进位。 T0中断计时程序流程图如下图3.1:当T0中断开始时,为了使中断服务程序的执行不破坏CPU

11、中寄存器和存储 单元中的内容,以免在中断返回后影响主程序的运行,因此,要把COU中有关累 加器和状态字的内容进行入堆栈保护。为了实现对中断时间的修正和重装,通过 对ET0和TR0清0,实现定时器TO中断和关TO中断,然后通过累加器A实现对 中断时间的修正和重装,再经过置位指令恢复T0中断。在程序中采用12MHZ晶 振频率,精度为1ms,定时初值设为50ms,用循环程序进行20次循环可到1s。 当1s到时则调用加1程(此程序通过加法指令和交换指令等实现加1操作),并 判断秒、分否为60,当秒为60时,则秒清零,分加1;当分为60时,则分清 零,时加1,正点报时蜂鸣器响。中断结束时,分时计时单元数

12、据移入对应显示 单元,通过跳出椎栈恢复状态字和累加器的数据。到此TO中断结束。四定时器T1中断服务程序T1中断服务程序用于指示调整单元数字的亮闪或秒表计数。在时间调整状态 下,每过0.3 s左右,将对应单元的显示数据换成“熄灭符”数据(#0AH)。这 样在调整时间时,对应调整单元的显示数据会间隔闪亮。在做秒表计时时,每 10MS中断一次,计数单元加1,每100次计数单元为1S。秒表计数单元地址为 60H61H (毫秒),62H63H (秒),64H65H (分)中,最大计数值为 99 分 59.99 秒。T1中断服务流程图如下图3.2所示:图3.2 T1中断畛硒图当T1中断开始时,累加器和状态

13、字进行入椎栈保护,然后通过位转移指令 JB实现是进行秒表还是闪烁工作。当03H单元内容为1时,则为秒表,否则为 闪烁。作为秒表时,首先要进行10ms初值重装并对定时器T1的高低8位进行初 值重装,起始指向秒计时单元,调用加1子程序实现加10ms处理,在此过程中 如果秒为60时,则秒清零,分加1;当分为60时,则分清零,时加1,否则进 位标志C=0退出中断,通过跳出椎栈恢复状态字和累加器的数据,中断返回;当 用作闪烁调时时,装定时器初值并判断是否0.3s至0,不到则退出中断并重装0.3s 初值;到则判断02H位、01H位。是1则显示单元“熄灭”,否则正常显示,时 间到退出中断,通过跳出椎栈恢复状

14、态字和累加器的数据,定时器T1中断结束。五调试功能程序调时功能程序的设计方法时:按下P1.0 口按键,若按下时间短于1s,则进 入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计 时器停止走动。当再按下按钮时,若按下时间短于0.5s,则时间加1分;若按 下时间长于0.5s,则进入小时调整状态。在小时调整状态下,当按键按下的时 间长于0.5s,退出调整状态,时钟继续走动。P1.1 口 按键在调时状态下可实 现减1功能。六秒表功能程序在正常时钟状态下,若按下P1.1 口按键,则进行时钟/秒表功能的转换,秒 表中断计时程序启动,显示首址改为60H,LED将显示秒表计时单元60H6

15、5H中 的数据。按下P1.2 口的按键开关时,可实现秒表清零,秒表启动,秒表暂停等 功能;当按下P1.1 口按键时,关闭T1秒表中断计时,显示首址又改为70H,恢 复正常的时间显示功能。七闹钟时间设定功能程序在正常状态下,若按下P1.3 口按键开关,则进入设定闹时调分状态,显示首 地址该为50H,LED将显示50H55H中的闹钟设定时间,显示式样为00: 00: 一, 其中高2位代表时,低2位代表分。在定时闹铃时精确到分。按P1.2键,分加 1;按P1.0键,分减1。若再按P1.3键,则进入调整状态,显示样式为00: 00; 一,若按P1.2键,时加1,按P1.0键。时减1。按P1.1键,闹铃

16、无效,显示样 式变为00: 00:,再按P1.1键无效,显示样式又变为00: 00:。再按P1.3 键调整闹铃时间结束,恢复正常时间的显示。在闹铃是,可按一下P1.3 口的按 键开关使蜂鸣停止,不按则蜂鸣将鸣叫1min后自行停止。在设定闹铃后,若要 取消定时功能,则可按一下P1.3键,当听到“滴”的一声时表明已取消闹铃功【2】硬件的调试与软件调试一 硬件调试硬件调试时可先检查印制版及焊接的质量情况,在检查无误后可通电检查 LED显示器的电亮状况。若亮度不理想,可以调整P0 口的电阻大小一般情况下 取200欧电阻即可获得满意的亮度效果。试验室制作时,可结合示波器测试晶振 及P0. P2端口的波形

17、情况进行综合硬件测试分析。二软件调试软件调时在WAVE或KEIL C51编译器下进行,源程序编译及仿真调试应分 段或以子程序为单位逐个进行,最后可结合硬件实时调试。三性能分析按照设计程序分析,LED显示器动态扫描的频率为167HZ,实际使用观察时 完全没有闪烁。由于计时中断程序中加了中断延时误差处理,所以实际计时精度 非常高,可满足多种场合的应用需要。另外,上电时具有一个滚动显示子程序, 可以方便地显示制作日期等信息。总结程序是整个单片机应用系统设计控制的灵魂。本章首先承接上章对AT89C52 单片机的介绍给出了主程序流程图,并作了说明。其次为了是LED显示器能够正 常显示信息提出了显示子程序

18、;由于在程序执行过程中要进行其它程序的调用和 功能的设定,因此,给出定时器T0中断服务程序、定时器T1中断服务程序、秒 表功能程序和闹钟时间设定功能程序,并给予适当的说明;为了是各程序能合理 有效的运行,添加了调试功能程序。最后开始控制程序编制、软硬件调试和性能 的分析。附录:试验源程序/ / /个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个/ /采用8位LED动态扫描时钟演示程序/LRM 2004.03.31/ / /个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个个

19、个个个个个个个个个个个个个个个个个个个个个个个个个个个/ /使用12MHZ晶振,P0 口输出段码,P2 口作列扫描,用共阳LED数码管 /#include reg51.hcodechardis_711 = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff;/* 共阳 LED段码表 0 1 2 3 4 5 6 7 8 9不亮*/code char scan_con8 = 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; / 列扫描 控制字data char disdata6 = 0x00,0x00,0x0

20、0,0x00,0x00,0x00;/计时单元数据初值,共 6 个data char dis8 = 0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00;/显示单元数据,共6个数据data char con1s=0x00,con04s=0x00,con=0X00; /1 秒定时用sbit key0=0x90;sbit key1=0x91;sbit key2=0x92;/*/1毫秒延时程序/*delay1ms(int t)int i,j;for(i=0;it;i+)for(j=0;j=6)con=0;TR1=0;ET1=0;TR0=1;ET0=1;/if(con!=0)i

21、f(key1=0)delay1ms(10);while(key1=0);disdatacon+;if(disdatacon=10)disdatacon=0; discon=disdatacon;dis6=0x0a; /if(con!=0)if(key2=0)delay1ms(10);while(key2=0);if(disdatacon=0)disdatacon=0x09; else disdatacon; discon=disdatacon;dis6=0x0a;EA=1;/ /*/扫描程序/*/scan()char k;for(k=0;k6;k+)P0=dis_7disk;P2=scan_c

22、onk;delay1ms(1);P2=0xff; /个个个个个个个个个个个个个/初始化程序/个个个个个个个个个个个个个/clearmen()int i;for(i=0;i=10)disdata0=0;disdata1+;if(disdata1=6)disdata1=0;disdata2+;if(disdata2=10)disdata2=0;disdata3+;if(disdata3=6)disdata3=0;disdata4+;if(disdata4=10)disdata4=0;disdata5+;if(disdata5=2 )if(disdata4=4)disdata4=0;disdata5

23、=0;dis0=disdata0;dis1=disdata1;dis2=disdata2;dis3=disdata3;dis4=disdata4;dis5=disdata5;ET0=1;/*/0.4秒闪烁中断程序/*/void time_intt1(void) interrupt 3EA=0;TR1=0;TH1=0x3C;TL1=0xB0;TR1=1;con04s+;if(con04s=8)con04s=0x00;dis7=discon;discon=dis6;dis6=dis7;EA=1;/ /*个*个*;AT89C52时钟程序; *1* *1* *1* *1* *1* *1* *1* *1

24、* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* ;*1* *1* *1* *1* *1* *1* *1* *1* *

25、1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *个*个*个;以下程序能用于24小时计时,能作为秒表使用,能定时闹铃1分钟(也可关).;使用方法:开机后在00:00:00起开始计时,(1)长按P1.0进入调分状态:分单元闪烁;按P1.0加1,按P1.1减1.再长按P1.0进入时调整状态,时单元闪烁,加减调整同调分.;按长按退出调整状态.(2)按下P1.1进入秒表状态:按P1.2暂停,再按P1.2秒表清零, 再按;P1.2秒表又启动,按P1.1退出秒表回到时钟状态.(3)按P1.3进入设定闹时状态:00:00:-,可进;行分设定,按P1.2分加1,再按P1.

26、3为时调整,00:00:-,按P1.2时加1,按P1.1闹铃 有效,显示为00:00:-0,再按;P1.1闹铃无效(显示00:00:-,),按P1.3调闹钟结束.在闹铃时可按P1.3停闹,不按闹 铃1分钟.;定时器T0、T1溢出周期为50MS,T0为秒计数用,T1为调整时闪烁及秒表定时用, ;P1.0、P1.1、P1.2、P1.3为调整按钮,P0 口为字符输出口,P2为扫描口,P1.7为蜂 呜器口,采用共阳显示管。;50H-55H为闹钟定时单元,60H-65H为秒表计时单元,70H-75H为显示时间单元,76H-79H 为分时计时单元。;03H标志=0时钟闪烁,=1秒表, 05H=0,不闹铃,

27、=1要闹铃.07H每秒改变一次,用作间隔呜叫. *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*

28、*1* *1* *1* *1* *1* ;*1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* ;DISPFIRSTEQU30H;显示首址存放单元BELLEQUP1.7;小喇叭CONBSEQU2FH;存放报时次数 *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*

29、*1* *1* *1* *1* *1* *1* ;*;中断入口程序;ORG 0000HLJMP STARTORG 0003HRETIORGLJMPORG RETIORG 001BHLJMP INTT1ORG 0023HRETI *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* ;*;程序执行开始地址;跳到标号START执行;外中

30、断0中断程序入口;外中断0中断返回000BHINTT00013H;定时器T0中断程序入口;跳至INTTO执行;外中断1中断程序入口;外中断1中断返回;定时器T1中断程序入口;跳至INTT1执行;串行中断程序入口地址;串行中断程序返回 *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* ;*;以下程序开始 *1* *1* *1* *

31、1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* ;*;整点报时用QQQQ: MOV A,#10HMOV B,79HMUL ABADD A,78HMOV CONBS,ABSLOOP:LCALL DS20MSLCALL DL1SLCALL DL1SLCALL DL1SDJNZ CONBS,BSLOOPCLRAJMP08HSTART1;清整点报时标志, *1

32、* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1*;*;主程序开始; *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *1* *

33、1* *1* *1* *1* *1* *1* *1* ;*;START:LCALLST;上电显示年月日及班级学号MOVR0,#00H;清00H-7FH内存单元MOVR7,#80H;CLEARDISP:MOVR0,#00H;INCR0;DJNZR7,CLEARDISP;MOV20H,#00H;清20H (标志用)MOV7AH,#0AH;放入熄灭符数据MOVTMOD,#11H;设T0、T1为16位定时器MOVTL0,#0B0H;50MS定时初值(T0计时用)MOVTH0,#3CH;50MS定时初值MOVTL1,#0B0H;50MS定时初值(T1闪烁定时用)MOVTH1,#3CH;50MS定时初值S

34、ETBEA;总中断开放SETBET0;允许T0中断SETBTR0;开启T0定时器MOVR4,#14H;1秒定时用计数值(50MSX20)MOVDISPFIRST,#70H ;显示单元为 70-75H;以下主程序循环START1:LCALLDISPLAY;调用显示子程序JNBP1.0,SETMM1;P1.0 口为0时转时间调整程序JNBP1.1,FUNSS;秒表功能,P1.1按键调时时作减1加能JNBP1.2,FUNPT;秒表 STOP,PUSE,CLRJNBP1.3,TSFUN;定时闹铃设定JB08H, QQQQAJMPSTART1;P1.0 口为 1 时跳回 START1;FUNPT:LJM

35、PFUNPTT;以下闹铃时间设定程序,按P1.3进入设定TSFUN:LCALLDS20MSJBP1.3,START1;WAIT113:JNBP1.3,WAIT113;等待键释放定时单元JBMOVMOVMOV05H,CLOSESPDISPFIRST,#50H50H,#0CH51H,#0AH;闹铃已开的话,关闹铃;进入闹铃设定程序,显示50-55H闹钟;-闹铃设定时显示格式00:00:-.黑;DSWAIT:SETBEALCALL DISPLAYJNBP1.2,DSFINC.分加1JNBP1.0,DSDEC.分减1JNBP1.3,DSSFU;进入时调整AJMPDSWAIT;CLOSESP:CLR05

36、H.关闹铃标志CLRBELLAJMPSTART1DSSFU:LCALL DS20MS.消抖JB P1.3, DSWAITLJMPDSSFUNN;进入时调整;SETMM1:LJMP SETMM.转到时间调整程序SETMM;DSFINC :LCALL DS20MS;消抖JB P1.2, DSWAITDSWAIT12:LCALLDISPLAY.等键释放JNBP1.2, DSWAIT12CLREAMOVR0,#53H;LCALLADD1.闹铃设定分加1MOVA,R3.分数据放入ACLRC.清进位标志CJNEA,#60H,ADDHH22;ADDHH22: JCDSWAIT.小于60分时返回ACALL C

37、LR0.大于或等于60分时分计时单元清0AJMPDSWAITDSDEC :LCALL DS20MS;消抖JB P1.0, DSWAITDSWAITEE:LCALLDISPLAY.等键释放JNBP1.0, DSWAITEECLREAMOVR0,#53H;LCALLsub1.闹铃设定分减1LJMP DSWAIT;以下秒表功能/时钟转换程序;按下P1.1可进行功能转换FUNSS:LCALLDS20MSJBP1.1,START11WAIT11:JNBP1.1,WAIT11CPL03HJNB03H,TIMFUNMOVDISPFIRST,#60H;显示秒表数据单兀MOV60H,#00HMOV61H,#00HMOV62H,#00HMOV63H,#00HMOV64H,#00HMOV65H,#00HMOVTL1,#0F0H;10MS定时初值()MOVTH1,#0D8H;10MS定时初值SETBTR1SETBET1START11:LJMPSTART1TIMFUN:MOVDISPFIRST,#70H;显示时钟数据单兀CLRET1C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号