秒表时钟计时器的设计 - 浙江师范大学网络课程
秒表/时钟计时器的设计
计算机科学与技术(专升本)
056
林燕萍 05191117
数理与信息工程学院
余水宝 陈希
( 2006.6 )
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
1 „„„„„„„„„„„„„„„„„„„„„„„„„„„2 1.1 秒表概述„„„„„„„„„„„„„„„„„„„„„„„„„„2 1.2 设计任务„„„„„„„„„„„„„„„„„„„„„„„„„„2 1.3 系统主要功能„„„„„„„„„„„„„„„„„„„„„„„„3
2 „„„„„„„„„„„„„„„„„„„„„„„4 2.1 秒表时钟计时器的硬件电路„„„„„„„„„„„„„„„„„„4 2.2 电路原理图„„„„„„„„„„„„„„„„„„„„„„„„„5 2.3 AT89C2052单片机及其引脚说明„„„„„„„„„„„„„„„„5 2.4 74LS244芯片的介绍„„„„„„„„„„„„„„„„„„„„„6
3 „„„„„„„„„„„„„„„„„„„„„„„„7
3.1 秒表时钟计时器的主程序„„„„„„„„„„„„„„„„„„„7 3.2 秒表时钟计时器的显示程序„„„„„„„„„„„„„„„„„„8 3.3 定时器中断服务程序„„„„„„„„„„„„„„„„„„„„„9 3.4 中断服务程序„„„„„„„„„„„„„„„„„„„„„„„„9 3.5 调时功能程序„„„„„„„„„„„„„„„„„„„„„„„„9 3.6 整点响程序„„„„„„„„„„„„„„„„„„„„„„„„„10 3.7 秒表时钟功能程序„„„„„„„„„„„„„„„„„„„„„„10
4 „„„„„„„„„„„„„„„„„„„„„„„„„11
5 „„„„„„„„„„„„„„„„„„„„„„„„„„„21
„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21
1
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
/
数理与信息工程学院 05计算机专升本 林燕萍
指导教师:余水宝
1
单片机具有体积小,成本低,抗干扰能力强,面向控制,可以实现分机各分布式
控制等优点。本秒表/时钟设计就是利用单片机的上述优点,采用目前市场上性能价
格比较高的MCS-52单片机设计而成的最小系统。它在实际生活中具有广泛的应用。
例如:工业生产中的定时启停自动化设备、学校中上下课铃定时控制、农村广播站每
天早中晚广播的自动定时控制均可采用本仪器。
秒表是电器制造,电国,工业自动化控制、国防、实验室及科研单位理想的计时
仪器,它广泛应用于各种继电器、电磁开关,控制器、廷时器、定时器等的时间测试。
目前所使用的电秒表大多是指针式或集成电路型的,结构相对复杂、测试功能单一。
本仪器还具有实时时钟、整点报时、手动计时的功能。
(1)省电(关闭显示)功能
(2)以24h(小时)计时方式
(3)白来整点报时,晚上22点后不报时
(4)用六位LED数码管显示时、分、秒
(5)使用按键开关可实现时分调整、秒表功能转换
(6)使用按键开关可实现时分调整、时钟功能转换
对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储
空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。
由于时钟是不能停止的,因此需要采用内部定时器自动计时,并使用定时器中断
处理程序来定时进行时间数值的刷新。52单片机的2个定时器都具有16位定时器的
2
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
工作模式。当晶振为12MHz时,16位定时器的最大定时值为65.536mS;要达到1秒钟,可以采用两种
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
:采用一个定时器定时与软件计数相结合的方法;或者采用两
个定时器级联的方法。由于秒表在计时功能时也需要用到1个定时器,因此,我们采
用第一个方法,只使用1个定时器,例如使用T0。为了达到较为准确的计时,使T0的溢出时间为50ms,使用一个字节作为软件计数器ST,计数值为20。定时器的中断处理程序对ST进行减1操作,当ST为0时,1秒到达,此时更新存放小时、分钟、
秒钟的显示缓存区。
当秒表用作计时功能时,也需要一个定时器进行10MS的定时,在本例中使用单
片机的TIMER1。在TIMER1的中断处理程序中对SS和ss的缓存空间进行更新,与上
面类似。
再看按键的处理。这3个键可以采用中断的方法,也可以采用查询的方法来识别。
对于A、B键,主要功能在于功能切换和数值复位,对于时间的要求不是很严格,而
C键主要用于时间的锁定,需要比较准确的控制。因此可以考虑,对A、B键采用查询的方式,而对于C 键采用外部中断。
现在在我的
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
中有3个中断,T0、T1中断和外部中断INT0。这3个中断的特点是:T0的工作是连续的,可以在误差范围内可以被打断但不可以停止;T1的工作同样可以在误差范围内被打断,但可以被INT0停止;INT0是用来启动或停止T1的。
3
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
秒表/时钟计时器的硬件电路如图所示,采用AT89C52单片机,最小化应用设计;采用共阳七段LED显示器,P0口输出段码数据,P2.0-P2.5口作列扫描输出,P1.0、
P1.1、P1.2口接三个按钮开关,用以调时及功能设置。为了提供共阳LED数码管的
驱动电压,用三极管8550作电源驱动输出。采用12M晶振,有利于提高秒计时的精确性。
AT89C52
P0
六位LED显示 单片机
器 控制器
P2 列驱动
图2.1硬件系统的总体设计框架
P3口引脚 特殊功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2(外部中断0)
(外部中断1) P3.3
P3.4T0(定时器0外部输入)
P3.5T1(定时器1外部输入)
图2.2 P3口特殊功能
4
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局
合理的前提下力求美观。
设计电路原理图:
图2.3电路原理图
是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
图2.4 AT89C52芯片
5
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性:
• 兼容MCS51指令系统
• 8k可反复擦写(>1000次)Flash ROM
• 32个双向I/O口
• 256x8bit内部RAM
• 3个16位可编程定时/计数器中断
• 时钟频率0-24MHz
• 2个串行中断
• 可编程UART串行通道
• 2个外部中断源
• 共6个中断源
• 2个读写中断口线
• 3级加密位
• 低功耗空闲和掉电模式
• 软件设置睡眠和唤醒功能
开关量输入的扩展经常使用的芯片是74LS244/74LS245/74LS240等;这些芯片的特点是三态门,可以把多个芯片的输出,并联在一起而不会互相影响;通过138、139、153等译码选通芯片,把RD/WR/地址的高位信号(高3位或者高4位,看单片机系统中的芯片的数量)接到译码芯片,把译码芯片的输出接到锁存器的锁存输入,或者缓
冲器的选通输入。
6
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
E1 74LS244 E2
1A1 1Y1 1Y2 1A2 1Y3 1A3 1A4 1Y4 2Y1 2A1 2Y2 2A2 2Y3 2A3 2A4 2Y4
图2.5 74LS244芯片
244内部包含8个单向三态门,分为两组,同时作为总线芯片的另外一个特点是
驱动能力加强了,可以提供比较大的输出电流,所以经常用来直接驱动光耦、发光管
等,也可以用于驱动微型的继电器!
7
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
3
本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端
口开关按下时,转入相应功能程序。其主程序执行流程见下图
开始
显示单元清0
T0,T1设为16位计数器模式
允许T0中断
调用显示子程序
y
键按下?
n
调用整点报
时 y
进入功能程序
图3.1
数码管显示的数据存放在内存单元70H-75H中。其中70H-71H存放秒数据,72H-73H存放分数据,74H-75H存放时数据,每一地址单元内均为十进制BCD码。由
于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出70H-75H某一地址中的数据,然后查得对应的显示用段码,
并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。为
了显示小数点及“-”、“A”等特殊字符,在显示班级及计时时采用不同的显示子
程序。
8
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
定时器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口为字符输出口,采用共阳显示管。
T1中断服务程序用于指示调整单元数字的亮闪。在时间调整状态下,每过0.3s,将对应单元的显示数据换成“熄灭符”数据(#0AH)。这样在调整时间时,对应调
整单元的显示数据会间隔闪亮。
调时功能程序的设计方法时:按下P1.0口按键,若按下时间短于1s ,则进入省电状态(数码管不亮,时钟不停);否则进入调分状态,等待操作,此时计时器停止走动。
当再按下按钮时,若按下时间短于0.5s ,则时间加1分;若按下时间长于0.5s,则
9
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计 进入小时调整状态。在小时调整状态下,当按键按下的时间长于0.5s,退出调整状态,时钟继续走动。P1.1口 按键在调时状态下可实现减1功能。 如果在时钟状态下,如果是整点那么就用P3.2这个引脚来控制蜂鸣器。
在正常计时状态下,若按下P1.1口按键,则进行时钟 /秒表功能的转换,转换后计时从开始。当按下P1.2口的按键时,可实现清0、计时启动、暂停功能。
10
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计 /*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
11
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
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 /*串行中断程序入口地址*/
12
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
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*/
13
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
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
14
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
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
15
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
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 */
16
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
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,#24H,HOUU HOUU:JC SET6
LCALL CLR0
AJMP SET6
SETOUT:JNB P1.0,SETOUT1
LCALL DISPLAY
JNB P1.0,SETOUT
CLR 01H
CLR 00H
CLR 02H
CLR TR1
17
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
CLR ET1
SETB TR0
SETB ET0
LJMP START1
SET1:LCALL DISPLAY /*键释放等待时调用显示程序(调分)
*/
AJMP SET2 /*防止键按下时无时钟显示*/ SET3:LCALL DISPLAY
JNB P1.1,FUNSUB
AJMP SET4
SET5:LCALL DISPLAY /*键释放等待时调用显示程序(调时)
*/
AJMP SETHH1
SET7:LCALL DISPLAY
JNB P1.1,FUNSUBB
AJMP SET6
SETOUT1:LCALL DISPLAY
AJMP SETOUT /*防止键按下时无时钟显示*/ /*FUNSUB,分减1程序?*/
FUNSUB:LCALL DISPLAY /*消抖动*/
JB P1.1,SET41
FUNSUB1:JNB P1.1,FUNSUB1
MOV R0,#77H
LCALL SUB1 /*分减1程序*/
LJMP SET4
SET41:LJMP SET4
/*FUNSUBB,时减1程序*/
FUNSUBB:LCALL DISPLAY /*消抖动*/
JB P1.1,SET61
FUNSUBB1:JNB P1.1,FUNSUBB1
MOV R0,#79H
LCALL SUBB1
LJMP SET6 /*返回调时等待*/ SET61:LJMP SET6
/**/
/*显示数据在70H-75H单元内,用六位LED共阳数码管显示,P0口输出段码数据,P2
口作扫描控制,每个LED数码管亮1ms时间,再逐位循环。*/ DISPLAY:MOV R1,#70H /*指向显示数据首址*/
MOV R5,#0DFH
PLAY: MOV A,R5 /*扫描字放入A*/
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
18
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
MOV A,R5
JB ACC.1,LOOP5
CLR P0.7
LOOP5:JB ACC.3,LOOP6 /*小数点处理*/
CLR P0.7
LOOP6:LCALL DL1MS /*小数点处理*/
INC R1
MOV A,R5
JNB ACC.0,ENDOUT
RR A
MOV R5,A
MOV P0,#0FFH
AJMP PLAY
ENDOUT:MOV P2,#0FFH
MOV P0,#0FFH
RET /*子程序返回*/ TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
/*共阳段码表“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“不亮”“A”“-” */ /*SDISPLAY,上电显示程序*/
/*不带小数点显示,有“A”,“-”显示功能*/
SDISPLAY:MOV R5,#0DFH /*扫描控制字初值*/ SPLAY:MOV A,R5 /*扫描字放入A*/
MOV P2,A
MOV A,@R1
MOV DPTR,#TABS
MOVC A,@A+DPTR
MOV P0,A
MOV A,R5
LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.0,ENDOUTS
RR A
MOV R5,A
AJMP SPLAY
ENDOUTS:MOV P2,#0FFH /*一次显示结束,P2口复位*/
MOV P0,#OFFH
RET
TABS:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
/*STAB表,启动时显示2006-6-23、J5-6-17*/
STAB:DB 0AH,0AH,0AH,0AH,0AH,0AH,08H,02H,0CH,01H,00H,0BH,0AH,
19
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
DB 07H,00H,0CH,02H,01H,0CH,03H,00H,00H,02H,0AH,0AH,0AH,
0AH,0AH,0AH
/*注:0A不亮,0B显示“J”,0C显示“-” */
/**/
ZDBS: MOV A, 72H
JNZ ZDBSEND
MOV A, #22
CJNE 72H, A, ZDBSEND
MOV A, 73H
CJNE 73H, #3CH, ZDBSEND
CLR P3.2
ACLL DL05S
SETB P3.2
ZDBSEND: RET
/**/
/*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
DL05S1:LCALL DISPLAY
DJNZ R3,DL051
RET
END
20
浙江师范大学数理与信息工程学院课程设计——秒表/时钟计时器的设计
通过本次课程设计较系统地掌握有关单片机控制的设计思想和设计方法,主要对
AT89C52的结构、功能、内部资源等了解并对其进行测试和加以应用的知识得到学习。
由于是在我们短学期实习之后才来始写的,我们实习做的是电子钟,所以对时钟有了
一定的掌握。这个秒表\时钟设计,我在原来的功能上增加了定时报响的功能。这个
设计的大部分
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
都是在网上找的内容,自己做了一点点小小的改动,在上网找资料
的同时也学到了许多东西,找到了很多学习单片机的网站,里面的内容都比较适合我
们初学者去学,有些网站还专门介绍这种单片机的类型、用法、功能等等。其实我们
平时不懂就应该自己去学习去弄明白,只是平时我们都太懒。通过这个课程设计,使
我发现,原来小小的一片单片机有这么强大的功能,能应用于各种领域。都是觉得很
神奇,人类都的聪明啊。我应该在自己以后的学习中,不仅要有刻苦努力,要有钻研
精神,还要有创新,对自己感兴趣的一定要用心去学。
[1]张鑫,华臻,陈书谦,《单片机原理及应用》,电子工业出版社,2005.8,第1次印刷
[2]、杨光友,朱宏辉,《单片微型计算机原理及接口技术》,水利水电出版社2002.9 ,第1 版,第3 次印刷
[3]、杨文龙,《单片机原理及应用》,西安电子科技大学出版社1993,6, 第1 版 [4]、夏路易,石宗义,《电路原理图与电路板设计教程》北京希望电子工业出版2002
21