文件名称:Project2
介绍说明--下载内容均来自于网络,请自行研究使用
1、 硬件部分包括AT89C52、LCD1602和4个独立按键
2、 使用定时器0产生10ms的定时中断,作为时钟基准和软件定时器的基准。
3、 系统使用两个软件定时器Tkeyscan和Tdisplay。
Tkeyscan用来独立按键模块的定时扫描,每次扫描结合按键状态机的当前状态判断按键的有效性(消抖)及其时长(长按还是短按)。
Tdisplay用来定时激活LCD1602的显示(200ms一次,可自行修改)。
4、 整个系统在四种状态间流转:DISPLAY_TIME、ADJUST_SECOND、ADJUST_MUNITE、ADJUST_HOUR。
除了DISPLAY_TIME状态,系统处于其他状态时,显示模块实现对当前正调整的时间部分闪烁显示(在源文件misc.c的display_proc()函数中实现)。
5、 系统使用数据结构ETIME来记录时钟的时间信息,ETIME的定义在misc.h中。
其中成员数组time[3]用来记录时time[2]、分time[1]、秒time[0]。
成员index用来索引时、分、秒哪个被选中作调整。
成员cordon,顾名思义,用来存放时、分、秒的调整上限值,比如调整小时时,cordon的值是23,调整分,cordon的值是59.
-keil program
2、 使用定时器0产生10ms的定时中断,作为时钟基准和软件定时器的基准。
3、 系统使用两个软件定时器Tkeyscan和Tdisplay。
Tkeyscan用来独立按键模块的定时扫描,每次扫描结合按键状态机的当前状态判断按键的有效性(消抖)及其时长(长按还是短按)。
Tdisplay用来定时激活LCD1602的显示(200ms一次,可自行修改)。
4、 整个系统在四种状态间流转:DISPLAY_TIME、ADJUST_SECOND、ADJUST_MUNITE、ADJUST_HOUR。
除了DISPLAY_TIME状态,系统处于其他状态时,显示模块实现对当前正调整的时间部分闪烁显示(在源文件misc.c的display_proc()函数中实现)。
5、 系统使用数据结构ETIME来记录时钟的时间信息,ETIME的定义在misc.h中。
其中成员数组time[3]用来记录时time[2]、分time[1]、秒time[0]。
成员index用来索引时、分、秒哪个被选中作调整。
成员cordon,顾名思义,用来存放时、分、秒的调整上限值,比如调整小时时,cordon的值是23,调整分,cordon的值是59.
-keil program
(系统自动生成,下载前可以参看下载内容)
下载文件列表
Project2\KEILC51\obj\key.lst
........\.......\...\key.obj
........\.......\...\lcd1602.lst
........\.......\...\lcd1602.obj
........\.......\...\main.lst
........\.......\...\main.obj
........\.......\...\misc.lst
........\.......\...\misc.obj
........\.......\...\Project
........\.......\...\Project.hex
........\.......\...\Project.lnp
........\.......\...\Project.m51
........\.......\...\Project.plg
........\.......\...\softtimer.lst
........\.......\...\softtimer.obj
........\.......\...\STARTUP.lst
........\.......\...\STARTUP.obj
........\.......\Project.plg
........\.......\Project.uvopt
........\.......\Project.uvproj
........\.......\Project_uvopt.bak
........\.......\Project_uvproj.bak
........\readme.txt
........\src\1602.h
........\...\key.c
........\...\key.h
........\...\lcd1602.c
........\...\lcd1602.h
........\...\main.c
........\...\misc.c
........\...\misc.h
........\...\softtimer.c
........\...\softtimer.h
........\...\STARTUP.A51
........\KEILC51\obj
........\KEILC51
........\src
Project2
........\.......\...\key.obj
........\.......\...\lcd1602.lst
........\.......\...\lcd1602.obj
........\.......\...\main.lst
........\.......\...\main.obj
........\.......\...\misc.lst
........\.......\...\misc.obj
........\.......\...\Project
........\.......\...\Project.hex
........\.......\...\Project.lnp
........\.......\...\Project.m51
........\.......\...\Project.plg
........\.......\...\softtimer.lst
........\.......\...\softtimer.obj
........\.......\...\STARTUP.lst
........\.......\...\STARTUP.obj
........\.......\Project.plg
........\.......\Project.uvopt
........\.......\Project.uvproj
........\.......\Project_uvopt.bak
........\.......\Project_uvproj.bak
........\readme.txt
........\src\1602.h
........\...\key.c
........\...\key.h
........\...\lcd1602.c
........\...\lcd1602.h
........\...\main.c
........\...\misc.c
........\...\misc.h
........\...\softtimer.c
........\...\softtimer.h
........\...\STARTUP.A51
........\KEILC51\obj
........\KEILC51
........\src
Project2