📄 main.c
字号:
//================================================================
//
// The information contained herein is the exclusive property of
// Sunplus Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
//
// (C) COPYRIGHT 2001 SUNPLUS TECHNOLOGY CO.
// ALL RIGHTS RESERVED
//
// The entire notice above must be reproduced on all authorized copies.
//
//=================================================================
// 工程名称: Clock_Time.spj
// 功能描述: (1)上电时,时、分、秒显示为00时、00分、00秒。
// (2)控制按扭,时钟以秒为单位开始计时。
// (3)运行状态下,按动控制按扭,时钟暂停,停止在已计时状态,显示已计时数值。
// (4)停状态下,按动控制按扭,时钟复位(清零),并进入下一次计时准备状态。
//
// 文件来源: 课程设计《单片机实现时钟计时功能》
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.4(or later)
// 硬件连接: SPCE061A ---- LED
// -------------------------------
// PB0-PB6 ---- A-G
// PB8-PB15 ---- COM1-COM6
// -------------------------------
// 功能描述:
// KEY1 时间加的功能
// -------------------------------------------------
// KEY2 按下开始计时
// 再按下停止
// 再按下清为0
// 第二功能在KEY3选择后做时间减的功能
// ------------------------------------------------
// KEY3 第一下做分钟的设定
// 第二下做小时的设定
// 确定功能
// 涉及的库: C-Lib: (CMacro.lib);
//
// 组成文件:
// main.c
// hardware.asm\hardware.h
// isr.asm
// time.c
// key.asm\key.inc
// key_down.c
// 日期: 2004/1/14
//===============================================================
#include "hardware.h"
#include "a2000.h"
#include "Clock_Time.h"
//======================== 全局变量定义 =========================
int gActivated; // 该变量用于检测是否有触发命令,当有识别出语句
int G_TimeCount; // 1秒计数
int G_SecTime; // 2毫秒计数
int G_KeyCount; // key2按键次数
int G_KeyCount1; // key1按键次数
int G_KeyCount2; // key2闹铃按键次数
int G_KeyCount3; // key3按键次数
int G_Sec ; // 秒计数
int G_SecH ; // 秒显示的高位
int G_SecL ; // 秒显示的低位
int G_Step ; // 程序运行的步骤
int G_MiunteH ; // 分钟显示高位
int G_MiunteL; // 分钟显示低位
int G_Miunte ; // 分钟计数
int G_HourH ; // 小时显示高位
int G_HourL ; // 小时显示低位
int G_Hour ; // 小时计数
int G_Destine_MiunteH ; // 闹钟分钟设定的高位
int G_Destine_MiunteL ; // 闹钟分钟设置的低位
int G_Destine_Miunte ; // 闹钟分钟的设置
int G_Destine_Hour ; // 闹钟小时的设置
int G_Destine_HourH ; // 闹钟小时设置高位
int G_Destine_HourL ; // 闹钟小时设置低位
int G_Key_Vaule; // 键值
//===============================================================================================
// 函数:main()
// 语法:int main()
// 描述:主函数
// 参数:无
// 返回:无
//============================================================================================
main()
{
int I_Key,I_Step,KK;
G_KeyCount = 0; // 各参数初始化
G_KeyCount3 = 0;
G_KeyCount2 = 0;
G_Key_Vaule = 0;
G_Step = 5;
I_Step = 0;
G_Sec = 1; // 秒计数
G_SecH = 0; // 秒显示的高位
G_SecL = 0; // 秒显示的低位
G_Step = 5; // 程序运行的步骤
G_MiunteH = 0; // 分钟显示高位
G_MiunteL = 0; // 分钟显示低位
G_Miunte = 0; // 分钟计数
G_HourH = 0; // 小时显示高位
G_HourL = 0; // 小时显示低位
G_Hour = 0; // 小时计数
G_Destine_MiunteH = 0;
G_Destine_MiunteL = 0;
G_Destine_Miunte = 0;
G_Destine_Hour = 0;
G_Destine_HourH = 0;
G_Destine_HourL = 0;
Clear_WatchDog();
SP_Init_IOA(0x0000,0x0000,0x0000); // 带下拉电阻的输入口
SP_Init_IOB(0xffff,0x0000,0xffff); // 带数据缓存器的高电平输出 初始化A口为输出口
SP_Export(Port_IOB_Data ,0x7f3f); // 显示全0
SP_INT_TIMEA(); // 初始化中断为1ms定时中断源
G_TimeCount = 0;
G_SecTime = 0;
while(1)
{
Key_Down(); // 判断是否有键按下
switch (G_Key_Vaule)
{
case 1:
break; // 便于程序的添加
case 2:
G_TimeCount = 0;
G_SecTime = 0;
Key_Down(); // 是否有键按下
Key2_Vaule(); // 计时功能
break;
case 3:
SP_Export(Port_IOB_Data ,0x7f3f); // 显示全0
Key_Down();
Alarm_Clock(); // 预约定时闹铃的功能
break;
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -