?? 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 + -